Azt szeretném, hogy egy block (melyben egy link van a Vendégkönyvre) minden image (festmény) alatt megjelenjen.
A blokk szerkesztésénél be lehet állítani, hogy csak bizonyos oldalakon jelenjen meg. Fölsorolhatnám ide a festményes node-ok számait, de ez elég macerás, ráadásul minden újonan fölkerülő képnél bővíteni kéne a listát.
Oda van írva egy példa: blog/* - s így az összes blognál megjelenik
Ennek mintájára odaírtam, hogy image/*, de így persze nem az egyes image-ek alatt jelenik meg, hanem az image gallery-nél.
Hogy lehetne megoldani, hogy minden egyes kép alá odakerüljön?
Segítségeteket előre is köszönöm!
Kóka
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Fórum:
A node típusa lesz a kulcs,
A node típusa lesz a kulcs, de dengeteg módszer létezik erre:
Az első hatékony, de kell hozzá a pathauto, a második a legdrupálosabb, a harmadikhoz nem kell semmi, de kókler, erőforráspazarló megoldás.
csak akkor kell betölteni, ha az arg okés
így szoktam:
és akkor nem erőforrásigényes, mert biztos node oldalon vagyunk amikor betöltjük és ilyenkor már be van töltve amúgy is szóval zéró sql query fut. okos drupal. ;)
-
clear: both;
A PHP is okos, és mivel a
A PHP is okos, és mivel a sok-sok "and" balról jobbra értékelődik ki az első hamisnál megáll a végrehajtás, és nem fut a node_load() akkor sem, ha egy return utasítás az egész. Tehát a Tiéd szebb, de erőforrás szempontjából ekvivalens egy egysoros return-al. Az erőforrásigény arra vonatkozott részemről, hogy kell egy plusz node_load annak eldöntéséhez, hogy meg kell-e jeleníteni a blokkot. Ez az első 2 módszerrel elkerülhető.
A PHP-vel
valóban sikerült.
És ebből egy (számomra) még bonyolultabb kérdés következik, de ehhez új topic-ot nyitok, hiszen úgy illik :)
Nagyon szépen köszönöm!
Kóka
ó, ez hiányzott nekem
azt hittem egybe fogja vizsgálni az összes feltételt.
így viszont nem erőforrásigényes, azt tanultam pptől, hogy ha vizsgálom, hogy node oldalon vagyunk már és akkor kérek node_load -ot az arg(1) -re, akkor már valami más helyről jön, nem futnak sql queryk, az erőforrásigénye minimális, elhanyagolható.
-
clear: both;
Valószínűleg az a titok
Valószínűleg az a titok nyitja, hogy ha már egy lekéréskor futott a node_load() az adott nid-re (mert mondjuk épp az jelenik meg), akkor egy másik node_load() ugyanarra a nid-re már sql nélkül lefut. Ez valószínűleg így van, és akkor valóban nem plusz erőforrásigényes, tehát én is benéztem a dolgot.
De mivel balról jobbra megy a kiértékelés, és előbb vizsgálod azt, hogy is_numeric-e az arg(1), és a count()-al azt csak utána, hogy egyáltalán van-e arg(1), warning veszélyt érzek az erőben. :) :)
api.drupal.org megadja a választ. (pp is innen tudja ám)
Többek között ezért is jó a nyílt forrás.
node_load static gyorstárat használ (mint az a drupal programozó kézikönyvében le van írva, ez utóbbiért is jó a nyílt forrás. :)) ezért a sok sql lekérés csak egyszer fut le: http://api.drupal.org/api/function/node_load/6
miért is lenne warning? az arg(1) kifejezésnek mindig van értéke. Ha más nem akkor az, hogy FALSE, az meg nem numeric és csókolom. :)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
No hát, nem FALSE-t ad vissza
No hát, nem FALSE-t ad vissza az arg(), hanem NULL-t, ha túlindexeljük, de igazad van, egykutya, mert az if-ben a NULL is hamis. Való igaz tehát, hogy pont az arg() hivása esetén tökmindegy a sorrend, de általában az ilyen "tömbös" dolgoknál azért mindig az a jobb, ha első a count(), és csak aztán jön a kérdéses elem vizsgálata. Ez ilyen programozói zsiger, bár a konkrét példában ismét tévedtem.