Lister les images d'un dossier sur plusieurs pages

Ce forum vous servira à trouver de l'aide uniquement en ce qui concerne le développement d'un de vos MODs, ou l'adaptation d'un MOD phpBB2 pour phpBB3.

Modérateur: Equipe

Lister les images d'un dossier sur plusieurs pages

Messagede Stef67 » 11 Juin 2009 à 10:44

Salut à tous, je cherche a lister les images contenu dans un dossier !

Pour l'exemple disons qu'il y en a 100 et je souhaiterai des pages avec 10 images

Savez-vous comment je pourrai faire cela ?

Je sais déjà créer une page conservant les sessions et le style mais je ne sais pas comment afficher tous ça dans le template
PcInfo.fr - Communauté d'entraide et forum informatique
Devenir auto entrepreneur : Conseils pour créer et gérer son entreprise
Annuaire-Trend : Annuaire gratuit généraliste pour un référencement optimal de vos sites.

Image
Stef67
Modérateur
Modérateur
 
Messages: 3138
Inscription: 29 Déc 2008 à 15:48
Localisation: Monswiller (Alsace)

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Dr DLP » 12 Juin 2009 à 22:11

Meuh.

Ok, voici la base:
1) Lister toutes les images et leur attribuer des ids (IE pour ce cas un index numérique)
2) Pour chaque page sélectionner les images de la tranche (10*page)+1 à 10*(page+1)
3) Les afficher

Dis moi quelles étapes te posent problèmes.

Pour mettre les fichiers de ton répertoire en tableau:
Code: Tout sélectionner
$images_array = array();
$images_counter = 0;
if ($handle = opendir('/chemin/vers/fichiers'))
{
while (false !== ($file = readdir($handle)))
{
$images_counter++;
$images_array[$images_counter] = $file;
}
}

Idéalement le résultat est stocké plutôt que de répéter le code.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8295
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Stef67 » 12 Juin 2009 à 22:24

Stocké les images oui mais il faudrai garder le nom d'origine et les afficher ensuite dans la partie html.

Pour en afficher une je n'ai pas de problème mais j'ai essayer d'en afficher plusieurs avec une boucle mais la cela ne fonctionne plus sauf si je passe par une page que j'ai nommer par exemple test.php sans utiliser les templates mais en lien direct.

La ou je bloque c'est comment faire pour afficher ces images ainsi trouver dans le template en aillant une pagination
PcInfo.fr - Communauté d'entraide et forum informatique
Devenir auto entrepreneur : Conseils pour créer et gérer son entreprise
Annuaire-Trend : Annuaire gratuit généraliste pour un référencement optimal de vos sites.

Image
Stef67
Modérateur
Modérateur
 
Messages: 3138
Inscription: 29 Déc 2008 à 15:48
Localisation: Monswiller (Alsace)

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Dr DLP » 12 Juin 2009 à 22:30

Il te manque le plus simple dans ce cas: documentation-phpbb3/sujet154167.html
Partie III-c Les blocs répétitifs.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8295
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Stef67 » 12 Juin 2009 à 22:42

Et ben mince alors j'avais trouver ce lien :shock:

Merci Dr DLP ça va m'aider je pense, je vais faire des essais et au besoin j'edit

J'espère juste que je vais y arriver car je n'utilise pas de base de donnée pour les images
PcInfo.fr - Communauté d'entraide et forum informatique
Devenir auto entrepreneur : Conseils pour créer et gérer son entreprise
Annuaire-Trend : Annuaire gratuit généraliste pour un référencement optimal de vos sites.

Image
Stef67
Modérateur
Modérateur
 
Messages: 3138
Inscription: 29 Déc 2008 à 15:48
Localisation: Monswiller (Alsace)

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Dr DLP » 12 Juin 2009 à 22:57

Le tableau donné plus haut remplace la bdd.
Le faire sous cette forme donne un code plus lent mais qui fonctionne seul, à choisir.
Plus le nombres d'images dans ton répertoire augmente, plus l'interêt de la bdd augmente. Note que la différence est surement minime.

