Ok...
Her under er der et eksemble på hvordan det kunne laves.
Egentlig er denne ikke så dynamisk, men så alligevel
Den indeksere alle billeder i en mappe og laver thumbs af dem, de udskrives så i en tabbel med 3 kolonner og x antal rækker.
galleri.php:
<?php
# Variabel fra browseren med navnet paa mappen som skal vises
$mappe = $_GET[mappe];
# Variabler til at lave rækkerne og kolonnerne
$i = 0;
$o = 3;
$p = 3;
$q = 3;
# Stien aabnes
$sti = opendir('images/galleri/'.$mappe.'/'); # Rediger denne sti så den passer til dit behov
# Array til at vise billederne
$all = array();
# Tabellen startes
echo "<table id='imgt' border='0'>";
# Udregninger og udskrivningen starter
while (false !== ($file = readdir($sti))) {
# Tager ikke stier med med navnene ".", ".." eller "Thumbs.db"
if ($file != "." && $file != ".." && $file != "Thumbs.db") {
array_push($all, $file);
$r = 0;
while($all[$r] != $file) {
$r++;
}
# Laver rækkerne
$i = $i + 1;
$o = $o + 3;
if($i == ($q + 1)) {
$q = $q + 3;
}
if($i == 1 || $i == $o) {
echo "<tr>";
}
# Udsrkvier billedet
?>
<td align="center" id='img' height="167" width="240"><img onClick="window.open('uses/visbilled.php?m=<?=$mappe;?>&nr1=<?=$r;?>', 'Preview', 'left=0, status=no, scrollbar=yes'); return true;" border='1' src='uses/thumb.php?nr=<?=$file?>&s=<?=$mappe?>'></td>
<?php
# Lukker rækkerne igen
if($i == $q) {
echo "</tr>";
}
}
}
# Stien lukkes
closedir($sti);
# Tabellen lukkes
echo '</table>';
?>
thumb.php:
<?php
# Variabler fra browseren andgaaende hvilken fil der skal laves en thumb af
$fil = $_REQUEST[nr];
$mappe = $_REQUEST[s];
$filnavn = "../images/galleri/".$mappe."/".$fil; //Sti til fil
$hojde = 150; // Hoejden for billedet, dette bruges så man ikke "vrider" et billede
header('Content-type: image/jpeg');
// Finder de nye størelser
list($width, $height) = getimagesize($filnavn);
$storelse = $hojde / $height;
$n_width = $width * $storelse;
$n_height = $height * $storelse;
$image_p = imagecreatetruecolor($n_width, $n_height);
$image = imagecreatefromjpeg($filnavn);
imagecopyresized($image_p, $image, 0, 0, 0, 0, $n_width, $n_height, $width, $height);
imagejpeg($image_p, null, 100);
?>
visbillede.php:
<script language="javascript">
// Javascript til at aendre popup'ens stoerrelse
function resize(h,w) {
intwidth = parseInt(w);
intheight = parseInt(h);
window.resizeTo(intwidth,intheight);
}
</script>
<?php
# Udfoere de samme udregninger som i galleri.php for at kunne skifte billederne her i
$m = $_GET[m];
$r = $_REQUEST[nr1];
$all = array();
$sti = opendir('../images/galleri/'.$m.'/');
while (false !== ($file = readdir($sti))) {
if ($file != "." && $file != ".." && $file != "Thumbs.db") {
array_push($all, $file);
}
}
list($width, $height) = getimagesize("../images/galleri/".$m."/".$all[$r]);
$width1 = $width + 12;
$height1 = $height + 80;
$n = 0;
if($height1 > 900) {
$a = 1 - (($height1 - 900) / $height);
$width1 = $width1 * $a;
$height1 = ($height1 * $a)+30;
$width = $width * $a;
$height = $height * $a;
$n = 1;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../style.css" rel="stylesheet" type="text/css"> <!-- Stylesheet stien -->
<title>Billedviser</title>
</head>
<!-- Loader javascript -->
<body onLoad="resize(<?=$height1;?>,<?=$width1;?>)">
<center>
<!-- div defineret i stylesheet, dette kan self. aendres -->
<div id="visbilled">
<a href='#' title='Klik for at lukke'>
<?php
# Tjekker om billedet er formindsket eller bare skal vises i sin originale stoerrelse
if($n == 1) {
echo "<img src='../images/galleri/".$m."/".$all[$r]."' onClick='window.close()' width='".$width."' height='".$height."'>";
} else {
echo "<img src='../images/galleri/".$m."/".$all[$r]."' onClick='window.close()'>";
}
?>
</a>
<?php
# Udskriver links frem og tilbage
$r1 = count($all);
if($r == 0 && $r1 != 1) {
$r++;
echo "<a href='?nr1=".$r."&m=".$m."'>Næste billed</a>";
} elseif($r == ($r1-1) && $r != 0) {
$r--;
echo "<a href='?nr1=".$r."&m=".$m."'>Forrige billed</a> | <a href='#' onClick='window.close()'>Luk vindue</a>";
} elseif($r == 0 && $r1 == 1) {
echo "<a href='#' onClick='window.close()'>Luk vindue</a>";
} else {
$r++;
$r2 = $r - 2;
echo "<a href='?nr1=".$r2."&m=".$m."'>Forrige billed</a> | <a href='?nr1=".$r."&m=".$m."'>Næste billed</a>";
}
?>
</div>
</center>
</body>
</html>
Jeg har kommenteret lidt hurtigt så spørg hvis du for problemer.
Og skriv hvis der er fejl, kan jo være jeg har overset noget
Indlæg senest redigeret d. 26.12.2006 16:09 af Bruger #9674