Jak přidat třídu první a poslední některým menu
Pondělí, 28 Září 2009 19:46
Nedávno jsme si ukazovali jak přidat třídu "prvni" a "posledni" položkám menu v Joomle. Nedávno jsem podobnou věc potřeboval udělat i v Prestashopu dnes se tedy popíšeme jak na to. Návod si ukážeme na menu tzv. Block Infos, to je menu kde se zobrazují například pravidla shopu, informace a dopravě apod. Toto menu se často používá v horizontální podobě, kde potřebujeme třídy první a poslední.
Nejprve musíme upravit třídu, která vybírá odkazy z databáze. Přídáme si proměnou která detekuje první a poslední položku a dvě podmínky, které zjistí, zda-li se v cyklu foreach nacházíme právě na dané položce. Myslím že bude lepší se podívat přímo na kód. Otevřeme si soubor classes/CMS.php a najdeme si funkci getLinks($id_lang, $selection = null) ve verzi 1.2.0.8 je to řádka číslo 80. Najdeme si podmínku if($result) a změníme ji takto:Jak vidíme oproti minulému kódu jsme přidali proměnné class, x a do. Prvnímu prvku přiřadíme položku pole class s názvem first, poslednímu last. Nyní musíme zajistit aby se v šabloně různých odkazů zobrazovali námi přiřazené třídy. Prestashop využívá šablonovací systém SMARTy, který se liší od klasického html, které využívá Joomla. Otevřeme si soubor modules/blockinfos/blockinfos.tpl a cyklus foreach upravíme takto:
Jak vidíme smarty má svojí výhodu do polí dané proměné se dá přistupovat přes tečku ($cmslink.class). Tím zajistíme aby se nám zobrazila třída "first" a "last". Takto podobně se dají upravit i ostatní menu. Nedoporučuji upravovat hlavní menu kategorií. Přeci jen horizontální podoba takového menu by asi moc nedávala smysl, při větším počtu kategorií by se nám nevešla do šířky webu, to nemluvím o podkategoriích :) Doufám, že se článek hodí

