Nézet-sorok többszöröződése többszörös taxonómia-hozzárendelés hatására

ipeto képe

Sziasztok!

Készítettem egy olyan nézetet, ami az események közül a legfrissebb ötöt kis listaként egy blokkban megjeleníti. továbbá vannak eseménykategóriák is (egy taxonómia-szótárban), és ezek alapján a listaelemek különféle színkódokat kapnak. A nézetben tehát mezőként szerepel az esemény címe, kezdődátuma és a taxonómia-kifejezés id-ja - utóbbi alapján kapja meg a színkódot.
A gond a következő: A taxonómia-szótár hierarchikus, így vannak alkategóriák is és egy esemény több alkategóriához is tartozhat. Viszont így a nézetben ugyanaz az esemény több sorként is megjelenik. Ez nyilván nem hiba, hiszen az eltérő tid-k miatt külön sornak számítanak, viszont az eredmény szempontjából nem kívánatos: egy eseményt egy sorként kellene látni. Ha kihagyom a taxonómiát, akkor nem tudom színezni az eseményeket.
Szóval az lenne a kérdésem, hogy meg lehet-e oldani, hogy a nézet eredményében egy esemény kizárólag egy sor legyen? Pl. hogy csak a legfelső szintű kifejezések tid-át vegye figyelembe? (Az megoldható, hogy ha egy esemény egy gyermek-kifejezéshez tartozik, akkor tartozzon a szülőhöz is)

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
aruna képe

Persze nem biztos, hogy ez a leghatékonyabb megoldás. Ajánlgatják is a cache használatát a module oldalán:

https://www.drupal.org/project/views_field_view

1.

Tehát létrehozol egy views-t, ami ezeket a mezőket tartalmazza:

- esemény id-jét (nem látszik, el van rejtve - ez a node id)
- esemény címe
- esemény dátuma
- field view (amibe bekerül a beágyzott views).

2.

A field view mezőben létrehozod a beágyazott nézetet (a fenti modullal).

Ebben a beágyazott nézetben szűrési feltétel az esemény id-je (node id), ezt a szülő nézettől (1. pontban) megkapja a beágyazott nézet, mint token-t.

Ez a beágyazott nézet mindig csak egy sort listáz, az egy eseményhez tartozó kifejezéseket vesszővel elválasztva.

------------------

Az még külön érdekes, hogy hogy színezed ki a szülő nézet sorait,
ahol egy sor (parent html element) több tag-et (child html element) is tartalmazhat pl. vesszővel elválasztva.

Ha jól sejtem ez a parent selector, és az alábbi link szerint csak a CSS4-ben lesz valamikor használható.

http://stackoverflow.com/questions/2000582/css-selector-for-foo-that-con...

Viszont javascript-el ki tudod színezni a soraidat (szintén az előbbi linken írják), az más kérdés, hogy melyik tag-re milyen színt raksz (lehet hogy a legelső tag lesz a legfelső szintű):

$('#parent:has(#child)');

De ezek csak gondolatok, nem próbáltam ki ebből semmit. Majd meglátod mire jutsz vele.

0
0
ipeto képe

Köszönöm, kipróbálom, aztán referálok

0
0
ipeto képe

Közben találtam egy meglehetősen elegáns megoldást: http://www.raisedeyebrow.com/blog/2011/01/show-top-level-terms-term-type...
Ugyan a példa taxonómia kifejezés-típusú nézetre vonatkozik, de mivel az esetemben úgyis hozzá kell rendelni az eseményhez tartozó kifejezéseket, ezért a "kifejezés szülőkifejezése" kapcsolat itt is létrehozható. Aztán már csak azokra a kifejezésekre kell szűrni, amiknek nincs szülője, tehát felső szintűek. Ez persze azzal jár, hogy minden eseményt hozzá kell rendelni egy felső szintű kifejezéshez, de ez igazából nem mond ellent az alkalmazás logikájának.
-- SZERK --

Hát sajnos mégsem működik ez a megoldás :( Érdekes módon az előnézetben még a megfelelő eredményt adja, de a weboldalon már nem jelenik meg semmi sem. A naplót telerakja a következő figyeleztetésekkel:
Warning: mb_strtolower() expects parameter 1 to be string, array given drupal_strtolower() függvényben
Mondjuk ezt annyira nem értem, mert a leírás alapján minden taxonómia-kifejezésre mutató bejegyzés szöveg.

0
0