3. 11. 2009

PostNuke - Upravujeme vzhled : Dynamické menu (2.část)

V předchozím díle jsme si vytvořili nové menu. Teď si povíme něco o úpravě jeho vzhledu.

Evergreen - kaskádní styly

V jednom z předchozích článků tohoto seriálu jsme řešili kaskádní styly. Přitom jedna z kapitol popisovala i základní strukturu css právě pro dynamické menu. Z anglicky psaného manuálu (zmíněného v předchozím článku) snad stojí za zmínku tip pod názvem SEMI-TRANSPARENT (OPAQUE) SUBMENUS, který popisuje, jak vytvořit poloprůhledná plovoucí menu.

Šablony jednotlivých stylů

Z vlastní zkušenosti vím, že i přes sebelepší úpravu css nemusíte dosáhnout potřebného vzhledu. Nicméně i zde existuje pomoc - šablony, uložené v adresáři includes/blocks/dynamenu/templates. Názvy souborů jsou vcelku vypovídající, přesto:
  • layersmenu-vertical_menu.ihtml a layersmenu-vert_sub_menu.ihtml slouží k úpravě svislého plovoucího menu (první soubor určuje html kód hlavního menu, druhý pak kód vnořeného menu)
  • layersmenu-horizontal_menu.ihtml a layersmenu-horiz_sub_menu.ihtml definuje kód pro vodorovnou nabídku
  • layersmenu-plain_menu.ihtml je šablonou pro svislé obyčejné menu a layersmenu-horizontal_plain_menu.ihtml určuje vzhled vodorovné obyčejné nabídky
Popisem kódu se zaobírat nebudu, znalci HTML kódu se v něm dokáží velmi rychle a snadno zorientovat.
Bohužel však i v tomto případě máme jistou vadu na kráse - jistě jste si všimli, že neexistuje šablona pro svislé stromové menu. V tomto případě bohužel musíte měnit přímo zdrojový kód, především v souboru includes/blocks/dynamenu/lib/treemenu.inc.php.

Umístění menu na libovolné místo na stránce

Předpokládejme, že jste spokojeni se vzhledem menu a řešíte problém, jak jej vložit na místo, kam chcete (například do záhlaví celé stránky). I zde vám pomůže manuál, konkrétně kapitola 7 a v ní pasáž pod nadpisem INCLUDING DYNAMIC MENUS DIRECTLY IN YOUR THEME!. Zde je všechno náležitě popsáno, takže jen stručně:
  • Doporučuji, aby bylo příslušné menu umístěno vždy v levém sloupci a to především v případech, kdy jste v rámci xanthia motivu vytvořili zvlášť šablonu pro úvodní stránku a zvlášť pro ostatní stránky (šablony home.htm a master.htm).
  • Vraťte se do seznamu všech bloků, najeďte na odkaz deaktivovat, a podívejte se na odkaz - v něm totiž najdete řetězec bid=číslo. Dané číslo si zapište. Následně příslušné menu deaktivujte. Sice se vám ze stránek vytratí, ale nemějte obavy - v následujících krocích jej zobrazíte přesně tam, kde potřebujete.
  • Používáte-li klasický motiv, pak musíte do příslušného místa php souboru vložit kód:
    $block = pnBlockGetInfo('80');
    $block['bid'] = '80';
    pnBlockShow('Core', 'dynamenu', $block);


    Místo čísla 80 pak musíte zapsat hodnotu bid.
  • Používáte-li xanthia motiv, pak na příslušné místo v šabloně vložíte tento kód:


    Místo čísla 80 pak musíte zapsat hodnotu bid.
    U xanthia motivu pak nezapomeňte celý vzhled aktualizovat.

A práva nakonec ...

Máme menu a dokonce na místě, kde potřebujeme. Teď jen nastavit práva tak, aby příslušné položky viděla jen ta skupina uživatelů, které náleží (například registrovaní uživatelé). Návod máte k dispozici v manuálu, konkrétně v kapitole 7 pasáži MENU PERMISSIONS. Pro správce, kterému není práce s právy cizí, je nápověda dostatečně srozumitelná.

Co napsat závěrem? Máte-li problémy, možná vám pomůže kapitola 8 TROUBLESHOOTING. Od tohoto momentu pevně věřím, že se weby škol začnou novými nabídkami jenom hemžit ;-).