Welcome to Geeklog, Anonymous Saturday, November 30 2024 @ 09:27 pm EST
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;
}
11
8
Quote
Anonymous
Anonymous
i dont know why but it shows me no albums found even thought i have 3 albums created...help!?
8
9
Quote
kylebowerman
Anonymous
I get no pictures found. Any idea?
8
8
Quote
Anonymous
Anonymous
i also ge the same "invalid directory" cant seem to find the problem..
8
8
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.
8
7
Quote
All times are EST. The time is now 09:27 pm.
- 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