Szerbusztok !
Szerettem volna a Saját adatok (Navigáció) menüpontot állandóan nyitvalévő menüvé alakítani.
Sikerült definiálnom alá egy egy menüpontot, de az csak akkor jelenik meg ha rákattintok a Saját adatok-ra (én azt szeretném, ha mindig látszódjon, természetesen amikor a felhasználó belépett).
A Saját adatok típusa MENU_DYNAMIC_ITEM (ez tiltott az admin menüben)
A lenyitható menüé: MENU_ITEM_GROUPING (ez szerkeszthető, lenyitható)
Sajnos nem elég átírni :)
Valahol át lehet hidalni a problémát, mivel van olyan állapota a manüsornak, amikor le van nyitva. A kérdés hol és mit ? Annyit sikerült kiderítenem, hogy a MENU sql táblában a TYPE mező értéke az állandóan nyitva lévő menü értéke 310 (az admin/settings-é 318). Sajnos a MENU_DYNAMIC_ITEM menüpontot nem tárolja a táblába :(
Van valakinek ötlete ?
always open
Nézd meg, hogy mit változtat az adatbázisban, ha mindig nyitottként állítasz be egy saját menüpontot, és hogy ezt el lehet-e érni a saját adatok menüpontra.
310-re állítja a TYPE
310-re állítja a TYPE értéket. A baj az a Saját adatok-kal, hogy dinamikusan állítja elő (ugyebár az user után íraja a felhasználó id-jét) és az adatbázisban nem tárolja. Magam is ezzel kezdtem.
...mit tudok: http://web.termuves.hu
forráskód
Ezekszerint a forráskódban leszel kénytelen átírni a user_menu() függvényt.
Az kevés.
Az kevés.
A menü előállítására egy globális változót használ $_menu. Követhetetlen mit mikor pakol bele és vesz el. Ráadásul még a cache-ben is tárolja.
Feladtam, íme a direkt megoldás (menu.inc - 4.7.2):
Nem túl elegáns, de működik :)
Az érdekessége, hogy csak akkor jelenik meg amikor a felhasználó bejelentkezik.
...mit tudok: http://web.termuves.hu
nem értelek
Mondom, hogy nézd meg, hogy a user_menu hogyan rakja be a menüt. Azt mondja, hogy type legyen MENU_DYNAMIC_ITEM. Lássuk ez mit jelent, nyissuk meg a menu.inc fájlt. Jé, ez mindenféle paraméterekből áll össze. Látjuk, hogy ezeknek a paramétereknek a listájában van egy olyan, hogy MENU_EXPANDED. Mivel ez bitmezőként van megoldva, csak fogni kell, és össze kell ÉSelni a MENU_DYNAMIC_ITEM-mel. Tehát akkor 'type' => MENU_DYNAMIC_ITEM & MENU_EXPANDED lesz a típus meghatározása a user.module kódjában (át kell írni a kódban), Ez elvileg szuperül kell működjön.
ez így túl egyszerű lenne
Megörültem de nem jó.
A Saját adatok egyszerűen eltünik.
Olybá tűnik nekem, hogy alapból nem teszi bele a $_menu változóba a Saját adatok almenüpontját, csak akkor, ha rákattint valaki a Saját adatok-ra. Magyarán azt kellene szimulálni, hogy valaki kattintott a menüpontra, de oldalt nem hív be (ennek kiderítése meghaladja a pár hónapos PHP tudásomat).
Szerintem a MENU_DYNAMIC_ITEM úgy van megformálva, hogy ne legyen almenüje. Ugyebár az admin részben sem lehet beállítani, hogy lenyitható legyen.
Megjegyzem nem lenne rossz, ha lenne olyan lehetőség a Drupal-ba, hogy olyan menüpontokat lehessen létrehozni, melyek csak bejelentkezés után látszanak.
...mit tudok: http://web.termuves.hu