Pour faire l'équivalent du php au centre de docs, ça donnerait ça:
Code: Tout sélectionner
$range_min = ($page 10) + 1;
$range_max = (($page 1) * 10) + 1;
for(
$i $range_min$i $range_max$i++)
{
   
$template->assign_block_vars('row', array(
      
'IMAGE'    => $images_array[$i]

Où $page est le numéro de ta page.
Le calcul est fait pour que comme tu indiques, 10 images soient affichée par page.

Avec dans ton template:
Code: Tout sélectionner
<!-- BEGIN row -->
<img src="chemin vers le dossier des images/{row.IMAGE}"><br />
<!-- END row -->

Il y a de la mise en page à faire bien évidemment.

En toute logique, tu vas récupérer cette variable $page par:
Code: Tout sélectionner
$page = (isset($_GET['page'])) ? intval($_GET['page']) : 0;

Puisque ta pagination va ressembler à:
Code: Tout sélectionner
<a href="monfichier.php?page=0">Page1</a>
<a href="monfichier.php?page=1">Page2</a>
-----
<a href="monfichier.php?page=99">Page100</a>


Mais générer une pagination est un souci plus complexe, qu'on verra quand le reste quand sera fait :)
Dernière édition par Dr DLP le 13 Juin 2009 à 15:38, édité 1 fois.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8295
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Stef67 » 12 Juin 2009 à 23:02

Ok je vais déjà adapter ça et faire des essais

Merci
PcInfo.fr - Communauté d'entraide et forum informatique
Devenir auto entrepreneur : Conseils pour créer et gérer son entreprise
Annuaire-Trend : Annuaire gratuit généraliste pour un référencement optimal de vos sites.

Image
Stef67
Modérateur
Modérateur
 
Messages: 3138
Inscription: 29 Déc 2008 à 15:48
Localisation: Monswiller (Alsace)

Re: Lister les images d'un dossier sur plusieurs pages

Messagede ErnadoO » 13 Juin 2009 à 15:33

Plop le doc :D

Dr DLP a écrit:
Code: Tout sélectionner
$images_array = array();
$images_counter = 0;
if ($handle = opendir('/chemin/vers/fichiers'))
{
while (false !== ($file = readdir($handle)))
{
$images_counter++;
$images_array[$images_counter] = $file;
}
}

Pour avoir réaliser ce que souhaite faire Stef67 (ici) je compléterais ton code cette façon:
Code: Tout sélectionner
    $images_array = array();
    $images_counter = 0;
    if ($handle = opendir('/chemin/vers/fichiers'))
    {
        while (false !== ($file = readdir($handle)))
        {
            if ($file != '.' && $file != '..'  && !preg_match('/^.*?\.db$/', $file))
            {
                $images_counter++;
                $images_array[$images_counter] = $file;
            }
        }
    } 
Ou mieux, si il est sous php5, utiliser carrément scandir() qui te retourne directement un tableau :D
phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB3 en toute tranquillité
phpBB-Maintenance.com: Installation, mise à jour et transfert de votre forum à votre place

Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.

Fleuriste à Saint-Maur: Livraison de fleurs dans le 93 et 94.
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 23812
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Paris

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Dr DLP » 13 Juin 2009 à 15:41

Salut ErnadoO :) Juste pour être contrariant et avoir le dernier mot, je préfère
Code: Tout sélectionner
if(eregi("^[a-z0-9]*(\.(gif|jpe?g|png|bmp))$",$file))  

qui ne se contentera pas de supprimer le thumbs et les retours dossiers :mrgreen:
Dernière édition par Dr DLP le 13 Juin 2009 à 15:45, édité 1 fois.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8295
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Stef67 » 13 Juin 2009 à 15:44

Merci ErnadoO, c'est un peu a la manière de ton site que je souhaite afficher mes images mais disposer différemment je vais m'inspirer de tous ça !

Restera ensuite la pagination!

Merci

PS je suis en PHP Version 4.4.9
PcInfo.fr - Communauté d'entraide et forum informatique
Devenir auto entrepreneur : Conseils pour créer et gérer son entreprise
Annuaire-Trend : Annuaire gratuit généraliste pour un référencement optimal de vos sites.

Image
Stef67
Modérateur
Modérateur
 
Messages: 3138
Inscription: 29 Déc 2008 à 15:48
Localisation: Monswiller (Alsace)

Re: Lister les images d'un dossier sur plusieurs pages

Messagede ErnadoO » 13 Juin 2009 à 16:14

Dr DLP a écrit:Salut ErnadoO :) Juste pour être contrariant et avoir le dernier mot, je préfère
Code: Tout sélectionner
if(eregi("^[a-z0-9]*(\.(gif|jpe?g|png|bmp))$",$file))  

qui ne se contentera pas de supprimer le thumbs et les retours dossiers :mrgreen:

nia nia nia :mrgreen:
phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB3 en toute tranquillité
phpBB-Maintenance.com: Installation, mise à jour et transfert de votre forum à votre place

Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.

Fleuriste à Saint-Maur: Livraison de fleurs dans le 93 et 94.
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 23812
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Paris

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Stef67 » 01 Juil 2009 à 21:07

Salut, voila ce que j'ai fait avec le peu de temps que j'ai pu y consacrer et en m'inspirant de vos précédents posts

Code: Tout sélectionner
// Nombre d'images par page souhaité
$nbimages 10;

// Dossier ou sont présent les images
$dossier "images";

$page = (isset($_GET['page'])) ? intval($_GET['page']) : 0;
        
    
$images_array = array();
    
$images_counter 0;
    if (
$handle opendir("$dossier"))
    {
        while (
false !== ($file readdir($handle)))
        {
            if (
$file != '.' && $file != '..'  && !preg_match('/^.*?\.db$/'$file))
            {
                
$images_counter++;
                
$images_array[$images_counter] = $file;
            }
        }
    }

$range_min = ($page $nbimages) + 1;
$range_max = (($page 1) * $nbimages) + 1;
for(
$i $range_min$i $range_max$i++)
{
   
$template->assign_block_vars('row', array(
      
'IMAGE'    => $images_array[$i]));


les images s'affichent mais je n'y comprend rien pour la pagination !
Dernière édition par Stef67 le 25 Oct 2009 à 01:22, édité 1 fois.
PcInfo.fr - Communauté d'entraide et forum informatique
Devenir auto entrepreneur : Conseils pour créer et gérer son entreprise
Annuaire-Trend : Annuaire gratuit généraliste pour un référencement optimal de vos sites.

Image
Stef67
Modérateur
Modérateur
 
Messages: 3138
Inscription: 29 Déc 2008 à 15:48
Localisation: Monswiller (Alsace)

Re: Lister les images d'un dossier sur plusieurs pages

Messagede Stef67 » 25 Oct 2009 à 01:21

Salut, je vient de retrouver mon sujet pour lister des images sur plusieurs pages mais je n'ai toujours pas de solution pour la pagination !

J'avais bien trouver sur le net plusieurs code mais pour l'intégrer à phpbb c'est une autre histoire à cause de l'affichage dans les templates :?

Je suis sous PHP Version 5 !

Le code donner dans mon précédent post fonctionne coupler avec le code suivant dans le template mais le souci est que j'ai plus de 300 images actuellement, donc ça fait une interminable et longue page

Code: Tout sélectionner
<!-- BEGIN row -->
<
img src="chemin vers le dossier des images/{row.IMAGE}"><br />
<!-- 
END row --> 


Si une personne à une solution je l'en remercie par avance :wink:

@+ :wink:
PcInfo.fr - Communauté d'entraide et forum informatique
Devenir auto entrepreneur : Conseils pour créer et gérer son entreprise
Annuaire-Trend : Annuaire gratuit généraliste pour un référencement optimal de vos sites.

Image
Stef67
Modérateur
Modérateur
 
Messages: 3138
Inscription: 29 Déc 2008 à 15:48
Localisation: Monswiller (Alsace)


Retourner vers Aide au développement et à l'adaptation de MODs

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB-Conseils.com • phpBB3 Styles • phpBB podpora • phpBB Portugal • Tapatalk • Net Avenir • PromoBenef • Ticket Gagnant •