|
Neděle, 06 Září 2009 08:03 |
 V dnešním krátkém článku si ukážeme jak přidat položkám do menu třídu první a poslední tak, abychom například u prvního, nebo posledního prvku mohli nastavit jinak ohraničení (border). Článek je dobrý pro pokročilejší uživatele, kteří si upravují některou šablonu nebo vytváří svojí vlastní.
Celý proces je poměrně jednoduchý, stačí editovat šablonu menu. Otevřeme si tedy soubor modules/mod_mainmenu/tmpl/default.php a najdeme si tento kus kódu:
if ($node->name() == 'ul') {</p> foreach ($node->children() as $child) { if ($child->attributes('access') > $user->get('aid', 0)) { $node->removeChild($child); } } }
if%20%28%24node-%3Ename%28%29%20%3D%3D%20%27ul%27%29%20%7B%3C%2Fp%3E%0D%0Aforeach%20%28%24node-%3Echildren%28%29%20as%20%24child%29%0A%20%7B%0Aif%20%28%24child-%3Eattributes%28%27access%27%29%20%3E%20%24user-%3Eget%28%27aid%27%2C%200%29%29%20%7B%0A%24node-%3EremoveChild%28%24child%29%3B%0A%7D%0A%7D%0A%7D
a upravíme ho takto:
if ($node->name() == 'ul'){ foreach ($node->children() as $child) { if ($child->attributes('access') > $user->get('aid', 0)) { $node->removeChild($child); } } //NOVY KOD $children_pocet = count($node-> children()); $children_index = 0; foreach ($node->children() as $child) { if ($children_index == 0) { $child->addAttribute('class', 'prvni'); } if ($children_index == $children_pocet - 1) { $child->addAttribute('class', 'posledni'); } $children_index++; } //KONEC NOVEHO KODU }
if%20%28%24node-%3Ename%28%29%20%3D%3D%20%27ul%27%29%7B%0Aforeach%20%28%24node-%3Echildren%28%29%20as%20%24child%29%0A%7B%0Aif%20%28%24child-%3Eattributes%28%27access%27%29%20%3E%20%24user-%3Eget%28%27aid%27%2C%200%29%29%20%7B%0A%24node-%3EremoveChild%28%24child%29%3B%0A%7D%0A%7D%0A%2F%2FNOVY%20KOD%0A%24children_pocet%20%3D%20count%28%24node-%3Echildren%28%29%29%3B%0A%24children_index%20%3D%200%3B%0Aforeach%20%28%24node-%3Echildren%28%29%20as%20%24child%29%20%7B%0Aif%20%28%24children_index%20%3D%3D%200%29%20%7B%0A%20%20%20%20%24child-%3EaddAttribute%28%27class%27%2C%20%27prvni%27%29%3B%0A%7D%0Aif%20%28%24children_index%20%3D%3D%20%24children_pocet%20-%201%29%20%7B%0A%24child-%3EaddAttribute%28%27class%27%2C%20%27posledni%27%29%3B%0A%7D%0A%20%20%20%20%24children_index%2B%2B%3B%0A%7D%0A%2F%2FKONEC%20NOVEHO%20KODU%0A%0A%7D
Nyní by se již třídy v menu měli zobrazovat. Nyní si ještě ukážeme fígl tak, aby jsme nemuseli měnit zdrojové soubory Joomly. Pokud nechceme zasáhnout do jádra Joomly můžeme soubor default zkopírovat a vložit ho do naší nové šablony takto: templates/nase_sablona/html/mod_mainmenu/default.php a změníme ho až zde, tím zajistíme, že se dafultní šablona v modulech přepíše šablonou menu z naší šablony a soubory z jádra Joomly zůstanou nedotčeny, takto to platí pro všechny moduly a komponenty, proto pokud budeme chtít změnit například vzhled článku, zkopírujeme soubor components/com_content/views/article/tmpl/default.php a upravíme ho a vložíme do složky templates/nase_sablona/html/com_content/article/default.php tím se změní vzhled článku na náš vlastní.
|