Seite 1 von 1

Dokument Listview mit Kategorien

Verfasst: Mi 10. Jan 2018, 19:34
von mtbrmatze
Hallo,
ich habe hier ein kleines Anliegen und bitte um Lösungsvorschläge.
Es geht um Events: Es gibt Mini Events und Mega Events welche durch die Kategorie gekennzeichnet sind. Dokumenttyp ist der selbe.

Beispiel:

01. April MiniEvent1 Kategorie: Mini
02. April MiniEvent2 Kategorie: Mini
05. April Megaevent1 Kategorie: Mega
06. April Minievent3 Kategorie: Mini
...
10 April Megaevent Kategorie: Mega
...
Nun sollte meine Listview alle MiniEvents aber nur ein Megaevent ausgeben, und natürlich auch nur Events in der Zukunft. Letzeres klappt mit der Datumsabfrage, aber ich habe jetzt keine Ahnung wie ich eine Kategorie auf einen Eintrag beschränken kann.

Code: Alles auswählen

		<we:listview type="document" doctype="Events" categories="/Mini,/Mega" catOr="true" order="StartDatum" >
		<?php $i=1; ?>
		<we:repeat>
		<?php if(date("Ymd", $lv->f("StartDatum")) >= date("Ymd", time()) && $i <=30): ?>
			<we:field name="StartDatum" type="date" format="d.m."/>
			<we:field name="EventName" type="Text" />
		<?php $i++; ?>
		<?php endif; ?>
		</we:repeat>
		</we:listview>
Zwei Listviews sind keine Option, da die Events vermischt sind und die Reihenfolge nach Datum erhalten bleiben soll.

Danke für einen Lösungsvorschlag

Matze

Re: Dokument Listview mit Kategorien

Verfasst: Mi 10. Jan 2018, 21:17
von blickfang
Hi Matze,
Du kannst die Listview mit categories oder categoryid filtern, das sollte genau so klappen wie Du es schon gemacht hast. Wenn Du aber nur ein Megaevent in der Liste haben möchtest, bekommst Du das meiner Meinung nach mit einer Listview nicht hin.

Was spricht dagegen erst das Megaevent zu holen, Dir das zu merken und dann in der Listview der Mini-Events einfach einzubauen?

Code: Alles auswählen

<we:listview name="minievents">
<we:repeat>

<we:ifField name="Startdatum" operator="greater" match="{timestamp vom Megaevent}">
Hier kommt das megaevent
</we:field>

## hier kommt das Mini-Event
</we:repeat>
</we:listview>
Natürlich muss man die Abfrage, wan das Mega-Event wo reingepflanzt wird noch im Detail machen, aber mal vom Prinzip her...

Viele Grüße
Timo

Re: Dokument Listview mit Kategorien

Verfasst: Do 11. Jan 2018, 16:47
von mtbrmatze
Hallo Timo,

danke für deine nette Antwort. Leider kann ich aus deiner Antwort nur soviel herausziehen, dass die Listview so machbar ist, aber ich ich versteh deinen Codeansatz nicht, sorry. :x

Code: Alles auswählen

<we:ifField name="Startdatum" operator="greater" match="{timestamp vom Megaevent}">
Hier kommt das megaevent
</we:field>
Bedeutet dieser Code, dass nur Dokumente angezeigt werden, welche vom Datum in der Zukunft liegen?

Code: Alles auswählen

<we:field name="StartDatum" type="date" operator="greater" match="1515680056"> 
Kann hier code rein??
</we:field>
Hier wird einfach nur das Datum ausgegeben, und es sind in der Listview auch ältere dabei.

Wie kann ich denn die Listview über categories filtern? Das wäre dann ja genau das was ich will. Ein Mega Event, alle Minis und sortiert nach Startdatum geht von Haus aus.

Re: Dokument Listview mit Kategorien

Verfasst: Do 11. Jan 2018, 17:05
von blickfang
der Ansatz wäre, sich in einer ersten Listview das Mega-Event zu holen und irgendwie zu merken

Code: Alles auswählen

<we:listview name="listview1">
<we:repeat>
<we:field name="WE_ID" to="global" nameto="megaEventId" />
<we:field name="startDatum" to="global" nameto="megaEventStartdatum" />
</we:repeat>
<we:listview>
und in der zweiten Listview nur die MiniEvents zu holen und an der Stelle wo es zeitlich passt, das Mega-Event reinzuschummeln.

Code: Alles auswählen

<we:listview name="listview2">
<we:repeat>
 <we:ifField name="Startdatum" operator="greater" match="\megaEventStartdatum">
  <we:object id="\$megaEventId" name="deinMegaEventvonOben">
    <we:field name="blub" />...
  </we:object>
 </we:field>
</we:repeat>
</we:listview>