ClioSport.net

Register a free account today to become a member!
Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • When you purchase through links on our site, we may earn an affiliate commission. Read more here.

Php



  5, 19, Integrale, Cupra R
I be;ieve theres a few people on here thats good with php coding.

I haven't got a clue and i've a very simple problem i need help with

Offers of help appreciated!
 

KDF

  Audi TT Stronic
Post the code up using the [CODE ] [/CODE ] tags (minus spaces) and i'll sort it.. whats your stylesheet called ?

Take out any usernames/password if you have them hard coded into the script.
 
  5, 19, Integrale, Cupra R
Ok,

http://www.retro-renault.com/templates/Classic/Classic.css is the style sheet

Code:
<?
/*
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2004 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.
 *
 * $Id: block-random.php,v 1.3.4.3 2004/07/28 03:46:11 cryptographite Exp $
 */

/*
 * 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.
 *
 * If your Gallery is embedded and you call it via an URL, 
 * make sure you are giving the needed paramters.
 *
 * *Nuke:
 * http://<URL to your Nuke>/modules.php?op=modload&name=gallery&file=index&include=block-random.php
 *
 * Mambo:
 * http://<URL to Mambo>/index.php?option=com_gallery&Itemid=XXX

 
 */

require(dirname(__FILE__) . "/init.php");

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

define('CACHE_FILE', $gallery->app->albumDir . "/block-random.dat");
define('CACHE_EXPIRED', $gallery->app->blockRandomCache);

// 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 = 0;
	}
}

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

$album = chooseAlbum();

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

if (!empty($index)) {
	$id = $album->getPhotoId($index);
	echo ""
		. "<center><a href=" . makeAlbumUrl($album->fields["name"], $id) . ">"
		. $album->getThumbnailTag($index)
		. "</a></center>";

	$caption = $album->getCaption($index);
	if ($caption) {
		echo "<br><center>$caption</center>";
	}

	echo "<br><center>From: "
		."<a href=" .makeAlbumUrl($album->fields["name"]) .">"
		.$album->fields["title"]
		."</a></center>";
} else {
	print "<center>No photo chosen.</center>";
}

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

function saveCache() {
	global $cache;
	safe_serialize($cache, CACHE_FILE);
}

function readCache() {
	global $cache;

	$sCache = getFile(CACHE_FILE);
	$cache = unserialize($sCache);
}

