[GastForen Programmierung/Entwicklung PHP und MySQL Gallery - 20 bilder pro seite

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Gallery - 20 bilder pro seite

jopli
Beiträge gesamt: 25

1. Sep 2005, 10:16
Beitrag # 1 von 4
Bewertung:
(1255 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

möchte, dass es mir bei der gallery 20 fotos pro seite anzeigt. habe da gedacht an etwas wie die parameter für die nächsten 20 fotos mit datei.php?offset=20 zu übergeben.
das script funktioniert so, dass alle jpg/gif etc. im ordner wie das script als gallery angezeigt wird. thumbs werden erstellt.
kann mir jemand helfen?
vielen dank!

gruess
jopli

Hier das script:
Code
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<HTML>
<script>
PositionX = 100;
PositionY = 100;

defaultWidth = 500;
defaultHeight = 500;

var AutoClose = true;

if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');
writeln('window.innerWidth=document.images["IMAGE"].width;');writeln('window.innerHeight=document.images["IMAGE"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="IMAGE" src='+imageURL+' style="display:block"></body></html>');
close();
}}

</script>

<?php

$thumb = "thumbs"; // Folder für Thumbnails (Vorschaubilder)
$thumbwidth = 112; // Breite der Thumbnails
$imagequality = 80; // Qualität der Thumbnails
$cols = 4; // Anzahl Bilder in einer Linie
$vi = "Bild "; // Erscheint beim Überfahren des Fotos
$sname = "index.php"; // datei name für back funktion
$isz = "Grösse"; // Beschreibung der Grösse der Fotos
$msgnav = ""; // ausgeschalten
$msgcp = "Bild"; // Erscheint beim Herumblätter z.B: XX 2 von 5
$msgof = "von"; // Erscheint beim Herumblätter z.B: Bild 2 XX 5
$msgback = "Bilder-&Uuml;bersicht"; // Gallery-Benennung
$back = "Vorheriges Bild"; // Bezeichnung für Zurückblättern
$next = "Nächstes Bild"; // Bezeichnung für Vorblättern
$windows = " PopUp "; // Text für Schaltfläche für neues Fenster
$popup = " Patrick Jordi Foto-Gallery "; // Bezeichnung für Titelleiste neues Fenster
$file = file("index.txt");

if (isset($_GET['iid'])) {
$_GET['iid'];
} elseif (isset($_POST['iid'])) {
$_POST['iid'];
}

$files = array();
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (eregi("\.jpe?g$", $file) ||
eregi("\.gif$", $file) ||
eregi("\.png$", $file)) {
$files[] = $file;
}
}
}
closedir($handle);
}


sort($files);

if (!is_dir($thumb)) {
mkdir($thumb, 0755);
}

