Selected menüpont kiválasztása

Paal képe

Sziasztok!

Adott a következő egy K2 sminkes oldalon:
- elsődleges menü
- több almenü, attól függően, melyik elsődleges oldalon járunk, vagyis

- Téma 2
-- Altéma 1,1
-- Altéma 1,2
-- Altéma 1,3

- Téma 2
-- Altéma 2,1
-- Altéma 2,2

stb.

Az elsődleges linkek a HEADER részben vannak, a többi a jobb oldali részben. Beállítottam, hogy pl. a "Téma 2 blokk" csak a "Téma 2" elsődleges link kiválasztásakor legyen megjelenítve. Rendben is van. De ha az almenük közül választok ki bármit, akkor nem tudom hozzákapcsolni semelyik főmenühöz, így nem tudom továbbra is a "selected" paramétert megtartani az elsődleges menüknél. Vagyis azt szeretném, ha kiválasztom pl. az "Altéma 2,2"-t, akkor a "Téma 2" menü class része maradjon selected.

Arra gondoltam, hogy a sminkeb lekérem, hogy milyen oldalon járok (már ezt sem tudom, hogy kell), de akkor is bele kellene nyúlni az menü létrehozó modulba?

Köszi, Pali

Ps.: hm, a drupal.hu-t nézegetve részben itt is ez a jelenség ("Hírek/saját adatok" kiválasztásakor nem lesz továbbra is aktív a "Hírek" menüpont fent, de pl. a Kézikönyv oldalon gyönyörűem marad a class="active" paraméter! Hogyan?

Fórum: 
Paal képe

Lehetséges, hogy úgy lett kialakítva, hogy az elsődleges menü "Kézikönyv" menüpontja, az egy könyv első lapja? És az oldalsó menük meg annak további gyerek lapjai?

P.

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Hojtsy Gábor képe

Nálunk a drupal.hu-n egyedi menüpont megoldás van a felső menüre. Ez a webcímek előtagja alapján dolgozik, szerintem eléggé jól. A saját adatok nem a hírek alatt van, ezért nem csoda, hogy nem lesz a hírek továbbra is aktív. A saját adatoknak megfelelő felső menüpont nincs.

Ha a Drupal menü modul beépített primary links és secondary links funkcióját használod, akkor az megtalálja elvileg a kapcsolatot az elsőleges és másodlagos menük között, de nem fog az elsődleges aktuálisnak külön osztályt adni, ha jól tudom. Ezt azért érdemes megnézni a kódban.

0
0
Paal képe

A Drupal. konferencián talán Palócz Istvánt kérdeztem arról, hogyan lehet(ne) a csak egy adott oldalon megjelenő blokkban lévő x-ik menüt "összekapcsolni" az elsődleges menüvel. Ő javasolta, hogy vizsgáljunk rá, hogy milyen elérési út alatt van az adott almenü, és az alapján tegyük aktívvá az elsődleges megfelelő menüpontját.

A kérdésem az lenne, hogy a Drupal mely változójából nyerhető ki, hogy az adott oldalnak mi az elérési álneve?

Mert akkor a primary linkeket előállító funkcióban meg lehetne vizsgálni, hogy milyen útvonalat tartalmaz a meghívott oldal.

Köszi, Pali

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Anonymous képe

Én erre az arg() függvényt szoktam használni.

Ha mondjuk az aktuális url http://drupal.hu/comment/reply/1207
akkor az arg(1) értéke a "comment", az arg(2) a "reply" és így tovább.

0
0
Paal képe

Alakul, de a node és annak sorszámát adja vissza:

arg(0) -> node
arg(1) -> 17

vagyis a node/17-es a kérdéses tartalom.

Hogyan nyerhető ki, hogy ennek mi az elérési álneve? Mert ha esetleg változna a száma (vagyis más node-ot rakok be ennek a menűpontnak), akkor javítgatni kell a témában.

Köszi, Pali

Ps.: ráadásul, ugye ha ennek a főmenünek az oldalán megjelenő másik menüpontra kattintok, akkor már más lesz a node sorszáma is (pl node/18).

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Paal képe

Itt megtaláltam:

$my_path = explode("/", drupal_get_path_alias('node/'.$node->nid));
$my_path = $my_path[0];

A $my_path értéke ekkor az első argumentumot fogja tartalmazni az elérési útvonalból, pl:
hirek/napi -> hirek

Most már "csak" a főmenüt generáló részt kell megfelelően módosítani.

Üdv, P.

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Paal képe

Még sem megy. Tudna valaki segíteni?

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

melon képe

Én is belefutottam már hasonló problémába, nekem bevált ez a megoldás.

0
0
paulzoltan képe

Elolvastom a megoldást a drupa.org-on de mivel az angolom nem a legjobb és a php tudásom is elég szegényes nem teljessen világos mit és hova kell beilleszteni. El tudná valaki magyarázni? Drupal 5-öt használok. A sminkem nem tartalmaz template.php fájlt. Köszi.

0
0
ninja képe

ha azt szeretném, hogy a http://weblapom/hirek alatt szereplő összes url-nél (pl: http://weblapom/hirek/nagymama-hirei/) megkapjon a menüpont valamilyen formázást, akkor ezt csinálom:

létrehozok egy blokkot, beállítom, hogy csak itt jelenjen meg: hirek/*

beleteszem ezt a blokkba:

<?php
drupal_add_js('
$(document).ready(function(){
$("#a_menupontom_id-je").addClass("menuactive");
});
', 'inline');
?>

utána ez a css-be:

.menuactive {background: #FFFF99;}

jómagam ezt a megoldást olyankor szoktam alkalmazni, amikor pl. azt szeretném, hogy a /hirek alatt megjelenő tartalmaknál más kép legyen a headerben.

.header-hirek {background: url(images/ezt-mutassad-a-hireknel.png)!important;}

http://alleycat.hu

0
0
paulzoltan képe

Sikerült, csak az a gond hogy a változás csak kb az oldal betöltése után fél másodpercel jelenik meg.
De azt talán kibirom. Köszi!

0
0
Paal képe

Üdv,

Már a kép háttér jelenik meg kicsivel később? IE? Elvileg ha már egyszer letöltődött (elsőre valóban kicsit lassabban jön le), akkor utána már gyorsabban fog megjelenni.

Üdv, Pali

Ps.: teszt link?

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

paulzoltan képe

Nem, nincs háttérkép egyenlőre, csak néhány CSS beállítás különbözik, margin meg ilyenek. De közben rájöttem, hogy csak operába van ez a kis késés, FF-ben és IE-ben nincs.

0
0