begin process at 2012 05 27 21:31:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > GALERIE PHOTO SIMPLE (1 FICHIER) SANS MYSQL AVEC GESTION DES REPERTOIRES

GALERIE PHOTO SIMPLE (1 FICHIER) SANS MYSQL AVEC GESTION DES REPERTOIRES


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Classé sous :galerie, photo, image, gestion, répertoires Niveau :Débutant Date de création :25/10/2005 Date de mise à jour :19/10/2006 18:23:48 Vu :17 978

Auteur : malokaff

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

 Description

Ce script est une galerie photo simple : Vous uploader vos photos dans un repertoire photos, dans des sous dossiers comme photo/convention. Le script affiche le listing des repertoires contenu dans le repertoire photos et genere les miniatures des photos pour un affichage rapide.
J'ai mélanger plusieurs sources de phpcs donc je remercie tous ceux qui se reconnaitrons dans ce code.
Pour visualiser le fonctionnement, aller voir sur http://www-etu.utt.fr/etu/jonglage/index.php?page= galerie.php

Merci de me laisser des commentaires pour améliorer ce code

Source

  • <?php
  • # //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  • # /*galerie d'image par malokaff,
  • # Il s'agit d'un mix de plusieurs source de phpcs que j'ai essayer de simplifier pour faire un systeme de galerie
  • # simple : il suffit de metre les photos dans des sous dossiers du repertoire photo et le script se charge de
  • # la création des miniatures et de la mise en page.
  • #
  • #vous avez besoin d'un repertoire photo qui contient les dossiers des photos,
  • # un repertoire mini qui contiendra les miniatures généré par le script
  • # *////////////////////////////////////////////////////////////////////////////////////////////////////////////
  • /*
  • **
  • //Fonction compression des images
  • **
  • */
  • function redimage($img_src,$img_dest,$dst_w,$dst_h,$alt,$title)
  • {
  • // Lit les dimensions de l'image
  • $size = getimagesize($img_src);
  • $src_w = $size[0]; $src_h = $size[1];
  • $ext = strtolower(substr($img_src, -3));
  • // $ext = strtolower(strstr($img_src, '.'));
  • // Teste les dimensions tenant dans la zone
  • $test_h = round(($dst_w / $src_w) * $src_h);
  • $test_w = round(($dst_h / $src_h) * $src_w);
  • // Si Height final non précisé (0)
  • if(!$dst_h) $dst_h = $test_h;
  • // Sinon si Width final non précisé (0)
  • elseif(!$dst_w) $dst_w = $test_w;
  • // Sinon teste quel redimensionnement tient dans la zone
  • elseif($test_h>$dst_h) $dst_w = $test_w;
  • else $dst_h = $test_h;
  • // La vignette existe ?
  • $test = (file_exists($img_dest));
  • // L'original a été modifiée ?
  • if($test)
  • {
  • $test = (filemtime($img_dest)>filemtime($img_src));
  • }
  • // Les dimensions de la vignette sont correctes ?
  • if($test) {
  • $size2 = getimagesize($img_dest);
  • $test = ($size2[0]==$dst_w);
  • $test = ($size2[1]==$dst_h);
  • }
  • // Créer la vignette ?
  • if(!$test) {
  • // Crée une image vierge aux bonnes dimensions
  • $dst_im = imagecreatetruecolor($dst_w,$dst_h);
  • // Copie dedans l'image initiale redimensionnée
  • if ($ext == 'jpg' || $ext=='JPG')
  • $src_im = imagecreatefromjpeg($img_src);
  • else if ($ext == 'gif')
  • $src_im = imagecreatefromgif($img_src);
  • else if ($ext == 'png')
  • $src_im = imagecreatefrompng($img_src);
  • else{
  • die ('Une erreur est survenue dans le format de l\'image. Veuillez contacter un administrateur');
  • }
  • imagecopyresized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
  • imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
  • // Sauve la nouvelle image
  • if ($ext == 'jpg' || $ext=='JPG')
  • imagejpeg($dst_im,$img_dest);
  • else if ($ext == 'gif')
  • imagegif($dst_im,$img_dest);
  • else
  • imagepng($dst_im,$img_dest);
  • chmod("$img_dest",0777);
  • // Détruis les tampons
  • imagedestroy($dst_im);
  • imagedestroy($src_im);
  • }
  • // Affiche le descritif de la vignette, décommentez si vous voulez que la fonction renvoit cela à la suite de son exécution
  • //return 'width="'.$dst_w.'" height="'.$dst_h.'" alt="'.$alt.'" title="'.$title.'" />';
  • }
  • //si pas d'action définie, j'affiche la page d'accueil de la galerie
  • if (empty($_GET['action']))
  • {$action = "accueil";}
  • else { $action=$_GET['action']; }
  • //listing des repertoires pour les afficher dans un select present sur toutes les pages
  • $directoryListing = "Les photos";
  • $noDir = "aucun répertoire"; //message d'erreur si aucun repertoire dans le dossier
  • $dir="photo"; //repertoire où sont stockée les sous repertoires des photos
  • $rep=opendir($dir);
  • rewinddir($rep);
  • ?>
  • <center><form name="form1" method="post" action="index.php?page=galerie.php&action=affichephoto" class="texte">
  • <select name="dossier" onchange="this.form.submit();">
  • <option value=""></option>
  • <?
  • //$bAuMoinsUnRepertoire = false;
  • while ($file = readdir($rep)){
  • if($file != '..' && $file !='.' && $file !='' && $file !='Thumbs.db'){
  • //if (is_dir($file)){
  • $bAuMoinsUnRepertoire = true;
  • ?>
  • <option value="<? echo "$file"; ?>" <? if(isset($_POST['dossier']) && $_POST['dossier']=="$file") { echo "selected=\"selected\""; }
  • if(isset($_GET['dossier']) && $_GET['dossier']=="$file") { echo "selected=\"selected\""; } ?>><? echo "$file"; ?></option>
  • <?
  • //}
  • }
  • }
  • echo "</select></form></center>";
  • if ($bAuMoinsUnRepertoire == false) {
  • print("<tr><td nowrap class='texte'><div align='center'>- $noDir -</div></td>");
  • print("</td></tr>");
  • }
  • //on ferme le repertoire et on libère la mémoire
  • closedir($rep);
  • clearstatcache();
  • //affichage de la page d'accueil de la galerie si pas d'action définie
  • if($action=="accueil")
  • {
  • echo '<p class="texte">Decouvrez nos photos, n\'hesiter pas a laisser des commentaires sur le forum! <br>
  • Pour fonctionner cette galerie a besoin d\'un repertoire photos contenant les sous dossiers des photos et d\'un repertoire
  • mini qui contiendra les sous dossier des miniatures généré par le script </p>';
  • }
  • /*
  • **
  • //affichage galerie
  • **
  • */
  • function isImg ($file){if (eregi(".jpg$",$file)){return true;}} // Fonction de verification des fichiers jpeg
  • //si action=affiche photo on affiche la page des miniatures de la galerie selectionnée
  • if($action=="affichephoto")
  • {
  • if(isset($_GET['dossier']))
  • {
  • $dossier=$_GET['dossier'];
  • }
  • if(isset($_POST['dossier']))
  • {
  • $dossier=$_POST['dossier'];
  • }
  • $repImg = "photo/$dossier"; // Repertoire des images
  • $handle = opendir("$repImg"); // On ouvre le repertoire des images
  • while ($file = readdir($handle))
  • {
  • if ($file != "." && $file != ".." && isImg ($file))
  • {
  • //on crée le dossier de miniatures avec @ pour éviter message d'erreur si il n'existe pas!
  • @mkdir("mini/$dossier");
  • //chmod("mini/$dossier",0777);
  • //on enregistre la miniatures dans le dossier mini, dans un sous repertoire portant le meme nom et avec le prefixe mini
  • redimage("$repImg/$file","mini/$dossier/mini_$file",100,100,"test","test");
  • $listImg[] = $file; // On place toutes les images du dossier dans le tableau $imgList
  • sort($listImg);}} // On classe les fichiers dans l'orde alphabetique (c'est plus mieux ;D) )
  • closedir($handle); // On ferme le repertoire des images
  • // presentation de la page
  • $lien = "index.php?page=galerie.php&action=affichephoto&dossier=$dossier&"; // Liens pour afficher votre page
  • //on teste si un numero de la galerie a été envoyé par la barre d'adresse pour l'affichage sur plusieurs pages des miniatures
  • if (empty($_GET['Galerie']))
  • {$Galerie = 1;}
  • else { $Galerie=$_GET['Galerie']; }
  • $precGalerie = $Galerie-1; // Galerie precedente
  • $suivGalerie = $Galerie+1; // Galerie suivante
  • $nbImg = count($listImg); // Compte le nombre d'image
  • $nbLigne = 4; // Nombre de ligne souhaité
  • $nbCol = 4; // Nombre de colonne souhaité
  • $nbImgParPg = $nbLigne*$nbCol; // Calcul du nombre d'image par page en fonction des parametres précédents
  • $nbGalerie = $nbImg/$nbImgParPg; // Calcul du nombre de galerie
  • $nbGalerie = ceil("$nbGalerie"); // Calcul du nombre de galerie, arrondi superieur du calcul
  • $numImg = ($Galerie*$nbImgParPg)-$nbImgParPg; // Compteur pour le tableau $imgList
  • //affichage de tableau contenant les miniatures
  • echo '<table border="0" cellspacing="5" cellpadding="3" width="95%" align="center" class="texte">';
  • $comptLigne = 0; // Mise a zero du compteur de lignes
  • while ($comptLigne < $nbLigne)
  • {
  • echo '<tr>';
  • $comtpImg = 0; // Mise a zero du compteur d'images
  • while ($comtpImg < $nbCol && $numImg < $nbImg)
  • {
  • echo '<td align=center><a target=blank href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" border="0" width="50" height="50"></a></td>';
  • //changez la ligne ci-dessus pour la taille des miniatures
  • $numImg++; // Incremantation du compteur de $imgList (each() et foreach() etait beaucoup moins pratique :D( )
  • $comtpImg++; // Incremantation du compteur d'images
  • }
  • echo '</tr>';
  • $comptLigne++; // Incremantation du compteur de lignes
  • }
  • //afichage de la barre de navigation
  • echo '</table><table width="100%" border="0" class="texte"><tr><td colspan="$nbCol" align="center" width="100%">';
  • for ($compt = 1; $compt <= $nbGalerie && $nbGalerie > 1; $compt++)
  • {echo '| <a href="'.$lien.'Galerie='.$compt.'">'.$compt.'</a> ';}
  • if ($nbGalerie > 1)
  • {echo' | ';}
  • echo '</td></tr><tr><td width="50%" align="left">';
  • if ($Galerie > 1)
  • {echo '<a href="'.$lien.'Galerie='.$precGalerie.'">Precedent</a> ';} // Lien "precedent"
  • echo ' </td><td width="50%" align="right">';
  • if ($Galerie < $nbGalerie)
  • {echo '<a href="'.$lien.'Galerie='.$suivGalerie.'">Suivant</a>';} // Lien "suivant"
  • echo '</td></tr></table></td></tr></table>';
  • }
  • ?>
<?php
# //////////////////////////////////////////////////////////////////////////////////////////////////////////////
# /*galerie d'image par malokaff,
# Il s'agit d'un mix de plusieurs source de phpcs que j'ai essayer de simplifier pour faire un systeme de galerie
# simple : il suffit de metre les photos dans des sous dossiers du repertoire photo et le script se charge de
# la création des miniatures et de la mise en page.
#
#vous avez besoin d'un repertoire photo qui contient les dossiers des photos, 
#					un repertoire mini qui contiendra les miniatures généré par le script
# *////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
**
//Fonction compression des images
**
*/
function redimage($img_src,$img_dest,$dst_w,$dst_h,$alt,$title) 
	{
   // Lit les dimensions de l'image
   $size = getimagesize($img_src);
   $src_w = $size[0]; $src_h = $size[1];
   $ext = strtolower(substr($img_src, -3));
// $ext = strtolower(strstr($img_src, '.'));

   // Teste les dimensions tenant dans la zone
   $test_h = round(($dst_w / $src_w) * $src_h);
   $test_w = round(($dst_h / $src_h) * $src_w);
   // Si Height final non précisé (0)
   if(!$dst_h) $dst_h = $test_h;
   // Sinon si Width final non précisé (0)
   elseif(!$dst_w) $dst_w = $test_w;
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($test_h>$dst_h) $dst_w = $test_w;
   else $dst_h = $test_h;

   // La vignette existe ?
   $test = (file_exists($img_dest));
   // L'original a été modifiée ?
   if($test)
   	{
    $test = (filemtime($img_dest)>filemtime($img_src));
	}
   // Les dimensions de la vignette sont correctes ?
   if($test) {
    $size2 = getimagesize($img_dest);
    $test = ($size2[0]==$dst_w);
    $test = ($size2[1]==$dst_h);
   }

   // Créer la vignette ?
   if(!$test) {
    // Crée une image vierge aux bonnes dimensions
    $dst_im = imagecreatetruecolor($dst_w,$dst_h);

    // Copie dedans l'image initiale redimensionnée
    if ($ext == 'jpg' || $ext=='JPG')
    $src_im = imagecreatefromjpeg($img_src);
   else if ($ext == 'gif')
    $src_im = imagecreatefromgif($img_src);
   else if ($ext == 'png')
    $src_im = imagecreatefrompng($img_src);
   else{
    die ('Une erreur est survenue dans le format de l\'image. Veuillez contacter un administrateur');
    }

    imagecopyresized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
	imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);

    // Sauve la nouvelle image
    if ($ext == 'jpg' || $ext=='JPG')
    imagejpeg($dst_im,$img_dest);
   else if ($ext == 'gif')
    imagegif($dst_im,$img_dest);
   else
    imagepng($dst_im,$img_dest);
	
	chmod("$img_dest",0777);

    // Détruis les tampons
    imagedestroy($dst_im);
    imagedestroy($src_im);
   }

   // Affiche le descritif de la vignette, décommentez si vous voulez que la fonction renvoit cela à la suite de son exécution
   //return 'width="'.$dst_w.'" height="'.$dst_h.'" alt="'.$alt.'" title="'.$title.'" />';
}

