Kombinált táblázat készítése Views-al?

HF leon képe

Van két tartalomtípus. Legyen A és B. B tartalomtípusokban készített tartalmak közül egyesek A tartalomtípusban készített tartalmakra referálnak.

Min A és mind B tartalomtípusban van 3 mező legyen ez f1, f2, f3.

Ami remekül megy az a következő. Az A tartalomtípusba az EVA modul segítségével be tudok szúrni olyan táblázatot, amiben az adott A tartalomra referáló B tartalomtípusban készített tartalmak fentebb említett mezői vannak elhelyezve.

Tehát legyen A3 tartalom, amire referál B5, B7, B12 és B32.

Ekkor az A3 tartalomban megjelenik egy táblázat melynek sorai a következők:

  • TH-03 | TH-02| TH-03
  • B05f1 | B05f2 | B05f3
  • B07f1 | B07f2 | B07f3
  • B12f1 | B12f2 | B12f3
  • B32f1 | B32f2 | B32f3

A TH tagok a táblázat fejlécét jelképezi.

A kérdésem a következő:
Megoldható e és hogyan, hogy az A tartalom három f1, f2, f3 mezőjének értékét a fejléc alatt egy új táblázat sorba beszúrjam?

Így eredményként egy ilyen táblázatot kéne kapnom:

  • TH-03 | TH-02| TH-03
  • A03f1 | A03f2 | A03f3
  • B05f1 | B05f2 | B05f3
  • B07f1 | B07f2 | B07f3
  • B12f1 | B12f2 | B12f3
  • B32f1 | B32f2 | B32f3
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
HF leon képe

(Elírás: az első TH-03 valójában TH-01)

Tehát szűröm a B tartalmakat Views-ban, bekérem a szükséges mezőket, majd az advanced résznél tartalomszűrővel kiválasztom a referencia mezőt a b tartalomban és itt a beállításoknál az elrejtést választom.

Ekkor ugye szépen kilistázza a megjelenített A tartalomra referáló B tartalmakhoz tartozó mezőket.

Relationships-el ugyan el tudom érni A tartalom mezőit, de nem tudom, hogy lehetne azokat a táblázat első sorába felvenni.

Ha plusz mezőként veszem fel őket, akkor 6 oszlopos táblázat képződik minden sorban ugyan azokkal az A tartalomhoz tartozó mezőkkel a végén.

Így az első sor:
B05f1 | B05f2 | B05f3 | A03f1 | A03f2 | A03f3

és így tovább. Mivel minden B tartalom ugyanarra az A mezőre referál, hisz ez alapján szűrtem őket ezért egyértelmű, hogy egyforma lesz minden sorban az utolsó három oszlop.
Ezért lenne jó, ha valahogy be lehetne szúrni az első tartalmi sornak és csak egyszer az A03f1 | A03f2 | A03f3 értékét.

Elérve ezt a formát:

  • TH-01 | TH-02| TH-03
  • A03f1 | A03f2 | A03f3
  • B05f1 | B05f2 | B05f3
  • B07f1 | B07f2 | B07f3
  • B12f1 | B12f2 | B12f3
  • B32f1 | B32f2 | B32f3

Sajnos eddig úgy néz ki, hogy nincs erre kész modul. Így vagy írok egy saját Views megjelenítőt, vagy egy saját sminket a táblázat megjelenítőhöz, vagy a Views találati tömbjének első eleme elé kellene beszúrnom az éppen megjelenített tartalom mezőinek csoportját.

Nem tudom ez utóbbira van lehetőség? Ekkor a táblázat, már egy olyan többől generálódna, amely első sora tartalmazná a szükséges elemeket.

0
0
HF leon képe

Hm találtam egy érdekes modult a címben szereplő néven. Ezzel megoldható lenne, hogy a kontextus szűrőket vagy kapcsolattal kössem össze, ha jól értem.

Tehát elvileg az A és a B tartalomtípus elemeit felvéve megoldható lenne, hogy úgy generáljam le a táblázatot, hogy egyszer szűrök a B-ben lévő referenciamezőre, valamint az A-ban lévő ID-re. Így az aktuálisan megjelenő A mezői, valamint a rá referáló B mezői is bekerülnének a találati listába.

Ezzel kapcsolatban lenne egy kérdésem: Egy ilyen megoldás mennyiben lassítaná az oldalt? (Egészem pontosan, hogyan működik a views ebben az esetben?)

Gondolom ez lassítja az oldalt, hisz, mind az A és mind a B tartalmakat le kellene kérnie.

Érdemes ezt a modult használnom, vagy jobb a témában a kívánt nézetben egyedileg beszúrni az adott oldalon megjelenő mezőkből alkotott sort?

0
0
HF leon képe

Nagy kár, de ebben az esetben ez a modul nem működik. Sehogy nem bírtam egyszerre megjeleníteni az eredményeket, ha mind a két kontextus filtert használtam. Így úgy néz ki marad a hook_views_pre_render(&$view) használata, de, ha valakinek van jobb ötlete szívesen veszem.

Előre is köszönöm :)!

1
0
aboros képe

a pre_render tökéletes lesz, egyszerű, pont azt csinálja amit akarsz.

1
0

-
clear: both;

HF leon képe

Remekül teszi a dolgát és elég volt a smink theme fájljába elhelyeznem.

Akit érdekel van, még egy másik lehetőség is a hook_views_post_execute(&$view) is. Néha ez is jól jöhet, annak, aki manipulálni szeretné a views-t.

0
0