menü probléma

xzsolt képe

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?

Drupal verzió: 
chx képe

tedd fel valahova (gist, drupalbin, akarmi) a menujeidet aztan megnezzuk. a D5 nagyon reg volt mar.

0
0
xzsolt képe

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

0
0
szantog képe

Í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.

0
0

----
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.

xzsolt képe

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?

0
0
szantog képe

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.

0
0

----
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.

xzsolt képe

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!

0
0
xzsolt képe

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).

0
0
szantog képe

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.

0
0

----
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.