Header-image csere menüváltáskor

ksandor képe

Sziasztok
Azt szeretném kérdezni tőletek, hogy lehet megvalósitani azt, hogy amikor egy, egy menüre kattintok akkor különféle header kép jelenjen meg ?
Előre is köszönöm.
Kiss Sándor

Taxonomy upgrade extras: 
Drupal verzió: 
Fórum: 
eager képe

Sk8erPeter képe

Ez szerintem egy kissé kevéske erre a célra, főleg, ha külső feltöltőknek admin-felületet is szeretnél biztosítani hozzá. Egy tök kezdő mit kezdjen a Context modullal?
De nem csak kezdőknek okozhat problémát: gondolj bele, mi van, ha mondjuk kb. 100 path-hoz szeretnél rendelni valami képet. 100-szor adsz hozzá a Context modullal egy megfelelő kontextust, találsz ki hozzá valami class-nevet, és 100-szor nyúlkálsz majd a CSS-kódba, hogy ott kitaláld a megfelelő path-t a feltöltött képnek, hogy megadd mondjuk background-image-ként?
Inkább valami kezelhető képfeltöltő felület kellene.

Én a Dynamic Banner modult kezdtem el használni, de időközben rájöttem, hogy elképesztően igénytelen a kódja, úgyhogy elkezdtem módosítgatni azt, mert nem volt más választási lehetőségem, nem igazán találtam értelmes modult a célra. Hiába nem szeretem csak úgy módosítgatni a modulok kódját, ezt a modult nem is igazán tartják karban... és amíg nem cserélődik a fejlesztője, vagy kerül be a képbe valami igényesen programozni tudó emberke, talán jobb is.
Ez a modul annyiból jó lenne, hogy kifejezetten erre a célra készült, csakis képek feltöltögetésére bizonyos path-okba, lehet wildcardokat megadni, elvileg arra is használható lenne, hogy adott path-hoz több képet is rendelj, és akkor azok váltakoznak, és hasonlók, plusz biztosít egy blokkot "Dynamic Banner" néven, amit meg az ember bepakolhat a neki tetsző regionbe (én pl. Zen alsminkben létrehoztam egy plusz régiót, "Banner" néven).
Még tovább kell majd alakítgatnom ezt a modult ahhoz, hogy majd feltöltő emberkék adott oldalon rákattinthassanak, hogy na ehhez az oldalhoz szeretnének egy bannert rendelni.

De az is lehet - remélem -, hogy van egy igényes modul a célra, ami csak erre a feladatra összpontosít. Vagy minimális átalakítással működésre bírható a beépített Image fielddel.
Tehát az előbbihez hasonló modul kellene inkább szerintem a kérdezőnek is, nem olyan, amit átlagjúzerek nem igazán tudnak kezelni.

1
0
Sk8erPeter képe

Sziasztok!

Azóta teszteltem a Header image modult, és nagyon jónak tűnik, ennek kezelése, vagyis a fejlécek feltöltögetése, szerkesztése némi magyarázat után már talán Drupalban kevésbé jártasaknak is kiadható.

