begin process at 2010 02 10 09:46:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > GALERIE D'IMAGE SIMPLE ET FACILE A INTEGRER A VOS PAGES EXISTANTES

GALERIE D'IMAGE SIMPLE ET FACILE A INTEGRER A VOS PAGES EXISTANTES


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :galerie, image, photo Niveau :Débutant Date de création :28/05/2007 Date de mise à jour :31/05/2007 19:57:09 Vu / téléchargé :30 268 / 1 749

Auteur : darknessneo

Ecrire un message privé
Site perso
Commentaire sur cette source (37)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce script permet de crrer une galerie d'image. Pour cela il suffit de creer un dossier dans lequel vous placerez vos sous dossier images. Les noms de dossiers devront etre explicite quand au contenu, car nous allons generer une liste de lien hypertext dont les noms seront ceux des sous dossiers.
Ensuite, il faudra integrer une page index a vos sous dossier image. Ce fichier index va s'occuper de tout le reste. Verifier combien de fichiers images se trouve dans son dossier, verifier si un dossier tb existe dans le dossier et le creer le cas echéant. Verifier s'il existe pour chaque image sa miniature dans le dossier tb. Ensuite il va afficher un nombre X de miniatures suivant les valeurs contenu dans la page index.
Si le dossier contient plus d'image qu'il n'en affiche, il va genrer autant de liens de page que necessaire.
Voila... tout simple, avec seulement 2 fichiers a rajouter. Le script s'occupe de tout le reste...

Source

  • //premiere page, qui va lister tout les sous-dossiers d'un répertoire choisi
  • <tr>
  • <td colspan="3" id="borduretitre"><h1>Liste des MANGAS disponible</h1></td> //l'id du tableau correspond à mon fichier css, vous pouvez supprimer la mise en forme du tableau
  • </tr>
  • <tr>
  • <td height="21" id="bordure"></td> // idem, vous pouvez supprimer la mise en forme de la cellule
  • </tr>
  • <tr>
  • <td colspan="3" id="tableau" align="center"> // etc
  • <?php
  • // la fonction qui suit permet de lister les sous répertoires, il est possible de demander a la fonction de lister les sous dossiers, les sous sous dossiers, etc etc, mais ici nous ne le voulons pas
  • function filelist ($startdir="./", $searchSubdirs=1, $directoriesonly=0, $maxlevel="all", $level=1) {
  • $ignoredDirectory[] = ".";
  • $ignoredDirectory[] = "..";
  • $ignoredDirectory[] = "_vti_pvt";
  • $ignoredDirectory[] = "_vti_cnf";
  • $ignoredDirectory[] = "_private";
  • global $directorylist;
  • if (is_dir($startdir)) {
  • if ($dh = opendir($startdir)) {
  • while (($file = readdir($dh)) !== false) {
  • if (!(array_search($file,$ignoredDirectory) > -1)) {
  • if (filetype($startdir . $file) == "dir") {
  • $directorylist[$startdir . $file]['dir'] = 1;
  • $directorylist[$startdir . $file]['name'] = $file;
  • }}}
  • closedir($dh);
  • }}
  • return($directorylist);
  • }
  • $files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
  • foreach ($files as $list) {
  • echo "<a href=?page=images/" . $list['name'] . "/index>" . $list['name'] ."</a><br>"; // on affiche la liste sous forme de lien
  • }?>
  • </td>
  • </tr>
  • // fin de la premiere page, vous pouvez l appeler explorermachin.php, notez que vous devrez appeler cette page dans une de vos propres page avec un include et un lien genre <a href=?page=explorermachin>images de machin</a> si vous mettez la page explorermachin dans le meme dossier que votre page qui appelera l explorermanga tout ce passera bien comme ca
  • //la page index qui va faire tout le boulot, a noter que la page explorermanga va afficher la page index toujour dans votre page dans l'include que vous aurez creer.
  • <tr>
  • <td colspan="3" id="borduretitre"><h1><?php echo str_replace('images/', '',str_replace('/index', '', $_GET['page']));?></h1></td>
  • </tr>
  • <tr>
  • <td height="21" id="bordure"></td>
  • </tr>
  • <tr>
  • <td colspan="3" id="tableau" align="center">
  • <table align="center"><tr>
  • <?php
  • $extensions_autorisees = array('jpg','jpeg','gif','png');
  • $totalimg = 0;
  • $page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
  • $dir = $page;
  • if (is_dir($dir)) {
  • if ($dh = opendir($dir)) {
  • while (($file = readdir($dh)) !== false) {
  • $ext = substr(strrchr($file, "."), 1);
  • if (in_array(strtolower($ext),$extensions_autorisees)){
  • $totalimg ++;
  • }}}
  • closedir($dh);
  • }
  • if (isset($_GET['id'])) // le id permet de faire savoir à la page index quelle page on affiche
  • $id = $_GET['id'];
  • else
  • $id = 1; // si l'id ne contient rien, il s'agit alors de la premiere page
  • $lmax = 5; // nombre d'image par ligne
  • $hmax = 4; // nombre de colonnes max par page
  • $nbpagemax = ceil($totalimg / ($lmax * $hmax)); //on calcul le nombre de page max
  • function miniature($picture,$rep,$fext) // début de la fonction qui genere les miniatures
  • {
  • if (file_exists($rep . "tb/mini_" . $picture) == false) {
  • if ($fext == "jpg") { $source = imagecreatefromjpeg($rep . $picture);}
  • elseif ($fext == "gif") { $source = imagecreatefromgif($rep . $picture);}
  • else { $source = imagecreatefrompng($rep . $picture);}
  • $destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
  • $largeur_source = imagesx($source);
  • $hauteur_source = imagesy($source);
  • $largeur_destination = imagesx($destination);
  • $hauteur_destination = imagesy($destination);
  • imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
  • imagejpeg($destination, $rep . 'tb/mini_' . $picture);
  • }
  • } //fin de la fonction
  • $page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
  • $dir = $page;
  • if (file_exists($dir . "tb/") == false) { //on verifie ensuite si on possede un dossier tb dans le dossier image
  • mkdir ($dir . "tb/", 0777); // si ce nest pas le cas, on creer le dossier
  • }
  • if ($id > 1)
  • $nombreimage = ($id - 1) * ($lmax * $hmax); //si ID est superieur a 1 on reprend le compte de la variable la ou elle en etait
  • else
  • $nombreimage = 0;
  • $verifnbimg = 0;
  • $intervalle = 0;
  • $nbligne = 0;
  • $nbpage = 1;
  • // 2 a la variable, ce qui correspond au fichier index et le repertoire tb, attention tout de meme a ne pas avoir de fichier thunbs.db dans
  • //le repertoire sous peine de fausser le compte
  • if (is_dir($dir)) {
  • if ($dh = opendir($dir)) {
  • while (($file = readdir($dh)) !== false) {
  • $ext = substr(strrchr($file, "."), 1);
  • if (in_array(strtolower($ext),$extensions_autorisees)){
  • if ($nbligne !== $hmax AND $verifnbimg == $nombreimage AND $nombreimage <= $id * ($lmax * $hmax)) { //on verifie qu on affiche bien les images en fonction de la page
  • miniature($file, $dir, $ext); // on verifie avec la fonction que la miniature du fichier existe, sinon on la creer
  • //les lignes qui suivent affiches les miniatures, son nom, son extension et sa taille
  • if ($ext == "jpg") { $source = imagecreatefromjpeg($dir . $file);}
  • elseif ($ext == "gif") { $source = imagecreatefromgif($dir . $file);}
  • else { $source = imagecreatefrompng($dir . $file);}
  • echo "<td width=170 align=center>
  • <a href=" . $dir . $file . " target=_blank><img src=" . $dir . "tb/mini_" . $file . " width=150 height=100 border=0></a>
  • <br><img width=30 height=30 src=images/" . $ext . ".png>
  • Nom: " . str_replace("." . $ext, '', $file) . "
  • <br> taille : " . ceil(filesize($dir . $file)/1000) . " Ko<br>
  • " . imagesx($source) . " x " . imagesy($source) . "</td>";
  • //fin de l affichage des miniatures
  • if ($nombreimage < $totalimg) {
  • $nombreimage ++;
  • }
  • $intervalle ++;
  • // cette ligne permet de passer a la colonne suivante apres avoir affiche x images
  • if ($intervalle == $lmax) { $nbligne ++; echo "</tr><tr>"; $intervalle = 0; }
  • }
  • $verifnbimg ++;
  • }}
  • closedir($dh);
  • }
  • }
  • // maintenant on va creer autant de page qu'il faudra pour afficher toutes les images
  • if ($nbpagemax > 1) { // si le nombre d image ne depasse pas le nombre max par page il est inutile d afficher les pages
  • echo "<tr><td align=right colspan=" . $lmax .">Pages";
  • while ($nbpage < $nbpagemax) {
  • echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage . ",";
  • $nbpage++; }
  • echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage; } // on repete encore une fois l instruction avant d afficher la
  • // derniere page pour eviter de mettre la , a la fin du dernier numero
  • echo "<tr><td align=right colspan=" . $lmax .">images : " . $nombreimage . "/" . $totalimg . "</td></tr>";
  • //petit plus, on affiche combien d'image est affiché par rapport au nombre max du dossier
  • ?>
  • </tr></table></td></tr>
  • //fin de la page index, j'ai essayé de la détailler un peu...
//premiere page, qui va lister tout les sous-dossiers d'un répertoire choisi

<tr>
<td colspan="3" id="borduretitre"><h1>Liste des MANGAS disponible</h1></td> //l'id du tableau correspond à mon fichier css, vous pouvez supprimer la mise en forme du tableau
</tr>
<tr>
<td height="21" id="bordure"></td> // idem, vous pouvez supprimer la mise en forme de la cellule
</tr>
  <tr>
    <td colspan="3" id="tableau" align="center"> // etc
<?php
// la fonction qui suit permet de lister les sous répertoires, il est possible de demander a la fonction de lister les sous dossiers, les sous sous dossiers, etc etc, mais ici nous ne le voulons pas
function filelist ($startdir="./", $searchSubdirs=1, $directoriesonly=0, $maxlevel="all", $level=1) {
    $ignoredDirectory[] = ".";
    $ignoredDirectory[] = "..";
    $ignoredDirectory[] = "_vti_pvt";
    $ignoredDirectory[] = "_vti_cnf";
    $ignoredDirectory[] = "_private";
    global $directorylist; 
    if (is_dir($startdir)) {
        if ($dh = opendir($startdir)) {
            while (($file = readdir($dh)) !== false) {
                if (!(array_search($file,$ignoredDirectory) > -1)) {
                 if (filetype($startdir . $file) == "dir") {
                      $directorylist[$startdir . $file]['dir'] = 1;
                      $directorylist[$startdir . $file]['name'] = $file;
                   }}}
           closedir($dh);
}}
return($directorylist);
}
$files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
foreach ($files as $list) {
	echo "<a href=?page=images/" . $list['name'] . "/index>" . $list['name'] ."</a><br>"; // on affiche la liste sous forme de lien
}?>
</td>
</tr>
// fin de la premiere page, vous pouvez l appeler explorermachin.php, notez que vous devrez appeler cette page dans une de vos propres page avec un include et un lien genre <a href=?page=explorermachin>images de machin</a> si vous mettez la page explorermachin dans le meme dossier que votre page qui appelera l explorermanga tout ce passera bien comme ca

//la page index qui va faire tout le boulot, a noter que la page explorermanga va afficher la page index toujour dans votre page dans l'include que vous aurez creer.

<tr>
<td colspan="3" id="borduretitre"><h1><?php echo str_replace('images/', '',str_replace('/index', '', $_GET['page']));?></h1></td>
</tr>
<tr>
<td height="21" id="bordure"></td>
</tr>
<tr>
 <td colspan="3" id="tableau" align="center">
<table align="center"><tr>
<?php
$extensions_autorisees = array('jpg','jpeg','gif','png');
$totalimg = 0;
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, "."), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){
           $totalimg ++;
}}}
        closedir($dh);
}
if (isset($_GET['id'])) // le  id permet de faire savoir à la page index quelle page on affiche
$id = $_GET['id'];
else
$id = 1; // si l'id ne contient rien, il s'agit alors de la premiere page
$lmax = 5; // nombre d'image par ligne
$hmax = 4; // nombre de colonnes max par page
$nbpagemax = ceil($totalimg / ($lmax * $hmax)); //on calcul le nombre de page max
function miniature($picture,$rep,$fext) // début de la fonction qui genere les miniatures
 {
  if (file_exists($rep . "tb/mini_" . $picture) == false) {
	if ($fext == "jpg")	{ $source = imagecreatefromjpeg($rep . $picture);}
	elseif ($fext == "gif")	{ $source = imagecreatefromgif($rep . $picture);}
    else { $source = imagecreatefrompng($rep . $picture);}
	$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
    $largeur_source = imagesx($source);
    $hauteur_source = imagesy($source);
    $largeur_destination = imagesx($destination);
    $hauteur_destination = imagesy($destination);
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
    imagejpeg($destination, $rep . 'tb/mini_' . $picture);
    }
 } //fin de la fonction
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (file_exists($dir . "tb/") == false) { //on verifie ensuite si on possede un dossier tb dans le dossier image
mkdir ($dir . "tb/", 0777); // si ce nest pas le cas, on creer le dossier
}
if ($id > 1)
$nombreimage = ($id - 1) * ($lmax * $hmax); //si ID est superieur a 1 on reprend le compte de la variable la ou elle en etait
else
$nombreimage = 0;
$verifnbimg = 0;
$intervalle = 0;
$nbligne = 0;
$nbpage = 1;
// 2 a la variable, ce qui correspond au fichier index et le repertoire tb, attention tout de meme a ne pas avoir de fichier thunbs.db dans 
//le repertoire sous peine de fausser le compte
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, "."), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){
if ($nbligne !== $hmax AND $verifnbimg == $nombreimage AND $nombreimage <= $id * ($lmax * $hmax)) { //on verifie qu on affiche bien les images en fonction de la page
miniature($file, $dir, $ext); // on verifie avec la fonction que la miniature du fichier existe, sinon on la creer
//les lignes qui suivent affiches les miniatures, son nom, son extension et sa taille
	if ($ext == "jpg")	{ $source = imagecreatefromjpeg($dir . $file);}
	elseif ($ext == "gif")	{ $source = imagecreatefromgif($dir . $file);}
    else { $source = imagecreatefrompng($dir . $file);}
    echo "<td width=170 align=center>
    <a href=" . $dir . $file . " target=_blank><img src=" . $dir . "tb/mini_" . $file . " width=150 height=100 border=0></a>
    <br><img width=30 height=30 src=images/" . $ext . ".png>
    Nom: " . str_replace("." . $ext, '', $file) . "
    <br> taille : " . ceil(filesize($dir . $file)/1000) . " Ko<br>
	" . imagesx($source) . " x " . imagesy($source) . "</td>";
//fin de l affichage des miniatures
        if ($nombreimage < $totalimg) {
        $nombreimage ++;
}
    $intervalle ++;
// cette ligne permet de passer a la colonne suivante apres avoir affiche x images
        if ($intervalle == $lmax) { $nbligne ++; echo "</tr><tr>"; $intervalle = 0; } 
   }
$verifnbimg ++;
}}
        closedir($dh);
    }
}
// maintenant on va creer autant de page qu'il faudra pour afficher toutes les images
if ($nbpagemax > 1) { // si le nombre d image ne depasse pas le nombre max par page il est inutile d afficher les pages
echo "<tr><td align=right  colspan=" . $lmax .">Pages";
while ($nbpage < $nbpagemax) {
echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage . ",";
$nbpage++; }
echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage; } // on repete encore une fois l instruction avant d afficher la
// derniere page pour eviter de mettre la , a la fin du dernier numero
echo "<tr><td align=right  colspan=" . $lmax .">images : " . $nombreimage . "/" . $totalimg . "</td></tr>"; 
//petit plus, on affiche combien d'image est affiché par rapport au nombre max du dossier
?> 
</tr></table></td></tr>

//fin de la page index, j'ai essayé de la détailler un peu...

 Conclusion

FONCTIONNEMENT:
Je vais essayer de faire simple. Prenez une page de votre site dans lequel vous voulez afficher votre galerie d'image.
Imagions que vous ayez un cadre dans lequel vous voulez afficher la galerie.
Dans le cadre il faudra y entrer votre include. vous pouvez directement afficher la page explorermanga, ou bien utiliser le cadre pour afficher diverses autres pages, comme vos news, etcetc...
Au quel cas il faudra alors creer un lien dans votre page pour appeler l'explorateur.

Par defaut, mettez vos images dans un dossier images/ que vous mettrez dans le dossier qui contient votre page et la page de l'explorateur. (j'appel ca un explorateur a tord car il permet seulement de lister les sous repertoires du dossier images)

Dans chaque sous dossier que vous mettrez, ajouter une page index. Qu'importe le nom du sous répertoire, et qu'importe le nombre, copiez collez simplement la page index dans chaque sous répertoire.
Pour les plus débutants (comme moi, je mettrais un exemple dans le zip)

Bug connu: Aucun à ma connaissance, simplement, pour les noms d'image, ne mettez pas d'espace dans vos noms, si vous mettez des images du style: DBZ 01.jpg vous aurez des problemes, mettez DBZ01.jpg
Si vous remplacez vos images en gardant le nom de l'image remplacé, les miniatures ne seront pas remplacer. Dans le doute, supprimez simplement le répertoire TB dans le dossier image modifié.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

31 mai 2007 19:57:09 :
Archive modifié pour que tout fonctionne sans rien toucher aux pages ni aux codes. Rajout de 3 images pour les extensions.

 Sources du même auteur

Source avec Zip Source avec une capture GALERIE PHOTO DYNAMIQUE GÉRÉE PAR MOTEUR TEMPLATE

 Sources de la même categorie

Source avec Zip RECHERCHE DE MOTIF DANS UNE IMAGE par ParseError
BARRES PARAMÉTRABLES EN DÉGRADÉ DE COULEUR ET AVEC TEXTE DA... par hornetbzz
Source avec Zip Source avec une capture GALERIE PHOTO SIMPLE À GÉRER par francky6691
Source avec Zip Source avec une capture DIAPORAMA AVEC AJOUT ET REDIMENSIONEMENT DE PHOTOS, CRÉATION... par giloum
Source avec Zip Source avec une capture AFFICHAGE INFOBULLE SUR GRAPHIQUE ARTICHOW par nirronico

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SANYBEE GALLERY par sakini
REDUCTION D'UNE IMAGE À L'ÉCRAN PAR RAPPORT À UNE TAILLE MAX... par MagicManu
Source avec une capture GALERIE PHP SANS BDD, AVEC CRÉATION DE VIGNETTES par ThePilot
GALERIE PHOTO SIMPLE (1 FICHIER) SANS MYSQL AVEC GESTION DES... par malokaff
Source avec une capture GALERIE PHOTO TRES SIMPLE par p3x

Commentaires et avis

Commentaire de darknessneo le 28/05/2007 21:50:27

c'est ma premiere source en php ici. Donc je poste un débutant ^^ je mettrais bien maxi debutant mais y a pas...
Je me doute qu'il y aurait largement moyen de perfectionner mon script mais bon. Mes compétances sont arrivés à leurs limites... Je suis ouvert a toute proposition pour m'améliorer.
Note: j'ai crée ce script car je ne trouvais pas une galerie capable de s'integrer à une de mes pages webs, j'ai du me résoudre à passer 1 semaine a creer mon propre script. en partant de zero...

Commentaire de neigedhiver le 28/05/2007 23:05:14

Salut,

J'ai pas trop regardé en détail... Je me suis arrêté rapidement, y'a deux trucs qui m'ont complètement bloqué :
- tes pages HTML ne sont conformes à aucun standard (aucune balise de début, de fin, rien)
- j'ai du mal avec les scripts qui mélangent html et php. Je ne t'en veux pas, hein, j'ai commencé comme ça aussi. Seulement maintenant, je bloque dessus... J'ai tendance à séparer le traitement de l'affichage... C'est plus clair.

Commentaire de darknessneo le 28/05/2007 23:32:02

hehe oui, mes pages n'ont aucunes balises je suis tout a fait d'accord. je l'est dis clairement pourtant... mon script est fait justement pour integrer une page existante. je voulais une galerie d image que je puisse inserer a une page de mon site. c'est le principe de fonctionnement de ce script. il existe pleins de galeries d'images super developpés, qui generes des navigateurs super performants, ca dechire tout mais pour l'integrer a une page de ton site... tu peu arreter de rever... elles ont toutes leurs propre page index, des header que si tu integre a une page a toi, tu fais tout planter... Donc je revendique que j'ai pas de balises, mais ca a ete fait expres...


en effet, mes pages contiennent le traitement des variables et l'affichage... mais bon... c'était mon choix. Pourvoir integrer facilement, et rapidement une galerie d'image sur n'importe quelle page php. Je pense avoir réussi. Je n'ai aucun répertoire qui m'encombre, mis a par le répertoire images/ obligatoire. Je n'ai pas 15 voir meme plus, de pages de configuration, etc etc... apres avoir essayé plusieurs galeries d'images j'en ai eu marre. 2 pages, 1 répertoire... c'est un script personnel pour mon propre site que j'ai voulu partagé.

Apres on aime ou on aime pas... mais le but premier je le répete encore une fois, de cette galerie... c'est qu'elle s'integre sur une page existante via un include. Les balises se trouvent toutes sur la page qui va inclure la galerie... et pis voila.....

Sinon, a par ca... peut on me faire des sugestions pour améliorer mon script?

Commentaire de neigedhiver le 28/05/2007 23:41:13

Re,

Ben ouais, j'ai bien compris ton point de vue... Je t'explique le mien, qui ne m'est pas venu tout seul, mais après quelques années d'expérience, après avoir beaucoup échangé avec beaucoup de monde, après avoir lu des livres...
Donc : pour améliorer ton site, je pourrais te proposer
- de séparer ton code de traitement de la présentation, puisque ça permettrait justement une meilleure intégration.
- si tu faisais des fonctions, ça éviterait les doublons. J'ai vaguement cru voir que le même fichier se trouvait dans chaque répertoire (mais je me gourre peut-être, j'ai pas encore eu le temps de regarder pour de vrai)

Sinon, promis, je regarde ça correctement demain et je te fais un commentaire plus constructif que ce que je viens de faire.

Bonne soirée

Commentaire de darknessneo le 29/05/2007 00:14:42

merci. pour ce qui est de séparer ma page html de mes codes php, tu sous entend donc de mettre des includes a la pelle pour appeler les fonctions ou codes?
sinon, ce que je voudrais, c'est sécuriser mon script. J'ai test en essayant d'appeler d'autres pages via la page qui afiche la galerie, et ca ne marche pas, donc c une bonne chose mais je sais meme pas pourquoi enfaite... =P hehe

sinon, oui, je met une page index dans chaque répertoire. il suffit de copier la page index et de la coller dans tout les répertoires images. C'est un peu pompeux, mais c'est tout de meme rapde, de toute facon faut bien upload le dossier image, alors qu'on mette un fichier de plus ou de moins, surtout quand on arrive a 300 images dans un répertoire comme j'aurais moi... on voit plus la différence.
Enfin, j suis débutant, donc j'ai crée ce script en 1 semaine avec ce que j'ai su apprendre et comprendre du php, je pense encore en avoir pour longtemps avant d'en arriver a un résultat de pro... j'ai vu un script explorateur de malade... les mecs qui font ça sont des oufs... j'en suis vraiment loin. Mais si je peu apprendre je dis pas non. Apprenez moi... je suis ouvert a tout.

Commentaire de codefalse le 29/05/2007 12:34:29 administrateur CS

@neigedhiver => quand tu dit séparer le code html du code php, tu parle de template, ou tu a quand meme quelques bouts de codes php dans ton html ? (juste les whiles, if, for qui pointent vers des classes) ?

Commentaire de neigedhiver le 29/05/2007 12:49:33

@codefalse : je n'entends pas plus que ce que je dis. En l'occurrence, je parle avant tout de séparer le traitement des données de leur affichage.
L'affichage peut se faire directement avec PHP, ou alors avec un moteur de templates (Smarty, phpLib, etc).
Peu importe : l'idée est surtout de ne pas mélanger les deux.

Dans la pratique, avec un moteur de templates, la séparation est évidente. Sans, elle l'est un peu moins dans la mesure où l'affichage peut se faire via le même script qui assure le traitement, mais pas forcément.

Afin d'éviter les doublons, la séparation des tâches en fonctions élémentaires (ou le plus élémentaires possibles) est impérative. Cela permet de réutiliser du code à sa guise sans avoir besoin de le réécrire ou de le copier. Tout le traitement doit donc se faire en premier lieu.
Ainsi, on peut avoir un fichier qui contient les fonctions dont on a besoin et qu'on inclue depuis chaque page qui le nécessite.
Suivant la rédaction du code, on peut avoir des fonctions qui assurent directement l'affichage, ou, et c'est préférable, des fonctions qui retournent le contenu qui sera affiché. On pourrait avoir quelque chose dans ce genre là :