function choosePhoto($album) {
	global $cache;

	$count = $cache[$album->fields["name"]];
	if ($count == 0) {
		// Shouldn't happen
		return null;
	} elseif ($count == 1) {
		$choose = 1;
		if ($album->isAlbum($choose)) {
			return null;
		}
	} else {
		$choose = rand(1, $count);
		$wrap = 0;
		while ($album->isHiddenRecurse($choose) || $album->isAlbum($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 (empty($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 ($tmpAlbum->canReadRecurse($everybody->getUid()) && !$tmpAlbum->isHiddenRecurse()) {
			$seeHidden = $everybody->canWriteToAlbum($tmpAlbum);
			$numPhotos = $tmpAlbum->numPhotos($seeHidden);
			$name = $tmpAlbum->fields["name"];
			if ($numPhotos > 0) {
				$cache[$name] = $numPhotos;
			}
		}
	}
}
?>

Cheers
 
PHP:
<html>
<head>
<link rel="stylesheet" href="http://www.retro-renault.com/templates/Classic/Classic.css">
<title>Random Image</title>
<script language="javascript">
function popup(url){
   newwindow=window.open(url,'name','height=400,width=500');
   if(window.focus){newwindow.focus()}
   return false;
}
</script>
</head>
<body>
<?
/*
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2004 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.
 *
 * $Id: block-random.php,v 1.3.4.3 2004/07/28 03:46:11 cryptographite Exp $
 */

/*
 * 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.
 *
 * If your Gallery is embedded and you call it via an URL, 
 * make sure you are giving the needed paramters.
 *
 * *Nuke:
 * http://<URL to your Nuke>/modules.php?op=modload&name=gallery&file=index&include=block-random.php
 *
 * Mambo:
 * http://<URL to Mambo>/index.php?option=com_gallery&Itemid=XXX

 
 */

require(dirname(__FILE__) . "/init.php");

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

define('CACHE_FILE', $gallery->app->albumDir . "/block-random.dat");
define('CACHE_EXPIRED', $gallery->app->blockRandomCache);

// 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 = 0;
	}
}

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

$album = chooseAlbum();

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

if (!empty($index)) {
	$id = $album->getPhotoId($index);
	echo ""
		. "<center><a href='#' onclick='return popup(\"". makeAlbumUrl($album->fields["name"], $id) . "\">"
		. $album->getThumbnailTag($index)
		. "</a></center>";

	$caption = $album->getCaption($index);
	if ($caption) {
		echo "<br><center>$caption</center>";
	}

	echo "<br><center>From: "
		."<a href=" .makeAlbumUrl($album->fields["name"]) .">"
		.$album->fields["title"]
		."</a></center>";
} else {
	print "<center>No photo chosen.</center>";
}

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

function saveCache() {
	global $cache;
	safe_serialize($cache, CACHE_FILE);
}

function readCache() {
	global $cache;

	$sCache = getFile(CACHE_FILE);
	$cache = unserialize($sCache);
}

function choosePhoto($album) {
	global $cache;

	$count = $cache[$album->fields["name"]];
	if ($count == 0) {
		// Shouldn't happen
		return null;
	} elseif ($count == 1) {
		$choose = 1;
		if ($album->isAlbum($choose)) {
			return null;
		}
	} else {
		$choose = rand(1, $count);
		$wrap = 0;
		while ($album->isHiddenRecurse($choose) || $album->isAlbum($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 (empty($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 ($tmpAlbum->canReadRecurse($everybody->getUid()) && !$tmpAlbum->isHiddenRecurse()) {
			$seeHidden = $everybody->canWriteToAlbum($tmpAlbum);
			$numPhotos = $tmpAlbum->numPhotos($seeHidden);
			$name = $tmpAlbum->fields["name"];
			if ($numPhotos > 0) {
				$cache[$name] = $numPhotos;
			}
		}
	}
}
?>
</body>
</html>
Should work
 

KDF

  Audi TT Stronic
Code:
<?
/*
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2004 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.
 *
 * $Id: block-random.php,v 1.3.4.3 2004/07/28 03:46:11 cryptographite Exp $
 */

/*
 * 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.
 *
 * If your Gallery is embedded and you call it via an URL, 
 * make sure you are giving the needed paramters.
 *
 * *Nuke:
 * http://<URL to your Nuke>/modules.php?op=modload&name=gallery&file=index&include=block-random.php
 *
 * Mambo:
 * http://<URL to Mambo>/index.php?option=com_gallery&Itemid=XXX

 echo "<HTML><HEAD><link rel=\"stylesheet\" href=\"http://www.retro-renault.com/templates/Classic/Classic.css\" type=\"text/css\"></HEAD><BODY>";
 */

require(dirname(__FILE__) . "/init.php");

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

define('CACHE_FILE', $gallery->app->albumDir . "/block-random.dat");
define('CACHE_EXPIRED', $gallery->app->blockRandomCache);

// 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 = 0;
 }
}

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

$album = chooseAlbum();

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

if (!empty($index)) {
 $id = $album->getPhotoId($index);
 echo ""
  . "<center><a href=" . makeAlbumUrl($album->fields["name"], $id) . " target=\"_blank\">"
  . $album->getThumbnailTag($index)
  . "</a></center>";

 $caption = $album->getCaption($index);
 if ($caption) {
  echo "<br><center>$caption</center>";
 }

 echo "<br><center>From: "
  ."<a href=" .makeAlbumUrl($album->fields["name"]) .">"
  .$album->fields["title"]
  ."</a></center>";
} else {
 print "<center>No photo chosen.</center>";
}

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

function saveCache() {
 global $cache;
 safe_serialize($cache, CACHE_FILE);
}

function readCache() {
 global $cache;

 $sCache = getFile(CACHE_FILE);
 $cache = unserialize($sCache);
}

function choosePhoto($album) {
 global $cache;

 $count = $cache[$album->fields["name"]];
 if ($count == 0) {
  // Shouldn't happen
  return null;
 } elseif ($count == 1) {
  $choose = 1;
  if ($album->isAlbum($choose)) {
   return null;
  }
 } else {
  $choose = rand(1, $count);
  $wrap = 0;
  while ($album->isHiddenRecurse($choose) || $album->isAlbum($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 (empty($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 ($tmpAlbum->canReadRecurse($everybody->getUid()) && !$tmpAlbum->isHiddenRecurse()) {
   $seeHidden = $everybody->canWriteToAlbum($tmpAlbum);
   $numPhotos = $tmpAlbum->numPhotos($seeHidden);
   $name = $tmpAlbum->fields["name"];
   if ($numPhotos > 0) {
    $cache[$name] = $numPhotos;
   }
  }
 }
}
echo "</BODY></HTML>";
?>
 
  5, 19, Integrale, Cupra R
@Nightfire - That done the trick with the stylesheet but links aren't opening in new windows

@KDF - No noticable difference :S

Thanks for the help
 

KDF

  Audi TT Stronic
Code:
<?
/*
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2004 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.
 *
 * $Id: block-random.php,v 1.3.4.3 2004/07/28 03:46:11 cryptographite Exp $
 */

/*
 * 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.
 *
 * If your Gallery is embedded and you call it via an URL, 
 * make sure you are giving the needed paramters.
 *
 * *Nuke:
 * http://<URL to your Nuke>/modules.php?op=modload&name=gallery&file=index&include=block-random.php
 *
 * Mambo:
 * http://<URL to Mambo>/index.php?option=com_gallery&Itemid=XXX


 */
 echo "<HTML><HEAD><link rel=\"stylesheet\"  ref=\"http://www.retro-renault.com/templates/Classic/Classic.css\" type=\"text/css\"></HEAD><BODY>";
require(dirname(__FILE__) . "/init.php");

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

define('CACHE_FILE', $gallery->app->albumDir . "/block-random.dat");
define('CACHE_EXPIRED', $gallery->app->blockRandomCache);

// 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 = 0;
 }
}

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

$album = chooseAlbum();

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

if (!empty($index)) {
 $id = $album->getPhotoId($index);
 echo "<center><a href=" . makeAlbumUrl($album->fields["name"], $id) . " target=\"_blank\">"
  . $album->getThumbnailTag($index)
  . "</a></center>";

 $caption = $album->getCaption($index);
 if ($caption) {
  echo "<br><center>$caption</center>";
 }

 echo "<br><center>From: "
  ."<a href=" .makeAlbumUrl($album->fields["name"]) .">"
  .$album->fields["title"]
  ."</a></center>";
} else {
 print "<center>No photo chosen.</center>";
}

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

function saveCache() {
 global $cache;
 safe_serialize($cache, CACHE_FILE);
}

function readCache() {
 global $cache;

 $sCache = getFile(CACHE_FILE);
 $cache = unserialize($sCache);
}

function choosePhoto($album) {
 global $cache;

 $count = $cache[$album->fields["name"]];
 if ($count == 0) {
  // Shouldn't happen
  return null;
 } elseif ($count == 1) {
  $choose = 1;
  if ($album->isAlbum($choose)) {
   return null;
  }
 } else {
  $choose = rand(1, $count);
  $wrap = 0;
  while ($album->isHiddenRecurse($choose) || $album->isAlbum($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 (empty($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 ($tmpAlbum->canReadRecurse($everybody->getUid()) && !$tmpAlbum->isHiddenRecurse()) {
   $seeHidden = $everybody->canWriteToAlbum($tmpAlbum);
   $numPhotos = $tmpAlbum->numPhotos($seeHidden);
   $name = $tmpAlbum->fields["name"];
   if ($numPhotos > 0) {
    $cache[$name] = $numPhotos;
   }
  }
 }
}
echo "</BODY></HTML>";
?>

Changed the above.. sorry the echo statement looped in the comments..
 
  5, 19, Integrale, Cupra R
Ok, that last one sorted out the links, i just needed to edit it a bit to get both links opening in a new window.

It was using the stylesheet so i used nightfires method and its working 100%

http://www.retro-renault.com - bottom left

Thanks a million

Chet
 


Top