Welcome to Geeklog, Anonymous Thursday, March 28 2024 @ 09:54 am EDT

Geeklog Forums

Random Gallery Picture Block


Status: offline

vinny

Site Admin
Admin
Registered: 06/24/02
Posts: 352
Location:Colorado, USA
I was dissatisfied with the random image block not producing really random images (images in smaller albums would come up more frequently). Also the poor handling of empty albums and the desire to have a list of excluded albums prompted me to rework the Random Image Block for Gallery/Geeklog. I found the original block while surfing, so I'm afraid I don't know who to ascribe the original work to. Also, this seems to run a bit slower (and bigger in memory) than the original as it builds an array with the name of every picture in Gallery. Without further ado, here it is: /** * This is the function that returns a random image from the Gallery */ function phpblock_gallery() { global $_CONF; // Location of the Gallery album directory $path_gallery_albums = $_CONF['path_html'] . 'albums/'; // URL to the gallery $gallery_url = $_CONF['site_url'] . '/gallery'; // URL to album directory $gallery_album_url = $_CONF['site_url'] . '/albums'; // Albums we want excluded $ignore_albums = array('album01', 'album02', 'album03'); // Bail if we have a bad path if (!is_dir($path_gallery_albums)) return "invalid directory"; // Open album directory $fd = opendir($path_gallery_albums); // Load all pictures into an array. We do this but itering over the // albums available, then selecting all the thumnails from them. $pics = array(); while (($f = @readdir($fd)) == TRUE) { if (is_dir($path_gallery_albums . $f) && !ereg('hidden',$f) && $f <> '.' && $f <> '..' && $f <> 'CVS' && ($f <> '.users') && !in_array($f, $ignore_albums)) { $dir = opendir($path_gallery_albums . $f); $fcount = 0; while (($g = @readdir($dir)) == TRUE) { if ($g <> '.' && $g <> '..' && $g <> 'CVS' && strpos($g,'thumb') && !strpos(strtolower($g),'.gif')) { clearstatcache(); $pics[] = $f . '/' . $g; } } closedir($dir); } } closedir($fd); if (count($pics) == 0) return $retval .= "no pictures found"; // Randomly select a picture from the array mt_srand((double)microtime()*1000000); $indexr = (mt_rand(1, count($pics))); $thepic = $pics[$indexr]; // Now get a random picture from this album, album name, and pic prefix $slashpos = strpos($thepic, '/'); $album = substr($thepic, 0, $slashpos); $thepic = substr($thepic, $slashpos - strlen($thepic) + 1); $pos = strpos($thepic, '.'); $pic_prefix = substr($thepic, 0, $pos); // build HTML output and return it $retval .= "<div align=center> <a href=\""; $retval .= $gallery_url . '/view_photo.php?set_albumName=' . $album . '&id=' . $pic_prefix; $retval .= "\">"; $retval .= "<img border=0 src=\""; $retval .= $gallery_album_url . '/' . $album . '/' . $thepic; $retval .= "\">"; $retval .= "</a> <br></div>\n"; $retval .= "<div align=center> <a href=\""; $retval .= $gallery_url . "\">More Pictures</a>"; $retval .= "<br></div>\n"; return $retval; }
 Quote

Status: offline

Dirk

Site Admin
Admin
Registered: 01/12/02
Posts: 13073
Location:Stuttgart, Germany
As with all longer pieces of code, it's probably best to make this available for download somewhere ... bye, Dirk
 Quote

Anonymous

Anonymous
i dont know why but it shows me no albums found even thought i have 3 albums created...help!?
 Quote

kylebowerman

Anonymous
I get no pictures found. Any idea?
 Quote

Anonymous

Anonymous
i also ge the same "invalid directory" cant seem to find the problem..
 Quote

Anonymous

Anonymous
this is what i have set // Location of the Gallery album directory $path_gallery_albums = $_CONF['path_html'] . '/gallery/albums/steven/'; // URL to the gallery $gallery_url = $_CONF['site_url'] . '/gallery'; // URL to album directory $gallery_album_url = $_CONF['site_url'] . '/albums/steven'; My gallery is not relative to my geeklog URL geeklog is here. /home/mi6/fragtheworld.net/public_html/index.php /home/mi6/fragtheworld.net/config.php /home/mi6/fragtheworld.net/gallery/ /home/mi6/fragtheworld.net/gallery/albums/steven/ so the ['path_html'] . '/gallery/albums/steven/'; wont work cuz the link is actualy /public_html/gallery/albums/steven when it should be only /gallery/albums/steven/ not sure how to fix that with out moving my gallery ? any one? hehe thanks for the help M|6 please reply to my post via ( wongxx@mi6warez.zzn.com ) my main mail server is down and i cant get my lost password... so i wont be able to see if there a reply unless i check everyday...and well we all have work to do =p anyhow i will try my best cya and thanks for the help im sure i will get.
 Quote

All times are EDT. The time is now 09:54 am.

  • Normal Topic
  • Sticky Topic
  • Locked Topic
  • New Post
  • Sticky Topic W/ New Post
  • Locked Topic W/ New Post
  •  View Anonymous Posts
  •  Able to post
  •  Filtered HTML Allowed
  •  Censored Content