[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
[gelöst] Zufällige Bilder aus Medienpool-Kategorie? - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

[gelöst] Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 14:07

Hallo!

Vielleicht kann mir ja hier jemand helfen? Ich würde gerne eine Überblendung mit jQuery haben. Auf Basis von http://malsup.com/jquery/cycle/basic.html
Dazu möchte ich gerne eine Liste mit Bildern aus einer Medienpool-Kategorie ausgeben. Hier im Forum hatte ich ja schon einmal mit eurer Hilfe einen Code entwickelt, bei dem man 1 zufälliges Bild ausgeben kann. Hier sollten aber alle Bilder gemischt und als <img /> untereinander ausgegeben werden.
Würde mich über Hilfe freuen! Lösung wird dann natürlich für alle gepostet.

Code: Alles auswählen

    <?php
    // Medienpool Kategorie, aus der im Zufallsprinzip Files ausgewählt werden sollen
    $mediacat = 3;

    $cat = OOMediaCategory::getCategoryById($mediacat);
    $banners = $cat->getFiles();

    shuffle( $banners);
    $randIndex = mt_rand( 0, count( $banners) -1);
    $banner = $banners[ $randIndex];

    $url = $banner->getFullPath();
    echo '<div class="slideshow">
		<img src="'. $url .'"  />
		<img src="'. $url .'"  />
    </div>';

    ?>
Obiger Code funktioniert schon, aber es wird halt das zufällige Bild mehrfach angezeigt...

Gruß & Dank
Ralf
Zuletzt geändert von ralf.schlott am 14. Sep 2011, 13:58, insgesamt 2-mal geändert.
- Danke für Redaxo! -
http://www.prenzlweb.de

lci
Beiträge: 239
Registriert: 18. Aug 2006, 10:47

Re: Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 15:52

Code: Alles auswählen

<?php
    
    // Medienpool Kategorie, aus der im Zufallsprinzip Files ausgewählt werden sollen
    $mediacat = 3;

    $cat = OOMediaCategory::getCategoryById($mediacat);
    $banners = $cat->getFiles();

    shuffle( $banners);
    echo '<div class="slideshow">';
   
    //Alle bilder im Array ausgeben
     for ($i=0; $i< sizeof($banners);  $i++) {

    $url = $banners[i] ->getFullPath();
   
    echo '<img src="'. $url .'"  />';

    }
  
  echo  ' </div>';

    ?>

Zuletzt geändert von lci am 7. Sep 2011, 16:08, insgesamt 1-mal geändert.

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 16:03

Hallo Ici,

sieht logisch aus, bei mir gibt sich aber eine leere Seite aus... schaaaade. Ich guck auch nochmal.

Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 16:46

Also hinter dem div fehlte ein ' - dann sieht es im Editor auch lesbar aus. Aber der Inhalt wird trotzdem nicht angezeigt.

Code: Alles auswählen

	<?php
   
    // Medienpool Kategorie, aus der im Zufallsprinzip Files ausgewählt werden sollen
    $mediacat = 3;

    $cat = OOMediaCategory::getCategoryById($mediacat);
    $banners = $cat->getFiles();

    shuffle( $banners);

    echo '<div class="slideshow">'
   
    //Alle bilder im Array ausgeben
    for ($i=0; $i< sizeof($banners);  $i++) {

    $url = $banners[i] ->getFullPath();
   
    echo '<img src="'. $url .'" />';

    }
 
	echo '</div>';

    ?>
- Danke für Redaxo! -
http://www.prenzlweb.de

lci
Beiträge: 239
Registriert: 18. Aug 2006, 10:47

Re: Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 16:54

Code: Alles auswählen


<?php


// Kategorie by Id
$id = 1;
$mediaCat = OOMediaCategory::getCategoryById($id);
$mediaSubCats = $mediaCat->getChildren();


// Alle Files holen
foreach ($mediaSubCats as $mediaSubCat)
{
   $files = $mediaSubCat->getFiles();
   shuffle($files);
   
   foreach ($files as $file) {
      
      $fileId = $file->getId();
      $fileTitle = $file->getTitle();
      $fileName = $file->getFileName();
      $filePath = $file->getFullPath();
    
      
    
       echo $filePath;
     
   }
}
?>

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 17:47

Letzteres ist jetzt nur als Hinweis gedacht? So als Modul funktioniert das nicht...
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

Re: [ungelöst] Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 22:11

Hallo,

was willst denn noch, vielleicht ein versuch von mir, eigentlich funktionieren die anderen auch schon, wo hengt das denn bei dir genau?

Code: Alles auswählen

<?php 
$mediacat = 3; 
   
$ooCat = OOMediaCategory::getCategoryById( $mediacat); 
$catFiles = $ooCat->getFiles(); 

shuffle( $catFiles);

foreach ( $catFiles as $file ) { 
    $fileId = $file->getId(); 
    $fileTitle = $file->getTitle(); 
    $fileName = $file->getFileName(); 
// alle anzeigen
echo $file->getFullPath()."<br>"; 
} 
?> 
Cheffchen
Zuletzt geändert von Cheffchen am 8. Sep 2011, 09:47, insgesamt 1-mal geändert.

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: [ungelöst] Zufällige Bilder aus Medienpool-Kategorie?

7. Sep 2011, 23:23

Hallo Cheffchen,

genial, deine Idee bringt mich auf den richtigen Pfad. Dann kann ich das ja fertig bauen. Ich denke, dass ich morgen dann einen fertigen Code posten kann und auch einen Link.

Vielen lieben Dank dir!

Gruß Ralf

P.S. Juchuh!
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

Re: [ungelöst] Zufällige Bilder aus Medienpool-Kategorie?

8. Sep 2011, 09:58

Hallo,

die eingabe hätte ich auch, is zwar nicht auf meinem mist gewachsen aber wenn was funzt soll man das ruhig teilen.
(aus HassoGalerie wie man an den funktionen ja sieht :O) )

