link til næste billede (ud fra thumbs)
Hej eXperter!Jeg benytter nedenstående for at oprette thumbnails, som en besøgende så kan trykke på, hvorefter billedet åbner i et andet vindue. Problemet er, at siden hvert billede åbner i et nyt vindue, er man nødt til at lukke det efter hvert billede, for at se det næste billede..
Typisk vil et thumb-link (som jo åbner i nyt vindue) se sådan ud: http://www.minside.dk/pics/london/billede1.jpg
Kan man på denne (og alle de andre af samme slags) lave et link til næste billede i rækken?
Jeg vil altså gerne have, at første thumb man trykker åbner billedet i et nyt vindue, men at man derefter kan manøvrere sig frem og tilbage..
________
<?php
/*
Small thumbnail script - Made for integration into existing pages
Made by Lars Petersen, Weird Silence
Email me at lars at weirdsilence dot net
www.weirdsilence.net
www.ordo.dk
*/
//header( "Expires: 0" );
//set_time_limit( 0 ); jeg har disable't denne, gav en fejl...
// Edit these
$c = array();
// Maximum height of thumbnail
$c['maxHeight'] = 110;
// Maximum width of thumbnail
$c['maxWidth'] = 110;
// Change thumbdir - BEWARE! This script can DELETE EVERYTHING within that
// directory - So be CAREFUL!
$c['thumbDir'] = "pics/test/london/thumbs";
// This is where you keep your originals - DO NOT SET THUMBS TO BE THE SAME
$c['imageDir'] = "pics/test/london";
// How many rows of images?
$c['rows'] = 8;
// How many images per row?
$c['cols'] = 5;
// What image types do you want to thumbnail?
$c['fileTypes'] = "jpg,jpeg,jpe,png,gif";
// Only change this if you need to add more image types
$c['imageTypes'] = array(
"jpg" => "imagecreatefromjpeg"
,"jpeg" => "imagecreatefromjpeg"
,"jpe" => "imagecreatefromjpeg"
,"png" => "imagecreatefrompng"
,"gif" => "imagecreatefromgif"
);
// Don't change below this point ===========================================
function resize( $filename )
{
global $c;
$pth = pathinfo( $filename );
$ext = strtolower( $pth['extension'] );
if ( !array_key_exists( $ext, $c['imageTypes'] ) )
{
return false;
}
$srcim = $c['imageTypes'][$ext]( $filename );
$ow = imagesx( $srcim );
$oh = imagesy( $srcim );
$wscale = $c['maxWidth'] / $ow;
$hscale = $c['maxHeight'] / $oh;
$scale = ( $hscale < $wscale ? $hscale : $wscale );
$nw = round( $ow * $scale, 0 );
$nh = round( $oh * $scale, 0 );
$dstim = imagecreatetruecolor( $nw, $nh );
imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
imagejpeg( $dstim, $c['thumbDir'] . "/" . basename( $filename ), 85 );
imagedestroy( $dstim );
imagedestroy( $srcim );
return true;
}
if ( !is_writable( $c['thumbDir'] ) )
{
die( "Directory $c[thumbDir] is not writable!" );
}
$rebuild = false;
if ( file_exists( $c['thumbDir'] . "/settings" ) )
{
$sc2 = file_get_contents( $c['thumbDir'] . "/settings" );
$sc = serialize( $c );
if ( $sc != $sc2 )
{
$rebuild = true; // Settings changed since last time
}
}
else
{
$rebuild = true;
}
// Adding ?rebuild to URL will force a rebuild of ALL thumbs
if ( $rebuild || isset( $_GET['rebuild'] ) )
{
$files = glob( $c['thumbDir'] . "/*" );
foreach ( $files as $file )
{
@unlink( $file );
}
}
// Save settings if changed
if ( $rebuild )
{
if ( $fp = fopen( $c['thumbDir'] . "/settings", "w" ) )
{
fwrite( $fp, $sc );
fclose( $fp );
}
}
// Get file list, and see if anything has changed since last run
$lastChange = 0;
if ( file_exists( $c['thumbDir'] . "/timestamp" ) )
{
$lastChange = file_get_contents( $c['thumbDir'] . "/timestamp" );
if ( !is_numeric( $lastChange ) || $lastChange < 0 || (int)$lastChange != $lastChange )
{
$lastChange = 0;
}
}
$changed = 0;
$fileTypes = "/\.(" . str_replace( ",", "|", $c['fileTypes'] ) . ")$/i";
$files = array();
if ( $dh = opendir( $c['imageDir'] ) )
{
while ( $file = readdir( $dh ) )
{
if ( preg_match( $fileTypes, $file ) )
{
$files[] = $file;
$stamp = filemtime( $c['imageDir'] . "/" . $file );
if ( $lastChange < $stamp )
{
$changed = 1;
$lastChange = $stamp;
}
}
}
}
else
{
die( "Failed to open directory: $c[imageDir]" );
}
if ( $changed == 1 )
{
// Rebuild images
print( "Changed detected. Rebuilding images.<br>\n" );
flush();
foreach ( $files as $file )
{
$chksum = md5_file( $c['imageDir'] . "/" . $file );
if ( !file_exists( $c['thumbDir'] . "/" . $file ) || !file_exists( $c['thumbDir'] . "/" . $file . "_" . $chksum ) )
{
print( "Resizing $file...<br>\n" );
flush();
if ( resize( $c['imageDir'] . "/" . $file ) )
{
touch( $c['thumbDir'] . "/" . $file . "_" . $chksum );
}
}
}
if ( $fp = fopen( $c['thumbDir'] . "/timestamp", "w" ) )
{
fwrite( $fp, $lastChange );
fclose( $fp );
}
print( '<script type="text/javascript">window.onload=function(){window.location.href="' . $_SERVER['REQUEST_URI'] . '";}</script>');
exit;
}
$nfiles = count( $files );
$perPage = $c['rows'] * $c['cols'];
$pages = ceil( $nfiles / $perPage );
$page = ( !empty( $_GET['p'] ) && is_numeric( $_GET['p'] ) ? $_GET['p'] : 1 );
$start = ( $page - 1 ) * $perPage;
if ( $start > $nfiles )
{
$start = 0;
$page = 1;
}
$end = $page * $perPage;
$end = ( $end > $nfiles ? $nfiles : $end );
$out = "<div class=\"imgholder\">";
$a = 0;
for ( $i = $start; $i < $end; $i++ )
{
$a++;
$out .= "\t<div class=\"imgdiv\">";
$out .= "<a href=\"$c[imageDir]/$files[$i]\" target=\"blank_\"><img src=\"$c[thumbDir]/$files[$i]\" style=\"border: 0px\"></a></div>\n";
if ( $a % $c['cols'] == 0 )
{
$out .= "\t<br style=\"clear: both\">\n";
}
}
if ( $a % $c['cols'] != 0 )
{
$out .= "\t<br style=\"clear: both\">\n";
}
$out .= "</div>\n<div id=\"pager\">\n";
$out .= "<br>";
$out .= "Viser " . ( $start + 1 ) . " til $end af $nfiles billeder. ";
for ( $i = 1; $i <= $pages; $i++ )
{
if ( $i == $page )
{
$out .= "<b> $i </b>";
}
else
{
$out .= "<a href=\"$_SERVER[PHP_SELF]?p=$i\"> $i </a>";
}
if ( $i != $pages )
{
$out .= "|";
}
}
$out .= "</div>";
?>
<style type="text/css">
#imgholder {
width: <?= ( ( $c['maxWidth'] + 4 ) * $c['cols'] ) ?>px;
}
DIV.imgdiv:hover {
background-color: #ffd;
}
.imgdiv {
text-align: center;
padding: 2px;
width: <?= $c['maxWidth'] ?>px;
height: <?= $c['maxHeight'] ?>px;
float: left;
}
</style>
<div id="container"><?= $out ?></div>
_____
Mvh. Niels