//si pas d'action définie, j'affiche la page d'accueil de la galerie
if (empty($_GET['action'])) 
	{$action = "accueil";}
	else { $action=$_GET['action']; } 
	


//listing des repertoires pour les afficher dans un select present sur toutes les pages
$directoryListing = "Les photos";
$noDir = "aucun répertoire"; //message d'erreur si aucun repertoire dans le dossier

$dir="photo"; //repertoire où sont stockée les sous repertoires des photos
$rep=opendir($dir);
rewinddir($rep);
?>
<center><form name="form1" method="post" action="index.php?page=galerie.php&action=affichephoto" class="texte">
		<select name="dossier" onchange="this.form.submit();">
        <option value=""></option>
<?
//$bAuMoinsUnRepertoire = false;
while ($file = readdir($rep)){
	if($file != '..' && $file !='.' && $file !='' && $file !='Thumbs.db'){ 
		//if (is_dir($file)){
			$bAuMoinsUnRepertoire = true;
			?>
			<option value="<? echo "$file"; ?>" <? if(isset($_POST['dossier']) && $_POST['dossier']=="$file") { echo "selected=\"selected\""; }
													if(isset($_GET['dossier']) && $_GET['dossier']=="$file") { echo "selected=\"selected\""; } ?>><? echo "$file"; ?></option>
			<?
		//}
	}
}
echo "</select></form></center>";
if ($bAuMoinsUnRepertoire == false) {
	print("<tr><td nowrap class='texte'><div align='center'>-  $noDir  -</div></td>");
	print("</td></tr>");
}
//on ferme le repertoire et on libère la mémoire
closedir($rep);
clearstatcache();
	
//affichage de la page d'accueil de la galerie si pas d'action définie
if($action=="accueil")
	{
	echo '<p class="texte">Decouvrez nos photos, n\'hesiter pas a laisser des commentaires sur le forum! <br>
			Pour fonctionner cette galerie a besoin d\'un repertoire photos contenant les sous dossiers des photos et d\'un repertoire
			mini qui contiendra les sous dossier des miniatures généré par le script </p>';
	}
/*
**
//affichage galerie
**
*/
function isImg ($file){if (eregi(".jpg$",$file)){return true;}} // Fonction de verification des fichiers jpeg 
 
//si action=affiche photo on affiche la page des miniatures de la galerie selectionnée
if($action=="affichephoto")
	{ 
if(isset($_GET['dossier']))
	{
	$dossier=$_GET['dossier'];
	}
if(isset($_POST['dossier']))
	{
	$dossier=$_POST['dossier'];
	}
$repImg = "photo/$dossier"; // Repertoire des images 
$handle = opendir("$repImg"); // On ouvre le repertoire des images 
while ($file = readdir($handle)) 
    {
	if ($file != "." && $file != ".." && isImg ($file)) 
        {
		//on crée le dossier de miniatures avec @ pour éviter message d'erreur si il n'existe pas!
		@mkdir("mini/$dossier");
		//chmod("mini/$dossier",0777);
		//on enregistre la miniatures dans le dossier mini, dans un sous repertoire portant le meme nom et avec le prefixe mini
		redimage("$repImg/$file","mini/$dossier/mini_$file",100,100,"test","test");
		$listImg[] = $file; // On place toutes les images du dossier dans le tableau $imgList 
        sort($listImg);}} // On classe les fichiers dans l'orde alphabetique (c'est plus mieux ;D) ) 
		closedir($handle); // On ferme le repertoire des images 
  
		// presentation de la page 
		$lien = "index.php?page=galerie.php&action=affichephoto&dossier=$dossier&"; // Liens pour afficher votre page 
		//on teste si un numero de la galerie a été envoyé par la barre d'adresse pour l'affichage sur plusieurs pages des miniatures
		if (empty($_GET['Galerie'])) 
			{$Galerie = 1;}
			else { $Galerie=$_GET['Galerie']; } 
		$precGalerie = $Galerie-1; // Galerie precedente 
		$suivGalerie = $Galerie+1; // Galerie suivante 
  
		$nbImg = count($listImg); // Compte le nombre d'image 
		$nbLigne = 4; // Nombre de ligne souhaité 
		$nbCol = 4; // Nombre de colonne souhaité 
		$nbImgParPg = $nbLigne*$nbCol; // Calcul du nombre d'image par page en fonction des parametres précédents
		$nbGalerie = $nbImg/$nbImgParPg; // Calcul du nombre de galerie 
		$nbGalerie = ceil("$nbGalerie"); // Calcul du nombre de galerie, arrondi superieur du calcul 
		$numImg = ($Galerie*$nbImgParPg)-$nbImgParPg; // Compteur pour le tableau $imgList 
  		//affichage de tableau contenant les miniatures
		echo '<table border="0" cellspacing="5" cellpadding="3" width="95%" align="center" class="texte">'; 
  
		$comptLigne = 0; // Mise a zero du compteur de lignes 
		while ($comptLigne < $nbLigne) 
       		{
			echo '<tr>'; 
        	$comtpImg = 0; // Mise a zero du compteur d'images 
        	while ($comtpImg < $nbCol && $numImg < $nbImg) 
				{
			  	echo '<td align=center><a target=blank href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" border="0" width="50" height="50"></a></td>'; 
              	//changez la ligne ci-dessus pour la taille des miniatures 
				$numImg++; // Incremantation du compteur de $imgList (each() et foreach() etait beaucoup moins pratique :D( ) 
               	$comtpImg++; // Incremantation du compteur d'images 
            	} 
        		echo '</tr>'; 
        	$comptLigne++; // Incremantation du compteur de lignes 
       		} 
		//afichage de la barre de navigation
		echo '</table><table width="100%" border="0" class="texte"><tr><td colspan="$nbCol" align="center" width="100%">'; 
		for ($compt = 1; $compt <= $nbGalerie && $nbGalerie > 1; $compt++) 
     		{echo '| <a href="'.$lien.'Galerie='.$compt.'">'.$compt.'</a> ';} 
		if ($nbGalerie > 1)
			{echo' | ';} 
		echo '</td></tr><tr><td width="50%" align="left">'; 
		if ($Galerie > 1) 
    		{echo '<a href="'.$lien.'Galerie='.$precGalerie.'">Precedent</a> ';} // Lien "precedent" 
		echo ' </td><td width="50%" align="right">'; 
		if ($Galerie < $nbGalerie) 
    		{echo '<a href="'.$lien.'Galerie='.$suivGalerie.'">Suivant</a>';} // Lien "suivant" 
		echo '</td></tr></table></td></tr></table>'; 
	}
?>

 Conclusion

J'ai un bug lorsque les photos sont trop grande (>300ko), il balance une erreur fatale lors de la compression qui est lié je penses au serveur de mon ecole qui ne gere pas les grosses opérations.
Vous devez avoir un répertoire photo qui contient les dossiers des photos et un repertoire mini qui contiendra les miniatures générées.

une autre version de cette galerie est disponible : http://www.phpcs.com/code.aspx?ID=39981
Cette nouvelle version prends en charge les commentaires et affiche l'image et ses commentaires dans une popup ce qui est beaucoup plus propre


 Historique

25 octobre 2005 21:49:54 :
petite erreur dans l'adresse de demo
27 octobre 2005 09:51:38 :
plus de commentaire, mise au nouvelle normes php, meilleure indentation
19 octobre 2006 18:23:48 :
nouvelle version de cette galerie avec gestion des commentaires : http://www.phpcs.com/code.aspx?ID=39981

 Sources du même auteur

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ...
Source avec Zip GALERIE PHOTO MALOKAFF 2EME VERSION AVEC GESTION DES COMMENT...

 Sources de la même categorie

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ... par malokaff
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151

 Sources en rapport avec celle ci

CLASS GALERIE PHOTO par Xiryl
Source avec Zip Source avec une capture YM_GALLERIE_MAKER par ym_trainz
Source avec Zip Source avec une capture GALERIE D'IMAGE SIMPLE ET FACILE A INTEGRER A VOS PAGES EXIS... par darknessneo
Source avec une capture GALERIE PHP SANS BDD, AVEC CRÉATION DE VIGNETTES par ThePilot
Source avec une capture GALERIE PHOTO TRES SIMPLE par p3x

Commentaires et avis

Commentaire de malokaff le 25/10/2005 21:27:49

place aux commentaires...

Commentaire de MATHIS49 le 25/10/2005 23:31:20

c'est un peut le bordel..

Commentaire de twisteurwin le 26/10/2005 13:15:42

Malokaff > petits conseils... L'idée est bonne mais :
1) donnes du concret car il manque les commentaires essentiels, tels que création des pages et du repertoire... bref un débutant s'y perd vite et v'a zapper ta source et/ou ne pourra pas la tester ! je te propose de faire un petit zip fonctionnel...
2) Il v'a falloir remmettre ton code à jour :
<? devient <?php
les echo ""; devient des echo'';
puis exemple:
echo " <td align=center>... devient echo " <td align="center">...
<img src=\"mini/$dossier/mini_$listImg[$numImg]\" border=0 width=50 height=50> devient
<img src="mini/$dossier/mini_$listImg[$numImg]" border="0" width="50" height="50" />
faut pas négliger le xhtml etc...
3) stop l'ouverture des images dans des grandes pages html c'est pas joli du tout le mieux est d'utiliser du javascript pour calibrer l'affichage de tes images dans tes aperçus
exemple ( des variables à modifier ):
echo '<a href="javascript:ouvrirImage(\'', $urlphoto, '/',$fichier,'\',\'300\',\'300\')">
ici ton image</a>';

Allez bon courage je note quand ce sera à jour
Twist :-)

Commentaire de twisteurwin le 26/10/2005 13:28:13

correction
echo " <td align=center>... devient echo ' <td align="center">...

Commentaire de twisteurwin le 26/10/2005 13:32:38

ah oui et encore ca
<img src="mini/$dossier/mini_$listImg[$numImg]" border="0" width="50" height="50" />

echo '<img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" border="0" width="50" height="50" />...

Bon j'arrete cette fois ci lol

Commentaire de ImmortalPC le 26/10/2005 13:59:57

Salut,
4 GROSSES erreur !!!
1) <? ?> --> <?php ?>
2) chmod("$img_dest",0777); --> chmod($img_dest,0777);
3) echo "$file"; --> echo $file;
4) " --> ' les ' sont plus rapide
5) XHTML

@+
Immortal-PC

Commentaire de malalam le 26/10/2005 14:13:14 administrateur CS

Hello,

hmm...ce ne sont pas de GROSSES erreurs, mais des imperfections...ou des non optimisations. Mais il n'y a pas d'erreur dans ces 4 petites choses que tu soulèves :-)

Twisteur => point 3 => mouai...c'est plus joli, je suis d'accord :-) Mais il vaut mieux se réserver aussi la possibilité de laisser le script travailler sans javascript. Donc, oui pour ton amélioration, mais en gardant la version sans js au cas où js soit désactivé.

(j'ai décidé de commenter les commentaires, pour changer ;-) )

Commentaire de malokaff le 26/10/2005 14:56:25

bon ok je reconnais que j'ai pas été top sur les normes! je vais corriger ça dès que j'ai le temps!!
Sinon je ne savais pas que le echo " ", c'etait plus a la mode!

Commentaire de twisteurwin le 26/10/2005 16:12:07

Malokaff > j'ai fais et il m'arrive encore de faire des echo ""; mais c'est pas bien de le faire car ton script s'éxecute moins vite...

Malalam > Ok, moi je suis d'accord sans JS si tu as une idée je suis preneur.

+++ Malokaff bon courage,

Commentaire de ImmortalPC le 26/10/2005 16:19:43

Re,
"4 imperfections" !?
Quand même, certain serveurs n'accèptent pas les <? donc ça plante.
Mais c'est vrais que les 4 autres sont des optimisations

>twisteurwin:
Je crois avoir trouvé la solution pour ton problème avec easyphp.
@+

Commentaire de malalam le 26/10/2005 16:47:40 administrateur CS

Twisteurtwin => bah il en existe sans js, mais elles ne sont pas très jolies non plus... : formulaire caché, et iframe. Mais bon, je n'ai pas dit qu'il fallait éradiquer js...j'ai dit qu'il fallait prévoir une alternative. Donc ce que j'en pense : ta solution (ou un div, ça suffit, avec un formulaire et un innerHTML sur le div), des requêtes xmlhttp...ce que l'on veut, et en alternative, si js est désactivé, la solution de Malokaff.

ImmortalPC => oui, pour la balise <?php, c'est vrai. Même si ça reste autorisé par php...ça devient quand même une erreur d'utiliser les short open tags.

Commentaire de twisteurwin le 27/10/2005 06:14:16

ImmortalPC >> Ok je suis impatient de savoir & merci encore, on se capte sur msn cette apres midi...

Malalam >> Ok jsuis d'accord avec toi... sauf pour les iframes ( à banir ) car ca fou le bordel niveau référencement...

Malokaff >> J'attends que tu mettes ton code à jour pour que je puisse noter...

Bye all :-)

Commentaire de malokaff le 27/10/2005 09:53:58

correction effectuée, j'ai laisser mon systeme d'ouverture des images dans un blank, parceque c'est qd meme tres simple et pas si mal que ça!

Commentaire de viking_force le 02/11/2005 09:39:01

salut

Déjà, félicitation pour la source, y'a un réel travail derriere....(on commence par les félicitations :-))

sinon, est-ce que quelqu'un peut me dire en quoi un echo "bonjour $user"; serais plus lent qu'un echo 'bonjour '.$user; ??

Quel est donc la quantité de temps perdu ?? Quel est la proportion de temps perdu en comparaison a celui perdu lors d'une requête sql mal formulée ??

Commentaire de malalam le 02/11/2005 10:46:32 administrateur CS

Hello,

parce que php doit alors aller regarder entre les guillemets, pour savoir s'il y aune variable à parser dedans.
Avec de simple quotes, il ne regarde pas, puisqu'il n'interprète pas les variables s'y trouvant.

La quantité est minime sur de petits scripts...puis grossi au fur et à mesure. Autant prendre l'habitude d'écrire ainsi de suite, comme ça, pas la peine de se poser de questions:-)

Commentaire de malokaff le 02/11/2005 13:23:32