Code: Alles auswählen

<?php
///////////////////////////////////////////////////////
// Helper functions
///////////////////////////////////////////////////////
function hassoPrintMediaCats( $cat = null) {
	$selectCats = null;
	if ( is_int( $cat)) {
		$selectCats = array( OOMediaCategory::getCategoryById( $cat));
	} else if ( OOMediaCategory::isValid( $cat)) {
		$selectCats = array( $cat);
	} else {
		$selectCats = OOMediaCategory::getRootCategories();
	}

	foreach ( $selectCats as $selectCat) {
		add_cat_option( $selectCat);
	}
}
function add_cat_option( &$cat, $groupName = '') {
	if( empty( $cat)) {
		return;
	}

	print_link($cat->getName(), $cat->getId(), $groupName);

	if ( $cat->hasChildren()) {
		$childs = $cat->getChildren();

		foreach ( $childs as $child) {
			if ($child->hasChildren()) {
				add_cat_option( $child, $cat->getName());
			} else {
				add_cat_option( $child, $cat->getName());
			}
		}
	}
}

function print_link($catName, $catId, $groupName) {
	global $selectedCat;
	if ( "REX_VALUE[1]" == $catId) {
		// selected
		echo "<option value=\"" . $catId . "\" selected>" . $catName . "</option>\n";
	} else {
		echo "<option value=\"" . $catId . "\">" . $catName . "</option>\n";
	}
}

// checks if this a new module
if ( "REX_VALUE[1]" ) {
	$selectedCat = "REX_VALUE[1]";
} else {
	$selectedCat = "";
}

///////////////////////////////////////////////////////
// Begin Output
///////////////////////////////////////////////////////


// show the mediapool-categories
echo "\n<select  class=\"inp50\" name=\"VALUE[1]\">\n";
hassoPrintMediaCats();
echo "</select>\n";

// end output
?>
Da brauchst dann bloss in der ausgabe einfügen

Code: Alles auswählen

$mediacat = REX_VALUE[1]; 
Cheffchen

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: [gelöst] Zufällige Bilder aus Medienpool-Kategorie?

8. Sep 2011, 13:06

Sehr guter Hinweis mit dem Eingabemodul. Vielen Dank.

Ich habe jetzt erst einmal das so umgebaut, dass ich die Bilder bekomme. Nicht wie oben die URL.

Code: Alles auswählen

  <?php
    $mediacat = 3;
       
    $ooCat = OOMediaCategory::getCategoryById( $mediacat);
    $catFiles = $ooCat->getFiles();

    shuffle( $catFiles);
	
	echo '<div class="slideshow">';
	
    foreach ( $catFiles as $file ) {
        $fileId = $file->getId();
        $fileTitle = $file->getTitle();
        $fileName = $file->getFileName();
		
    // alle anzeigen
    $url = $file->getFullPath();
	echo '<img src="'. $url .'" />';
    }
	echo '</div>';
    ?> 
In dieser Ausgabe werden die Bilder verkleinert und valide auch mit title versehen. Verbunden mit dem o.g. jQuery Script http://malsup.com/jquery/cycle/basic.html kann man wunderbar eine Überblendung der Bilder gestalten.

Code: Alles auswählen

<?php
	// Bilder mit Verkleinerung
	
	// Medienpool Kategorie, aus der im Zufallsprinzip Files ausgewählt werden sollen
    $mediacat = 3;
       
    $ooCat = OOMediaCategory::getCategoryById( $mediacat);
    $catFiles = $ooCat->getFiles();

    //Bilder mischen
	shuffle( $catFiles);
	
	echo '<div class="slideshow">';
	
    foreach ( $catFiles as $file ) {
	
  
        $fileId = $file->getId();
        $fileTitle = $file->getTitle();
        $fileName = $file->getFileName();
		$url = $file->getFullPath();
		
    // alle anzeigen
    echo '<img src="'.$REX['HTDOCS_PATH'].'/index.php?rex_resize=253c__100h__'.$fileName.'" title="'.$fileTitle.'" alt="'.$fileTitle.'"  width="253px" height="100px" />';
    }
	echo '</div>';
    ?> 
Dies ist jetzt als Ausgabe gestaltet. Natürlich kann man auch mit der Medienkategorie arbeiten. Es gibt viele Möglichkeiten das abzuwandeln.

Vielen Dank, Cheffchen, für deine Hilfe. Na klar, wenn was funktioniert, sollte man es auch teilen!

Ich denke ich werde die Abwandlungen hier noch posten.

Besten Gruß
Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de

Zurück zu „Allgemeines [R4]“