[PHP] chtit script sympatoche!!! de gallerie d'images en deux secondes

chtit script sympatoche!!! de gallerie d'images en deux secondes [PHP] - PHP - Programmation

Marsh Posté le 28-10-2002 à 22:03:46    

salut
je me suis adapté un ptit script de galerie d'images qui est bien sympatique, ça genere une super gallerie d'images et c hautement configurable ;)
voila pour ceux que ça intéresse (j'ai pompé la génération de thumbnails à un autre gars je sais plus ou mais bon :p )
 
pour le faire fonctionner il suffit de trois elements:
 
le fichier index.php
un rep th avec full access (ie lecture ecriture)
un rep images avec toutes les images
 
 
voila le code de la page index.php


 
<?
 
#################################
# configuration
#################################
 
 
if (!isset($_GET['c']))
{
        $cols = 5;
}
else
{
        $cols = $_GET['c'];
}
 
if (!isset($_GET['r']))
{
        $rows = 5;
}
else
{
        $rows = $_GET['r'];
}
 
if (!isset($_GET['p']))
{
        $page = 1;
}
else
{
        $page = $_GET['p'];
}
 
 
 
 
# on construit une query string a partir des parametre acceptes
$new_query = "&r=".$rows."&c=".$cols;
 
 
 
# le rep d'images ...
if (!isset($_GET['rep']))
{
        $imagedir = "images/" ;
}
 
 
function isAfile($url)
{
        $fp = @fopen("$url","r" );
        if ($fp)
                return 1;
        return 0;
}
 
$rep=opendir($imagedir);
 
 
$out_table = "<table border='1'>";
$cnt = 0;
while ($nom=readdir($rep))
{
        if (!ereg("^\.", $nom))
        {
                echo "<!--".$nom."-->\n";
                if ( ($cnt < $page*$cols*$rows) && ($cnt >= ($page-1)*$cols*$rows) )
                {
 
                                if (!isAfile('th/th_'.$nom))
                                {
                                        $nom2="images/".$nom;
                                        $handle = imagecreatefromjpeg($nom2);
                                        $x=imagesx($handle);
                                        $y=imagesy($handle);
                                        $k=$x/100;
                                        $y_dest=$y/$k;
                                        $dst_img = imagecreatetruecolor(100,$y_dest);
                                        imagecopyresampled($dst_img, $handle, 0, 0, 0, 0, 100, $y_dest,$x, $y);
                                        imagejpeg($dst_img,"th/th_$nom", 60);
                                        imagedestroy($handle);
                                        imagedestroy($dst_img);
                                }
                                if ($cnt%$cols == 0)
                                {
                                        $out_table .= "<tr>";
                                }
                                $out_table .= "<td><a href='".$imagedir.$nom."' target='photos'><img src='th/th_".$nom."'></a><br><small>".$imagedir.$nom."</small></td>";
                                if ($cnt%$cols == ($cols-1))
                                {
                                        $out_table .= "</tr>";
                                }
                }
                $cnt++;
        }
}
$out_table .= "</table>";
 
$tmp = "pages : ";
for ($i=1;$i<=ceil($cnt/($cols*$rows));$i++)
{
        if ($page == $i)
        {
                $tmp .= " " . $i . " " ;
        }
        else
        {
                $tmp .= " <a href='?p=".$i.$new_query."'>".$i."</a> ";
        }
}
echo "<center>" . $tmp . $out_table . $tmp . "</center>";
?>
 
 


 
 
 
voila si vous voulez essayer ou avez des ptites modifs pratique :p


Message édité par k666 le 28-10-2002 à 22:07:57
Reply

Marsh Posté le 28-10-2002 à 22:03:46   

Reply

Marsh Posté le 29-10-2002 à 11:19:30    

j'ai cleané le code un peu avec des ptit commentaires
 

Code :
  1. <?
  2. #################################
  3. # configuration
  4. #################################
  5. // 5 colonnes par défaut ou GET c
  6. if (!isset($_GET['c']))
  7. {
  8. $cols = 5;
  9. }
  10. else
  11. {
  12. $cols = $_GET['c'];
  13. }
  14. // 5 lignes par défaut ou GET r
  15. if (!isset($_GET['r']))
  16. {
  17. $rows = 5;
  18. }
  19. else
  20. {
  21. $rows = $_GET['r'];
  22. }
  23. // page 1 par défaut ou GET p
  24. if (!isset($_GET['p']))
  25. {
  26. $page = 1;
  27. }
  28. else
  29. {
  30. $page = $_GET['p'];
  31. }
  32. // le rep d'images par défaut images/  
  33. if (!isset($_GET['rep']))
  34. {
  35. $imagedir = "images/" ;
  36. }
  37. else
  38. {
  39. $imagedir = $_GET['rep'];
  40. }
  41. // on construit une query string a partir des parametre acceptes  
  42. $new_query = "&r=".$rows."&c=".$cols;
  43. // cette fonction tcheck si le fichier existe en lecture
  44. function isAfile($url)
  45. {
  46.        $fp = @fopen("$url","r" );
  47.        if ($fp)
  48.                return 1;
  49.        return 0;
  50. }
  51. // on ouvre le repertoire d'images
  52. $rep=opendir($imagedir);
  53. // on prépare le tableau d'affichage
  54. $out_table = "<table border='1'>";
  55. $cnt = 0;
  56. // on balaye les fichiers
  57. while ($nom=readdir($rep))
  58. {
  59. if (!ereg("^\.", $nom))
  60. {
  61.  echo "<!--".$nom."-->\n";
  62.  if ( ($cnt < $page*$cols*$rows) && ($cnt >= ($page-1)*$cols*$rows) )
  63.  {
  64.   // on tcheck si le thumbnail existe
  65.   if (!isAfile('th/th_'.$nom))
  66.   {
  67.    // on crée le thumb
  68.    $nom2="images/".$nom;
  69.    $handle = imagecreatefromjpeg($nom2);
  70.    $x=imagesx($handle);
  71.    $y=imagesy($handle);
  72.    $k=$x/100;
  73.    $y_dest=$y/$k;
  74.    $dst_img = imagecreatetruecolor(100,$y_dest);
  75.    imagecopyresampled($dst_img, $handle, 0, 0, 0, 0, 100, $y_dest,$x, $y);
  76.    imagejpeg($dst_img,"th/th_$nom", 60);
  77.    imagedestroy($handle);
  78.    imagedestroy($dst_img);
  79.   }
  80.   // si on est en debut de ligne on rajoute TR
  81.   if ($cnt%$cols == 0) $out_table .= "<tr>";
  82.   // on rajoute la minitaure et son lien dans un TD
  83.   $out_table .= "
  84.      <td>
  85.       <a href='".$imagedir.$nom."' target='photos'><img src='th/th_".$nom."'></a>
  86.       <br><small>".$imagedir.$nom."</small>
  87.      </td>";
  88.   // si on est en fin de ligne on rajoute /TR
  89.   if ($cnt%$cols == ($cols-1)) {$out_table .= "</tr>";}
  90.  }
  91.  $cnt++;
  92. }
  93. }
  94. // on ferme le tableau
  95. $out_table .= "</table>";
  96. // on prépare l'indice de pages
  97. $tmp = "pages : ";
  98. for ($i=1;$i<=ceil($cnt/($cols*$rows));$i++)
  99. {
  100. // si page courante pas de lien
  101. if ($page == $i)
  102. {
  103.     $tmp .= " " . $i . " " ;
  104. }
  105. // si autre page lien vers elle
  106. else
  107. {
  108.     $tmp .= " <a href='?p=".$i.$new_query."'>".$i."</a> ";
  109. }
  110. }
  111. // voila on a tout ce qu'il faut, le tableau de miniatures et liens ($out_table)
  112. // la navigation par page ($tmp) ... on peut tou cracher !!!!!
  113. echo "<center>" . $tmp . $out_table . $tmp . "</center>";
  114. ?>

Reply

Marsh Posté le 29-10-2002 à 11:28:45    

trop de la bombe ce ptit script =P
c pas cher!

Reply

Marsh Posté le 29-10-2002 à 12:00:09    

Reply

Marsh Posté le 29-10-2002 à 12:30:27    

[SDF]Poire a écrit a écrit :

http://www.z0rglub.com/phpwebgallery  :ange:  




y'a même une version 1.2 beta qui vient de sortir : http://www.z0rglub.com/phpwebgalle [...] .php?t=310  :hello:

Reply

Marsh Posté le 29-10-2002 à 12:55:35    

z0rglub a écrit a écrit :

 
y'a même une version 1.2 beta qui vient de sortir : http://www.z0rglub.com/phpwebgalle [...] .php?t=310  :hello:  




 :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 29-10-2002 à 14:01:09    

yaisse c clair :) ce truc est bcp plus puissant! mais mon script est adapté pour quelqu'un qui a vraiment pas le temps :) et qui n'a pas spécialement de mysql ou autre ... ça sert uniquement à ça ;) suffit de mmettre une page php et ça roule no souci 100% convivialité :p
 
mais j'avoue que je vais essayer le phpwebgallery ça tue :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed