Sziasztok,
Az volt a tervem, hogy csinálok D7-ben Views modullal egy blokkot, ami a legutóbb frissült tartalmakat jelenítené meg, hasonlóan egy "Friss tartalom" blokkhoz. A problémám az lenne, hogy a weboldalon két könyv van, és én csak az egyiket szeretném megjeleníteni a blokkban.
Hogyan lehetne kiszűrni a nem kívánt könyvet? Nézegettem, hátha útvonal alapján lehetne szűrni (van Pathauto), de nem lehet. Más ötletem pedig nagyon nincsen.
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Ehhez először vegyél fel egy
Ehhez először vegyél fel egy új Kapcsolatot a views-ban.
Ott a Könyv csoportban találsz egy ilyet: "Könyv: Legfelső szintű könyv", vedd fel alapbeállításokkal.
Ezután vegyél fel egy szűrőt, mondjuk a Tartalom azonosítóra (nid), és ott:
- ki tudod választani a Könyv kapcsolatot,
- majd kiválasztod az Egyenlő műveletet
- és beírod értéknek a nid-et, ami az inkriminált könyved legfelső lpjának nid-ja legyen (ezt a nid-t az admin/build/path oldalról ki tudod puskázni)
Aztán persze még szűrhetsz egyet, hogy csak könyv tartalomtípus legyen, meg hogy csak publikált stb., meg vegyél fel valami tartalmi mezőt is, hogy látsszon a végeredmény ;)
Védd az állatokat! ;)
Köszi szépen :) Nézegettem
Köszi szépen :) Nézegettem azt a Kapcsolatok dolgot, és meg is állapítottam, hogy nem értem, miért csak az van ott, hogy "Legfelső szintű" meg "Szülő" könyv, ezek szerint mégiscsak az lett a megoldás :)
Igaz, ha azt akarom, hogy ne csak a könyv tartalmakat jelenítse meg, akkor két feltételt kell felvennem VAGY-kapcsolattal:
Úgy gondolom, emellé már nem megy oda az "ÉS publikált", ahhoz már talán tényleg custom modul kell?
A Views OR funkciója még
A Views OR funkciója még mindig csak tervben van, de léteznek már megoldások:
1. http://drupal.org/project/views_or
2. ebben a verzióban már van egy kezdetleges OR támogatás, ha a szűrőket rendezed, akkor látod a lehetőséget: http://ftp.drupal.org/files/projects/views-6.x-3.0-alpha3.tar.gz Ha jól látom, itt el kell dönteni, hogy AND vagy OR, és a kiválasztott operátor lesz igaz minden szűrőre.
Védd az állatokat! ;)
A D7-hez a Views-3.0-alpha1
A D7-hez a Views-3.0-alpha1 érhető most el, abban már lehet választani AND és OR között, viszont a fenti feltételekhez an AND és OR kombinálására lenne szükség (ezt a belinkelt modul úgy nézem, tudja, viszont abból nincs 7-es verzió még). Végül kínomban csináltam egy saját blokkot, ami összekombinálja a feltételeket. Viszont nagyon jó, hogy megmutattad a Kapcsolatok részt, mert magamtól nem lettem volna képes összerakni behatárolható időn belül egy ilyen SQL lekérdezést.. :)
$res = db_query('SELECT node.changed AS node_changed, node.nid AS nid, node.title AS node_title FROM {node} node LEFT JOIN {book} book ON node.nid = book.nid LEFT JOIN {node} node_book ON book.bid = node_book.nid WHERE (((node_book.nid IS NULL ) OR (node_book.nid != \'222\')) AND (node.status = 1)) ORDER BY node_changed DESC LIMIT 5');
megj. amúgy érdekes, hogy a node_book.nid != '222' nem lesz igaz akkor, ha a node_book.nid üres (pedig logikusnak tűnik, hogy a "semmi" nem ugyanaz, mint a "222"), de biztos ez is valami sql specialitás :)
A NULL-t ne hasonlítsd semmihez
A NULL speciális jelentéssel bír az SQL-ben, nem lehet hasonlítani semmihez.
A MySQL-ben az IFNULL (ami Oracle-ben NVL) függvénnyel lehetne helyettesíteni a NULL értéket más értékkel az összehasonlításhoz!