Listview sortieren nach Tag und Monat

Fragen zum Erstellen von Templates für webEdition.
r_kempf
Senior Member
Beiträge: 204
Registriert: Do 14. Apr 2016, 13:27

Listview sortieren nach Tag und Monat

Beitragvon r_kempf » Fr 8. Apr 2022, 17:50

Hallo,
wir möchten eine Liste von Mitgliedern erstellen, die demnächst Geburtstag haben. Dazu gibt es ein Datumsfeld "Profil_Geburtsdatum" in der Kundenverwaltung.
Die Liste geben per listview type=customer aus:

Code: Alles auswählen

<we:listview type="customer" order="Profil_Geburtsdatum" rows="6">
	<we:repeat>
		<we:field type="date" name="Profil_Geburtsdatum" format="d.m." /><we:var type="global" name="Year" />: <we:field name="Forename"/> <we:field name="Surname"/>
	</we:repeat>
Das Sortieren nach dem Geburtsdatum bringt ein falsches Ergebnis, weil das Jahr nicht das aktuelle, sondern das Geburtsjahr ist.
Die Sortierung müsste deshalb nur nach Tag und Monat erfolgen.
Hat jemand eine Idee, wie man das umsetzt?

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1777
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Listview sortieren nach Tag und Monat

Beitragvon WBTMagnum » Fr 8. Apr 2022, 22:01

Hallo Regina,

Ich fürchte, dass das nicht ganz trivial umzusetzen ist. Ich habe erst mal nur nach SQL Lösungen gesucht. Da stößt man schon auf spannende Konzepte (z.B. https://code-examples.net/en/q/11e11cd). Das dann noch mit einer Listview abzubilden stelle ich mir schwierig vor. Da müsste man vermutlich auf <we:listview type="sql" /> zurück greifen.


Liebe Grüße,
Sascha

mokraemer
Senior Member
Beiträge: 3486
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Listview sortieren nach Tag und Monat

Beitragvon mokraemer » Sa 9. Apr 2022, 11:04

nein, probier mal ein order="DAYOFYEAR(Profil_Geburtsdatum)" oder alternativ order="DATE_FORMAT(Profil_Geburtsdatum,'%m-%d')"

ersteres dürfte im Falle von Schaltjahren anders sortieren. Letztere sortiert dann eben auf einem String.
webEdition-Kern-Entwickler

r_kempf
Senior Member
Beiträge: 204
Registriert: Do 14. Apr 2016, 13:27

Re: Listview sortieren nach Tag und Monat

Beitragvon r_kempf » Sa 9. Apr 2022, 13:13

Danke, Marc, genau danach habe ich gesucht!!!
Die Sortierung klappt soweit.
Jetzt möchte ich noch die abgelaufenen Geburtstage mit Prüfung nach Monat und Tag rausfiltern. So funktioniert es aber nicht:

Code: Alles auswählen

<we:listview type="customer" order="DAYOFYEAR(Profil_Geburtsdatum)" rows="6" condition="freigabe">
	<!-- Aktuelles Datum ermitteln -->
	<?php $GLOBALS['curDate']= date("md", time()); ?>
		<we:repeat>
			<we:ifField type="date" name="Profil_Geburtsdatum" format="md" match="$curDate" operator="greater|equal">
			<we:field type="date" name="Profil_Geburtsdatum" format="d.m." /><we:var type="global" name="Year" />
			</we:ifField>
		</we:repeat>
</we:listview>
Kann hier ein Vergleich beschränkt auf Monat und Tag erfolgen? Nach dem Geburtsjahr sind ja alle abgelaufen.
Die Frage ist, was das Attribut format="md" im we:ifField macht!?


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste