Hallo,
ich habe ein Tumbnail Script was funktoniert, nur es gibt ein Hacken:
Wenn jetzt z.B. die bilder.php, 40 Bilder läd und es sind erst z.B. 20 geladen und man klickt dann schon auf ein Bild (das Popup öffnet sich) hört das Script auf die weiteren 20 Bilder zuladen... Kann mir da einer helfen? Vielleicht kann da sirgendwie mit einem Timeout zusammen hängen, hab aber leider keine Idee woran das genau liegt...
Hier ist das Script:
ich habe ein Tumbnail Script was funktoniert, nur es gibt ein Hacken:
Wenn jetzt z.B. die bilder.php, 40 Bilder läd und es sind erst z.B. 20 geladen und man klickt dann schon auf ein Bild (das Popup öffnet sich) hört das Script auf die weiteren 20 Bilder zuladen... Kann mir da einer helfen? Vielleicht kann da sirgendwie mit einem Timeout zusammen hängen, hab aber leider keine Idee woran das genau liegt...
Hier ist das Script:
PHP-Code:
<?php
include("admin/dbconnect.php");
include("admin/config.php");
$result = mysql_query("SELECT id, foto, art FROM $media WHERE
kategorie = 'walls2004' ORDER BY id desc") or die(mysql_error());
function thumb_popup($file, $save, $width, $height, $prop = TRUE) {
if(!function_exists("show_popup")) {
function show_popup($original, $thumb) {
$infos = @getimagesize($original);
$w = $infos[0] + 40;
$h = $infos[1] + 40;
$infos_th = @getimagesize($thumb);
$link = "<a href=\"javascript:void(0);\"
onclick=\"window.open('".$original."', 'window".md5(microtime())."',
'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0,
resizable=1, width=".$w.", height=".$h.", left = 20, top = 20');\">";
$link .= "<img src=\"".$thumb."\" border=\"0\" ".$infos_th[3]."
style=\"filter:alpha(opacity=50)\" onMouseOver=\"nereidFade(this,100,100,100);\"
onMouseOut=\"nereidFade(this,50,100,100);\"></a>\n";
return $link;
}
}
if(!file_exists($save) || @filemtime($thumb)< @filemtime($file)) {
@unlink($save);
$infos = @getimagesize($file);
if($prop) {
// Proportionen erhalten
$iWidth = $infos[0];
$iHeight = $infos[1];
$iRatioW = $width / $iWidth;
$iRatioH = $height / $iHeight;
if ($iRatioW < $iRatioH)
{
$iNewW = $iWidth * $iRatioW;
$iNewH = $iHeight * $iRatioW;
} else {
$iNewW = $iWidth * $iRatioH;
$iNewH = $iHeight * $iRatioH;
} // end if
} else {
// Strecken und Stauchen auf Größe
$iNewW = $width;
$iNewH = $height;
}
if($infos[2] == 2) {
// Bild ist vom Typ jpg
$imgA = imagecreatefromjpeg($file);
$imgB = imagecreatetruecolor($iNewW,$iNewH);
imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW,
$iNewH, $infos[0], $infos[1]);
imagejpeg($imgB, $save);
return show_popup($file, $save);
} elseif($infos[2] == 3) {
// Bild ist vom Typ png
$imgA = imagecreatefrompng($file);
$imgB = imagecreatetruecolor($iNewW, $iNewH);
imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW,
$iNewH, $infos[0], $infos[1]);
imagepng($imgB, $save);
return show_popup($file, $save);
} else {
return FALSE;
}
} else {
return show_popup($file, $save);
}
}
while($row = mysql_fetch_array($result))
{
// Quelldatei
$from = "img/fotos/walls2004/".$row['foto'];
$to2 = "img/fotos/walls2004/th/".$row['foto'];
// Funktionsaufruf ohne Einbehaltung der Proportionen
switch($row['art']) {
case "klein":
echo thumb_popup($from, $to2, 100, 50, FALSE);
$i++; // setzt $i bei jedem foto um 1 höher
break;
case "mittel":
echo thumb_popup($from, $to2, 204, 50, FALSE);
$i+=2; // setzt $i bei jedem foto um 1 höher
break;
case "gross":
echo thumb_popup($from, $to2, 412, 50, FALSE);
$i+=4; // setzt $i bei jedem foto um 4 höher
break;
}
if ($i>3)
{
echo "<br>";
$i=0;
}
}
?>
Kommentar