PHP Web Host - Quality Web Hosting For All PHP Applications Just Great Software
  Login or Register
 • Home • Downloads • Your Account • Forums • 

View next topic
View previous topic


Google
 
Web RavenPHPScripts (This Site)
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.
Author Message
msimonds
Regular
Regular


Joined: Jul 15, 2003
Posts: 56
Location: Dallas

PostPosted: Tue Jul 15, 2003 3:41 pm Reply with quote Back to top

this block pulls random pics from all galleries that I have running on my site for the Rant Girl of the month. I was wondering if there was any way to modify this block to pull just the newest/current gallery that is on the site. Here is the code:


Code:
<?php
/*
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2001 Bharat Mediratta
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or (at
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

/*
 * This block selects a random photo for display.  It will only display photos
 * from albums that are visible to the public.  It will not display hidden
 * photos. 
 *
 * Once a day (or whatever you set CACHE_EXPIRED to) we scan all albums and
 * create a cache file listing each public album and the number of photos it
 * contains.  For all subsequent attempts we use that cache file.  This means
 * that if you change your albums around it may take a day before this block
 * starts (or stops) displaying them.
 */

// Hack prevention.
if (!empty($HTTP_GET_VARS["GALLERY_BASEDIR"]) ||
      !empty($HTTP_POST_VARS["GALLERY_BASEDIR"]) ||
      !empty($HTTP_COOKIE_VARS["GALLERY_BASEDIR"])) {
   print "Security violation\n";
   exit;
}

$GALLERY_BASEDIR = "/home/rantman/public_html/modules/gallery/";
require($GALLERY_BASEDIR . "init.php");

if ($profile) {
    $timer = time();
}

/* Initializing the seed */
srand ((double) microtime() * 1000000);

define(CACHE_FILE, $gallery->app->albumDir . "/block-random.cache");
define(CACHE_EXPIRED, 86400);

// Check the cache file to see if it's up to date
$rebuild = 1;
if (fs_file_exists(CACHE_FILE)) {
    $stat = fs_stat(CACHE_FILE);
    $mtime = $stat[9];
    if (time() - $mtime < CACHE_EXPIRED) {
   $rebuild = 1;
    }
}

if ($rebuild) {
    scanAlbums();
    saveCache();
} else {
    readCache();
}

$album = chooseAlbum();

if ($album) {
    $index = choosePhoto($album);
}

if (isset($index)) {
    $id = $album->getPhotoId($index);
    $url = "http://www.sportsrant.com/";
    $url .= "modules.php?set_albumName=".$album->fields["name"];
    $url .= "&id=" .$id;
    $url .= "&op=modload&name=gallery&file=index&include=view_photo.php";
//    echo"$url";

    echo "<center>"
       ."<a href=\"$url\">"
//       ."<a href=" .makeAlbumUrl($album->fields["name"], $id) .">"
       .$album->getThumbnailTag($index)
       ."</a></center>";
   
    $caption = $album->getCaption($index);
    if ($caption) {
   echo "<br><center>$caption</center>";
    }
   
    $albumURL = "http://www.sportsrant.com/";
    $albumURL .= "modules.php?set_albumName=".$album->fields["name"];
    $albumURL .= "&op=modload&name=gallery&file=index&include=view_album.php";
    echo "<br><center>From: "
            ."<a href=\"$albumURL\">"
//       ."<a href=" .makeAlbumUrl(currentAlbum) .">"
       .$album->fields["title"]
       ."</a></center>";
} else {
   print "No photo chosen.";
}

if ($profile) {
    $elapsed = time() - $timer;
    print "<br>Elapsed: $elapsed secs";
}

/*
 * --------------------------------------------------
 * Support functions
 * --------------------------------------------------
 */

function saveCache() {
    global $cache;
    if ($fd = fs_fopen(CACHE_FILE, "w")) {
   foreach ($cache as $key => $val) {
       fwrite($fd, "$key/$val\n");
   }
   fclose($fd);
    }
}

function readCache() {
    global $cache;
    if ($fd = fs_fopen(CACHE_FILE, "r")) {
   while ($line = fgets($fd, 4096)) {
       list($key, $val) = explode("/", $line);
       $cache[$key] = $val;
   }
   fclose($fd);
    }
}

function choosePhoto($album) {
    global $cache;

    $count = $cache[$album->fields["name"]];
    if ($count == 0) {
   // Shouldn't happen
   return null;
    } else if ($count == 1) {
   $choose = 1;
    } else {
   $choose = rand(1, $count);
   $wrap = 0;
   if ($album->isHidden($choose)) {
       $choose++;
       if ($choose > $album->numPhotos(1)) {
      $choose = 1;
      $wrap++;

      if ($wrap = 2) {
          return null;
      }
       }
   }
    }

    return $choose;
}

function chooseAlbum() {
    global $cache;

    /*
     * The odds that an album will be selected is proportional
     * to the number of (visible) items in the album.
     */

    $total = 0;
    foreach ($cache as $name => $count) {
   if (!$choose) {
       $choose = $name;
   }
   
   $total += $count;
   if ($total != 0 && ($total == 1 || rand(1, $total) <= $count)) {
       $choose = $name;
   }
    }

    if ($choose) {
   $album = new Album();
   $album->load($choose);
   return $album;
    } else {
   return null;
    }
}

function scanAlbums() {
    global $cache;
    global $gallery;

    $cache = array();
    $everybody = $gallery->userDB->getEverybody();
    $albumDB = new AlbumDB();
    foreach ($albumDB->albumList as $tmpAlbum) {
   if ($everybody->canReadAlbum($tmpAlbum)) {
       $seeHidden = $everybody->canWriteToAlbum($tmpAlbum);
       $numPhotos = $tmpAlbum->numPhotos($seeHidden);
       $name = $tmpAlbum->fields["name"];
       if ($numPhotos > 0) {
      $cache[$name] = $numPhotos;
       }
   }
    }
}
?>



can someone help me out to see if it is possible to just make this -1/or the current gallery instead of all galleries

Thanks
Mike
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
msimonds
Regular
Regular


Joined: Jul 15, 2003
Posts: 56
Location: Dallas

PostPosted: Thu Sep 11, 2003 3:32 pm Reply with quote Back to top

oh BTW I fixed this block so that it can just pull from whatever gallery you want it to
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:       
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.

View next topic
View previous topic
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Forums ©
 

All logos and trademarks in this site are property of their respective owner.
The comments are property of their posters, all the rest © 2002-2011 by Raven

You can syndicate our news using the file xml

CSE HTML Validator Helped Clean up This Page! [Valid RSS] valid RSS 2.0 Valid robots.txt Stop Spam Harvesters, Join Project Honey Pot

Website engines core code is © copyright by PHP-Nuke but has been heavily patched and modified by myself and others.
PHP-Nuke is a free software released under the GNU/GPL.


:: fisubice phpbb2 style by Daz :: PHP-Nuke theme by www.nukemods.com ::
:: fisubice Theme Modified by the RavenNuke™ Team ::

:: W3C CSS Compliance Validation :: W3C HTML 4.01 Transitional Compliance Validation ::

zerosum