Page 1 sur 1

Afficher sur plusieurs pages

Posté : 19 févr. 2006, 00:41
par Gabor
Salut à tous, alors je part de ce code

Code : Tout sélectionner

<? $rep = "contenu/"; $dir = opendir($rep); function dd($date) { return date("d/m/Y H:i:s",$date); } while ($f = readdir($dir)) { if ($f !="." && $f != "..") { if(is_dir($rep."/".$f)) { echo date("d/m/Y"); echo "<img width='16px' height='16px' src='contenu/$f/icon.jpg' alt=''> <a href='contenu/$f'>$f</a><br>"; include ('contenu/'.$f.'/description.txt'); echo "<br>"; } } } closedir($dir); ?>
En clair ça affiche les dossiers du dossier contenu, la date de création du dossier, le fichier icon.jpg qui est dans le dossier, une description qui se trouve dans un fichier .txt du même nom et bien sur un lien vers le dossier en question.

Mais ce que je cherche absolument à faire c'est de séparer ça sur plusieurs pages, genre a chaque 20 dossiers affichés il faut passer a la page suivante pour afficher la suite. J'ai vu plusieurs façon de séparer ça mais seulement quand c'est un listage a partir de la base de donnée.
Voila je compte sur vous pour me dire si c'es faisable au moins, et si oui comment.

Merci d'avance :)

Ps : désolé de ne pas m'inscrire je le ferais surement par la suite :$

Posté : 19 févr. 2006, 00:58
par jojolapine
Juste une question....à quoi sert ta fonction dd() ?
je ne vois nulle part un appel à cette dernière :?: :-k

edit: la prochaine fois essaye de mettre du code php entre les balises [ php] et [ /php]... merci :wink:

Posté : 19 févr. 2006, 01:07
par Gabor
Pour tout te dire le code de début n'est pas de moi donc je n'en sais rien :D J'ai seulement fait la partie avec les echo :)

Posté : 19 févr. 2006, 16:40
par Truc
essaie comme ceci:
<?
$rep = "contenu/";
$dir = opendir($rep);

$debut=(isset($_GET['page'])) ? $_GET['page'] : 0;

$nb_elem= 20; // 20 étant le nombre de dossiers par page

$debut *= $nb_elem; // début d'affichage des dossiers

$i=0; 

$page=0; //début des pages

$barre= ""; //barre de navigation 1| 2| 3 ..... pages

while ($f = readdir($dir))
{
	if($i % $nb_elem == 0) // tous les 20 dossiers création d'un lien
	{			
		$barre .= '<a href="?page='.$page.'" >'.$page.'</a> | ';
		$page++;
	}
	
	if ($f !="." && $f != "..")
	{
		if((is_dir($rep."/".$f)) && ($i >= $debut && $i <= $debut+$nb_elem )) // si $i (nombre de dossiers affichers est compris entre le début et début + nombre a aficher
		{			
			echo date("d/m/Y");
			echo "<img width='16px' height='16px' src='contenu/$f/icon.jpg' alt=''> <a href='contenu/$f'>$f</a><br>";
			include ('contenu/'.$f.'/description.txt');
			echo "<br>";
			$i++;
		}
	}
	
}
closedir($dir); 

$barre .= '<a href="?page='.$page.'" >'.$page.'</a>';

echo '<p>'.$barre.'</p>';
?>
pas testé :wink:

Posté : 19 févr. 2006, 19:52
par Gabor
Un grand merci a toi, j'ai modifié quelques trucs pour mon utilisation et avec tout ça j'suis bien satisfait, encore merci ;)

Posté : 19 févr. 2006, 19:56
par Truc
de rien, si tu pouvais donner ton code en exemple pour des éventuels utilisateurs interessés :)

n'oublis pas le [Résolu] :wink:
EDIT: en faite tu ne peux pas car tu as posté le 1er message en invité... comptons sur un Modo bien veillant 8)

Posté : 24 mars 2007, 21:26
par sylvaing26
J'ai un problème, lorsque je veux adapter ce code il n'y a que 1|2 qui s'affiche
Pourriez vous me dire d'ou que ca colle pas ?

Code : Tout sélectionner

if($cat == 'en'){ $rep = "environnement/"; $dir = opendir($rep); $debut=(isset($_GET['page'])) ? $_GET['page'] : 1; $nb_elem= 4; // 4 étant le nombre de dossiers par page $debut *= $nb_elem; // début d'affichage des dossiers $i=1; $page=1; //début des pages $barre= ""; //barre de navigation 1| 2| 3 ..... pages while ($fr = readdir($dir)) { if($i % $nb_elem == 1) // tous les 20 dossiers création d'un lien { $barre .= '<a href="?rubrique='.$rubrique.'&cat='.$cat.'&page='.$page.'" >'.$page.'</a> | '; $page++; } if ($f !="." && $f != "..") { if(is_file($rep.$fr)&& ($i >= $debut && $i <= $debut+$nb_elem )) { include ("$rep/$fr") ; $i++; } $barre .= '<a href="?rubrique='.$rubrique.'&cat='.$cat.'&page='.$page.'" >'.$page.'</a>'; echo '<p>'.$barre.'</p>'; break; } }

Posté : 12 mai 2007, 15:23
par jed
Bonjour, je rencontre également des problèmes avec cette méthode (j'ai limité à 10 le nombre d'affichages): http://www.hudescharfe.com/skins.php?ca ... uns&page=0