begin process at 2012 05 27 20:10:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > FAIRE UN ALBUM PHOTO AUTOMATIQUE, AVEC DES CATÉGORIES, SANS MYSQL (+ REDIMENTIONNEMENT..)

FAIRE UN ALBUM PHOTO AUTOMATIQUE, AVEC DES CATÉGORIES, SANS MYSQL (+ REDIMENTIONNEMENT..)


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Débutant Date de création :15/11/2004 Date de mise à jour :16/11/2004 17:04:45 Vu :15 904

Auteur : bthivent

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

 Description

Cliquez pour voir la capture en taille normale
Nous allons donc créer un album photo automatique, sans l'utilisation de mysql. En plus, il y aura des catégories (mais pas de sous-catégories). Comment ? nous allons en fait faire la liste de tous les dossiers contenu dans un dossier => cela formera les catégories.
Nous ouvrons le dossier (la catégorie) dans le même fichier, sauf que cette fois, une variable dir est définie. Nous ouvrirons donc ce dossier pour faire la liste de toutes les images le contenant... Passons au code [:D]

Source

  • <?
  • $dossier = 'images/photos/'; // on défini le dossier contenant les catégories.
  • $width_ref = '200'; // largeur des images réduites (la hauteur sera calculée automatiquement)
  • if (isset($_GET['dir'])) // si la variable dir est définie (envoyée par l'url (voir plus bas) et récupérée par get)
  • {
  • echo '<center><u>Catégorie</u> : <i><b>' . stripslashes($_GET['dir']) . '</b></i><br><br>'; // on affiche le nom de la catégorie (c'est à dire le dossier)
  • $rep=opendir($dossier . stripslashes($_GET['dir']). '/'); // on ouvre ce dossier
  • while ($file = readdir($rep)) // tant qu'il y a des fichiers dans ce dossier...
  • {
  • if($file != '..' && $file !='.' && $file !='') // si le fichier n'est pas égal à '..' (fichier existant) et à '.' et n'est pas vide (je sais pas pourquoi j'ai mis ça lol...)
  • {
  • $photo = $dossier . stripslashes($_GET['dir']) . '/' . $file; // photo = 'votre_dossier/categorie/fichier_trouvé.ext
  • list($width, $height, $type, $attr) = getimagesize($photo); // on récupère des infos de l'image
  • if (!($type)) // si son type (jpg,bmp..) n'est pas défini, il y a un prob (c'est ptêtre pas une image)..
  • {
  • echo ''; // alors on affiche rien (un blanc)
  • }
  • else
  • {
  • echo '<a href="' . $photo . '" target="_blanck"><img src="' . $photo . '" width="' . $width_ref . '" height="' . ( $height / ( $width / $width_ref ) ) . '"></a>&nbsp;&nbsp;'; // on affiche la photo redimentionnée, + un lien vers la taille réelle
  • }
  • }
  • }
  • closedir($rep); // on ferme le dossier
  • clearstatcache(); // euh je sais plus torp à quoi cela sert, mais ca doit servir !
  • echo '</center>';
  • }
  • else //pour les paumés : c'est le esle du "si on a une catégorie..($_GET['dir]")
  • {
  • echo '<center><u>Les catégories</u> :</center><br><br>'; // on va faire une liste des catégories existantes
  • $rep=opendir($dossier);
  • while ($file = readdir($rep))
  • {
  • if($file != '..' && $file !='.' && $file !='')
  • {
  • if (is_dir($dossier . $file))
  • {
  • echo '- <a href="index.php?p=photos&dir=' . $file . '">' . $file . '</a><br>'; // on fait un lien vers le même fichier, en mettant dans l'url la fameuse variable dir...
  • }
  • }
  • }
  • closedir($rep);
  • clearstatcache();
  • }
  • ?>
  • ////////////////////////////////////////////
  • CODE SANS LES COMMENTAIRES :
  • ////////////////////////////////////////////
  • <?
  • $dossier = 'images/photos/';
  • if (isset($_GET['dir']))
  • {
  • echo '<center><u>Catégorie</u> : <i><b>' . stripslashes($_GET['dir']) . '</b></i><br><br>';
  • $rep=opendir($dossier . stripslashes($_GET['dir']). '/');
  • while ($file = readdir($rep))
  • {
  • if($file != '..' && $file !='.' && $file !='')
  • {
  • $photo = $dossier . stripslashes($_GET['dir']) . '/' . $file;
  • $width_ref = '200';
  • list($width, $height, $type, $attr) = getimagesize($photo);
  • if (!($type))
  • {
  • echo '';
  • }
  • else
  • {
  • echo '<a href="' . $photo . '" target="_blanck"><img src="' . $photo . '" width="' . $width_ref . '" height="' . ( $height / ( $width / $width_ref ) ) . '"></a>&nbsp;&nbsp;';
  • }
  • }
  • }
  • closedir($rep);
  • clearstatcache();
  • echo '</center>';
  • }
  • else
  • {
  • echo '<center><u>Les catégories</u> :</center><br><br>';
  • $rep=opendir($dossier);
  • while ($file = readdir($rep))
  • {
  • if($file != '..' && $file !='.' && $file !='')
  • {
  • if (is_dir($dossier . $file))
  • {
  • echo '- <a href="index.php?p=photos&dir=' . $file . '"><font color="purple">' . $file . '</font></a><br>';
  • }
  • }
  • }
  • closedir($rep);
  • clearstatcache();
  • }
  • ?>
<?
$dossier = 'images/photos/'; // on défini le dossier contenant les catégories.
$width_ref = '200'; // largeur des images réduites (la hauteur sera calculée automatiquement)

if (isset($_GET['dir'])) // si la variable dir est définie (envoyée par l'url (voir plus bas) et récupérée par get)
{
	echo '<center><u>Catégorie</u> : <i><b>' . stripslashes($_GET['dir']) . '</b></i><br><br>'; // on affiche le nom de la catégorie (c'est à dire le dossier)
	$rep=opendir($dossier . stripslashes($_GET['dir']). '/'); // on ouvre ce dossier
	while ($file = readdir($rep)) // tant qu'il y a des fichiers dans ce dossier...
	{
		if($file != '..' && $file !='.' && $file !='') // si le fichier n'est pas égal à '..' (fichier existant) et à '.' et n'est pas vide (je sais pas pourquoi j'ai mis ça lol...)
		{
			$photo = $dossier . stripslashes($_GET['dir']) . '/' . $file; // photo = 'votre_dossier/categorie/fichier_trouvé.ext
			
			list($width, $height, $type, $attr) = getimagesize($photo); // on récupère des infos de l'image
			
			if (!($type)) // si son type (jpg,bmp..) n'est pas défini, il y a un prob (c'est ptêtre pas une image)..
			{
				echo ''; // alors on affiche rien (un blanc)
			}
			else
			{			
				echo '<a href="' . $photo . '" target="_blanck"><img src="' . $photo . '" width="' . $width_ref . '" height="' . ( $height / ( $width / $width_ref ) ) . '"></a>&nbsp;&nbsp;'; // on affiche la photo redimentionnée, + un lien vers la taille réelle
			}
		}
	}
	closedir($rep); // on ferme le dossier
	clearstatcache(); // euh je sais plus torp à quoi cela sert, mais ca doit servir !
	echo '</center>';
}
else //pour les paumés : c'est le esle du "si on a une catégorie..($_GET['dir]")
{
	echo '<center><u>Les catégories</u> :</center><br><br>'; // on va faire une liste des catégories existantes
	$rep=opendir($dossier);
	while ($file = readdir($rep))
	{
		if($file != '..' && $file !='.' && $file !='')
		{
			if (is_dir($dossier . $file))
			{
				echo '- <a href="index.php?p=photos&dir=' . $file . '">' . $file . '</a><br>'; // on fait un lien vers le même fichier, en mettant dans l'url la fameuse variable dir...
			}
		}
	}
	closedir($rep);
	clearstatcache();
}
?>

////////////////////////////////////////////
CODE SANS LES COMMENTAIRES :
////////////////////////////////////////////

<?
$dossier = 'images/photos/';

