Drupal 7 zavedl několik změn v administraci, které se dotkly práce s menu. Už tu nemáme dělení na primární a sekundární menu, ale na hlavní a sekundární. Z přehledu položek v menu zmizela zaškrtávátka umožňující nastavit, zda je položka menu rozbalená nebo sbalená - nastavení najdete až při editaci konkrétní položky. Ale najde se i spousta vylepšení.
Při práci s menu v Drupalu 7 můžete využít například toho, že po vložení menu coby bloku na stránku se vám díky modulu Contextual links po přejetí přes menu objeví kontextová nabídka s možností ihned vkročit do editace menu a jeho položek. Máme tu také nástrojovou lištu pro rychlejší přístup do administrace.
Přesto k úplnému komfortu v základní administraci menu v Drupalu 7 stále pár věcí chybí. Existují pro ně doplňkové moduly, na které se nyní podíváme.
Klasika pro správce webu - Administration menu a Administration Menu select
V Drupalu 7 se objevilo nové speciální menu pro správce webu, které poskytuje základní modul Toolbar. Administrátorům se nahoře na stránce objeví černá lišta s přístupem k jednotlivým částem administrace. Pokud máte zapnutý i modul Shortcuts, přibude ještě šedá lišta, kam můžete jednoduše přidávat své vlastní odkazy do jednotlivých částí administrace. Tyto zkratky můžete dále sdružovat do různých skupin.
Jakkoli mi přijde Toolbar fajn třeba pro běžnou obsluhu webu nebo pro redaktory, tak mi jako správci webu nedostačuje. Už dlouho používám modul Administration menu, které je oproti Toolbaru rozbalitelné (a bylo tu už pro předchozí verze Drupalu). Nemusíte tedy klikat na konfiguraci a čekat, než se vám otevře stránka se seznamem odkazů v ní. V Administration menu jen najedete nad příslušnou položku a ihned se rozbalí příslušný seznam odkazů v ní.
Na druhou stranu Administration menu nejde úplně dobře použít pro běžnou práci s webem, kdy uživatel nemá potřebu vidět různé položky, ke kterým nemá přístup. Řešení? Zkombinujte na webu Toolbar a Administration menu pomocí modulu Administration Menu select, ve kterém vyberete, které uživatelské role mají přiřazen který panel administračního menu - tedy zda Toolbar nebo Administration Menu. Toto nastavení lze měnit i přímo na úrovni uživatele v jeho profilu.
Menu Expanded - rychlá úprava sbalitelnosti položek
Postrádáte možnost rychle ze seznamu položek v menu nastavit, zda jsou konkrétní položky sbalené či rozbalené? Pokud stejně jako já nechcete chodit do úpravy jednotlivých položek, nainstalujte si modul Menu Expanded. Do seznamu položek v menu vrátí zaškrtávátka, která v Drupalu 7 marně hledáme.
Menu attributes aneb jak otevírat odkazy do nového okna (a nejen to)
Hodně častým dotazem, na který se sice neptáte zde ve fóru, ale píšete mi jej rovnou na mail (prosím, dávejte přednost zdejší diskuzi), je: „Jak vytvořím odkaz z menu do nového okna?". Řešení nabízí modul nazvaný Menu attributes.
Po jeho instalaci vám v editaci položky menu přibude možnost ukrýt políčko pro zadávání plovoucího titulku menu, naopak přibude možnost upravovat ID položky, atributy name, rel, class, dokonce přímo styl, cíl (tedy i to případné nové okno) a ještě možnost definice klávesové zkratky pro danou položku menu.
Ne vše musíte nutně využívat, pro administraci můžete zpřístupnit jen některá z těchto nastavení. Stačí si je vybrat v Struktura > Menu > Nastavení.
Menu Block vytvoří bloky s konkrétní částí celého menu
Typicky u firemních webů často řeším potřebu zobrazovat na různých stránkách jen část hlavního menu, a to takovou, která odpovídá nadřazené položce menu pro konkrétní stránku. Jinými slovy například zobrazí v levém panelu blok obsahující odkazy zanořené do první položky hlavního menu.
Tohle můžete řešit různě. Někdo sáhne po kategoriích a Taxonomy menu, jiný prostě položky menu naduplikuje, za což mu cílový uživatel webu měnící strukturu menu moc vděčný nebude. Anebo sáhnete po modulu Menu Block, zmíněné využití v něm nastavíte a jste hotovi. Co se změní v zanořených položkách hlavního menu, to se projeví i v bloku. Navíc si u něj můžete vybrat, zda zobrazí i nadřazenou položku, do jaké úrovně rozbalí vnořené položky atd.
Menu Breadcrumb pro lepší kontrolu drobečkové navigace
Drobečková navigace v Drupalu mi vždycky přišla „taková divná". Nikdy jsem nebyl schopen ji pořádně ovlivnit, přestože existuje X modulů pro její vylepšení (o tom někdy příště). Ovšem pokud správně navrhnete strukturu menu a případně využijete Menu Block, můžete dosáhnout použitelného stavu.
Drobečková navigace se totiž standardně generuje podle toho, jak je odkaz na danou stránku zanořen do navigačního menu. S pomocí modulu Menu Breadcrumb můžete říci, že toto pravidlo chcete uplatnit i pro jiná menu a s jakou prioritou. Dále zde nastavíte třeba přidávání aktuálního názvu stránky do drobečkové navigace, či její ukrytí pokud obsahuje jen odkaz na domovskou stránku.
Special menu items module - neklikatelné položky a jiné
Další poměrně často dotazovanou funkcionalitou je vytvoření položek menu, které nebudou klikatelné. Proč by to někdo dělal? Například v situaci, kdy máte v hlavním menu několik rozbalovatelných položek, ale přitom nechcete pro tu nadřazenou vytvářet nějakou stránku nebo ji směřovat třeba na titulku. Ani Drupal 7 bohužel standardně nedovede vytvořit položku menu, která nemá přiřazen odkaz.
Modul Special menu items vám to dovolí a přidá navíc možnost vytvářet oddělovače v menu, pěkně to provázat na drobečkovou navigaci a vše pohodlně nastylovat díky CSS, které do upraveného menu doplní.
Tipy na další moduly pro Drupal 7 a jeho menu
Modulů pro Drupal 7, které nějak souvisejí s menu, návrhem navigace na webu a její administrací, je ještě více. Vybral jsem takové, které považuji za nejdůležitější a nejčastěji je používám. Pokud si chcete s menu opravdu vyhrát, doporučuji kouknout na projekty jako jsou Megamenu, Giga Menu, nebo asi nejlépe vypadající OM Maximenu.
A malý tip na závěr: Potřebujete do menu nahrávat obrázky? Pak určitě chcete modul Menu Icons.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Podobné články
Komentáře k článku
Dobrý den, myslím, že by to šlo pomocí DHTML Menu.
Díky za tip. Zkusil jsem a vypadá to celkem dobře, jen mi u tohoto modulu chybí možnost sbalení po kliknutí na nadřazenou položku, navíc bez nutnosti přechodu k dané sekci. Ještě mrknu po něčem dalším. Nicméně díky.
Dobrý den.
Zaujal mne Váš článek a Vaši knihu již doma také mám. Mám Drupal 7 a potřebuji do top menu dát před text ikonu či obrázek. Nicméně menu icons nefunguje. Zdfá se, že v top menu je to problém, jinde se zobrazí. Jak to řešit jednoduše?
Děkuji
Myslím, že záleží na tom, jak je to menu renderované. Máte třeba něco jako blok, kdežto jiné přímo v šabloně?
Dobrý den,
mám problém s modulem menu icons: icony se nezobrazují (a to ani v main menu nebo jiném vytvořeném menu). Dále bych se rád zeptal, zda jemožné vytvořit odkaz bez napisu, aby v menu byla jen ikona a ne i nazev.
Děkuji
Já modul Menu icons už dlouho nepoužil, ale myslím si, že je problém v tom, že menu vykreslujete nějakým voláním v šabloně a tento modul chce blok s menu vložený do nějakého regionu. Podobně jako Superfish, Nice menus a další.
Dobrý den, zrovna vyhledávám vše o menu a Váš článek přišel jako na zavolanou, díky. Když už je řeč o menu, nevíte o nějakém modulu, který umožní nahradit vybrané menu (např. u Books) dynamickým tree menu? Něco v tomto stylu: http://demo.kbpublisher.com/kb/44/