merci pour cette explication parceque j'ai corriger mais sans savoir pourquoi!

Commentaire de viking_force le 02/11/2005 14:01:36

ha ben si on se posais pas de questions, on progresserais pas :-)

Commentaire de cmoidhen le 28/11/2005 11:18:48

Merci pour ce script tres interessant, je suis photographe et je recherche depuis quelques temps deja un script pour faire une galerie photo. Dans la majorité des codes les miniatures sont deformées d'ou ma question:
Est-il possible d'ajouter du code pour conserver les proportions des images tout en gardant une mise en page propre?
Merci de vos réponses.

Commentaire de malokaff le 29/11/2005 15:04:54

oui c'est possible, tu peux par exemple fixer une taille sur la largeur seulement dans <img src=... weight="100"> mais le probleme est que ça va faire des décallage entre les photos en portrait et les photos en paysages. Du coup, au niveau de la mise en page, c'est pas top. C'est pour ça que j'ai choisit de deformer les miniatures, au moins elles sont toutes pareilles et ça permet de prévisualiser.
Enfin bon, en tout cas, pour répondre a ta question, oui c'est possible.

Commentaire de viking_force le 30/11/2005 09:36:56

il est aussi possible d'extraire un bout de ton image et de la mettre en miniature.....

on prend pour exemple des miniatures de 100px par 100px......
Tu t'arrange pour re-dimensionner l'image de façon a ce que son coté le plus petit fasse 100px (le deuxième, forcement, fera au moins ou plus de 100px) et tu 'crop' l'image en en créant une nouvelle grâce a la librairie GD

Commentaire de cmoidhen le 30/11/2005 19:33:15

Merci pour vos reponses.
Je suis plus que nul en code mais je m'en sort en piochant un bout par ci par la.
Donc Malokaff avant que je me batte avec le php mon idée etait de generer une page avec un tableau de cellules carrées ex: 150x150 px et de recuperer le rapport Hauteur/largeur de l'image d'origine
Ainsi si le premier chiffre du rapport est inferieur au deuxieme on demande une miniature avec width="150" et si c'est l'inverse on demande une miniature avec height="150"
Je ne demande pas que vous me fassiez le code(quoique!!!!!!)mais juste si vous pensez que c'est réalisable.
Et promis si je m'en sort je le post sur le site
Car pour repondre a viking_force nous les photographes nous detestons que l'on recoupe nos images(meme en miniature)mais merci quand meme pour ton aide

Commentaire de balzac90 le 11/03/2006 12:02:32

hello word !
Très bien ce code, mais le newbe que je suis a du mal à la mettre en place :
j'ai une erreur de mon hébergeur : "Warning: chmod() has been disabled for security reasons in index.php on line 73", c'est grave ?
J'arrive pas non plus à trouver comment faire des miniatures plus grosses... :(
Merci d'avance !

Commentaire de malokaff le 11/04/2006 19:25:34

salut balzac, ça faisait un pti moment que je n'etais pas revenu la, je sais pas si ma réponse sera toujours d'actualité mais bon j'essaye qd meme!

chmod, c une fonction qui permet de changer les droits sur un fichier,apparement ton hebergeur à desactiver cette fonction. Cela dis, ça marche peut etre quand meme, tu pe mettre les chmod en commentaire, ça dépend comment le serveur traite les fichiers...

Pour faire des miniature plus grosse, c'est plus compliqué! Tu peux déjà generer des miniature plus grosse lors de l'appel a la fonction redimage (ici 100 par 100).
Et apres, il faut que tu modifie l'affichage du tableau qui contient les miniatures, modifiez la balise width dans les <img src="..." width="XXX">

Bon courage...

Commentaire de malokaff le 24/04/2006 16:15:28

Bonjour, pour ceux que ça interresse, j'ai encore améliorer ce code : j'ai rajouter la possibilité de commenter les photos en utilisant une table mysql, si des gens sont intéressé, je veux bien essayer de commenter mon usine a gaz et je la posterai dans une autre source (pour laisser celle ci comme çà).

Commentaire de clive2k1 le 23/08/2006 12:16:39

Bonjour!
J'ai un leger petit probleme ^^" Ce script n'accepte pas + de 30 fichiers!! Si j'en met +, il me sort 'Fatal error: mkdir(Miniatures/Wallpapers) [<a href='function.mkdir'>function.mkdir</a>]: File exists in....'
Ya un moyen d'arranger ca??

Sinon, ta nouvelle version m'interesse ;)

Commentaire de didou038 le 08/12/2006 18:28:33

salut !

c'est exactement le genre de script que je cherchais !

par contre une fois mis en place j'ai un soucis de mise en page, en effet je fais un include de "galerie.php (ton script) dans le <div> ou je veux l'afficher, et des lors il me decalle le design et c'est assez genant. voila le lien vers le site en question qui est en cours de creation : http://www.forgotten.stars.free.fr/stel/index.php
merci de ton aide

Commentaire de didou038 le 08/12/2006 18:46:00

j'ai trouvé d'ou le problème venait, c'était la "barre de navigation" que je ne voyais d'ailleurs pas, je l'ai donc désactivé et tout marche correctement !

Commentaire de kimiwelle le 02/02/2010 10:37:47

Bonjour,

Complètement newbie du php, (j'ai fait que des formulaires pour le moment) je suis super intéressée par la galerie sans commentaire avec la gestion de rubriques.

mais je pense qu'il me manque des commentaires dans le code pour bien personnaliser le code... parce que j'ai un message d'erreur désopilant :
"404 Not Found
The requested URL /GIROUETTES/index.php was not found on this server.
Apache/ProXad [Aug 9 2008 02:45:07] Server at gs.com.free.fr Port 80"


newbie de chez newbie, je ne vois pas quel pourrait être le problème...

ma galerie :
http://gs.com.free.fr/GIROUETTES/test2_galleriephp.php

Merci d'avance pour votre aide. je galère grave. vivement que je sois formée sur du php.

K.

Commentaire de twisteurwin le 02/02/2010 18:06:18

Kimiwelle > je vais essayer de te répondre,

1) Concernant l'erreur affiché la c'est simple, il te manque le fichier index.php sur ton ftp ici => http://gs.com.free.fr/GIROUETTES/index.php

2) Dans ton formulaire actuellement tu n'envoi pas la val $_POST['dossier'] du champ select avec l'une de tes valeurs <option value="Enseignes"> ou <option value="Girouettes" >

Donc même si il y avait l'index.php, il ne serait pas quoi en faire puisque tu demandes à ton champs <select name="dossier" onchange="this.form.submit();">
d'envoyer automatiquement le formulaire à cette url <form ...action="index.php?page=galerie.php&action=affichephotos"...> lorsqu'on Sélectionne une de ces options oO ???

Bref il ne te sert a rien ton formulaire dans l'état il n'envoi aucune valeur que ce soit en méthode post ou get ca aurait été pareil !!!

3) J'ai un petit peu cherché et j'ai déouvert comment afficher tes images :) :
pour les Girouettes => http://gs.com.free.fr/GIROUETTES/test2_galleriephp.php?page=galerie&action=affichephotos&dossier=Girouettes
pour les Enseignes => http://gs.com.free.fr/GIROUETTES/test2_galleriephp.php?page=galerie&action=affichephotos&dossier=Enseignes

