Page 1 of 1

Loop für mehrere Kategorien

Posted: Wed Mar 24, 2021 5:50 pm
by gerald
erstmal vielen Dank für dieses super schnelle und schlanke CMS!

Folgendes Problem:
Ich möchte in home.php einen Loop erstellen, der alle Beiträge von bestimmten Kategorien anzeigt. (category1 + category2) Ich hatte gehofft dass es über ein array funktioniert - leider nicht.

Zusätzlich würde ich die Beiträge noch gerne mit order = rand(); oder ähnlichem Befehl in beliebiger Reihenfolge ausgeben lassen.

Hier mein Aufbau:

Code: Select all

<?php
//$categoryKey = 'category1'; 
$categoryKey = array('category1', 'category2'); 
$category = getCategory($categoryKey);

foreach ($category->pages() as $pageKey) {
$page = new Page($pageKey);
?>

    <h3><?php echo $page->title() ?></h3>

<?php } ?>

Vielen Dank für jeden Tipp!

Re: Loop für mehrere Kategorien

Posted: Wed Mar 24, 2021 6:25 pm
by Edi
gerald wrote: Wed Mar 24, 2021 5:50 pm Ich möchte in home.php einen Loop erstellen, der alle Beiträge von bestimmten Kategorien anzeigt. (category1 + category2) Ich hatte gehofft dass es über ein array funktioniert - leider nicht.
Ich würde etwas versuchen wie

Code: Select all

if ($page->category()=="category1" || $page->category()=="category2") {

   Was in diesem Fall gemacht werden soll.

};
Zusätzlich würde ich die Beiträge noch gerne mit order = rand(); oder ähnlichem Befehl in beliebiger Reihenfolge ausgeben lassen.
Das lässt sich möglicherweise damit machen:

https://www.php.net/manual/de/function.shuffle.php

Re: Loop für mehrere Kategorien

Posted: Thu Mar 25, 2021 5:40 pm
by gerald
Super. Vielen Dank für die Hilfe. Auf Basis von
https://docs.bludit.com/en/dev-snippets/content-pages (#List all the Pages) habe ich das mit deiner if Abfrage innerhalb des foreach loops erweitert. Funktioniert einwandfrei.

Mit dem shuffle Befehl komme ich leider nicht zurecht. Das $page Objekt ist ja ein multidimensional array und der 'position' Wert müsste geshuffled werden oder? Aber wie komme ich da ran oder habe ich einen Denkfehler?

Code: Select all

sortby = 'position',
order = rand();
ist ständig mein Gedanke aber wohin damit?


Vielen Dank nochmals für die Hilfe.

Re: Loop für mehrere Kategorien

Posted: Thu Mar 25, 2021 6:58 pm
by Edi
gerald wrote: Thu Mar 25, 2021 5:40 pm Mit dem shuffle Befehl komme ich leider nicht zurecht. Das $page Objekt ist ja ein multidimensional array und der 'position' Wert müsste geshuffled werden oder? Aber wie komme ich da ran oder habe ich einen Denkfehler?

Code: Select all

sortby = 'position',
order = rand();
ist ständig mein Gedanke aber wohin damit?
Ich werde mir das über das Wochenende oder Anfang nächster Woche genauer ansehen. Vorher komme ich leider kaum dazu.

Re: Loop für mehrere Kategorien

Posted: Fri Mar 26, 2021 9:37 am
by gerald
Super! Keine Eile - Vielen Dank für deine Bemühungen schon mal.

Eventuell ist es auch eine praktikable Lösung im admin backend unter den Settings eine weitere Option für die Sortierreihenfolge einzubauen? Neben "nach Datum" und "Position" dann noch "zufällig".

Re: Loop für mehrere Kategorien

Posted: Mon Mar 29, 2021 9:40 pm
by Edi
Das müsste gehen:

Code: Select all

shuffle($content);
foreach ($content as $page) {

Re: Loop für mehrere Kategorien

Posted: Fri Apr 02, 2021 12:57 pm
by gerald
perfekt! Das funktioniert genauso wie ich mir das vorgestellt hatte. Vielen Dank für die Hilfe.