function get_images($directory)
{
    // Code qui récupère la liste des images d'un répertoire

    // Retourne la liste des images sous forme d'un tableau associatif
    return $images_list;
}

Dans le script qui affiche les images, on aurait un truc dans ce genre là :

$images_list = get_images('./');

foreach($images_list as $image)
{
    echo '<img src="' . $image['src'] . '" width="' . $image['width'] . '" height="' . $image['height'] . '" /><br />';
}

Là, c'est clair : le traitement se fait dans une fonction, l'affichage se fait après, à sa place.

Commentaire de darknessneo le 29/05/2007 13:04:43

ne partez pas dans votre ping pong incompréhensible, y a un newbie ici qui comprend rien!! C'est quoi un template, comment on fait un template, qu'est ce qui est séparable, ce qui ne l'est pas, pourquoi... comment... et où!
Je pige plus rien moi...
Quelques explications pour moi serait sympa...

Commentaire de codefalse le 29/05/2007 13:49:41 administrateur CS

@ neigedhiver : Ok c'est bien ce qui me semblait :) Je preferais demander pour être sur de pas avoir sauté un wagon :p

@  darknessneo : Un moteur de template te permet de séparer le code html de ton code php, le but est de simplifier le travail des éventuels graphistes des programmeurs. En gros dans ton site, t'a une partie template/ et une partie code/ (pour faire simple)
tes pages html seront dans la partie template de ce genre :
<html>...<body>Bonjour à toi {LOGIN}</body></html>
(tres tres simple)

Ensuite dans ta page php, tu integre un moteur de template (look google pour plus d'informations sur les différents moteurs), et tu a juste à faire :
// tu récupere $login dans une bdd par ex
$monTemplate->parseVar ("{LOGIN}", $login);
$monTemplate->show();

parseVar va remplacer {LOGIN} par la valeur de login, show() va afficher la page html nouvellement formée. Ceci est un exemple tres succint, faut savoir que le nomage des variable {..} est spécifique à chaque moteur, ainsi que les fonctions et l'usage. C'est juste pour que tu aie une idée.
Du coup les graphistes n'ont plus besoin de faire attention au code qu'il y a dans tes pages, juste à remettre {LOGIN} (dans mon cas) là ou il veulent que le login soit affiché.

Et toi dans 6 mois quand tu voudra changer ton graphisme uniquement, tu n'aura plus besoin de tout réadapter ton code ! :)

J'espere avoir bien expliqué et rien n'avoir omis/mal traité ! :)

Commentaire de darknessneo le 29/05/2007 15:38:08

ok codefalse, je traduit ce que j'ai compris:
dans mon site j'ai une page html que j'ai appelé menu.html
Ce menu affiche des images qui représentent les rubriques de mon site avec les liens vers les rubriques. j'appel cette page avec des includes là ou je veux afficher mon menu.
Est il crétin de ma part de dire que:
ma page menu.html est un template?

j vais faire une recherche sur les moteurs template. Je suis entrain de refaire tout mon site, d'ou la création de ce script, alors autant que je le fasse bien.

Commentaire de codefalse le 29/05/2007 16:37:02 administrateur CS

rien n'est crétin :)
mais ta page n'est pas un template. En fait, template, c'est une sorte de patron, comme pour les croquis, donc en fait tu lui dit comment être, mais tu ne met AUCUN code php (bon apres, certains moteur de template autorise du code php.. bref).
Tout les elements variables de ton site, tu les mets en tags, voir en block (cherche des tutos sur le web pour en comprendre le fonctionnement). Ensuite tu va "inclure" ton template en instanciant le moteur de template.

Le fait d'inclure est une autre méthode (celle que tout le monde commence par faire je dirai :))
Regarde des exemples de l'utilisation de template sur le web, ce sera plus explicatif que moi :)

Quelques tres bon liens :
http://www.asp-php.net/scripts/asp-php/template.php
http://eric-pommereau.developpez.com/tutoriels/initiation-smarty/

Et un petit comparatif :
http://cyberzoide.developpez.com/php4/template/

Voili voilou

Commentaire de darknessneo le 29/05/2007 17:46:43

ok, derniere question, si j'utilise des templates, ma feuille css ne sert plus a rien, right?

Commentaire de codefalse le 29/05/2007 18:33:01 administrateur CS

si elle sert toujours :
Une feuille css met tes éléments en place sur la page
un template mets des valeurs dans tes éléments
c'est completement différent.

genre ton css mettra en gras le champ <span>{login}</span>
et ton template remplacera {login} par le login de la personne connectée

Commentaire de neigedhiver le 29/05/2007 23:02:30

J'aime bien tes explications codefalse, j'aurais pas fait mieux.
Vous pensez que ça mériterait un tuto complet sur les templates ça ?

A partir de là, c'est la porte ouverte à la séparation des classes métiers, à MVC, UML, aux design patterns... Enfin on peut rester sur des templates, le reste, je ne maîtrise pas du tout.

Commentaire de darknessneo le 30/05/2007 07:53:15

un tuto je suis a 100% pour! j'en veu un! sinon, codefalse, je t'ai envoyé un PM.

Commentaire de darknessneo le 30/05/2007 07:53:39

euh sinon, une petite note pour le débutant?

Commentaire de codefalse le 30/05/2007 10:42:40 administrateur CS

merci neigedhiver :)
C'est vrai que les template c'est qu'une partie interessante de tout ce qui touche au design pattern, uml, mvc etc. (Bien que je n'ai pas encore tout les connaissances dans le domaine :)) Personnellement je vois les templates comme une partie du MVC (c'est un peu le cas en meme temps :)) Pour un tuto pourquoi pas mais actuellement j'ai pas trop le temps. Si quelqu'un se lance c'est bien, sinon si j'ai le temps je le ferai plus tard (attention ! j'ai di SI ! :))
Bonne journée à tous.
Darknessneo : Je te propose de te mettre une note quand tu aura optimisé ton code (séparé mieux le html du php), qu'en pense tu ?! :)

Commentaire de darknessneo le 30/05/2007 12:40:48

que y a du boulot... bon sang de bonc sang! j'avais passé 2 ou 3 semaines a refaire mon site en php... il etait encore en htm... meme pas en html... il en avait besoin... ben j'peu tout recommencer quoi...

Commentaire de malalam le 31/05/2007 01:09:51 administrateur CS

Hello,

je vais jouer les chiants, là...
J'ai rien contre les templates...nan nan...
Mais...

"genre ton css mettra en gras le champ <span>{login}</span>
et ton template remplacera {login} par le login de la personne connectée"
Merveilleux! Quelle différence entre {login} et <?php echo $login; ?> ? Ah ouais, quelques caractères...Et pi y a pas de php...y a juste une variable. Ah non, c'est pas une variable parce qu'elle n'est pas préfixée par un $ ou autre truc symptomatique d'un langage devant ? Hmmm...$login ou {login}...mouais.
Et un parser en moins...
Nan, j'ai du mal.
Le meilleur moteur de template ? Un langage serveur pour les traitements (PHP...?), qui renvoie un XML, mis en forme par une XSL (pout l'output, je précise...ça renverra du...html...pdf...rtf...ou autre...), couplée par une CSS (adaptée à-aux-ouput-s).
Smarty? Arf...
Ceci n'est que mon avis.
Mais bon... ;-)
C'est pas que le templating soit une mauvaise idée. La séparation fond/forme, c'est une bonne idée. Mais au prix de smarty ou autre, nan. Surtout quand il y a des moteurs de template déjà en place et natifs tellement évidents que personnes ne les voit...


Commentaire de neigedhiver le 31/05/2007 01:27:48

Salut,

T'es pas chiant... PHP est évidemment le premier moteur de templates qui existe.
M'enfin j'aimerais qu'on n'oublie pas que Smarty "compile" les templates non parsés (pour en faire des templates parsés) et offre une fonctionnalité de cache qui n'est pas négligeable...
Après, forcément, si on recompile toujours tout, ça bouffe plus de ressources que si on exploite intelligemment les possibilités de l'outil. C'est vrai, ça fait un objet en plus chargé en mémoire, m'enfin bon...

Commentaire de codefalse le 31/05/2007 10:54:09 administrateur CS

