8792 sujets

Développement web côté serveur, CMS

B'jour Smiley smile

Dans le cadre d'une galerie photos, j'utilise ceci :

Menu comportant les galeries :


<?php
	$dp = opendir('./photos');
	$i=0;
	while ( $file = readdir($dp) )
	{
	
	// on enleve les fichiers . et ..
	if ($file != '.' && $file != '..' && $file != 'index.html')
	{
	$ListFiles[$i]=$file;
	$i++;
	
	// on classe le résultat par ordre alphabétique croissant
	sort($ListFiles);
	}
	}
	closedir($dp);
	
	// boucle pour générer chaque item de la liste
	$i=0;
	while ( $i < count($ListFiles))
	{
	/* Pour l'intitulé de chaque lien on récupère le nom du fichier dans $ListFiles et on remplace l'underscore par un espace */
	$intitule_lien[$i]=str_replace("_"," ",$ListFiles[$i]);
	
	// Puis on supprime l'extension
	$intitule_lien[$i]=str_replace("","",$intitule_lien[$i]);
	
	//Ensuite on masque les deux premiers caractères, permettant d'ordonner la liste
	$intitule_lien[$i]=substr("'$intitule_lien[$i]'", 3, -1);
	
	// Enfin on met la première lettre du résultat en majuscule
	$intitule_lien[$i]=ucwords($intitule_lien[$i]);
	
	echo "<table class='photos'><tr><td><img src='./photos/".$ListFiles[$i]."/miniatures/001.jpg' alt='".$ListFiles[$i]."' width='100' /></td></tr><tr><td><a href='index.php.php?page=".$ListFiles[$i]."'>".$intitule_lien[$i]."</a></td></tr></table><br />";
	$i++;
	}
?>


Donc l'url menant à la galerie est généré selon la liste des dossiers contenus dans le dossier "photos".

Seulement, sur mon index.php, j'ai ça :


<?php
	if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page']; 
	switch($page)
	{
		case 'accueil':include('./pages/accueil.php');break;
?>


La ligne "case" est reproduite selon les pages à appeller... J'voudrais qu'à cet endroit, apparaissent la liste des galeries photos, pour que ça donne "index.php?page=galerie01.

J'devrais donc faire :


		case 'galerie01':include('./pages/galerie01.php');break;
		case 'galerie02':include('./pages/galerie02.php');break;
		case 'galerie03':include('./pages/galerie03.php');break;


Mais jusqu'à présent, ça j'le faisais à la main... N'y aurait-il pas, sur base du script en haut de ce topic, de générer cette liste automatiquement ?

J'avais déjà essayé, sans arriver à rien Smiley sweatdrop
passes ton n° de galerie dans l'url sur tes liens et tu le concatène dans un ton include genre :

url : index.php?galerie=01

include('./pages/galerie'.$_GET['galerie].'.php');

Bien entendu, faudrat que tu test si $_GET['galerie] existe avant.
Mais heu... tu as une base de données derrière ta solution ? Car y'as quand même moyen de faire plus simple que de créer plusieurs galerieXX.php !!
Modifié par RobertVonTagada (23 Jan 2007 - 14:24)
J'vais essayer et j'te dis quoi Smiley smile

Concernant le $_GET['galerie'], j'le crée en ajoutant :

<?php
	if (!isset($_GET['galerie'])) $page= 'accueil'; else $page= $_GET['galerie']; 
	switch($page)
	{

sous celui qui appelle les pages normales du site Web... Concernant la facilité, euh... disons que c'est un truc fait maison, et vu mes faibles connaissances en PHP j'peux pas faire mieux pour l'instant... Et les solutions trouvées ça et là sur le Web ne me convenaient pas, au temps où j'ai fait le site pour lequel j'ai eu besoin de ce code... J'l'ai fait sur base d'un p'tit script amélioré qui affiche une liste de fichiers donnés à partir de l'uri d'un dossier... J'ai ensuite modifié l'echo pour qu'il m'affiche des vignettes au lieu de liens textes...