Képekkel illusztrálva bemutatom a használatát.

  1. A szokásos módon engedélyezzük a modult.
  2. Adjunk hozzá egy új content type-ot a Header image számára az admin/structure/types/add oldalon.
    Nálam a példában a content type neve "Test header image content type" lesz, így a machine name a következő: test_header_image_content_type.

    Szedjük ki a kommentezhetőséget (legalábbis az esetek többségében nem kell; a Comment settings-en belül a "Default comment setting for new content" legyen "Closed"), és rejtsük el a szerzőt (Display settings-en belül legyen kiszedve a pipa a "Display author and date information." elől). A "Publishing options"-nél szedjük ki a pipát a "Promoted to front page" elől. A többinél maradhat a default beállítás. Miután ezzel megvagyunk, kattintsunk a "Save and add fields"-re.

  3. Itt most el kell döntenünk, szükségünk van-e rá, hogy a body mező megjelenjen a fejlécben mutatott képnél. Lehetőségünk van rá, hogy ne csak képet mutassunk a fejlécben, hanem egyéb tartalmat is. Ha tényleg csak fejlécképeket szeretnénk cserélgetni, akkor töröljük a body fieldet, mert felesleges.
  4. Adjunk hozzá egy "Image" (Kép) típusú mezőt. A widgetet ízlés szerint válasszuk ki. Nálam a Media file selector van beállítva:

    Header image - content type; Image field

    A képmezőre vonatkozó egyéb paramétereket tetszés szerint állítsuk be.

  5. Navigáljunk az admin/structure/headerimage oldalra (Administration » Structure » Header Image). Itt hozzunk létre egy blokkot a Header image számára, a nekünk tetsző névvel:

    Header image - add block

    Nálam a példa kedvéért "My header image block" lesz a blokk neve.

  6. A blokk létrehozása után kattintsunk a "Settings"-re. Itt állítsuk be a megfelelő tartalomtípust, amit az imént létrehoztunk, aminél a Header image beállításai majd meg kell, hogy jelenjenek. Nálam ez a korábban létrehozott "Test header image content type". A "Condition types" opcióval beállíthatjuk, hogy milyen feltételektől való függőséget szeretnénk, hogy be tudjon állítani a képeket feltöltő felhasználó. Én nem szeretném, hogy bárki is be tudjon vinni itt PHP-kódot, úgyhogy oda nem raktam pipát (nem is javasolt). Az esetek nagy részében a Book sem érdekes, így azt is kihagytam.

    A "Teaser" opcióval azt állíthatjuk be, hogy a teaser mode-ban (bevezető) szeretnénk, hogy látsszon a tartalom, vagy pedig a teljes tartalom nézetben (default vagy full). Én most ezt nem pipáltam be, hogy megjelenjen a teljes nézet módban. (Itt egyébként fontos megjegyezni, hogy a Teaser mód engedélyezése esetén megjelenik a "Read more" link a Header image blokkban, amit mondjuk el lehet tüntetni sminkeléssel.)

    A beállítások:

    Header image - Settings

  7. Térjünk vissza az előbb létrehozott tartalomtípusunkhoz, és a "Manage display" fülön állítsuk be az előbb kiválasztott nézetnek (default/full vagy teaser); megfelelő beállításokat (nálam mindez az admin/structure/types/manage/test_header_image_content_type/display oldalon található).
    Én pl. a képmezőnél megadtam, hogy a "medium" képstílus szerint jelenjen meg:

    Header image - Manage display

  8. Most menjünk a blokkok beállítását lehetővé tevő admin/structure/block (Administration » Structure » Blocks) oldalra.
    A "Disabled" szekcióból húzzuk át a megfelelő régióba az új blokkunkat.

    Header image - Blocks

    (nálam a példában egy Bartik-alsmink van épp engedélyezve)

  9. Adjuk hozzá az első Header image content type-nak megfelelő tartalmat! Legyen ez az alapértelmezett kép, ami mindenhol megjelenik, ha épp az adott oldalra vonatkozóan nem állítottunk be egyéb feltételt! Mint látni fogjuk, a modul a node hozzáadásának oldalán új opciókat jelenít meg, ahol meghatározhatjuk az adott kép megjelenítésének feltételeit, a fontosság súlyát (weight), ami alapján eldől, melyik kép (melyik Header image tartalomtípusnak megfelelő node) fog épp megjelenni az adott oldalon.

    Az én esetemben az új, Header image tartalomtípusnak megfelelő tartalom hozzáadása a node/add/test-header-image-content-type oldalon tehető meg (Add content » Test header image content type).

    Az alábbi screenshotnál egy már feltöltött tartalom szerkesztése látszik, és az, hogy hogyan állítottam be a default (alapértelmezett) fejlécképet.

    Header image - default image

    Ami nagyon fontos:

    1. a Condition weight az alapértelmezett kép esetén a legnagyobbra legyen állítva, ami jelen esetben 10 (-10-től 10-ig tartó skálán), hiszen így a későbbi header image tartalmaknak nagyobb prioritást adhatunk (kisebb súlyt, tehát előrébb kerül a precedencia sorrendben).
    2. az alapértelmezett képnél az URL condition legyen a *-ra állítva, ez a speciális helyettesítő karakter (wildcard), ami azt mondja meg, hogy ez a feltétel mindegyik URL-re igaz legyen

    Ha mindent jól csináltunk, a tartalom elmentése után már látnunk is kellene a feltöltött alapértelmezett képet!

    Például itt egy Article típusú tartalom, itt is ez a fejléc szerepel:

    Header image - Article

  10. Ha már az Article-nél tartunk: állítsuk be, hogy abban az esetben, ha ilyen típusú tartalmat nézünk épp, egy másik fejléc jelenjen meg!
    Adjunk hozzá tehát egy új Header image típusú tartalmat (node/add/test-header-image-content-type). A "Node type condition" résznél az Article-t választottam ki, "Condition weight"-nek pedig a 0-t, ami kisebb szám, mint a 10, így ez fontosabbnak minősül, előrébb kerül a precedencia sorrendben (a feltételek vizsgálatánál):

    Header image - Article

  11. Na, most ráfrissítek az előbb megmutatott, Article típusú tartalomra, és látható, hogy immár az új fejléc jelenik meg:

    Header image - Article - AFTER

  12. Most próbáljuk ki azt, hogy egy teljesen más típusú tartalomnál (nálam ennek a tartalomtípusnak a neve "Test HS"), egy adott node id-nél megint csak más fejlécképet szeretnénk megjeleníteni!

    Vegyük ezt az oldalt, ha az Edit fül fölé viszem az egeret, láthatom a node id-t is, jelen esetben node/9:

    Header image - node id

  13. Hozzunk létre ismét egy header image tartalmat, most a "Node ID condition"-nél az előbb megállapított node id-vel (nálam 9); itt -10-en hagytam a "Condition weight" beállítást, hogy ez legyen a legfontosabb feltétel:

    Header image - node id

  14. Ezután helyesen az előbbi node megtekintése esetén az új fejléc fog megjelenni, de a többi oldalnál a korábban beállítottak:

    Header image - node id - AFTER

  15. A korábbiakon kívül van még lehetőségünk konkrét URL szerinti beállításra (ne adjunk meg teljes elérési útvonalakat, hanem a Drupalban megszokott útvonalakat adjuk meg, ne legyen benne az esetleges alkönyvtár elérési útja sem!), valamint taxonómiakifejezések szerinti feltétel-beállításra is.
  16. A korábban feltöltött tartalmak listázásához, a szerkesztőlinkek biztosításához hozzunk létre egy oldalt a feltöltőinknek (pl. Views-zal). Ezután hozzunk létre egy szerepkört, amelyhez állítsuk be a megfelelő szerkesztési jogokat a Header image modulhoz tartozóan (pl. "Maintain display conditions", "View header image"), valamint a létrehozott content type szerint (pl. "Test header image content type: Create new content", "Test header image content type: Edit any content", stb.), majd rendeljük hozzá őket a szerkesztőinkhez, és készen vagyunk.

Remélem, hasznosnak találtátok ezt a leírást, és sikerrel jártok majd.

4
0