Háj!
Szal egy olyan kérdésem lenne, hogy a már meglévő primary menü mellé én készítettem egy újat, csak nem tudom, hogy kódból hogyan lehet rá hivatkozni.
A primary menü az okés: $primary_links (asszem így hirtelen), de ha újat hozok létre, akkor mi lenne a megoldás. Tennem kéne valamit, vagy rögtön el lehet érni?
Köszönöm a válaszokat!
$secondary_links
A legegyszerűbb, ha a kérdéses menüt Secondary links címszó alatt viszed fel, ekkor $secondary_links néven lesz elérhető.
Ha már felhasználtad mindkettőt, akkor kérdés , hogy mit értesz "kód" alatt, ahonnan hivatkozni akarsz rá. Smink? Modul?...
Smink
A sminkből szeretnék hivatkozni rá. Pl: egy adott link megnyomása és egy paraméter vizsgálat után szeretném kirakni, vagy a sima primary menüt, vagy egy általam készített menüt. A secondary menün gondolkoztam, csak az a gond, hogy csak egy menünek kell látszania.
blokk beállítás
A menük láthatóságát a blokk beállítások között tudod szabályozni. Pl. ha a Secondary links menüt csak termékoldalon szeretnéd megjeleníteni, akkor az Oldalaktól függő megjelenítés c. lenyíló űrlapon megadod a termekek/* útvonalat. Bonyolultabb PHP kódot is írhatsz ide (paramétervizsgálat).
Egy gond van: nincs active...
Ezzel csak egy gond van, hogy ha elnavigálsz a "primary" valamelyik menüpontjára és a hozzá tartozó "secondary" valamely menüpontját kiválasztod, akkor nem lesz aktív a "primary"-ban az, ahonnan származik. Vagyis nem tudod, hogy melyik elsődleges menü almenüjében állsz (ki a szülő?)... Hetek óta ezzel szívok, és nem találtam rá megoldást.
Kigondoltam egy egyszerű megoldást, de annyira nem értek a php-hoz, hogy rendesen meg is írjam. Annyit kellene tenni, hogy a linkek generálásakor meg kellene nézni, hogy az alias micsoda, és ha tartalmazza az elsődleges menüpont aliasát, akkor tegyen egy
class="active"
tagot a link hivatkozásába.4.7.x-nél így le tudtam kérni, hogy hol vagyok:
és ha a
$my_path[1];
változó értéke egyenlő lenne a "primary" aliasával, akkor jöhetne az "active".Ahogy nézem, az 5-ösnél ez már nem működik. Megpróbálom kinyomozni, hogy mire változott.
Üdv, Pali
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan
patch
Van rá folt: Menu items in active trail should be styled.
Egyébként az arg() függvénnyel tudod az URL-t febontani, pl. www.akarmi.hu/termekek/elelmiszer/pekaru/... esetén:
arg(0) -> "termekek", arg(1) -> "elelmiszer", stb.
Esetleg még szükséged lehet a _menu_get_active_trail függvényre.
Köszönöm
Köszi a válaszokat. Elszórakozom velük :)
bocs
Bocsi, de hülyeséget írtam. Az arg() függvénnyel csak akkor tudsz a fenti módon dolgozni, ha Views modullal állítottad elő a /termekek, /termekek/pekaru, stb. oldalakat. Szokványos esetben az arg() mindig "node" értéket fog visszaadni.
Büntetésből akkor most részletesen leírom:
Nem biztos, hogy működik, mert most nem tudom tesztelni. De valahogy így...
Sajnos nem sikerült szépen formáznom ezt a hozzászólást...
U.i.: Értelemszerűen a page.tpl.php fájlba kell a fenti kódot beilleszteni. Valamint kell egy CSS osztály az .aktiv osztályra:
U.u.i.: Kipróbáltam, működik.
Akkor valamit elírhattam...
Nálam a forrásban (nincs ul-tag sem):
Majd otthon megnézem jobban.
Köszi, Pali
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan
kimaradt
Az ul kimaradt.
Ja, és ez 4.7 alatt megy, 5.0 alatt nem próbáltam.
EZ AZ!
Istennő vagy!!! De 5.x alatt nem megy sajnos. Gondolom változtattak pár dolgot. Esetleg át tudnád írni?
Nagyon köszi!
Üdv, Pali
Ps.:
Maga a li tag megkapja az "aktiv" class-t, csak éppen a link kiíratása nem jó.
Ez van a tömbben:
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan
útvonal álnevek
Az 5.0-ig még nem jutottam el, és a héten nem is lesz rá időm. :(
Úgy látom, a menu_get_item és a drupal_get_path_alias egyaránt benne van a HEAD API-ban, tehát elvileg mennie kell.
Fontos: ez a szkript csak akkor működik rendesen, hogyha pontosan adod meg az útvonal álneveket!
Például:
Primary menu:
Termékek menü:
Szolgáltatások menü:
A dolog logikája tehát:
a 3. lépés...
Szia!
Igen, ezt én is így gondoltam, csak a 3. lépést nem tudtam, hogyan kellene megcsinálni.
Nagyon köszi a segítséget!
Üdv, Pali
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan