shadowsg
Messages postés14Date d'inscriptionmardi 19 août 2008StatutMembreDernière intervention11 octobre 2010
-
Modifié par shadowsg le 11/10/2010 à 18:54
Bonjour,
J'ai trouvé un script affichant des miniatures, mais il me pose problème: j'aimerais faire en sorte qu'il y ai 16 images par page, et que si il y en a plus dans mon dossier, il s'affiche en dessous le nombre de pages (comme sur toute galerie qui se respecte^^) en lien permettant de naviguer sur chaque page.
J'ai des bases en php/mysql mais je ne vois vraiment pas comment m'y prendre.
Voici mon script:
<?php
// on déclare un tableau qui contiendra le nom des fichiers de nos miniatures
$tableau = array();
// on ouvre notre dossier contenant les miniatures
$dossier = opendir ('./images/mini/');
while ($fichier = readdir ($dossier)) {
if ($fichier != '.' && $fichier != '..' && $fichier != 'portfolio.php') {
// on stocke le nom des fichiers des miniatures dans un tableau
$tableau[] = $fichier;
}
}
closedir ($dossier);
// on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures
$nbcol=4;
// on compte le nombre de miniatures
$nbpics = count($tableau);
// si on a au moins une miniature, on les affiche toutes
if ($nbpics != 0) {
echo '<table>';
for ($i=0; $i<$nbpics; $i++){
if($i%$nbcol==0) echo '<tr>';
// pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle
echo '<td><a class="lienimg" rel="clearbox[gallery=]" title="" href="images/pics/' , $tableau[$i] , '"><img class="imgs" src="images/mini/' , $tableau[$i] , '" alt="Image" /></a></td>';
if($i%$nbcol==($nbcol-1)) echo '</tr>';
}
echo '</table>';
}
// si on a aucune miniature, on affiche un petit message :)
else echo 'Aucune image à afficher';
?>
J'ai trouvé un autre scripte qui le fais mais malgré la lecture du code, je ne comprend pas comment il fonctionne:
Fichier config:
<?php
// config_galerie.php
// Définition des variables globales de la galerie
$host = "localhost"; // voir hébergeur
$user = "root"; // vide ou "root" en local
$pass = ""; // vide en local
$bdd = "00"; // nom de la BD
$nb_images_page = 16; // Nombre d'images par page
$nb_images_ligne = 4; // Nombre d'images par ligne
// Ouverture des connexions à la base de données
@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter");
@mysql_select_db($bdd)
or die("Impossible de se connecter");
?>
Fichier index lié au fichié config:
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<!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>
<title>Ma galerie d'images !</title>
<script type="text/javascript">
<!--
// Ouvre l'image dans une popup
function ouvrirImage(url, height, width) {
window.open(url, '', 'height='+height+', width='+width +',toolbar=no,menubar=no,status=no,resizable=yes');
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Ma galerie d'images</h1>
<?php
include('config_galerie.php');
// on récupère le nombre d'image total
$query = "select count(*) as nb from images_galerie;";
$result = mysql_query($query) or die("La requête \"$query\" n'a pas pu s'exécuter !");
$val = mysql_fetch_array($result);
$nb_images_tot = $val['nb'];
// S'il n'y a aucune image, ce n'est pas la peine de continuer
if (!$nb_images_tot) {
echo "Il n'y a aucune image de référencée dans la base de données.";
} else {
// on récupère les paramètres passé sur l'url
if ($_GET['image'])
$image_debut = $_GET['image'];
else
$image_debut = 0;
$i = 0; // permet de savoir combien d'images on a mis sur la ligne;
$query = "select * from images_galerie limit $image_debut, $nb_images_page;";
$result = mysql_query($query) or die("La requête \"$query\" n'a pas pu s'exécuter !");
?>
<table width="100%" border="0">
<?php
while ($val = mysql_fetch_array($result)) {
if (!($i++%$nb_images_ligne)) echo "<tr>\n";
echo "\n";
?>
<td> <a href="javascript:ouvrirImage('<? echo $val['url_image_norm']?>',<? echo $val['nb_hauteur']?>,
<? echo $val['nb_largeur']?>);">
<img src="<? echo $val['url_image_mini']; ?>" alt="<? echo $val['lb_commentaire']; ?>" /> </a> </td>
<?php
if (!($i%$nb_images_ligne)) echo "</tr>\n";
}
if ($i%$nb_images_ligne) echo "</tr>\n";
?>
</table>
<p style="text-align:center;">
<?
// on affiche maintenant la nagivation entre les pages
if ($image_debut) {
$image_prec = $image_debut - $nb_images_page;
?>
<a href=""><<< Précédentes </a>
<?
}
$j = 0;
while ( $j * $nb_images_page <= $nb_images_tot ) {
if ( $j * $nb_images_page == $image_debut ) {
$m = $j+1;
echo $m." ";
$j++;
} else {
?>
<a href=""><? echo $j+1; ?> </a>
<?
$j++;
}
}
if ($image_debut + $nb_images_page <= $nb_images_tot) {
$image_suiv= $image_debut + $nb_images_page;
?>
<a href="">Suivantes >>></a>
<?
}
}
mysql_close();
?>
Ici, ce n'est que la derniére partie qui m'intéresse, la navigation entre les pages.