[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Zufallsausgabe (random) aus Medienkategorie
Seite 1 von 1

Zufallsausgabe (random) aus Medienkategorie

Verfasst: 2. Nov 2017, 14:06
von joaopinto
Hallo liebe Redaxianer,

ich habe in einem Redaxo-Template ein Random PHP Include Script laufen, um in einem Slider auf der Startseite per Zufall ein Foto mit einer Bildunterschrift auszugeben. Diese Daten hole ich zur Zeit jedoch noch aus externen .htm Files, und ich frage mich, ob es einen einfachen Weg gibt, dies über REX_MEDIALIST sowie den Meta Infos zu lösen.

Sprich, es sollten aus einem bestimmten Medienordner alle Bilder ausgelesen werden und per Random-Skript ein Bild inkl. Meta-Infos (Beschreibung) ausgewählt werden. Bild-URL und Beschreibungstext (Meta-Info) sollten dann getrennt als Variablen im Template mehrfach eingesetzt werden können (da ich für eine mobile Ansicht ein eigenes DIV verwende).

Hier das simple eingesetzte Random Skript:

Code: Alles auswählen

<?PHP
$includes = array('bildinfo1', 'bildinfo2', 'bildinfo3', 'bildinfo4', 'bildinfo5');
include $includes[mt_rand(0, count($includes)-1)];
?> 
Besten Dank im voraus für jeden Tipp!

Re: Zufallsausgabe (random) aus Medienkategorie

Verfasst: 2. Nov 2017, 17:37
von runstop64
Hi,

Du kannst aus einer REX_MEDIALIST auch ein Array erzeugen, aus dem du dann ein Bild per Zufall wählen kannst.
oder du liest eine Medienkategorie aus:

Code: Alles auswählen

rex_media_category::get($id)->getMedia();
und arbeitest mit dem Array das du damit erhältst.

Re: Zufallsausgabe (random) aus Medienkategorie

Verfasst: 3. Nov 2017, 14:43
von joaopinto
Danke für den Hinweis, ich taste mich mal langsam heran... als Ergebnis möchte ich ja zwei einsetzbare Variablen mit jeweils dem Dateinamen und der Metainfo Beschreibung.
Das klappt in dem Versuch unten (siehe Code) bereits ganz gut.
Ist das so auch halbwegs richtig? Kann man das schöner lösen? (ich hab nicht viel Ahnung von PHP)

Code: Alles auswählen


$id = 5;
$category = rex_media_category::get($id);

if ($category) {     

/* Das Array über mediafiles */
$mediafiles = $category->getMedia();

/* Zufallsausgabe über mt_rand */
$randomfile = $mediafiles[mt_rand(0, count($mediafiles)-1)];

//Dateiname auslesen
$media =  $randomfile->getFileName();

//Metainfo Beschreibung
$media_description =  $randomfile->getValue('med_description');

echo '<p><img src="media/'.$media.'" alt=" "  /><br>'.$media_description.'</p>';

} 

Re: Zufallsausgabe (random) aus Medienkategorie

Verfasst: 3. Nov 2017, 16:45
von runstop64
Hi,

das sieht gut aus.
Ich würde noch den Medientitel auslesen und als alt-Text ausgeben um es abzurunden.