Tu remarques la présence en "bout de chaine" du paramètre "&dossier=Enseignes" ? Miracle ca s'affiche :)


4) Colle le code de la page test2_galleriephp.php si tu veux qu'on t'aide moi jte le corrige si tu veux

A +++ bon courage j'attends ton code qu'on corrige (j'espere que tu as compris jsuis un peu fatigué , désolé ^^ )

Commentaire de kimiwelle le 02/02/2010 19:06:45

Bonsoir,

Alors je ne comprends pas tout, il va falloir la refaire lentement...

J'ai fait quelques modifs avec Malokaff via MP, j'ai modifié le fichier le lien c'est maintenant :
http://gs.com.free.fr/GIROUETTES/galerie.php

à ma grande surprise, j'ai même réussi à intégrer mon CSS dans le php.
maintenant, j'ai quelques ajustements à faire :

1. j'aimerais qu'on voit bien dans la barre de sélection les 2 rubriques que j'ai créé. elles sont pas très lisibles et je sais pas pourquoi?
il y a un problème similaire avec la numérotation des pages, et l'emplacement des suivant et précédent

2. j'aimerai agrandir les miniatures, elles sont trop petites par rapport à mon besoin.

3. j'aurai aimé qu'elles s'ouvrent dans une lightbox ou éventuellement dans une frame...

peut on faire quelque chose comme ca?

Merci d'avance.

Maeva

PS : voici mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document sans titre</title>
<link href="sources/styles_girouettes.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="content_general">
<div id="header"></div>
<div id="header_menu"></div>
<div id="content_main">
<div id="content_main_galerie">
<table width="950" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2">Découvrez nos photos, n'hésitez pas à nous contacter pour plus d'informations<br />
      Vous pouvez aussi nous commander votre modèle personalisé.<br /></td>
    <td width="189"><a href="galerie.php" target="_self"><br />
      Retour à la Galerie principale </a></td>
  </tr>
  <td width="196"><tr>
          <?php
# //////////////////////////////////////////////////////////////////////////////////////////////////////////////
# /*galerie d'image par malokaff,
# Il s'agit d'un mix de plusieurs source de phpcs que j'ai essayer de simplifier pour faire un systeme de galerie
# simple : il suffit de metre les photos dans des sous dossiers du repertoire photo et le script se charge de
# la création des miniatures et de la mise en page.
#
#vous avez besoin d'un repertoire photo qui contient les dossiers des photos,
# un repertoire mini qui contiendra les miniatures généré par le script
# *////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
**
//Fonction compression des images
**
*/
function redimage($img_src,$img_dest,$dst_w,$dst_h,$alt,$title)
{
   // Lit les dimensions de l'image
   $size = getimagesize($img_src);
   $src_w = $size[0]; $src_h = $size[1];
   $ext = strtolower(substr($img_src, -3));
// $ext = strtolower(strstr($img_src, '.'));

   // Teste les dimensions tenant dans la zone
   $test_h = round(($dst_w / $src_w) * $src_h);
   $test_w = round(($dst_h / $src_h) * $src_w);
   // Si Height final non précisé (0)
   if(!$dst_h) $dst_h = $test_h;
   // Sinon si Width final non précisé (0)
   elseif(!$dst_w) $dst_w = $test_w;
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($test_h>$dst_h) $dst_w = $test_w;
   else $dst_h = $test_h;

   // La vignette existe ?
   $test = (file_exists($img_dest));
   // L'original a été modifiée ?
   if($test)
   {
    $test = (filemtime($img_dest)>filemtime($img_src));
}
   // Les dimensions de la vignette sont correctes ?
   if($test) {
    $size2 = getimagesize($img_dest);
    $test = ($size2[0]==$dst_w);
    $test = ($size2[1]==$dst_h);
   }

   // Créer la vignette ?
   if(!$test) {
    // Crée une image vierge aux bonnes dimensions
    $dst_im = imagecreatetruecolor($dst_w,$dst_h);

    // Copie dedans l'image initiale redimensionnée
    if ($ext == 'jpg' || $ext=='JPG')
    $src_im = imagecreatefromjpeg($img_src);
   else if ($ext == 'gif')
    $src_im = imagecreatefromgif($img_src);
   else if ($ext == 'png')
    $src_im = imagecreatefrompng($img_src);
   else{
    die ('Une erreur est survenue dans le format de l\'image. Veuillez contacter un administrateur');
    }

    imagecopyresized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);

    // Sauve la nouvelle image
    if ($ext == 'jpg' || $ext=='JPG')
    imagejpeg($dst_im,$img_dest);
   else if ($ext == 'gif')
    imagegif($dst_im,$img_dest);
   else
    imagepng($dst_im,$img_dest);

chmod("$img_dest",0777);

    // Détruis les tampons
    imagedestroy($dst_im);
    imagedestroy($src_im);
   }

   // Affiche le descritif de la vignette, décommentez si vous voulez que la fonction renvoit cela à la suite de son exécution
   //return 'width="'.$dst_w.'" height="'.$dst_h.'" alt="'.$alt.'" title="'.$title.'" />';
}

//si pas d'action définie, j'affiche la page d'accueil de la galerie
if (empty($_GET['action']))
{$action = "accueil";}
else { $action=$_GET['action']; }



//listing des repertoires pour les afficher dans un select present sur toutes les pages
$directoryListing = "Les photos";
$noDir = "aucun répertoire"; //message d'erreur si aucun repertoire dans le dossier

$dir="photos"; //repertoire où sont stockée les sous repertoires des photos
$rep=opendir($dir);
rewinddir($rep);
?>
<center><form name="form1" method="post" action="galerie.php?page=galerie.php&action=affichephotos" class="texte">
<select name="dossier" onchange="this.form.submit();">
        <option value=""></option>
<?
//$bAuMoinsUnRepertoire = false;
while ($file = readdir($rep)){
if($file != '..' && $file !='.' && $file !='' && $file !='Thumbs.db'){
//if (is_dir($file)){
$bAuMoinsUnRepertoire = true;
?>
<option value="<? echo "$file"; ?>" <? if(isset($_POST['dossier']) && $_POST['dossier']=="$file") { echo "selected=\"selected\""; }
if(isset($_GET['dossier']) && $_GET['dossier']=="$file") { echo "selected=\"selected\""; } ?>><? echo "$file"; ?></option>
<?
//}
}
}
echo "</select></form></center>";
if ($bAuMoinsUnRepertoire == false) {
print("<tr><td nowrap class='texte'><div align='center'>-  $noDir  -</div></td>");
print("</td></tr>");
}
//on ferme le repertoire et on libère la mémoire
closedir($rep);
clearstatcache();

//affichage de la page d'accueil de la galerie si pas d'action définie
if($action=="accueil")
{
echo '<p class="texte">   </p>';
}
/*
**
//affichage galerie
**
*/
function isImg ($file){if (eregi(".jpg$",$file)){return true;}} // Fonction de verification des fichiers jpeg

