cabrooney Posted July 21, 2021 Posted July 21, 2021 Is there a simple solution to generate (find) and sort an array of repeater field entries, that come from multiple pages? In my case the setup is like this: - I have pages for "theater plays" (storing title, text, artists etc.). - Each of these pages has a repeater field in it for the dates that the play is performed (storing datetime, location, tickets, prices etc.) Now i need to generate an overview showing all the events (Titel and date) that will take place in december. What i managed to do so far is to search for a timespan, but only in one repeaterfield on one page (and the results are not sorted): $zeit_start = strtotime("2021-12-01 00:00:00"); $zeit_end = strtotime("2021-12-31 00:00:00"); $terminliste=$page_play->termin_repeater->find("termin_datum>=$zeit_start , termin_datum<=$zeit_end "); foreach($terminliste as $termin){ // echo $termin->title; } So how can i use "find()" to scan all the repeater field entries of all the pages, and how can i then uns "sort()" to bring them in the right order?
AndZyk Posted July 22, 2021 Posted July 22, 2021 Hello @cabrooney, repeater items have their own system template: You should be able to find them and sort them like this: $zeit_start = strtotime("2021-12-01 00:00:00"); $zeit_end = strtotime("2021-12-31 00:00:00"); $terminliste = $pages->find("template=repeater_termin_repeater, termin_datum>=$zeit_start , termin_datum<=$zeit_end, sort=termin_datum"); Maybe you have to add "include=all" too, if the selector doesn't find anything while you are logged-out. I am not sure if that is necessary. Regards, Andreas 1
cabrooney Posted July 22, 2021 Author Posted July 22, 2021 Thank you very much for your help. it worked perfectly! Here is my final code: $zeit_a = strtotime($jahr."-12-01 00:00:00"); $zeit_b = strtotime($jahr."-12-31 23:59:59"); $terminliste=$pages->find("template=repeater_termin_repeater, include=all, sort=termin_datum, termin_datum>=$zeit_a, termin_datum<=$zeit_b"); One other thing i had to figure out after that was the use of ->getForPage() to get access to the "origin" page. 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now