Sziasztok!
Egy olyan kérdéssel fordulnék hozzátok, hogyan lehet azt megoldani, hogy van egy block amit a views modulal hoztam létre, ez az összes oldal alján látható és azt szeretném, hogy ennek a blocknak a tartalma az oldal tartalom típusától változzon.
Szóval van nekem kb 5-6 tartalom típusom és az azokkal létrehozott nodeok és ha Én a "2"-es tartalom típusú nodeon vagyok akkor megmutassa a block a "2"-es tartalom típusú nodeokat.
Előre is köszönöm a válaszokat!
Üdv,
András
Drupal verzió:
Fórum:
Ötletek
Szia!
Sajnos most nem lesz lehetőségem részletesebb howto-t elkészíteni (bár eléggé adja magát a kérdésed), de én két irányt látok:
Én biztosan a másodikkal mennék neki, az több lehetőséget ad, de macerásabb is.
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
Köszönöm szépen! Holnap meg
Köszönöm szépen! Holnap meg is nézem őket aztán írom, hogy mire jutottam.
Ha már a Views-zal kezdtél
Ha már a Views-zal kezdtél neki, akkor talán egyszerűbb ott megoldani.
Szűröd azokat a tartalomtípusokat amikről szó van, majd minden tartalom típusnak csinálsz egy oldal display-t (path=node/%) ahol a szövegkörnyezetiben még egy szűrést beteszel de ott már csak egy-egy tartalomtípus szerint. Érvényesítési feltétel -> Tartalom -> (adott)tartalomtípus -> szűrőérték: Node ID. Így mindig azokat a tartalmakat fogja kilistázni amelyek "rokonai" az adott node-nak.
contextual filterrel is megy, de csak php kóddal
a nézeted tartalmakat listáz, nem szűr tartalom típusra. közzétettre azért érdemes szűrni így is. egy contextual filtert használ, content: type. provide default value -ra van állítva és php code. máshogy tisztán views modullal nem megy, kivéve persze ha csinálsz annyi nézetet ahány tartalom típusod van és valahogy bevuduzod, hogy mindig csak egyik blokk jelenjen meg (pl a validálós trükkel amit már írtak)
esetleg azt is lehetne még, hogy pathauto modullal olyan útvonal álneveket generálsz a nodeoknak, hogy szerepeljen benne a tartalom típusuk neve, article, news, event, akármi és akkor azt eszi majd meg a contextual filter és akkor nem is kell php kód, simán visszadhatod az útvonal egy részét direktbe.
itt egy ilyen nézet lent, importáld be és nézd meg hogyan működik. persze nem igazán szép és elegáns, mert php kód van benne, ezt nem szoktuk szeretni. page manager modullal könnyű lenne mindig az adott node típusát átadni a contextual filternek, php kód nélkül, de akkor ahhoz kéne még panels modul is, ráadásul ha ezt sidebarba akarod, akkor az külön macera lesz. persze érdemes ismerkedni a lehetőségekkel azért, ha van időd.
szóval a nézet:
-
clear: both;
Köszönöm a válaszokat,
Köszönöm a válaszokat, javaslatokat!
Ezt a hibakódot adta minden oldalra amikor beinportáltalm a blockot:
Notice: Trying to get property of non-object eval() függvényben (C:\path\to\drupal\sites\all\modules\views\plugins\views_plugin_argument_default_php.inc(53) : eval()'d code 2 sor).
Végülis arra az elhatározásra jutottam, hogy kézzel fogom megírni az oldalt, így Nekem egyszerűbb meg gyorsabb is. Drupalt még annyira mélyen nem ismerem és így több korlátot látok mint a saját kódomban.
De amint lesz időm, ezeket kifogom próbálgatni és amint sikerűl írom is ide.
érdekes feladat
elsőre úgy tűnt ez egyszerű, de rá kellet jönnöm, hogy nem annyira. Amit javasoltam fentebb az nem jó (nekem aboros nézete sem működik, de lehet én bénázok valamit. Unknown content type nodes az eredménye)
Egy botos és nem túl elegáns megoldásnak azt tudom elképzelni, hogy minden egyes tartalomtípusnak készítesz egy blokkot melyben csak az adott típust szűröd és ezt a blokkot csak adott CT alatt teszed láthatóvá. Ezzel csak az a gáz, hogy a listában az a node is szerepel amelyik alatt listázza a társait.
Szóval most már én is izgatottan várom egy nálam okosabb tanácsait :)
NID - szűrési feltételek hozzáadása
Ha csak ez a gond, akkor egy plusz szűrési feltételt kell létrehozni a Node ID-ra (The revision NID of the content revision), és meg kell határozni, hogy mivel ne legyen egyenlő... Ettől persze nem lesz elegánsabb az egész... :)
Nekem nagyon bejött hasonló helyzetre a Node Hierarchy modul. Talán azzal kellene megnézni. Nem kell megijedni, hogy 7-eshez még dev, mert működik szépen.
ezzel csak az a gondom, hogy
ezzel csak az a gondom, hogy nem tudom itt a szűrési feltételeknél hogyan kell hivatkozni az aktuális node-ra (pl útvonal esetében:node/%)
Jó a kérdés! Az előbb
Jó a kérdés! Az előbb félreértettem valamit, bocs. Most azon agyalok, hogyan lehetne szűrni a tartalom típusára is és arra is, hogy ne jelenítse meg saját magát a listában.
Abba az irányba mentem el, hogy felvettem a "Típus", a "Tartalom azonosító" és a "Cím" mezőket. Az első kettőt elrejtettem, a Cím mező kimenetét pedig átírtam erre:
<span class="page-node-[nid] node-type-[type]">[title]</span>
. Innentől kezdve kellene egy olyan php kódot írni, hogy ha az oldal típusa megegyezik a Cím page-node-[nid] osztályával, ill. az oldal node/[nid] megegyezik a cím page-node-[nid] osztályával, akkor ne jelenjen meg.Nos itt akadtam el, de talán valaki be tud segíteni...
az aktuális node azonosítóját
az aktuális node azonosítóját az url-ből tudod szűrőként(contextual filter - pl.:aboros) használni, akár olyan módon is, hogy kizárd az eredményből azt, az elkészített blokkhoz
Geva
----- Számítások - Kalkulátorok
ezt egy picit kifejtenéd?
ezt egy picit kifejtenéd?
hol keressem az erre vonatkozó opciót? Ma ráértem egy picit és próbálgattam, de nekem nem sikerült ezt elérnem.
bizonyos argumentumok tudnak ilyet
hogy 'exclude', ez egy csekkboksz az argumentum beállításainál a 'more' részben, nézd: https://www.evernote.com/shard/s15/sh/90beb53b-aefe-4925-a3ad-cfaba13d2d...
ha van egy node id argumentum a nézetben, amit provide default -ra állítasz és node id from url, és exclude, akkor 'kivonódik' az adott idjű node a listából.
-
clear: both;
és igen :)
és igen :)
ezzel megszületett twixzor kérdésére a válasz. Valamint én is megtanultam hogyan kell hasonló tartalmakat kilistázni. Az viszont hozzátartozik, hogy ebben a hozzászólásomban (is) hülyeséget állítottam.
A node/% útvonalú page nézetekkel van egy kis bibi. Ezek addig működnek, míg csak egy tartalomtípus (és ennek nézetei) vannak az oldalon. Ha egy ilyen nézetben van még egyedi szűrési feltétel, pl. tartalomtípus, akkor egy attól eltérő tartalomtípus minden node-ja 404-et fog vissza adni.
Ezért megkérném, hogy aki erre jár nyomjon egy -1-et a fenti hozzászólásomra.
:-( lemaradt a kép, de akkor
:-( lemaradt a kép, de akkor most már legyen itt magyarul is
http://gevanet.hu/kizaro-url-views.jpg
Geva
----- Számítások - Kalkulátorok