//si action=affiche photos on affiche la page des miniatures de la galerie selectionnée
if($action=="affichephotos")
{
if(isset($_GET['dossier']))
{
$dossier=$_GET['dossier'];
}
if(isset($_POST['dossier']))
{
$dossier=$_POST['dossier'];
}
$repImg = "photos/$dossier"; // Repertoire des images
$handle = opendir("$repImg"); // On ouvre le repertoire des images
while ($file = readdir($handle))
    {
if ($file != "." && $file != ".." && isImg ($file))
        {
//on crée le dossier de miniatures avec @ pour éviter message d'erreur si il n'existe pas!
@mkdir("mini/$dossier");
//chmod("mini/$dossier",0777);
//on enregistre la miniatures dans le dossier mini, dans un sous repertoire portant le meme nom et avec le prefixe mini
redimage("$repImg/$file","mini/$dossier/mini_$file",100,100,"test","test");
$listImg[] = $file; // On place toutes les images du dossier dans le tableau $imgList
        sort($listImg);}} // On classe les fichiers dans l'orde alphabetique (c'est plus mieux ;D) )
closedir($handle); // On ferme le repertoire des images
  
// presentation de la page
$lien = "galerie.php?page=galerie.php&action=affichephotos&dossier=$dossier&"; // Liens pour afficher votre page
//on teste si un numero de la galerie a été envoyé par la barre d'adresse pour l'affichage sur plusieurs pages des miniatures
if (empty($_GET['Galerie']))
{$Galerie = 1;}
else { $Galerie=$_GET['Galerie']; }
$precGalerie = $Galerie-1; // Galerie precedente
$suivGalerie = $Galerie+1; // Galerie suivante
  
$nbImg = count($listImg); // Compte le nombre d'image
$nbLigne = 4; // Nombre de ligne souhaité
$nbCol = 4; // Nombre de colonne souhaité
$nbImgParPg = $nbLigne*$nbCol; // Calcul du nombre d'image par page en fonction des parametres précédents
$nbGalerie = $nbImg/$nbImgParPg; // Calcul du nombre de galerie
$nbGalerie = ceil("$nbGalerie"); // Calcul du nombre de galerie, arrondi superieur du calcul
$numImg = ($Galerie*$nbImgParPg)-$nbImgParPg; // Compteur pour le tableau $imgList
   //affichage de tableau contenant les miniatures
echo '<table border="0" cellspacing="5" cellpadding="3" width="95%" align="center" class="texte">';
  
$comptLigne = 0; // Mise a zero du compteur de lignes
while ($comptLigne < $nbLigne)
       {
echo '<tr>';
         $comtpImg = 0; // Mise a zero du compteur d'images
         while ($comtpImg < $nbCol && $numImg < $nbImg)
{
   echo '<td align=center><a target=blank href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" border="0" width="50" height="50"></a></td>';
               //changez la ligne ci-dessus pour la taille des miniatures
$numImg++; // Incremantation du compteur de $imgList (each() et foreach() etait beaucoup moins pratique :D( )
               $comtpImg++; // Incremantation du compteur d'images
             }
         echo '</tr>';
         $comptLigne++; // Incremantation du compteur de lignes
       }
//afichage de la barre de navigation
echo '</table><table width="100%" border="0" class="texte"><tr><td colspan="$nbCol" align="center" width="100%">';
for ($compt = 1; $compt <= $nbGalerie && $nbGalerie > 1; $compt++)
     {echo '| <a href="'.$lien.'Galerie='.$compt.'">'.$compt.'</a> ';}
if ($nbGalerie > 1)
{echo' | ';}
echo '</td></tr><tr><td width="50%" align="left">';
if ($Galerie > 1)
     {echo '<a href="'.$lien.'Galerie='.$precGalerie.'">Precedent</a> ';} // Lien "precedent"
echo ' </td><td width="50%" align="right">';
if ($Galerie < $nbGalerie)
     {echo '<a href="'.$lien.'Galerie='.$suivGalerie.'">Suivant</a>';} // Lien "suivant"
echo '</td></tr></table></td></tr></table>';
}
?>

</tr>
</table>
    
</div>
<div id="content_main_galerie_bas">
</div>
</div>

<div id="footer">Girouettes et enseignes ALL DESIGN</div>
</div>
</body>
</html>

Commentaire de kimiwelle le 02/02/2010 19:12:18

une remarque, j'ai l'impression tout de même que le php intégré dans le html il aime pas trop.
pourtant...
il me dit que certaines balises ne sont pas complètes quand elles se terminent après le php.

Commentaire de twisteurwin le 02/02/2010 20:07:19

Maeva/kimiwelle > Ok la Malokaff ta crée un form fonctionnel tant mieux donc pour répondre a tes questions:

-> "1.1 j'aimerais qu'on voit bien dans la barre de sélection les 2 rubriques que j'ai créé. elles sont pas très lisibles et je sais pas pourquoi?"