if (isset($_GET['dir']))
{
	echo '<center><u>Catégorie</u> : <i><b>' . stripslashes($_GET['dir']) . '</b></i><br><br>';
	$rep=opendir($dossier . stripslashes($_GET['dir']). '/');
	while ($file = readdir($rep))
	{
		if($file != '..' && $file !='.' && $file !='')
		{
			$photo = $dossier . stripslashes($_GET['dir']) . '/' . $file;
			$width_ref = '200';
			
			list($width, $height, $type, $attr) = getimagesize($photo);
			
			if (!($type))
			{
				echo '';
			}
			else
			{			
				echo '<a href="' . $photo . '" target="_blanck"><img src="' . $photo . '" width="' . $width_ref . '" height="' . ( $height / ( $width / $width_ref ) ) . '"></a>&nbsp;&nbsp;';
			}
		}
	}
	closedir($rep);
	clearstatcache();
	echo '</center>';
}
else
{
	echo '<center><u>Les catégories</u> :</center><br><br>';
	$rep=opendir($dossier);
	while ($file = readdir($rep))
	{
		if($file != '..' && $file !='.' && $file !='')
		{
			if (is_dir($dossier . $file))
			{
				echo '- <a href="index.php?p=photos&dir=' . $file . '"><font color="purple">' . $file . '</font></a><br>';
			}
		}
	}
	closedir($rep);
	clearstatcache();
}
?>

 Conclusion

Voilà :) Fini !
Normallement, les dossiers sont cencés contenir que des images (et celui contenant les catégories, que des dossiers...) car je vous voit venir avec votre fichier html dans une des catégories... (je n'ai jamais testé si ca marchait ou pas).

Pour ceux qui n'ont pas tout compris (c'est normal..) :
-Pour ajouter une catégorie : créez un dossier dans le dossier racine (celui que vous définissez au début => $dossier = '....';)
-Pour supprimer une catégorie existante, eh bien je vous laisse deviner [:D]
-Pour ajouter une photo, copiez la dans une des catégories que vous avez créées.
-Pour supprimer une photo, là aussi je vous laisse deviner..

Vous pouvez mettre n'importe quelle image (quelle que soit sa taille, son poids..) tant que c'en est une.. elle sera redimensionnée dans l'album (de façon proportionnelle par rapport à sa taille initiale). Le problème peut-être est que les images une fois réduites ont toujours le même poids...
Cliquez dessus et ca ouvrira une nouvelle fenêtre avec la photo dans sa taille normale..
Bonne chance ;)


 Historique

15 novembre 2004 19:55:46 :
Correction fautes d'orthographe..
15 novembre 2004 20:03:18 :
Ajout du code sans les commentaires
16 novembre 2004 17:04:46 :
Ajout du screen (dans une catégorie)

 Sources du même auteur

Source avec Zip Source avec une capture FIRE-SOFT-BOARD
Source avec une capture SYSTÈME D'ARTICLES (+ HITS) AVEC MYSQL
FAIRE UN SITE MULTILINGUE (ARRAY) + COOKIE
CONNAÎTRE LA VALEUR LA PLUS FRÉQUENTE D'UN CHAMPS (MYSQL)

 Sources de la même categorie

Source avec une capture INTÉGRER À UNE BASE DE DONNÉES DES COORDONNÉES GÉOGRAPHIQUES... par slhuilli
Source avec Zip DÉCOMPOSER UN CODE PHP AVEC LA FONCTION INCLUDE par Julien39
CRÉATION D'UN SCRIPT D'AUTHENTIFICATION par phpAnonyme
Source avec Zip Source avec une capture N/X API: GOOGLE MAPS DEPUIS PHP VALID W3C par GillesWebmaster
PHP EXTRAIRE DES MAILS D'UN GROS FICHIER LOCAL OU DISTANT par cosmoswarezone1

Commentaires et avis

Commentaire de coucou747 le 15/11/2004 21:37:16 administrateur CS

eh tout n'est pa automatique !!! tes catégories peuvent être la liste des répertoires...
"que vous définissez au début => $dossier = '....';)"=> inutile si on liste les dossiers...

sinon, tu pourais faire des miniatures, des options de commentaires, ect...

euh... ça respécte bien la norme ????? j'ai pas vu de </html> au dèrnier echo... ni de <html> au premier... le head on n'en parles même pas...

Sinon, j'ai pas testé mais seulement lu ton code ... une petite capture décran aurait été la bien venue... et sans .zip c'ets lourd de tester un code alros ...

Commentaire de windu le 16/11/2004 08:53:41

coucou747-> lourd de tester un code? il te suffit de faire 1 copier-coller du code qui est affiché...
Par contre, je m'étonne que tu dises que les images sont redimensionnées mais que leur poids reste inchangées...
Vu que ton code ne semble pas posséder de fonction GD permettant le redimensionnement des images, j'e déduis que tu fais ca avec les attributs 'height' et 'width' de <img>!
Comme ca, c'est sur que tu ca gagne pas de place, mais ca ralentit beaucoup le transfert des données vers le navigateur!
Comme te le propose coucou747, tu devrais faire un système de vignettes
Mais sinon c'est pas mal comme code

Commentaire de bthivent le 16/11/2004 16:56:27

coucou747 je ne comprend pas tes deux premières remarques..

des miniatures, c'est ce que j'ai essayé de faire (mais juste en réduisant par height et width)..

J'ai pensé que c'était juste un script php, et non pas tout une page, je laisse donc les intéressés copié cela dans leur page déjà existante. Si ils en veulent une nouvelle, je pense que s'ils s'intéressent au php, ils ont les capacités d'ajouter les balises html...

Je vais ajouter un screen : ce code est celui que j'ai fait et que j'utilise pour l'un de mes sites.

Euh sinon pour vous deux : qu'est-ce qu'un système de vignette ? je pensais avoir essayé de faire ça !..

Commentaire de coucou747 le 16/11/2004 19:56:25 administrateur CS

ce que je voulais dire, c'ets simplement que la pour ajouter une catégorie, tu dois non seulement créer un dossier et mettre tes images dedans mais aussi indiquer au script le nom d ta catégorie... il sufirait de chercher le nom des dossiers présents et de les afficher...

sinon c'ets pas mal mais tu peux ajouter des fonctionnalitées commes ajouts de commentaires ect..

Commentaire de windu le 16/11/2004 20:44:40

pour répondre a ta question, des vignettes son des images représentant ton image mais de taille réduite, de la taille d'un timbre poste environ... C'est ce kon voi mai avec ton code mais ce n'est pas vraimen ce ki se passe! car tes "vignettes" ont le meme poids que l'image taille réelle: ce kon te proposait coucou747 & moi, cdes créer des vrais vignettes, donc des images réellement rétrécies grace a des fonction PHP de la librairie GD qui redimmensionnent l'image puis l'enregistre sur le disk dur... tu afficherai ainsi d'abor la vignette (+ petite donc + légère) & 1 clic dessu ferai apparaitre la vrai image grace a 1 lien hypertexte

Commentaire de coucou747 le 16/11/2004 21:28:20 administrateur CS

GD ou autres...

Commentaire de bthivent le 16/11/2004 21:31:41

Ok merci !
coucou747 c'est ce que je fais (enfin je pense) ! ce que je demande c'est le dossier racine. Une fois le dossier racine définit, il suffit d'ajouter un dossier dedans pour qu'il apparraisse dans la liste des catégories..
Questions ajouts de commentaires, ce serait bien, mais un peu cho. Comme je n'utilise pas de bdd, faudrait pas que j'my mette pour les commentaires, alors il faudrait que je les enregistre dans un fichier texte par exemple..puis pour attribuer le commentaire à une image, il faut mettre le nom de la photo dans le fichier texte..
windu c'est vrai que c'est bête de fiare ce que je fais, tu pourrai me filer le nom de la fonction qui permait ca stp, si tu l'a sous la main..

merci pour vos commentaires, @+ !

Commentaire de coucou747 le 16/11/2004 22:42:56 administrateur CS

euh... pour gd faut pas mettre qu'une seule fonction en fait...
vas voir mon script (concurent a celui la...)
t'as une page qui fait ça...

Commentaire de Petey le 21/11/2004 00:27:23

Merci bthivent !!

Il est bien ce petit code, très simple et tout, comme j'aime !!

Commentaire de hisoka2501 le 11/06/2005 18:02:25

alors la je te dis un grand bravo, car ok ce n'est pas la source qui fait ca qui a le plus beau rendu graphique MAIS c'est la seulle qui ne me cryble pas ma page d'erreur et qui marche (meme si je suis pas encor totalement a ce ke je souaite faire )

je te mé 10 !

si qqun pouvé dailleur me filer un coup de main,
en fait mon site est organisé comme ca:

img
wall > ton code
index.php
wallpapers.php > ac un include sur ton code et sur css.php et page.start.php
css.php
page.start.php

ce que je souaite faire c'est afichier les images dans img ( qui comprend un dossier wallpapers)

pour le moment j'obtien ca: http://kankai.dyndns.org:1200/wallpapers.php

:$

 Ajouter un commentaire




Nos sponsors


Sondage...

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,515 sec (4)

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