Sziasztok!
Az a kérdésem van, hogy lehetséges-e az, hogy főmenüpontonként a fejléckép mindig más és más legyen. Tehát lenne 6-7 főmenü, s minden menüponthoz tartozna egy fejléckép, amit mindig cserélgetne valahogy a drupal.
Merrefelé induljak el?
Üdv: Péter
Drupal verzió:
Fórum:
Én a smink template-jébe
Én a smink template-jébe nyúlnék bele. Ott megkeresném azt a sort, ahol a fejléckép megjelenítése történik és ez elé betennék egy php-programocskát. Ez azt vizsgálná, hogy melyik node kerül betöltésre és ennek nid-je alapján jelenítené meg a kívánt kép. A beírt programpélda persze nem pontos, de elindulhatsz vele.
If ($nid == "1") {
$fejleckep = "kep1.jpg";
}
else If ($nid =="2") {
$fejleckep = "kep2.jpg";
}
stb.
És utána jön a fejléc megjelenítés, ahol a $fejleckep változót írod az img paramétereként.
Csökönyi Ferenc
nem túl elegáns
A *.tpl.php fájlokba nem elegáns ilyen szintű logikát tenni, erre a smink template.php fájlja való (arról nem is beszélve, hogy a fejléckép jó eséllyel egy div css-sel beállított háttérképe lesz, és nem img tag-gel lesz betéve, hogy rákerülhessen a logó, meg a menüpontok, stb).
Szerintem erre a legjobb megoldás a template.php-ben a page preprocess függvényben a body class-hoz hozzátenni valami menüpont-azonosítót, és azt megcélozni css-ből. Vagy tud valaki jobbat?
--
Csonka Gergely
http://cheppers.com
Én most fogok ilyet
Én most fogok ilyet csinálni.
node-ban egy filefield-en keresztül lesz feltölve a kép, és az lesz kitolva fejlécnek a page.tpl.php-ba.
preprocess_page + egy kis tpl varázslat és megvan.
----
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.
halkan szólok,
hogy a tavalyelőtti drupal hétvégén a sminkes előadásomba ez volt az egyik példa ;)
-
clear: both;
halkan szólók,
hogy az első DDN-en az előadásomban ez volt az egyik példa. D7-en. De az elv, azonos.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
szorivagyok, nemláttam
szegedi kolegákkal tartottuk az orjási brénsztorm akkor.
-
clear: both;
OK, igazad van, de a megoldás
OK, igazad van, de a megoldás alapja valószínűleg egy ilyen php-kód lehet, legfeljebb a feltételrendszer kimenetét kell hozzá kitalálni, illetve a megfelelő helyre kell beágyazni.
Egyébként menüpont azonosítót kitalálni felesleges, mivel minden menü egy node-ra mutathat csak, annak pedig van kész azonosítója. Tehát betöltéskor csak ezt kell lekérdezni.
Csökönyi Ferenc
nem biztos
Ez nem így van, ott van például a kapcsolat űrlap, a views oldalak, vagy bármi más, ami valamilyen modulból jön.
--
Csonka Gergely
http://cheppers.com
Ezt a "preprocesses" dolgot
Ezt a "preprocesses" dolgot nem hinném, hogy meg tudom csinálni, mert annyira nem értek hozzá.
Azt viszont meg tudom csinálni, hogy a teljes fejléc egy blokk legyen, s a blokkba ugye be tudok tenni egy képek, akár php kódokkal.
Na most azon gondolkoztam, hogy ha ki tudnám nyerni valahogy a node idjét-t, (vagy az útvonalát) akkor ennek az értéknek megfelelően rakná ki a megfelelő képet. Ez is jó út lehet, nem?
S a fő kérdés, hogy ezt milyen php kóddal lehet megtudnom?
----
Bocsi, utólag néztem, hogy az első hozzászólásban ott a kód is:
If ($nid == "1") {
$fejleckep = "kep1.jpg";
}
else If ($nid =="2") {
$fejleckep = "kep2.jpg";
}
Péter
csak a főmenükre kell?
hány darab van? mik azok? nodeok? nézetek? a fejléc háttere kell változzon adott főmenüre? mennyire biztos, hogy holnapután nem lesz még egy főmenü vagy hogy nem kell e majd háttérkép bármelyik menüre?
kb ezektől függ, hogy mi az optimális út.
-
clear: both;
Csak előtte definiálnod kell
Csak előtte definiálnod kell a $nid-et
Tényleg attól függ az optimális megoldás, hogy milyen felépítésű a menürendszered. Ha minden menüponthoz egy node tartozik, akkor ez az út járható.
Még háttérképnek is meg tudod oldani, ha az If feltétele rendszer kimenete egy beágyazott CSS stílust vezérel, ezzel felülírva a smink template-nek beállítását, és itt a background-image értéke változik.
Csökönyi Ferenc
Annyira azért nem veszélyes, mutatom
Ezt a "preprocesses" dolgot nem hinném, hogy meg tudom csinálni, mert annyira nem értek hozzá.
A preprocess lényege: mielőtt a drupal kirakná a html-t az adatbázisból kinyert adatokat módósíthatod (az most lényegtelen, hogy a node adatokat cck mezőstől a rendszer szedi elő, vagy egy views). Mindig van bizonyos preprocess függvény, ami használható: http://drupal.org/node/223430
Egy elő példa: adtam a tartalom típusokhoz egy field_page_header_image nevű kép mezőt.
Ennek a képnek kell adni egy imagecache preset-et (pl: header_image 960x200px).
Ez a mezőt meg is oszthatod több tartalom típus között. Sőt.
Ezután csinálsz egy page preprocess függvényt a template.tpl-ben.
Ezután a page.tpl-ben lesz egy $header_image nevű változód ($vars['header_image']-be raktad!) ami elméletileg egy db képet fog tartalmazni.
Ezután, ha van a $header_image változódban valami, akkor kiíratod: (feltételeztünk, hogy $header_image renderelt html elemet tartalmaz
"<img src="-vel
kezdődik)Kb, ennyi a váza az egésznek. Erre felépítve meg lehet csinálni egy kis odafigyeléssel szépen az egészet.
Ha az kell, hogy url függő legyen a header, például nézetek eseték, akkor azt szintén a page_preprocessbe tenném.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
És még olyan is van, hogy
És még olyan is van, hogy image menu, itt ni http://drupal.org/project/imagemenu.
Gazsesz