> la réponse est dans ton fichier CSS ici => (http://gs.com.free.fr/GIROUETTES/sources/styles_girouettes.css):
----------------------------------------------------------------
dans le code du fichier css:
----------------------------------------------------------------
select
{
height:22px;
width:100px;
}
----------------------------------------------------------------
> tu as obligé aux champs <select> via ton CSS a les faire s'afficher à 100px en largueur et 22 pixels en hauteur, normal hein le mot est plus large que 100px !
>> Solution : virer cette portion de code de ton css ou modifie le  en largueur (ex: 200px...)
----------------------------------------------------------------
exemple - dans le code du fichier css:
----------------------------------------------------------------
select
{
height:22px;
width:200px;
}
----------------------------------------------------------------
-> "1.2 il y a un problème similaire avec la numérotation des pages, et l'emplacement des suivant et précédent"

> C'est encore toi qui a défini ca dans ton css "interne à la page" en mettant <td width="50%" align="left"..><a href="..">suivant</a>

>> Solution diminue le width tu verras ca va se rapprocher
----------------------------------------------------------------
exemple - dans le code php:(cherche la meme ligne et corrige)
----------------------------------------------------------------
ca:
echo '</td></tr><tr><td width="50%" align="left">';
par ca:
echo '</td></tr><tr><td width="10%" align="left">';

et

ca:
echo ' </td><td width="10%" align="right">';
par ca:
echo ' </td><td width="10%" align="right">';
----------------------------------------------------------------
-> "2. j'aimerai agrandir les miniatures, elles sont trop petites par rapport à mon besoin."

> les miniatures sont des images donc il te faut repérer la balise image <img> dans la source de ton code php hein ^^

>> solution => va a la ligne correspondante de ton code php :
----------------------------------------------------------------
exemple - dans le code php:(cherche la meme ligne et corrige)
----------------------------------------------------------------
ca:
   echo '<td align=center><a target=blank href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" border="0" width="50" height="50"></a></td>';
//changez la ligne ci-dessus pour la taille des miniatures
par ca:
   echo '<td align=center><a target=blank href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" border="0" width="100" height="100"></a></td>';
//changez la ligne ci-dessus pour la taille des miniatures
----------------------------------------------------------------
>> solution (suite) => et change comme c'est marqué width="50" height="50" par ce que tu veux (100 par ex)

-> "3. j'aurai aimé qu'elles s'ouvrent dans une lightbox ou éventuellement dans une frame..."

> Surtout pas une frame malheur !!! oublies les frames ca n'existe pas c'est obsolète !!! ( tu fais déjà assez d'erreur comme ca...)
> Quand tu cliques sur ta miniature d'image elle s'affiche dans une page blanche hein et tu la vois calée en haut a gauche, ok ?

>> Solution => , donc le principe pour répondre à ta question serait de donner au lien un parametre javascript qui te permetrait d'ouvrir la photo en "grande" mais dans une "popup"

>> le lien en question => <a target=blank href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" border="0" width="50" height="50"></a>

>> avec une popup (ce que tu voulais):

   echo '<td align=center><a onclick="window.open(this.href, \'Grande',\'height=400,width=400,top=100,left=100\');return false;"
href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" target="blank" border="0" width="100" height="100" ></a></td>';
               //changez la ligne ci-dessus pour la taille des miniatures


Bref j'espère que tu as compris cette fois ci mais je vois que t'es vraiment trop débutante tu devrais aller dans un premier temps te former un peu apprendre les bases du php, css mais aussi en xhtml parce que le code ci dessus (désolé) est vraiment pas un bon model surtout si on débute...

tiens un bon lien pour apprendre => http://www.vulgarisation-informatique.com/
Ou bien épluche un peu les tutos sur CS y en a pleins, mais reste pas comme ca faut apprendre les bases :)

a+++

Commentaire de twisteurwin le 02/02/2010 20:10:52

Erratum, petite erreur ^^

----------------------------------------------------------------
exemple - dans le code php:(cherche la meme ligne et corrige)
----------------------------------------------------------------
ca:
echo '</td></tr><tr><td width="50%" align="left">';
par ca:
echo '</td></tr><tr><td width="10%" align="left">';

et

ca:
echo ' </td><td width="50%" align="right">';
par ca:
echo ' </td><td width="10%" align="right">';
----------------------------------------------------------------

désolé a+++

Commentaire de kimiwelle le 02/02/2010 22:07:48

merci beaucoup pour ton aide...

ca m'a beaucoup aidé.

Commentaire de twisteurwin le 02/02/2010 23:29:43

jt'en prie :)

Commentaire de malokaff le 03/02/2010 22:00:44

hello,

merci twisteurwin pour ton expertise!

moi même j'aurais du mal à me replonger dedans parceque c'est un vieux script que j'ai pondu en 2006!

merci en tout cas pour l'interet que vous portez sur ce script

avec du recul et plus d'expérience, il aurait fallu que j'integre une partie "constante" pour pouvoir changer facilement certains parametre comme le nom de la page utilisé (par défault index.php)

mais bon, j'étais jeune et insouciant...

Kimiwelle, j'ai bien recu ton MP, je te reponds au plus vite

A+

Commentaire de twisteurwin le 04/02/2010 01:14:24

malokaff> J'en doute pas on est arrivé la même année (à un mois près) ici et je pense avec le même niveau :p
Après c'est sur qu'il faudrait tout refaire mais bon ca à le mérite (et peut être le défaut) d'ouvrir les yeux sur le php et ses lacunes quant il évolue ^^


kimiwelle> tu n'a pas bien collé le script que tu voulais pour ouvrir les images en grandes dans une popup:
remplace :
(source html)
<a onclick="window.open(this.href, 'Grandeheight=600,width=600,top=100,left=100');return false;"
href="photos/Enseignes/001.jpg"><img src="mini/Enseignes/mini_001.jpg" target="blank" border="0" width="100" height="100" ></a>

par :(recherche la ligne dans le code php et remplace la par celle la)

   echo '<td align="center"><a onclick="window.open(this.href, \'Grande',\'height=600,width=600,top=100,left=100\');return false;"
href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" target="blank" border="0" width="100" height="100" ></a></td>';
               //changez la ligne ci-dessus pour la taille des miniatures

Il faudrait aussi que tu changes le doctype c'est pas du xhtml...

a+++

Commentaire de kimiwelle le 04/02/2010 01:52:42

Bonsoir,

j'ai bien changé le code, mais ca s'ouvre pas en pop up.
et visiblement le "\" entre Grande et height ne lui plait pas...

   echo '<td align="center"><a onclick="window.open(this.href, \'Grande',\'height=600,width=600,top=100,left=100\');return false;"
href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" target="blank" border="0" width="100" height="100" ></a></td>';
               //changez la ligne ci-dessus pour la taille des miniatures

Je regarderai plus en détail demain...

merci encore pour ton aide.
j'ai pas mal avancé dans ma présentation, et il ne me reste plus que ce problème de pop up

Commentaire de twisteurwin le 04/02/2010 02:26:52

kimiwelle>autant pour moi jai fais une erreur ecris comme ca plutot

   echo '<td align="center"><a onclick="window.open(this.href, \'Grande\',\'height=600,width=600,top=100,left=100\');return false;"
href="'.$repImg.'/'.$listImg[$numImg].'"><img src="mini/'.$dossier.'/mini_'.$listImg[$numImg].'" target="blank" border="0" width="100" height="100" ></a></td>';
               //changez la ligne ci-dessus pour la taille des miniatures


la ca devrait aller tiens moi au jus a+++

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

arborescence de repertoire et sous répertoire avec galerie d'image [ par bladehelsing ] Bonjours à tous,après avoir essayer tous les codes arborescence avec galerie d'image.j'en ai trouvé aucun qui:affiche d'abord les répertoires qui seul galerie image [ par djbabou ] Bonjour à tous ... Me revoici sur codes sources avec une nouvelle quesion: J'ai développé une galerie d'image très simple en pure css/html. En fait, 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 redimensionner une photo lrs de l'upload [ par boubeuch1 ] Bonjour, Je souhaiterais faire en sorte que quelque soit la taille de l'image d'origine, lorsqu'elle est téléchargé sur le serveur, celle-ci est redi prévisualisation d'une image [ par khumalo1 ] salut j'amerais faire un formulaire d'enregistrement d'un membre avec enregistrement de photo.comment faire pour prévisualiser la photo avant enregis Moteur de recherche associé a ma galerie PHOTO (2 Q. en 1) [ par mastermh73 ] [i]2 Questions en 1 [b]Bonjour tout le monde[/b], je ne sais pas si c possible, de créer un moteur de recherche associé a ma galerie d'image qui ser [BAR]Moteur de recherche associé a ma galerie PHOTO (2 Q. en 1) [ par mastermh73 ] [i]2 Questions en 1 [b]Bonjour tout le monde[/b], je ne sais pas si c possible, de créer un moteur de recherche associé a ma galerie d'image qui ser Moteur de recherche associé a ma galerie PHOTO (2 Q. en 1) [ par mastermh73 ] [i]2 Questions en 1 [b]Bonjour tout le monde[/b], je ne sais pas si c possible, de créer un moteur de recherche associé a ma galerie d'image qui ser insertion d'une image sur une photo php [ par boubeuch1 ] Bonjour, Je fais actuellement un site ou je dois gérer des voitures en vente et bientot disponible. Sur les voiture bientot disponible il faut que j' Ajout de plusieurs image avec "addjpegfromfile" avec ezpdf [ par AcarnanDragoon ] Bonjour à toutes et à tous, Alors voila mon ptit soucis : J'utilise ezpdf pour créer des pdf de façon dynamique à partir de ma base de données. Le p


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,562 sec (3)

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