class="active"

MrPrise képe

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: 
Hojtsy Gábor képe

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.

0
0
MrPrise képe

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)

0
0
MrPrise képe

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.

0
0
Hojtsy Gábor képe

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.

0
0
MrPrise képe

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?

0
0
Hojtsy Gábor képe

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.

0
0