Scripts
Showfoto
Benodigdheden: PHP met GD-lib (deze is er sowieso voor Windows en Linux!) Webserver 1. Gooi wat foto's onder een en de zelfde map op je webserver. 2. Gooi fotoresize.php, config.php en index.php in deze zelfde map. 3. Verander als je het nodig vind config.php 4. Maak als nodig is onder de map met je foto's een mapje aan met de naam "tumb", en geef deze map lees,schrijf en exec. rechten voor de web-gebruiker! Klaar! Dit script is gemaakt door: Bas Magre' alias Opvolger msn: [email protected] email: [email protected] kijk ook is op http://www.opvolger.net/ er zullen meerdere scripts volgen! ps let net op schrijf fouten... ben nogal dyslecties. is mijn eerste script, dus zal nog wel wat overbodig programeerwerk in zitten...
showfoto
[code]
###config.php###
<?php
$usetumb = true; //thumbfiles maken op server!
# $usetumb = true;
# -als deze functie true is, moet er onder de foto map, een map aangemaakt worden met de naam tumb.
# -deze map moet lees, schrijf en exec rechten krijgen voor elke gebruiker (web genruiker).
# $usetumb = false;
# -er worden geen tumb-files gemaakt, hierdoor moet je server steeds opnieuw alle foto's resizeen,
# wat veel cpu kracht kost en dus veel tijd met laden!
$tumb = 100; //grote thumbfoto
# $tumb = 100;
# dit geeft de grote weer van de tumb file... zodat de tumb file nooit hoger of breder wordt als 100 pixels
$aantalrijen = 4; // aantal rijen met foto's in index
$aantalkolom = 4; //aantal kolomen met foto's in index
$showfoto = true; //foto in $groot formaat nog is weergeven
# $showfoto = true;
# dan krijg je nog een tussen maar van de foto te zien ($groot). en kan je bovenaan de pagine nog 2 foto's terug of vooruit klikken!
# $showfoto = false;
# dan krijg direct een link naar de orginale foto (van uit index). geen next en previous foto's!
$groot=600; //grote showfoto (als $showfoto = true)
# als $groot = 0, wordt de orginale grote weergegeven met next en previous foto's!
$weergeven_filename = false; //weergeven van filename onder het plaatje
$text = "Tekst onder aan showfoto!";
# $text = "test";
# is de tekst die onderaan showfoto wordt neergezet
?>
### einde config.php ###
### fotoresize.php ###
<?php
include 'config.php';
$file = $_GET['foto'];
$groot = $_GET['groot'];
if ($usetumb == true){
//dir maken als hij nog niet bestaat!
if (is_dir("tumb")==false)
{
mkdir("tumb/", 0777);
}
}
//bekijken of tumb al gemaakt is!
if (is_file("tumb/$groot" . "-" . "$file")==false | $usetumb==false)
//zo niet maken!
{
// Get new dimensions
list($breed, $hoog) = getimagesize($file);
// niet resize als er geen grote is ingevuld, of wanneer plaatje kleiner is dan gewenste grootte
if ($groot > 0 & ($groot < $breed | $groot < $hoog))
{
$new_breed =$groot ;
$new_hoog = $groot;
if ($new_breed && ($breed < $hoog)) {
$new_breed = ($new_hoog / $hoog) * $breed;
} else {
$new_hoog = ($new_breed / $breed) * $hoog;
}
}else{
$new_breed =$breed;
$new_hoog = $hoog;
}
// Content type
header('Content-type: image/jpeg');
// Resample (JPG)
$new_image = imagecreatetruecolor($new_breed, $new_hoog);
//als gif is maken van gif anders jp(e)g
if (eregi("[.]gif",$file))
{
//gif
$image = imagecreatefromgif($file);
}else{
//jpeg
$image = imagecreatefromjpeg($file);
}
imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_breed, $new_hoog, $breed, $hoog);
imagedestroy($image);
// Output
if ($groot > 300 | $usetumb == false)
{
imagejpeg($new_image, null, 100);
}else{
imagejpeg($new_image, "tumb/$groot" . "-" . "$file", 100);
imagejpeg(imagecreatefromjpeg("tumb/$groot" . "-" . "$file"), null , 100);
}
}else{
//anders plaatje alleen weergeven!
imagejpeg(imagecreatefromjpeg("tumb/$groot" . "-" . "$file"), null , 100);
}
imagedestroy($new_image);
imagedestroy("tumb/$groot" . "-" . "$file");
?>
### einde fotoresize.php ###
### index.php ###
<?php
include 'config.php';
$indexbegin = $_GET['index'];
$fotobegin = $_GET['foto'];
$picbegin = $_GET['pic'];
if ($indexbegin == null)
{
$indexbegin = 1;
}
if ($fotobegin == null)
{
index($indexbegin);
}else{
showfoto($fotobegin,$picbegin);
}
function index($index)
{
extract($GLOBALS);
?>
<center>
<table><tr><td>
<table>
<?php
$pic_teller=0; //telt de plaatjes
$i_teller = 0; //teller voor indelen table.
//uitzondering voor index 1 (null)
if ($index == 1)
{
$pic_vanaf=0;
}else{
//bepalen vanaf welk plaatje je moet weergeven. (vanaf index 1)
$pic_vanaf=$aantalrijen*$aantalkolom*($index-1);
}
if ($handle = opendir('.'))
{
while (false !== ($file = readdir($handle)))
{
if(eregi("[.]jpg",$file)|eregi("[.]jpeg",$file)|eregi("[.]gif",$file))
{
$pic_teller++;
//plaatje van alleen index weergeven rest niks mee doen!
if (($pic_vanaf < $pic_teller) & (($pic_teller) <= ($aantalrijen*$aantalkolom*$index)))
{
if ($i_teller==$aantalkolom)
{
$i_teller=0;
}
if ($i_teller==0)
{
echo"<tr>\n";
}
$foto = str_replace(" ","%20", $file);
echo "<td align=\"center\" valign=\"bottom\">\n<table><tr><td>";
if ($showfoto==true)
{
$pic_scherm = $aantalkolom*$aantalrijen;
echo "<a href=index.php?foto=$foto&pic=$pic_teller>";
}else{
echo "<a href=$foto>";
}
echo "<img border=\"0\" src=\"fotoresize.php?foto=$foto&groot=$tumb\"></a></td></tr>\n";
if ($weergeven_filename == true)
{
echo "<tr><td align=\"center\">$file</td></tr>";
}
echo "</table></td>\n";
if ($i_teller==$aantalkolom-1)
{
echo"\n</tr>";
}
$i_teller++;
}
}
}
closedir($handle);
}
//index next en terug!
echo "</table></td></tr><tr>";
echo "<td align=left>page:";
//copy $backindex om terug te kunnen gaan.
$backindex = 1;
while ($backindex<$index)
{
echo "<a href=index.php?index=$backindex>[$backindex]</a>";
$backindex++;
}
// hier ben je nu!
echo "[$index]";
//copy $nextindex om vooruit te kunnen gaan
$nextindex = $index;
while ($pic_teller>$aantalkolom*$aantalrijen*$nextindex)
{
$nextindex++;
echo "<a href=index.php?index=$nextindex>[$nextindex]</a>";
}
echo "</td></tr>";
echo "</table></center>";
}
###showfoto###
function showfoto($foto,$pic)
{
extract($GLOBALS);
$fotopro20 = str_replace(" ","%20",$_GET['foto']);
$pic_aantal = $aantalkolom * $aantalrijen; //aantal op een scherm!
echo "<center>";
$pic_teller=0;
if ($handle = opendir('.'))
{
echo"<table width=500><tr>\n";
$bla=3;
while ($bla>$pic)
{
//lege <td></td> als voor eerste 2 paaltjes bij pic1 en pic2.
$bla--;
echo "<td width=100></td>";
}
while (false !== ($file = readdir($handle)))
{
if(eregi("[.]jpg",$file)|eregi("[.]jpeg",$file)|eregi("[.]gif",$file))
{
$pic_teller++;
if (($pic_teller+2 >= $pic)&($pic_teller-2 <= $pic))
{
if (eregi("[.]gif",$file))
{
$giftumb=1;
}else{
$giftumb=0;
}
echo "<td width=\"100\" height=\"150\" valign=bottom>";
//filename met %20
$filepro20 = str_replace(" ","%20",$file);
//bereken index voorplaatje!
$pic_temp = $pic_teller;
$newindex=1;
while ($pic_temp > $pic_aantal)
{
$pic_temp = $pic_temp - $pic_aantal;
$newindex++;
}
echo "<table><tr>";
switch ($pic_teller)
{
case $pic-1:
echo "<td height=40><center><a href=index.php?foto=$filepro20&pic=$pic_teller><<Previous</center></a></td></tr><tr>";
echo "<td height=100><center><a href=index.php?foto=$filepro20&pic=$pic_teller>";
echo "<img border=\"0\" src=\"fotoresize.php?foto=$filepro20&groot=100\"/>";
echo "</a></center></td>";
break;
case $pic+1:
echo "<td height=40><center><a href=index.php?foto=$filepro20&pic=$pic_teller>Next>></center></a></td></tr><tr>";
echo "<td height=100><center><a href=index.php?foto=$filepro20&pic=$pic_teller>";
echo "<img border=\"0\" src=\"fotoresize.php?foto=$filepro20&groot=100\"/>";
echo "</a></center></td>";
break;
case $pic:
echo "<td height=40><center><a href=index.php?index=$newindex>index</a></center></td></tr><tr>";
echo "<td height=100><img border=\"0\" src=\"fotoresize.php?foto=$filepro20&groot=100\"/></td>";
break;
default:
echo "<td height=100><center><a href=index.php?foto=$filepro20&pic=$pic_teller>";
echo "<img border=\"0\" src=\"fotoresize.php?foto=$filepro20&groot=100\"/>";
echo "</a></center></td>";
break;
}
if ($weergeven_filename == true)
{
echo "</tr><tr><td align=\"center\">$file</td>";
}
echo "</tr></table>";
echo "</center></td>";
}
}
}
// laatste 2 lege vakjes bij laatste 2 pic's
switch ($pic)
{
case $pic_teller:
echo "<td width=100></td>";
//gaat naar 2 lege vakken want geen break!
case $pic_teller-1:
echo "<td width=100></td>";
break;
}
echo "</tr></table>\n";
}
echo "<a href=\"$fotopro20\" target=_blank><img border=\"0\" src=\"fotoresize.php?foto=$foto&gif=$gif&groot=$groot&dir=$pro20dir\"></a><br>\n";
echo "$text";
echo "</center>";
}
?>
### einde index.php ###[/code]
Reacties
0