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

Wie verwendet man Module oder Aktion und passt diese an.

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

Beitragvon ralf.schlott » 7. Sep 2011, 13: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, 12:58, insgesamt 2-mal geändert.
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

Re: Zufällige Bilder aus Medienpool-Kategorie?

Beitragvon lci » 7. Sep 2011, 14: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, 15:08, insgesamt 1-mal geändert.
lci
 
Beiträge: 226
Registriert: 18. Aug 2006, 09:47

Re: Zufällige Bilder aus Medienpool-Kategorie?

Beitragvon ralf.schlott » 7. Sep 2011, 15:03

Hallo Ici,

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

Ralf
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

Re: Zufällige Bilder aus Medienpool-Kategorie?

Beitragvon ralf.schlott » 7. Sep 2011, 15: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>';

    ?>
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

Re: Zufällige Bilder aus Medienpool-Kategorie?

Beitragvon lci » 7. Sep 2011, 15: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;
     
   }
}
?>
lci
 
Beiträge: 226
Registriert: 18. Aug 2006, 09:47

Re: Zufällige Bilder aus Medienpool-Kategorie?

Beitragvon ralf.schlott » 7. Sep 2011, 16:47

Letzteres ist jetzt nur als Hinweis gedacht? So als Modul funktioniert das nicht...
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

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

Beitragvon Cheffchen » 7. Sep 2011, 21: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, 08:47, insgesamt 1-mal geändert.
Benutzeravatar
Cheffchen
 
Beiträge: 1129
Registriert: 3. Mär 2009, 12:51
Wohnort: Berlin

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

Beitragvon ralf.schlott » 7. Sep 2011, 22: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!
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

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

Beitragvon Cheffchen » 8. Sep 2011, 08: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
Cheffchen
 
Beiträge: 1129
Registriert: 3. Mär 2009, 12:51
Wohnort: Berlin

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

Beitragvon ralf.schlott » 8. Sep 2011, 12: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
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch


Zurück zu Module/Aktionen [R4]

Wer ist online?

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