Gyakori feladat, hogy bizonyos típusú tartalmakat rendeljünk hozzá a webhely főmenüjének meghatározott eleméhez. Pl. ha egy konkrét hírt olvasok, akkor a „Hírek” menüpont – ami egyébként a híreket listázó oldalra mutat – legyen aktív. A legegyszerűbb megoldás erre nyilvánvalóan az lenne, hogy minden egyes hír kap egy saját menüpontot, aminek szülő eleme a „Hírek”. Ez azonban teljesítmény és felhasználóbarátság szempontjából sem jó ötlet.
A Drupal 7 alaprendszere nem kezeli ezt a problémát, azonban a közösségi kiegészítő modulok közt több jelölt is akad. Én a Menu position-t választottam, ennek használatát mutatom be röviden.
Új szabályt egy egyszerű űrlap használatával hozhatunk létre (/admin/structure/menu-position/add), amin a szabály nevét, a szülő menüpontot és a megjelenési feltétel(eke)t kell megadnunk. Ez utóbbiakat a következő lehetőségek közül választhatjuk ki: tartalomtípus, oldal (útvonal), szerepkör, nyelv, taxonómia (szótár vagy szótár és kifejezés). A feltételeket kombinálhatjuk is, ez esetben csak akkor lesz aktív a kiválasztott menüpont, ha minden feltétel teljesül. (Kóderek további feltétel-lehetőségeket is alkothatnak, amiket plug-in-ként adhatnak hozzá a modulhoz.)
A meglepetések elkerülése érdekében érdemes figyelni arra, hogy a modul – alapbeállításai szerint – elhelyezi az aktuális oldal címét a szülő menüpont alá almenüpontnak. Ezt szerintem érdemes kikapcsolni.
További beállítási lehetőség, hogy a közvetlen szülő menüpont kapjon-e “active” class-t is az “active-trail” mellé. (Az “active-trail” class-t minden szülő menüpont megkapja – erről szól a modul működése… :o))
A hab a tortán, hogy a Menu position a menüpontok „aktivizálása” mellett a megfelelő morzsamenüt is létrehozza! (Amit – ha mégsem lenne megfelelő valamiért – felülírhatunk pl. Custom breadcrumbs-zal.)
Persze a Menu position csak az egyik a lehetséges eszközök közül. Én keresés közben pl. az alábbi modulokat találtam még:
További tippeket, észrevételeket, tapasztalatokat örömmel várok hozzászólásként.