$i = 0;
$th = array();
$iw = array();
$ih = array();
$ifs = array();
foreach ($files as $image) {
$thumbimage = $thumb."/".$image;
$thumbbig = $image;
$thumb_exists = file_exists($thumbimage);
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$type = $size[2];
if (!$thumb_exists) {
set_time_limit(30);
switch ($type) {
case 1 :
$im = ImageCreateFromGIF($image);
break;
case 2 :
$im = ImageCreateFromJPEG($image);
break;
case 3 :
$im = ImageCreateFromPNG($image);
break;
}
$newwidth = $thumbwidth;
$newheight = ($newwidth / $width) * $height;
$im2 = ImageCreateTrueColor($newwidth,$newheight);
ImageCopyResampled($im2,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
switch ($type) {
case 1:
ImageGIF($im2, $thumbimage);
break;
case 2:
ImageJpeg($im2, $thumbimage, $imagequality);
break;
case 3:
ImagePNG($im2, $thumbimage);
break;
imagedestroy($im);
imagedestroy($im2);
}

}
$th[$i] = $thumbimage;
$thb[$i] = $thumbbig;
$iw[$i] = $width;
$ih[$i] = $height;
$ifs[$i] = round((@filesize($image)/1024), 1);
$i++;
}

echo "<p class=\"titelblau\">";
echo "Gallery";
echo "</p>";

echo "<table border=\"0\" align=\"center\" cellspacing=\"0\"
cellpadding=\"3\">";
if (!isset($iid)) {
$rows = round(count($th)/$cols);
if (($rows * $cols) < (count($th))) {
$rows++;
}
for ($i = 1; $i <= $rows; $i++) {
echo "<tr>";
for ($j = 1; $j <= $cols; $j++) {
$td = (($i - 1) * $cols) + $j;
$iu = ($td - 1);
if (isset($th[$iu])) {
$op = "";
$op .= "<td><font size=\"1\">\n<div align=\"center\">\n<br>\n";
$op .= "<a title=\"$vi $thb[$iu]\" href=\"$sname?iid=$iu\">\n";
$op .= "<img src=\"$th[$iu]\" border=\"0\">\n";
$op .= "<br><a href=\"javascript:popImage('$thb[$iu]','$popup')\">$windows</a>\n";
$op .= "<br>\n</div>\n</td>\n";
echo $op;
} else {
echo "<td>\n<br></td>\n";
}
}
echo "</tr>\n";
}

} else {
$iid2 = $iid+1;
$tot = count($th);
$kleinste_iid = 0;
$groeste_iid = $tot-1;
$op = "";
$op .= "<tr>\n<td>\n<div align=\"center\"> $msgcp $iid2 $msgof $tot </td>\n</tr>\n<tr>\n";
$op .= "<tr>\n<td>\n<div align=\"center\">";
if ($iid>$kleinste_iid){
$op .= "<a href=\"$sname?iid=" . ($iid-1) . "\">$back</A> | ";
}
$op .= "<a href=\"$sname\">$msgback</a>";
if ($iid<$groeste_iid){
$op .= " | <a href=\"$sname?iid=" . ($iid+1) . "\">$next</A>";
}
$op .= "</td>\n</tr>\n<tr>\n";
$op .= "<td>\n<div align=\"center\">\n";
$op .= "<img src=\"$files[$iid]\" border=\"0\">\n";
$op .= "<br>$isz: $iw[$iid] x $ih[$iid]\n";
$op .= "<br>$ifs[$iid] Kb.</a>\n";
$op .= "<br>\n</div>\n</td>\n</tr>\n";
$op .= "<tr>\n<td>\n<div align=\"center\">";
if ($iid>$kleinste_iid){
$op .= "<a href=\"$sname?iid=" . ($iid-1) . "\">$back</A> | ";
}
$op .= "<a href=\"$sname\">$msgback</a>";
if ($iid<$groeste_iid){
$op .= " | <a href=\"$sname?iid=" . ($iid+1) . "\">$next</A>";
}
$op .= "</td>\n</tr>\n<tr>\n";
echo $op;

}
echo "</table>";

?>
X

Gallery - 20 bilder pro seite

Pozor
Beiträge gesamt: 892

1. Sep 2005, 11:38
Beitrag # 2 von 4
Beitrag ID: #185344
Bewertung:
(1247 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

schau mal hier rein:
Pagination


als Antwort auf: [#185329]

Gallery - 20 bilder pro seite

jopli
Beiträge gesamt: 25

1. Sep 2005, 20:13
Beitrag # 3 von 4
Beitrag ID: #185478
Bewertung:
(1226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Salü Stefan
genau, so was hab ich gemeint.

Aber bringe das irgendwie nicht zum laufen...

hier mein jetziger quellcode
Code
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<HTML>
<script>
PositionX = 100;
PositionY = 100;

defaultWidth = 500;
defaultHeight = 500;

var AutoClose = true;

if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');
writeln('window.innerWidth=document.images["IMAGE"].width;');writeln('window.innerHeight=document.images["IMAGE"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="IMAGE" src='+imageURL+' style="display:block"></body></html>');
close();
}}

</script>

<?php

global $PHP_SELF;
define('_PAGESIZE_', 8);


$thumb = "thumbs"; // Folder für Thumbnails (Vorschaubilder)
$thumbwidth = 112; // Breite der Thumbnails
$imagequality = 80; // Qualität der Thumbnails
$cols = 4; // Anzahl Bilder in einer Linie
$vi = "Bild "; // Erscheint beim Überfahren des Fotos
$sname = "index.php"; // datei name für back funktion
$isz = "Grösse"; // Beschreibung der Grösse der Fotos
$msgnav = ""; // ausgeschalten
$msgcp = "Bild"; // Erscheint beim Herumblätter z.B: XX 2 von 5
$msgof = "von"; // Erscheint beim Herumblätter z.B: Bild 2 XX 5
$msgback = "Bilder-&Uuml;bersicht"; // Gallery-Benennung
$back = "Vorheriges Bild"; // Bezeichnung für Zurückblättern
$next = "Nächstes Bild"; // Bezeichnung für Vorblättern
$windows = " PopUp "; // Text für Schaltfläche für neues Fenster
$popup = " Patrick Jordi Foto-Gallery "; // Bezeichnung für Titelleiste neues Fenster
$file = file("index.txt");
$id_gallery = 3;

if (isset($_GET['iid'])) {
$_GET['iid'];
} elseif (isset($_POST['iid'])) {
$_POST['iid'];
}

$files = array();
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (eregi("\.jpe?g$", $file) ||
eregi("\.gif$", $file) ||
eregi("\.png$", $file)) {
$files[] = $file;
}
}
}
closedir($handle);
}


sort($files);

if (!is_dir($thumb)) {
mkdir($thumb, 0755);
}

