Sziasztok!
Mire használja a rendszer ezt? A saját oldalomon én ezt adom a tab-omon az éppen kiválasztott résznek. Most nyomoztam ki, hogy a Drupal l()-je automatikusan ad az -nek active class-t (és így érdekessé teszi az oldalamat...). Nem jöttem rá, hogy milyen célból teszi ezt. Talán az élő linkeket különbözteti meg a nem választhatóktól? Ennek mi értelme lenne? Tudja valaki?
Köszi!
Fórum:
aktuális oldal
Az aktuális oldalra mutató linkeket jelöli meg így. Ha a node/10 oldalon vagy, akkor minden link, ami ugyanide mutat, megkapja ezt a classt. Mondjuk ha itt a Drupal.hu-n választasz egyet az oldalsávból az aktív fórum témák közül, klikkelsz, akkor az oldalon az ugyanarra mutató linkek feketék, narancssárga helyett az oldalsávban.
Köszi
Ez eddig ok és logikus is.
Az egyik oldalra a weboldalamon a link ilyen felépítésű: /2/6.
Van fent egy vízsintes menü ami gyk az első számnak felel meg a linkből és van egy menü jobb oldalt ami a második szám.
Ha a link /2/6 akkor a drupal aktívként csak a jobb oldali menüben jelöli meg a megfelelő sort, de én azt szeretném, hogy a vízszintes menüben is legyen aktív a hozzátartozó link. Ezt persze meg tudom kézzel is csinálni, csak kíváncsi vagyok ti hogy oldjátok ezt meg?
A weboldalam
Bal felső részen van a browse és ott meglátjátok mit próbáltam meg fentebb leírni.
Eddig az itt lévő linkeket kézzel gyártottam, nem használtam a drupal l() fvjét, azért hogy az active-ot tudjam vezérelni. Tehát az legyen active amit én akarok. Most, hogy bekapcsoltam a cleanURL-t, jöttem rá, hogy nem jó, mert így ezeket a linkeket nem "tisztítja" meg. Több megoldásra is gondolok. Pl a linkeket generálom az l() fvvel, de generálás után kiszedem belőle a az "active"-ot vagy a linkeket kézzel gyártam és a "megtisztítást" is kézzel végzem (nyílván írok rá egy fv-t az eredeti l alapján)
Megoldásom
Azt csináltam, hogy az l() paraméterének megadtam az active="class"-t ott ahol szeretném, hogy active legyen. Ezzel annyi a gond, hogy ha ott ahol egyébként is lenne már active lesz még egy... Működni, működik, de mégsem a legszebb megoldás...
Ja, igen azt kihagytam az elején, hogy ha a link csak /2 akkor is kellene hogy a lap "magától" tegyen aktívvá jobb oldalt is egy elemet, azaz úgy nézzen ki a lap ilyenkor is mintha a /2/6 lett volna megadva.
nem értelek
Azt írod, hogy legyen a vízszintesben is úgy aktív, ahogy a menüben, aztán meg azt írod, hogy direkt ki akarod irtani, ha beteszi a Drupal. Ez nekem ellentmondásnak tűnik... Nem értem, mire szeretnél kilyukadni.
Bocsi, megpróbálom részletesebben
A dolgok az oldalamon be vannak pakolva kategóriákba (taxonomy).
Van 2 fő kategória (Library features és Supported OS) és az alatt vannak még alkategóriák. A taxonomy-hoz tartozó alap faszerkezetes megjelenés helyett szeretném, hogy felül legyen a 2 fő kategória + még az "All", a jobb oldali menüben pedig a mindenkori aktív fő kategóriában szereplő alkategóriák legyenek ("All"-nél ez a rész nem jelenik meg). Az oldalon megjelenő libeket a fő és az alkategória együtt határozza meg, mint egy szűrő. Azért hogy látszódjon jelenleg mi alapján kerültek kiszűrésre a megjelenített libek, szeretném hogy az aktuális fő és az alkategória legyen aktív. A drupal magától az elérési útvonal "alkönyvtárait" (pl /2/6-ban a 2-est) nem állítja aktívra, csak azt a linket ami az aktuális útvonalat teljesen lefedi. Tehát nekem kell az active-ot beállítani ha alkategóriára kattintott a látogató, mert csak a jobb oldali menü lenne aktív ha a drupal-ra bízom ezt. Ill. ha a főkategóriát választotta akkor az alkategóriát (alapban a legelső) kell nekem active-ra állítani. Azt leírtam, hogy most hogyan csináltam ezt meg. Ennek a megoldásnak annyi a szépséghibája, hogy a fő kategóriáknál kétszer szerepel az active, ezért érdekelne ki hogy csinálná ezt meg?
két active class?
Nos, január óta (1.311-es common.inc) nem kell amiatt aggódni, hogy ha az $attributes paraméterben megadsz class nevet, akkor azt felülírja. Annyit lehet tenni, hogy az l() meghívása előtt ellenőrzöd, hogy active lesz-e az l() szerint is, és ha igen, akkor te nem teszed be a classt, csak egyébként.