A felhasználó beküld egy "kedvenc gyümölcs" típusú tartalmat, ami tartalmaz egy node reference hivatkozást a "gyümölcs" tartalomtípusra. A hivatkozható node-okat egy view szolgáltatja.
Azt szeretném, hogy mikor újabb "kedvenc gyümölcs"-öt küld be a felhasználó, a kiválasztható "gyümölcs"-ök közöt (a node reference listában) ne jelenjenek meg azok, amelyeket korábban már kiválasztott.
Elviekben ez úgy nézne ki, hogy nem(!) jelenítem meg azokat a "gyümölcs" típusú tartalmakat, amelyekre már hivatkozik "kedvenc gyümölcs" típusú tartalom és(!) a hivatkozó tartalom szerzője az aktuális user.
Vagyis a Views Haladó beállításainál kellene a Kapcsolatokkal játszani, de (egyelőre) nem jöttem rá, mi a jó megoldás.
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Views pre render hookban
Views pre render hookban intézd el, hogy ne legyen ott, amit egyszer már választott.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
Mert megszóltak, hogy nem
Mert megszóltak, hogy nem elegáns, ezért felépítettem egy nézetet:
page + hivatkozás article típusra. A nodereferencia neve field_ref_to_article.
1; létre kell hozni egy nézetet, ami az oldalakat (neked gyümölcs) listázza
2; a nézedeknél a kapcsolatoknál (relationship) hozzá kell adni a nodereferencia mezővel csatolt kapcsolatot: nem kötelező a kapcsolat (ha kötelező, csak azokat listázza, ahol már van kapcsolat)
3; a nézet szűrőknél (filter criteria) beállítod, hogy azt listázza, ahol a referencia üres.
Örülsz és elmented a nézeted. :)
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
Mit listázzunk?
Listázásnál nem azt mondjuk meg, hogy mit ne listázzon a lekérdezés, hanem azt, hogy mit igen.
Vagyis a fentiek pontosítása úgy hangzik, hogy
jelenítsük meg azokat a gyümölcsöket, amelyekre
1. nem hivatkozik kedvenc gyümölcs vagy(!)
2. hivatkozik kedvenc gyümölcs és(!) a hivatkozó kedvenc gyümölcs szerzője nem az aktuális felhasználó.
Az 1. pontban foglalt feltétel megvalósítását írta le Den.
A 2. ponthoz fel kell vennünk még egy kapcsolatot: Tartalom:Szerző és ennek a kapcsolatnak a beállításainál megadjuk, hogy a kapcsolata a hivatkozó kedvenc gyümölcs. (Vagyis azt vizsgáljuk, hogy a hivatkozó kedvenc gyümölcsnek ki a szerzője.)
A views 3-ban már lehet csoportokba rendezni a szűrési feltételeket és a csoportok közti kapcsolatot is meghatározni. Itt erre lesz szükség.
Az első csoportban: típus: gyümölcs, hivatkozik rá kedvenc gyümölcs: nem.
A második csoportban: típus: gyümölcs, hivatkozik rá kedvenc gyümölcs: igen, jelenlegi felhasználó (kapcsolata: szerző): nem.
A két csoport közt a kapcsolat: "vagy" a csoportokon belül (az alapértlmezett) "és".
Ez így már majdnem jó. Egy a probléma. Ha nem csak egy user van, aki kedvenc gyümölcsöt küldhet be, akkor a lista szűkítése nem fog megfelelően működni. Mert ha pl. Béla és Géza is kiválasztja kedvenc gyümölcsnek az Almát, akkor mindkettejüknek látszani fog a következő beküldésénél is az Alma a listában. Ugyanis 2. feltétellel csak azt zártuk ki, hogy az aktuális felhasználó által hivatkozott gyümölcs ne jelenjen meg. De ha más is hivatkozott a gyümölcsre, akkor megjelenik, mert azt nem zártuk ki.
Tehát a 2. feltételnek így néz ki pontosan: hivatkozik 1 vagy több kedvenc gyümölcs és(!) a hivatkozások közül egyiknek sem a szerzője az aktuális felhasználó.
No ezt nem tudom hogy lehet megoldani…
Üdvözlettel:
Hajas Tamás
Hozzáférés?
Nálam még tovább bonyolítja a helyzetet, hogy az egyes tartalmakhoz való hozzáférést korlátozni kell és emiatt(??) a referencia lista csak user 1-nek jelenik meg, más felhasználónak nem, ha a view-ban a kapcsolatok közt a hivatkozó node-ok szereplenek.
Üdvözlettel:
Hajas Tamás
hát akkor mixeljük meg durván :)
persze egyátalán nem vagyok benne biztos, hogy ez így működni fog.
pakoljunk bele még flag meg rules modult, hamár lúd legyen kövér. a gyümölcs tartalom típusban legyen egy flag, "felhasználta". ezt egy nem-globál flag és egyik csoport se használhatja. :) itt van a kétségem, hogy ettől még a következő lépés működni fog e.
legyen egy rule, ami tartalom mentésekor, ha a tartalom típusa kedvenc gyümölcs, akkor a szerző nevében ráteszi a hivatkozott gyümölcs nodera a "felhasználta" flaget. (nem tudom eldönteni hirtelen, hogy ez itt eltörik e amiatt, hogy a flag beállításaiban az van, egyik csoport sem használhatja, de az meg szükséges, hogy kézzel ne tudja birizgálni ezt a flaget. ha elrejtem csak, az nem elég, mert gyalog hívhatja a flag urlt és akkor kijátssza a szisztémát. ezt is meg lehetne kerülni de akkor már tényleg rémálom bonyolult lesz a kerülőút)
innen már gyerekjáték, a view ami a node reference mezőt eteti, azokat a gyümölcs tartalmakat mutatja, amiket az aktuális user nem jelölt még meg a "felhasználta" flaggel.
a flag leszedését meg szintén egy rule intézi, ha esetleg törölnénk a kedvenc gyümölcs típust, akkor újra felszabaduljon az a usernek.
vagy x terv, aka special tactics, írunk egy modult, vagyhát vki ír.. :D
-
clear: both;