PHP ver gevorderde |
|
awel, een week of twee geleden heb ik net zo'n script toegevoegd maar het staat nogal altijd niet(!) bij de scripts/ nbg niet gekeurd...
edit: miss kan je het wel zien: http://www.site...amp;id=834
edit2:
het script:
<html>
<head>
<title>Untitled</title>
<script type="text/JavaScript">
<!-- hier wordt het popupje met de image aangemaakt
function nieuw_venster(image)
{
venster = window.open(image,'Image','width=600,height=500,toolbar=no,menubar=no,statusbar=no,scrollbars=no');
}
//-->
</script>
</head>
<body>
<?php
$dir="C:\\hier\\je\\map\\met\\de\\fotos\\";//hier de map met de foto's
if (!empty($_GET)){ //als de pagina de eerste keer is aangeroepen heeft $pagina nog geen value dus wijs ik ze 1 toe
$pagina=$_GET['pagina'];
}else{
$pagina=1;
}
if(is_dir($dir)){//is het opgegeven path wel degelijk een map? met is_dir wordt dit gecontroleerd
$handle=opendir($dir);//$handle, de map wordt geopend
while(false !== ($image = readdir($handle)))//de map uitlezen
{
if($image != "." AND $image != ".."){//checken dat bestanden . of .. (die worden automatisch door readdir() aangemaakt)niet in de array worden geplaatst
$aimage[]=$image;//afb. in array plaatsen, zo kan je kiezen wat je er daarna mee doet.
}
}
closedir($handle);//de map wordt gesloten
echo("<table>");
while (list ($key, $image) = each ($aimage)) //lees de array $aimage uit.
{
if($key >= (($pagina-1) * 10) AND $key <= (($pagina * 10 )-1)){//checken of het juiste aantal foto's wordt geselecteerd...
if(is_int($key/2)) echo "<tr>";//om een even $key zorgt dit ervoor dat er nieuwe rij wordt geplaatst : dus altijd twee foto's naast elkaar
echo("<td><img src=\"" . $dir.$image . "\" alt=\"" . $image . " | " . ceil(filesize($dir.$image)/1024) . " kB" . "| Key: " . $key . "\" width=100 height=75 onClick=\"nieuw_venster('map_met_fotos/" .$image. "')\" ></td>");//plaats de foto met een <td></td> erond /// + verander hier "map_met_fotos" naar de map waar jouw foto's in staan (!alleen die map!)
if(is_int($key/2)== false) echo "</tr>";//rij wordt beindigt na een oneven $key
}
}
echo ("</table>");
#####vanaf hier begint de pagina-navigatie######
$num_image=count($aimage);//count () telt het aantal elementen in $aimage en geeft het aan $num_image
$num_pagina=ceil($num_image/10);//ceil rond af naar boven: bv. 12 foto's gedeeld door 10 -> 1,2 wordt door ceil 2 pagina
for($i = 1 ; $i <= $num_pagina ; $i++){//hier worden evenveel links geplaast als pagina's
echo(" || <a href=\"fotoalbum.php?pagina=". $i ."\">". $i ."</a> || ");
}
}else
{
die("Het opgegeven path is geen map: ". $dir ." ...");//het opgegeven path is geen map dus laat een foutmelding zien
}
?>
</body>
</html
<html> <head> <title>Untitled</title> <script type="text/JavaScript"> <!-- hier wordt het popupje met de image aangemaakt function nieuw_venster(image) { venster = window.open(image,'Image','width=600,height=500,toolbar=no,menubar=no,statusbar=no,scrollbars=no'); } //--> </script> </head> <body> <?php $dir="C:\\hier\\je\\map\\met\\de\\fotos\\";//hier de map met de foto's if (!empty($_GET)){ //als de pagina de eerste keer is aangeroepen heeft $pagina nog geen value dus wijs ik ze 1 toe $pagina=$_GET['pagina']; }else{ $pagina=1; } if(is_dir($dir)){//is het opgegeven path wel degelijk een map? met is_dir wordt dit gecontroleerd $handle=opendir($dir);//$handle, de map wordt geopend while(false !== ($image = readdir($handle)))//de map uitlezen { if($image != "." AND $image != ".."){//checken dat bestanden . of .. (die worden automatisch door readdir() aangemaakt)niet in de array worden geplaatst $aimage[]=$image;//afb. in array plaatsen, zo kan je kiezen wat je er daarna mee doet. } } closedir($handle);//de map wordt gesloten echo("<table>"); while (list ($key, $image) = each ($aimage)) //lees de array $aimage uit. { if($key >= (($pagina-1) * 10) AND $key <= (($pagina * 10 )-1)){//checken of het juiste aantal foto's wordt geselecteerd... if(is_int($key/2)) echo "<tr>";//om een even $key zorgt dit ervoor dat er nieuwe rij wordt geplaatst : dus altijd twee foto's naast elkaar echo("<td ><img src =\ "" . $dir.$image . "\" alt=\"" . $image . " | " . ceil(filesize($dir.$image)/1024) . " kB" . "| Key: " . $key . "\" width=100 height=75 onClick=\"nieuw_venster('map_met_fotos/" .$image. "')\" ></td>");//plaats de foto met een <td></td> erond /// + verander hier "map_met_fotos" naar de map waar jouw foto's in staan (!alleen die map!) if(is_int($key/2)== false) echo "</tr>";//rij wordt beindigt na een oneven $key } } #####vanaf hier begint de pagina-navigatie###### $num_image=count($aimage);//count () telt het aantal elementen in $aimage en geeft het aan $num_image $num_pagina=ceil($num_image/10);//ceil rond af naar boven: bv. 12 foto's gedeeld door 10 -> 1,2 wordt door ceil 2 pagina for($i = 1 ; $i <= $num_pagina ; $i++){//hier worden evenveel links geplaast als pagina's echo(" || <a href=\"fotoalbum.php?pagina=". $i ."\">". $i ."</a> || "); } }else { die("Het opgegeven path is geen map: ". $dir ." ...");//het opgegeven path is geen map dus laat een foutmelding zien } ?> </body> </html
de uitleg:
Citaat: zo, dit is een simpel fotoalbumpje met pagina-nagivatie
als er op de foto wordt geklikt verschijnt er een popup met de foto vergroot in.
-zet het juiste path van de map met foto's in de variabele $dir
-op regel 52 verander je "map_met_fotos" naar je eigen map met de foto's.
opmerking: zie dat je script juist één map hoger staat dan je afbeeldingen dus : script bv.in c:scripts en je afb. Moeten dan in c:scriptsfotos
good luck with it!
ps: dit is getest/gemaakt op een apache server een werkte perfect. |