I spent an hour trying different version of block-random.php, all of them showed up as code like this:
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 = 0; } } if ($rebuild) { scanAlbums(); saveCache(); } else { readCache(); } // Parameter: size // Specify that the thumbnail image should be resized when displayed, // to fit a specific dimension in both height and width. Aspect ratio is maintained. // Intended to reduce the size of images, but if the size specified is larger than either thumbnail dimension, // the image will be enlarged (with a corresponding loss of quality.) // Note: This does not create an additional thumbnail, nor does it alter the existing thumbnail; // the image is dynamically scaled by the browser when rendered. // Example: size=75 // Default: 0, meaning no resize. if (!empty($HTTP_GET_VARS["size"])) $size = $HTTP_GET_VARS["size"]; else $size = 0; // Parameter: domain // Specify the value to which document.domain should be set. // Not needed if this page and the page calling it are on the same server. // Allows the page embedding this random photo page to resize the containing IFRAME, // when the two pages are on different servers, but within a common domain (e.g. "www.foo.com" and "gallery.foo.com"). // The value specified must be the common suffix of the two server names, cannot be simply ".com", // and the calling page must set its document.domain to the same value. // Example: domain=foo.com // Default: none. If not specified, no document.domain statement will be executed. if (!empty($HTTP_GET_VARS["domain"])) $domain = $HTTP_GET_VARS["domain"]; // Parameter: target // Specify the value to be used in the target= attribute of the A tag. // Example: target=_top // Default: _blank if (!empty($HTTP_GET_VARS["target"])) $targetAttr = "target=".$HTTP_GET_VARS["target"]; else $targetAttr = "target=_blank"; $album = chooseAlbum(); if ($album) { $index = choosePhoto($album); } if (isset($index)) { $id = $album->getPhotoId($index); if (!$GALLERY_EMBEDDED_INSIDE) { echo "" .getStyleSheetLink(); echo ""; if ($domain) { echo ""; } echo ""; } echo "
" ."" .$album->getThumbnailTag($index,$size) .""; $caption = $album->getCaption($index); echo ""; if ($caption) { echo "
$caption"; } echo "
From: " ."" .$album->fields["title"] ."
"; } else { print "No photo chosen."; } if ($profile) { $elapsed = time() - $timer; print "
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] = trim($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; } } } } ?>
It was a short tag problem. Replace all instances of:
<?
with
<?php
and save the block-random.php file. Fixed!