Sziasztok!
Kapcsolódó tartalmak kijelzéséhez a Node Reference modult használom. Szeretném a választható tartalmakat kategóriák alapján szűrni, azaz arra lenne szükségem, hogy csak azokat a nodeokat listázza ki a Node Reference, amelyeknél legalább az egyik kategória egyezik a node valamelyik kategóriájával.
Félig sikerült megcsinálnom a dolgot, de sajnos a jelenlegi kód csak a node utolsó kategóriát veszi figyelembe.
Ez van most beállítva a Views-nál:
Típus: Taxonomy: Term ID/Display All Values/-/-/-/-
A kód:
$nid = arg(1); $node=node_load($nid); $node=node_prepare($node); foreach ($node->taxonomy as $item) { $args[0] = $item->tid; } return $args[0];
Próbáltam sokféleképpen átmaszírozni ezt úgy, hogy a kód listát passzoljon át a Viewsnak, de sehogyan sem sikerült. A kérdés tehát az lenne, hogy a fenti sorok helyett mit kellene beillesztenem.
Köszi!
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Related Nodes
Szerintem elég reménytelen vállalkozás a Views modult használni ilyen célra. Related Nodes, Similar by Terms, és még egy pár hasonló speciális modul van erre. (Egyébként nem értem a kérdést, a Node Reference nem listáz semmit, kategória alapján szűrt listákat meg végképp nem készít ;) Itt valami nincs rendben a fogalmakkal.)
2. nekifutás
Pontosítok :)
Nem automatikus megoldásban gondolkodok, hanem olyanban, amelyiket a node feltöltésekor kézzel kell beállítani, ezért a Similar by Terms és hasonlók sajnos kiesnek.
Drupal 5.10, CCK 5.x-1.9 van fent, a CCK saját Node Reference mezőjét használom. A tartalomtípusoknál ez a konfig felület: klikk, node felöltésekor pedig ez alapján lehet választani: klikk.
A konfig felületen meg lehet adni egy View-t, amelynek a találati eredménye jelenik meg a node feltöltésénél a kiválasztó listában. Ehhez kellene tehát nekem egy olyan Viewt generálni, amely csak azokat a nodeokat gyűjti össze, amelyek a taxonomy alapján rokonok.
Ha ez így nem működhet, akkor más megoldás is érdekel, ha a kapcsolódó anyagokat a szerkesztésnél taxonomy alapján szűrve, cím alapján statikusan tudom kiválasztani. De saját modult ehhez nem tudok készíteni, más lehetőséget meg eddig még nem találtam.
Remélem így érthető(bb).
beküldéskor ez szerintem nem fog menni
ha végiggondolod: most töltöm ki az űrlapot, ami már összeállításra került nekem.. a node amit éppen készítek még nem létezik, nincsenek kapcsolódó tid -k, nincs mi alapján szűrni... (biztos lehetne valami nagyon vagány ajaxos megoldást csinálni azért..)
második lépcsős megoldás az lehetséges, tehát, hogy előbb létre kell hozza a node-ot és utána újra szerkeszti és akkor már van miből kinyerni az argument, amit pedig php formában meg lehet írni a nézetben az 'argument handling code' részben. arg(1) lesz a $node->nid, az alapján taxonomy_get_terms($node->nid) megadja a tid -eket, azokat kell egy tömbben visszadni. kész. nem tudom mennyire lesz gyors vagy mikor esik össze ez a megoldás, meg nem is olyan elegáns, hogy új beküldés, mentés, szerkesztés, mentés.. :)
még azt tudod csinálni, form_alter -el módosítod azt az egy űrlapot és te szeded össze egy sql lekérdezéssel a megfelelő dolgokat és feltöltöd velük a node reference mezőt.
-
clear: both;
Tudom
1 beküldésre valóban szükség van, ezt tudom. Megpróbálom ezt, meglátjuk, megy-e.
Köszi!