$i = 0;
$th = array();
$iw = array();
$ih = array();
$ifs = array();
foreach ($files as $image) {
$thumbimage = $thumb."/".$image;
$thumbbig = $image;
$thumb_exists = file_exists($thumbimage);
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$type = $size[2];
if (!$thumb_exists) {
set_time_limit(30);
switch ($type) {
case 1 :
$im = ImageCreateFromGIF($image);
break;
case 2 :
$im = ImageCreateFromJPEG($image);
break;
case 3 :
$im = ImageCreateFromPNG($image);
break;
}
$newwidth = $thumbwidth;
$newheight = ($newwidth / $width) * $height;
$im2 = ImageCreateTrueColor($newwidth,$newheight);
ImageCopyResampled($im2,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
switch ($type) {
case 1:
ImageGIF($im2, $thumbimage);
break;
case 2:
ImageJpeg($im2, $thumbimage, $imagequality);
break;
case 3:
ImagePNG($im2, $thumbimage);
break;
imagedestroy($im);
imagedestroy($im2);
}

}
$th[$i] = $thumbimage;
$thb[$i] = $thumbbig;
$iw[$i] = $width;
$ih[$i] = $height;
$ifs[$i] = round((@filesize($image)/1024), 1);
$i++;
}

$currentpage = $_GET ['page'];
$entrycount = count($th);
$pagesize = _PAGESIZE_;

$pages = ceil($entrycount/$pagesize);

$startentry = ($currentpage- 1)*$pagesize;
$endentry = ($currentpage)*$pagesize;

for($i=$startentry;$i<$endentry;$i++)
{
echo "<table border=\"0\" align=\"center\" cellspacing=\"0\"
cellpadding=\"3\">";
if (!isset($iid)) {
$rows = round(count($th)/$cols);
if (($rows * $cols) < (count($th))) {
$rows++;
}
for ($i = 1; $i <= $rows; $i++) {
echo "<tr>";
for ($j = 1; $j <= $cols; $j++) {
$td = (($i - 1) * $cols) + $j;
$iu = ($td - 1);
if (isset($th[$iu])) {
$op = "";
$op .= "<td><font size=\"1\">\n<div align=\"center\">\n<br>\n";
$op .= "<a title=\"$vi $thb[$iu]\" href=\"$sname?iid=$iu\">\n";
$op .= "<img src=\"$th[$iu]\" border=\"0\">\n";
$op .= "<br><a href=\"javascript:popImage('$thb[$iu]','$popup')\">$windows</a>\n";
$op .= "<br>\n</div>\n</td>\n";
echo $op;
} else {
echo "<td>\n<br></td>\n";
}
}
echo "</tr>\n";
}

} else {
$iid2 = $iid+1;
$tot = count($th);
$kleinste_iid = 0;
$groeste_iid = $tot-1;
$op = "";
$op .= "<tr>\n<td>\n<div align=\"center\"> $msgcp $iid2 $msgof $tot </td>\n</tr>\n<tr>\n";
$op .= "<tr>\n<td>\n<div align=\"center\">";
if ($iid>$kleinste_iid){
$op .= "<a href=\"$sname?iid=" . ($iid-1) . "\">$back</A> | ";
}
$op .= "<a href=\"$sname\">$msgback</a>";
if ($iid<$groeste_iid){
$op .= " | <a href=\"$sname?iid=" . ($iid+1) . "\">$next</A>";
}
$op .= "</td>\n</tr>\n<tr>\n";
$op .= "<td>\n<div align=\"center\">\n";
$op .= "<img src=\"$files[$iid]\" border=\"0\">\n";
$op .= "<br>$isz: $iw[$iid] x $ih[$iid]\n";
$op .= "<br>$ifs[$iid] Kb.</a>\n";
$op .= "<br>\n</div>\n</td>\n</tr>\n";
$op .= "<tr>\n<td>\n<div align=\"center\">";
if ($iid>$kleinste_iid){
$op .= "<a href=\"$sname?iid=" . ($iid-1) . "\">$back</A> | ";
}
$op .= "<a href=\"$sname\">$msgback</a>";
if ($iid<$groeste_iid){
$op .= " | <a href=\"$sname?iid=" . ($iid+1) . "\">$next</A>";
}
$op .= "</td>\n</tr>\n<tr>\n";
echo $op;

}

echo "</table>";
}

?>


Problem: Es zeigt mir alle Thumbnails an... Hab das ganze irgendwie angepasst wies nur gut. aber funzt nicht so ganz....

Grüsse
Jopli


als Antwort auf: [#185344]

Gallery - 20 bilder pro seite

Pozor
Beiträge gesamt: 892

1. Sep 2005, 23:39
Beitrag # 4 von 4
Beitrag ID: #185509
Bewertung:
(1224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich versuche solche sachen erst mit Testdaten und nur der Grundstruktur.
Ich versuche immer möglichst einfache Funktionen zu schreiben,
die nur ein Teil des Problems löst (z.B files lesen, pagination berechnen,Ausgabe),
so wird es übersichtlicher.


als Antwort auf: [#185478]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=311

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/