@Malalam, c'est vrai que xls et les transformations xslt sont ce qu'il y a de mieux, et on va finir par arriver sur cette sorte de template mais j'ai juste une petite question :
Tu a ta feuille xsl qui transforme ton arbre xml en page web (pour l'exemple). Ton arbre xml, a un moment ou un autre, il faut bien que tu le genere non ? tu passera aussi par php du coup ?
Apres je suis d'accord avec toi pour dire que ce sera plus rapide que faire 50 preg_replace et 20 str_replace :)

Par contre le gros avantage des moteurs de templates, sont le systeme de cache (pour ceux qui en ont un ! :p) comme l'a dit Neigedhiver

Commentaire de darknessneo le 31/05/2007 12:17:04

on peut retorner sur le vif du sujet... lol! mon script...

Commentaire de kerm0uch le 31/05/2007 19:28:52

salut
je suis debutant en php j'ai essayer ce code mais il me donne un message d erreur:
Notice: Undefined index: page in c:\program files\easyphp1-8\www\photosansbdd\index.php on line 46


Notice: Undefined index: page in c:\program files\easyphp1-8\www\photosansbdd\index.php on line 57

Notice: Undefined index: page in c:\program files\easyphp1-8\www\photosansbdd\index.php on line 90

je voudrais savoir s'il ya moyen de l'eviter..
merci

Commentaire de darknessneo le 31/05/2007 19:55:16

moue... j'ai remarqué que mon archive avait quelques lacunes... j'en ai refais une... tu n'as plus qu'a la dl et réesayer pour me dire si ca marche.

Commentaire de darknessneo le 31/05/2007 20:10:03

j ai regardé dans mon dossier image pour y regarder mon fichier index de la galerie.
Tes erreurs me renvoyent pas à des lignes sur mon fichier index qui pourraient générer des erreurs. Donc tu as modifié le fichier index.
il faudrait que tu nous montre le contenu du fichier index. essai la nouvelle archive sans rien toucher. ensuite, tu auras juste a recuperer la partie

<?php
if (isset($_GET['page'])) {
    $page = $_GET['page'];
    include("$page.php");
}
else {
include ('explorermanga.php');
}
?>

et à le mettre dans la page ou tu veu afficher la galerie.

Commentaire de kerm0uch le 31/05/2007 20:24:41

voila le meme code que j ai copier au dessus..


<tr>
<td colspan="3" id="borduretitre"><h1>Galerie</h1></td>
</tr>
<tr>
<td height="21" id="bordure"></td>
</tr>
  <tr>
    <td colspan="3" id="tableau" align="center">
<?php
// la fonction qui suit permet de lister les sous répertoires, il est possible de demander a la fonction de lister les sous dossiers, les sous sous dossiers, etc etc, mais ici nous ne le voulons pas
function filelist ($startdir="./", $searchSubdirs=1, $directoriesonly=0, $maxlevel="all", $level=1) {
    $ignoredDirectory[] = ".";
    $ignoredDirectory[] = "..";
    $ignoredDirectory[] = "_vti_pvt";
    $ignoredDirectory[] = "_vti_cnf";
    $ignoredDirectory[] = "_private";
    global $directorylist;
    if (is_dir($startdir)) {
        if ($dh = opendir($startdir)) {
            while (($file = readdir($dh)) !== false) {
                if (!(array_search($file,$ignoredDirectory) > -1)) {
                 if (filetype($startdir . $file) == "dir") {
                      $directorylist[$startdir . $file]['dir'] = 1;
                      $directorylist[$startdir . $file]['name'] = $file;

                   }}}
           closedir($dh);
}}
return($directorylist);
}

$files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
foreach ($files as $list) {
echo "<a href=?page=images/" . $list['name'] . "/index>" . $list['name'] ."</a><br>"; // on affiche la liste sous forme de lien
}?>
</td>
</tr>


<tr>
<td colspan="3" id="borduretitre"><h1><?php

echo str_replace('images/', '',str_replace('/index', '', $_GET['page']));?></h1></td>
</tr>
<tr>
<td height="21" id="bordure"></td>
</tr>
<tr>
<td colspan="3" id="tableau" align="center">
<table align="center"><tr>
<?php
$extensions_autorisees = array('jpg','jpeg','gif','png');
$totalimg = 0;
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, "."), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){
           $totalimg ++;
}}}
        closedir($dh);
}
if (isset($_GET['id'])) // le  id permet de faire savoir à la page index quelle page on affiche
$id = $_GET['id'];
else
$id = 1; // si l'id ne contient rien, il s'agit alors de la premiere page
$lmax = 4; // nombre d'image par ligne
$hmax = 4; // nombre de colonnes max par page
$nbpagemax = ceil($totalimg / ($lmax * $hmax)); //on calcul le nombre de page max
function miniature($picture,$rep,$fext) // début de la fonction qui genere les miniatures
{
  if (file_exists($rep . "tb/mini_" . $picture) == false) {
if ($fext == "jpg") { $source = imagecreatefromjpeg($rep . $picture);}
elseif ($fext == "gif") { $source = imagecreatefromgif($rep . $picture);}
    else { $source = imagecreatefrompng($rep . $picture);}
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
    $largeur_source = imagesx($source);
    $hauteur_source = imagesy($source);
    $largeur_destination = imagesx($destination);
    $hauteur_destination = imagesy($destination);
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
    imagejpeg($destination, $rep . 'tb/mini_' . $picture);
    }
} //fin de la fonction
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (file_exists($dir . "tb/") == false) { //on verifie ensuite si on possede un dossier tb dans le dossier image
mkdir ($dir . "tb/", 0777); // si ce nest pas le cas, on creer le dossier
}
if ($id > 1)
$nombreimage = ($id - 1) * ($lmax * $hmax); //si ID est superieur a 1 on reprend le compte de la variable la ou elle en etait
else
$nombreimage = 0;
$verifnbimg = 0;
$intervalle = 0;
$nbligne = 0;
$nbpage = 1;
// 2 a la variable, ce qui correspond au fichier index et le repertoire tb, attention tout de meme a ne pas avoir de fichier thunbs.db dans
//le repertoire sous peine de fausser le compte
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, "."), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){
if ($nbligne !== $hmax AND $verifnbimg == $nombreimage AND $nombreimage <= $id * ($lmax * $hmax)) { //on verifie qu on affiche bien les images en fonction de la page
miniature($file, $dir, $ext); // on verifie avec la fonction que la miniature du fichier existe, sinon on la creer
//les lignes qui suivent affiches les miniatures, son nom, son extension et sa taille
if ($ext == "jpg") { $source = imagecreatefromjpeg($dir . $file);}
elseif ($ext == "gif") { $source = imagecreatefromgif($dir . $file);}
    else { $source = imagecreatefrompng($dir . $file);}
    echo "<td width=170 align=center>
    <a href=" . $dir . $file . " target=_blank><img src=" . $dir . "tb/mini_" . $file . " width=150 height=100 border=0></a>
    <br><img width=30 height=30 src=images/" . $ext . ".png>
    Nom: " . str_replace("." . $ext, '', $file) . "
    <br> taille : " . ceil(filesize($dir . $file)/1000) . " Ko<br>
" . imagesx($source) . " x " . imagesy($source) . "</td>";
//fin de l affichage des miniatures
        if ($nombreimage < $totalimg) {
        $nombreimage ++;
}
    $intervalle ++;
// cette ligne permet de passer a la colonne suivante apres avoir affiche x images
        if ($intervalle == $lmax) { $nbligne ++; echo "</tr><tr>"; $intervalle = 0; }
   }
$verifnbimg ++;
}}
        closedir($dh);
    }
}
// maintenant on va creer autant de page qu'il faudra pour afficher toutes les images
if ($nbpagemax > 1) { // si le nombre d image ne depasse pas le nombre max par page il est inutile d afficher les pages
echo "<tr><td align=right  colspan=" . $lmax .">Pages";
while ($nbpage < $nbpagemax) {
echo " <a href=?page=" . $dir ."index&amp;id=" . $nbpage . ">" . $nbpage . ",";
$nbpage++; }
echo " <a href=?page=" . $dir ."index&amp;id=" . $nbpage . ">" . $nbpage; } // on repete encore une fois l instruction avant d afficher la
// derniere page pour eviter de mettre la , a la fin du dernier numero
echo "<tr><td align=right  colspan=" . $lmax .">images : " . $nombreimage . "/" . $totalimg . "</td></tr>";
//petit plus, on affiche combien d'image est affiché par rapport au nombre max du dossier
?>
</tr></table></td></tr>

ce code me renvoi des erreurs..

Commentaire de darknessneo le 31/05/2007 22:42:06

bon voila on a reglé ton petit soucis par pm interposé, pour info son probleme venait de la page qui appelait la galerie.
suivant :D

Commentaire de alamandra le 08/11/2007 03:51:53

salut et un grand merci pour ce super taff !!!

jobtiens l 'erreur suivante

// etc Warning: Invalid argument supplied for foreach() in /home/alamandra/public_html/avatars_gallery/explorermanga.php on line 33

as tu une idee, de ce que jai pu faire comme erreur ?

merci a bientot peut etre

JP

Commentaire de darknessneo le 13/11/2007 18:32:55

tu peux mettre ta page explorermanga complete ici? parce qu'apparament tu as modifié la page en question vu que la ligne 33 ne renvoi pas sur une ligne de code qui pourrait poser probleme.

l erreur en question provient du faite que foreach fonctionne avec un array comme variable. Si tu as modifiés les noms de variables il se pourrait bien que tu as oublié de modifier le nom des variables qui enregistre le tableau des répertoires.

