Scoutnet vzw

We connect scouts!
Het is momenteel 19 Nov 2024 2:38

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 6 berichten ] 
Auteur Bericht
BerichtGeplaatst: 02 Nov 2004 7:54 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 18 Jul 2002 23:00
Berichten: 69
't is te zeggen,

ik heb een foto-boek folder, waaronder verschillende categorieën zitten, en daaronder de verschillende folders met de foto's.

Ik zou nu graag op m'n startpagina een random foto uit dit fotoboek tonen, maar ik kom momenteel niet verder dan het tonen van een random foto uit 1 folder. Maar ik zou dit natuurlijk willen aanpassen om uit het volledige fotoboek een random foto te tonen...

heeft er iemand nog een stukje php-code rondslingeren om zulk iets te verwezelijken?


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 02 Nov 2004 11:29 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Jan 2004 0:00
Berichten: 773
Niet direct, maar ik zou het zo doen:

Scan je dir voor subdirs (net zoals scannen voor files). Stop alle subdirs in een array. Genereer een random getal van nul tot het aantal subdirs roep dan die pos uit de array op. Roep dan een random fotootje op uit die subdir.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 02 Nov 2004 11:33 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 18 Jul 2002 23:00
Berichten: 69
Dat was de methode waar ik ook aan't denken was, maar ik hoopte dat er mss een iets snellere/logischere/standaard - methode was...


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 02 Nov 2004 13:45 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 16 Nov 2003 0:00
Berichten: 68
Ik heb 't zelfde
Wij hebben 't fotoalbum overgenomen van een van de scoutgroepen hier (scoutsboekhoute). Zij hebben ook een (ander?) random foto scriptje. Mss willen zij het je ook wel geven...
De subdirs gaan ook maar 3 niveau's diep en daar is het voor geschreven. Twee niveaus lukt dus niet. Beperkt scriptje dus, 'k zou nu wel iets beter kunnen schrijven maar 't is duidelijk dat dit niet zo moeilijk is...
Het voordeel hier is ook (tegenover de methode hierboven voorgesteld) is dat het écht random is. Terwijl hierboven subdirs met weinig foto's en subdirs met veel foto's evenveel aangeroepen werden, worden hier subdirs aangeroepen al naargelang hoeveel foto's ze bevatten. Als je snapt wat ik bedoel...
Misschien omslachtig, ik heb geen idee, ik was al blij dat het na veel vijven en zessen toch werkte...
Code:
$takken=array('kapoenen' => '01_Kapoenen','welkas' => '02_Welpen en Kabouters','jonggivers' => '03_Jonggivers','givers' => '04_Givers','jins' => '05_Jins','leiding' => '06_Leiding'); // Ook dit is een omzetting van de takvariables van 't fotoalbum naar de 'standaard' takvariables die onze site gebruikt...
$takvol=$takken[$tak];
if (basename($_SERVER["PHP_SELF"])=="index.php") {  // Dit is om ook foto's per tak te kunnen tonen
   $dir = "fotoalbum/album";
   $dh = opendir($dir);
   while ($file = readdir($dh))
      {
       if ($file != '.' && $file != '..')
         {
            if (is_dir($dir."/".$file))
            {
            $dh2=opendir($dir."/".$file);
            while ($file2 = readdir($dh2))
               {
                  if ($file2 != '.' && $file2 != '..')
                  {
                  $results[] = $dir."/".$file."/".$file2;
                  $dh3=opendir($dir."/".$file."/".$file2);
                  $dirsize=0;
                  while ($file3 = readdir($dh3))
                     {
                     $dirsize++;
                     }
                  $dir_size[$dir."/".$file."/".$file2]=$dirsize;
                  }
               }
            }
         }
      }
   }
else {
   $dir = "fotoalbum/album/".$takvol;
   $dh2=opendir($dir."/".$file);
   while ($file2 = readdir($dh2))
      {
      if ($file2 != '.' && $file2 != '..')
         {
         $results[] = $dir."/".$file."/".$file2;
         $dh3=opendir($dir."/".$file."/".$file2);
         $dirsize=0;
         while ($file3 = readdir($dh3))
            {
            $dirsize++;
            }
         $dir_size[$dir."/".$file."/".$file2]=$dirsize;
         }
      }
   }

foreach ($dir_size as $key => $temp)
   {
   $totaalfoto += $temp;
   if (!isset($foto_dir)) $foto_dir=$key;
   if ($totaalfoto != 0 && ($totaalfoto == 1 || rand(1, $totaalfoto) <= $temp)) {
        $foto_dir=$key;
    }
   }

$thumbstring = '';
//$foto_dir=$results[rand(0, sizeof($results) -1)];
$fotodir=opendir($foto_dir);
while ($foto=readdir($fotodir))
    {
        if ($foto != "." && $foto != "..")
        {
        $thumbstring[] = $foto;
        }
    }
    srand((double)microtime()*1000000);

   $fotonum=rand(0, sizeof($thumbstring) -1);
    echo "<a href=\"#\" onclick=\"Popup=window.open('fotoalbum/foto_lezen.php?dir=".substr($foto_dir,10)."&amp;nummerafbeelding=".($fotonum)."','_blank','toolbar=no, location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=550,height=680,left=100,top=100'); return false;\"><img class=\"scaled\" src=\"".$foto_dir."/".$thumbstring[$fotonum]."\" style=\"border:none\" alt=\"random foto\"></img></a>";
?>


Het wijst zich (denk ik) wel uit. Bij problemen vraag je 't maar...


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 02 Nov 2004 16:37 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
Of hoe wij het doen: de gegevens (aantal foto's, wat, waar, url, datum, aantal keer bekeken, enz) van alle foto-albums steken in een tabel in de database (uch, sorry Hopla maar hier ben ik weer). Het random-scriptje moet maar gewoon een willekeurig nummertje kiezen en dat bepaalt dan welk album-id gekozen wordt...

To


Omhoog
 Profiel  
 
 Titel: hint
BerichtGeplaatst: 03 Nov 2004 8:15 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 08 Sep 2003 23:00
Berichten: 72
Woonplaats: Leuven
misschien een leuke tip: in plaats van een willekeurige foto, tonen wij altijd de highlight-foto van het album dat het laatst gewijzigd werd (commentaar geleverd, foto bijgevoegd, ...). zo weten de freauente bezoekers ook meteen waar de meest recente activiteit in het fotoboek zich heeft afgespeeld.

dit gebeurt via RSS, en kan erg gemakkelijk met [url]gallery.sf.net[/url] (ok, ik weet dat ik deze link nu al 3 keer gepost heb, maar tis echt wel erg goed :-) )

_________________
groetjes,
BBBart


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 6 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Majestic-12 [Bot] en 33 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.