Sziasztok!
Saját modulom által generált oldalakat menüpontokhoz rendelek és ez több ponton is vérzik. Korábban D5-ben volt a modul ott jól működött, miután átírtam D7-re azóta nem sikerült ezekre megoldást találnom:
1.
Ha egy menü node-ra mutat, akkor az almenük rendesen (automatikusan) kinyílnak/becsukódnak.
Ha egy menü a saját modulom által generálta oldalra mutat, akkor viszont nem. (ha fixen beállítom akkor nyitva van és úgy marad, ez ok).
2.
D5-ben a saját modul által generált oldalnál a menü címe (többnyire) automatikusan felülírta a modulba kódolt címet. Azt nem tudom, hogy bug vagy feature volt, de nekem hasznos volt, mert így az aktuális cím a menüből jött nem kellett erről külön gondoskodni. De ez valamiért nem minden oldalnál működött, nem találtam a hiba okát, mivel csak kevés oldalt érintett nem erőlködtem tovább.
D7-re áttérve viszont (100%-osan) csak a modulba kódolt címet adja vissza.
Ez viszont nekem nem jó.
Nem találom hogyan lehet normálisan kibányászni az aktuális menü címét és beírni.
3.
Címlap >> menü >> almenü >> mégegyalmenü
útvonal kiírása sem működik rendesen akkor, ha a menüpontok saját modulra mutatnak, mindig csak a Címlap van. D5-ben ehhez nem kellett semmit csinálni, D7-ben kihagytam valami?
mutass kodot
tedd fel valahova (gist, drupalbin, akarmi) a menujeidet aztan megnezzuk. a D5 nagyon reg volt mar.
Szia!
Szia!
Remélem jól értettem, hogy erre gondoltál:
https://gist.github.com/3009582
(ha kell felteszek többet, vagy egészet, de az elég nagy)
A D5 talán már nem is érdekes, D7-ben menjen.
Azok amik ott mentek és most hiányolom a D5 tulajdonságai voltak nem én kódoltam bele. Ezek talán a D7-ben is meg vannak csak lehet, hogy még valamit implementálnom kellene.
pl.:
az 1. pontot nem is értem, hogy a modulom ezt miképpen befolyásolja,
a weboldal: http://www.petdrogeria.hu
ez a menü jó: Tápinfo
ez nem: Szállítóeszköz
http://www.petdrogeria.hu/web/petdrogeria/category/320800/320809
ebből a hook_menu egy pontja:
MENU_PET_CATEGORY = "petdrogeria/category"
callback: petdrogeria_category
ez meg egy szűrés paraméterei:
.../320800/320809
Így első ránézésre több gyász
Így első ránézésre több gyász is van. Alapesetben a drupal menurendszere, és ezzel együtt a breadcrumb is úgy épül fel, akkor viselkedik úgy, ahogy szeretnéd, hogyha a foo/bar/baz útvonalak mindegyike létezik. Tehát ha foo/bar útvonalon nincs semmi, akkor foo/bar/baznál nem lesz breadcrumb.
De nem is ez a lényeg.
Drupal5-ben amit csináltál, az biztosan teljesen jó, és belefért az akkori struktúrába. A major verzió upgrade azonban nem feltétlenül az jelenti, hogy most nekiállunk, és a D5-ös kódunkat átírjuk D7re. Nálad jó eséllyel nem a modult kellett volna átírni, hanem a modul adatait migrálni D7 architektúrába, például taxonómiába. Ha ezt nem teszed meg, akkor a modulod által kezelt adatok (amiknek egyébként látszólag teljesen megvan a maguk standard drupal entitása) önálló életet fognak élni, illetve mindenről magadnak kell gondoskodni (views integráció, pathauto, keresés) Mint a mellékelt példád mutatja, egy egyszerű core által biztosított szülő - gyermek menükapcsolatot sem tud lekezelni.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Ettől tartottam...
Ettől tartottam...
Mint a mellékelt példád mutatja, egy egyszerű core által biztosított szülő - gyermek menükapcsolatot sem tud lekezelni.
Miért kell lekezelni, nem lehet együttműködésre bírni? A hook rendszer nem erre való?
a modul adatait migrálni D7 architektúrába, például taxonómiába
Ez nem világos hogyan menne.
A modul adatait egy nagyobb excel táblából importálja a user.
Nem akartam belekavarni a drupal tábla rendszerébe, mivel ez gyakrabban változik, mint a drupal core, így meg eddig csak a modult kellett kicsit hozzáigazítani.
Ezek egy kicsit megkavarták az elképzelésem, légyszi világosíts fel:
A modul hook_menu és az oldal blokkjaiban lévő menüpontoknak nincs funkcionálisan közük egymáshoz, azaz csak az URL hivatkozás van weboldal menüjében ami gyakorlatilag csak generálja a hook_menu hívásait? A breadcrumb hogyan kerül képbe?
a foo/bar/baz útvonalak mindegyike létezik
Ennek fényében beszúrtam a /petdrogeria útvonalra egy oldalt.
Az már világos /foo/bar/baz legyen érvényes, de a breadcrumb-nak a weboldal menüpontjaiból kellene felépülnie, nem a generált tartalom címéből.
pl:
a "Leonardo" az elvárt eredmény, azaz nem a node tárolt címe vagy kódból jövő, hanem a menüpontokból épül fel.
Címlap » ÁLLATELEDELEK » Tápinfo
de a "kutyapróba" nem,
pedig létezik /petdrogeria és petdrogeria/category
Címlap » Petdrogéria
A "Petdrogéria" a bekódolt cím és nem a menüpont, miért?
Annyi közben leesett, hogy
Annyi közben leesett, hogy annyira belemélyedtem a hook_menube, hogy azt nem vettem észre, hogy itt egy kézzel felépített, struktúrált menüről van szó, tehát amit írtam, az irreleváns.
Amúgy ahogy nézem, sikerült megoldani, legalábbis én már nem láttam gondot a menükkel.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Igen sikerült!
Igen sikerült!
A megoldás egyszerű volt, valójában minden működik úgy ahogy régen.
A különbség, hogy anno hook_menu()-ben:
pl.: mydomain.hu/foo/bar/baz
ha megadtad:
$menu['foo'] = array(....);
akkor az kvázi benyelte a többit paraméterként.
most viszont nem nyeli be, definiálni kell:
$menu['foo/%/%'] = array(....);
ennyi volt ami hiányzott.
köszi!
még egy érdekesség:
még egy érdekesség:
ha a "kutyapróba" menüt hivatkozását átállítom:
petdrogeria/category -> petdrogeria
vagy vissza állítom:
petdrogeria -> petdrogeria/category
rámegyek a főoldalra (frissül a menü) és rámegyek "kutyapróba" menüre, akkor egy alkalommal jó:
Címlap » ÁLLATELEDELEK » Kutyáknak
még egy klikk "kutyapróba", rossz:
Címlap » Petdrogéria
Ez miért jó egy alkalommal?
(a menü frissült!!!!, cache ki van kapcsolva).
Ilyenkor érdemes lehet teljes
Ilyenkor érdemes lehet teljes gyorstárat üríteni. A cache kikapcsolása nem azt jelenti, hogy egyáltalán nincs cache, az csak a page cachet kapcsolja ki, de pl menu cache attól még van, írtam ilyesmiről.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.