En clair, tu as modifié le nom des variables de la page ou encore, que tu ne cherches pas dans le bon répertoire.
$files = filelist("images/",1,1);
foreach ($files as $list) {

tu peux voir dans le fichier par defaut, qu'on cherche dans le répertoire image qui se trouve au meme niveau d'arborescence que la page explorermanga.

Commentaire de foyout le 22/06/2008 14:54:42 9/10

hello

merci beaucoup pour ce script bien utile et qui permet d'alléger le travail du webmaster.
Par contre, y'aurait-il pas un moyen pour permettre de mettre des espaces dans les noms des sous-dossiers du dossier image ?
Merki d'avance

Commentaire de darknessneo le 23/06/2008 00:10:46

oui, c'est possible, j'ai modifié entre temps mon code, mais vu que c'était un petit truc mineur, et qu'en plus, c'était sur une autre version de code que ce script je n'ai pas mis à jour:

Modifier le code comme suit:

$files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
foreach ($files as $list) {
$file2 = str_replace("_", " ", $list['name']);
echo "<a href=?page=images/" . $list['name'] . "/index>" . $file2 ."</a><br>"; // on affiche la liste sous forme de lien
}

Principe:
Les sous dossiers image contenant un espace doivent alors comporter un _ au lieu de chaque espace.
Ensuite, au moment d'afficher chaque lien, on enleve le _ de chaque nom par un espace.

Par exemple, j'ai un sous dossier image Dragon ball Z
Je modifie alors le nom du sous dossier: Dragon_ball_Z

Au moment où l'on écrit les répertoires images dans le script, je remplace les _ par des espaces, mais uniquement pour l'affichage, pas pour le lien, sinon ça ne marche plus. J'aurais alors:

<a href=?page=images/dDagon_ball_Z/index>Dragon ball Z</a><br>

voilou voula

Commentaire de foyout le 07/07/2008 13:24:04

Hello

désole de répondre si tard, j'ai eu quelques souci de mise en page auparavant qui m'ont empeché de tester la modif du script.
Mais un grand merci car ça marche nickel :-))

Par contre, je vais être chiant, mais j'ai une autre question. Comment faire pour que les elements de la liste se mettent par ordre alphabétique ? La je ne comprend pas trop l'ordre dans lequel ils se mettent,...

merci pour tout

Foyout

Commentaire de darknessneo le 07/07/2008 21:17:28

Ils se mettent de façon aléatoire, je n'ai jamais vraiment compris comment se faisait le classement.

Le problème c'est que l'on affiche le contenu du répertoire image en temps réel, c'est à dire qu'on affiche les dossiers en même temps qu'on les scans.

Il est en effet possible de trier par ordre mais il faut alors d'abord mettre tout le contenu du répertoire dans un array. Ensuite, il faut afficher le contenu de l'array.
Ainsi, il est possible de trier le contenu de l'array.

Voici une petite modif:

<?php
$dir = 'images/';
$fichier = array();
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
if(filetype($dir . $file) == "dir" AND $file !== "." AND $file !== ".." AND $file !== "tb" AND $file !== "_notes"){
$file2 = str_replace("_", " ", $file);
$debutJournee = mktime(0,0,0,date("m",filemtime('images/'.$file)),date("d",filemtime('images/'.$file)),date("Y",filemtime('images/'.$file)));
$secAvtDeb = filemtime('../'.$type.'/'.'001_v1.0_compil.doc.librairie.jpg'.'/'.$id.'/'.$file)-$debutJournee;
$diff = time() - filemtime('images/'.$file);
$nbJr= intval($diff/(24*3600));
if( (($diff%(24*3600))+$secAvtDeb) > (24*3600) ) $nbJr++;
$jrs = ($nbJr < 31) ? '<img src="http://xxx/images/new.gif" alt="" />' : '';
$file = '<a href="images/'.$file.'/index.php">'.$file2.'</a> '.$jrs;
array_push($fichier, $file);
        }}
        closedir($dh);
    }
}
natcasesort($fichier);
?>

Voila, normalement... je dis bien... normalement... dans l'array $fichier se trouve alors dans l'ordre alphabétique.
Avec mon petit truc en plus, il y aura même un logo new pour chaque nouveau dossier image datant de moins de 30 jours.

Par contre il te faudra afficher le contenu de l'array via une boucle par exemple.

Commentaire de foyout le 08/07/2008 11:09:18

merci de m'aider.
Par contre, je suis pas très doué. Il faut que je mette ce code ou ?

Commentaire de darknessneo le 08/07/2008 12:50:54

ca remplace la partie du code qui scan le répertoire image.
Le truc c'est qu'il faut retravailler un peu le code de chaque coté et de faire aussi un petit code suplémentaire pour afficher l'array.
Et j'ai pas le temps de mettre ce code en ligne.

Commentaire de foyout le 09/07/2008 22:35:51

bon, merci deja pour tout ca. Je vais essayer de me debrouiller.

Commentaire de foyout le 07/08/2008 21:58:03

Me revoila :-)

J'ai réussi a classer et afficher les noms par ordre alphabétique, donc je suis content, merci.

Par contre, j'ai encore un souci. Cette fois ce sont les photos que je voudrais classer par ordre alphabétiques de leur noms. Y'a un moyen de faire ça ?
Merci d'avance

Foyout

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

galerie photo [ par SalahDN25 ] Salut tous le monde,je voudrais réaliser une galerie photos dans une page qui contien une table à deux colonnes: ma vision est de faire defiler vertic faire une bouclze sur un fichier contenant des photo et les redimmensionner [ par hannao ] salut à tous, voilà j'ai un petit code qui redimensionne une photo (contenu dans un dossier) à la fois j'aimerais pouvoir faire une boucle dans le fic galerie photo [ par didine6 ] Bonjour,Cela fait quelques jours que je cherche un script avec une galerie photo où seul l'administrateur peut déposer un commentaire.J'ai parcouru to galerie photo [ par maxxou56 ] Je souhaiterais réalisé un site internet avec une galerie photo, mais je suis un peu bloquer sur le code étant donné que je nai que très peu de basees Vérifier si une photo est reliée à une annonce ou non [ par ines57 ] Bonjour,Toujours pour un portail immobilier, je dois faire une vérification pour savoir si lorsqu'une annonce a été ajoutée, une photo a été ajoutée a Pb upload php [ par ninho44 ] Bonjour, voila j'ai un petit probleme pour uploader une image et c'est la 1ere fois que je fais ça...je suis un peu perdu.EN fait, je ne vois pas pour création d'un cadre transparent par dessus une image uploader [ par foxprox ] Bonjour à tous, je viens vers vous à la recherche d'un peu d'aide. Mon employeur aimerait que sur son site, l'internaute puisse uploader une photo Petit probleme dans ma galerie d'image aideeee svp [ par marouanemarouane ] Bonsoirrrr , j'ai besoin d'un petit aide svpppj'ai creé une petite galerie d'image avec une boucle...mais ça m'affiche toute les images dans une seule comment faire une galerie d'image [ par Malamute7 ] bonjour voici mon code Photographies de la communes <?php $compteur=0; // connection au serveur Upload de fichier php [ par paulito47 ] Je réalise un script php qui génère un formulaire qui permet la collecte des informations nécessaires pour l'ajout d'une photo (titre, description) et


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales