Leč rozhodl jsem se (právě kvůli nedostatkům té původní struktury) tyto nástroje přepsat - a alespoň některé nedostatky tak odstranit.
U základní třídy byla změna struktury jednoduchá. Tato základní třída totiž vytvoří jednu zadanou značku - párovou či nepárovou, podle zadání.
Jenže ve třídách sestavujících větší bloky HTML kódu (mající dvě nebo tři úrovně) potřebuji mít styly, atributy atd. rozděleny podle toho, v které úrovni budou použity.
A tady právě nastává ten problém s tím, že jsem si špatně navrhl strukturu těch vlastností - i když původně to vypadalo, že by to mohlo být dobré řešení. Ale tak to bylo jen do chvíle, než jsem potřeboval zadat styly a atributy.
Plán byl na takovouto strukturu:
- Kód: Vybrat vše
$this -> top_level -> in_use
$this -> top_level -> elements
$this -> top_level -> styles
$this -> top_level -> attributes
Takováto struktura je sice OK, ale jen u té top_level. U bottom_level či middle_level už je ale problém, že těch značek může být více. A je potřeba styly a atributy odlišit pro každou tu značku - ať už budou odlišeny číselně nebo názvem.
Takže struktura v těch dalších úrovních by byla (přibližně) takováto:
- Kód: Vybrat vše
$this -> bottom_level -> in_use
$this -> bottom_level -> elements
$this -> bottom_level[název či pořadí značky] -> styles
$this -> bottom_level[název či pořadí značky] -> attributes
Nebýt položek in_use a elements, problém by (asi) nevznikl. Jenže nevím (nejsem si jistý), jak to napravit. Jakou tedy zvolit strukturu. Velmi nerad bych totiž měl název či pořadí značky jako klíče polí stylů či atributů. Stačí totiž, že atributy samy mohou mít více hodnot.