IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Liste de fichiers et dossiers à intégrer au HTML


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Secrétaire scolaire
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire scolaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Liste de fichiers et dossiers à intégrer au HTML
    Bonjour,

    J'ai développé un code batch (http://pastebin.com/sVYG9DEd) il y a plusieurs années qui me permet de créer automatiquement une liste d'un dossier et des ses sous-dossiers, ainsi que des fichiers. Le tout est mis en forme dans un JS accompagné d'un html. Ceci me permet de générer des galeries d'images en un clic.

    Actuellement, je travaille sur un site php (nouveau pour moi) et je suis entrain de convertir tous mes scripts en code php (bien plus pratique). Là, je galère un peu donc je viens quémander de l'aide

    Voici ce que je dois obtenir au final dans la page web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div class="cadre-nospan" style="background-image: url("equipe/01-direction-administration/cover.jpg")
    <a class="galerie" href="equipe/01-direction-administration/1Dehon-Ghislain_Directeur.jpg" data-lightbox="01-direction-administration" data-title="Ghislain Dehon (Directeur)"><h6>Direction & Administration</h6></a>
    <a class="galerie" href="equipe/01-direction-administration/2Boitel-Olivier_Administrateur.jpg" data-lightbox="01-direction-administration" data-title="Olivier Boitel (Administrateur)"></a>
    </div>

    La structure des dossiers se présente de cette façon :
    >>equipe :
    ---->01-direction-administration
    ---------image1.jpg
    ---------image2.jpg
    ---------etc.jpg
    ---->02-enseignants
    ---------image1.jpg
    ---------image2.jpg
    ---------image3.jpg
    ---------etc.jpg
    ---->03-etc
    ---------image1.jpg
    ---------image2.jpg
    ---------image3.jpg
    ---------etc.jpg


    J'utilise également une fonction me permettant de récupérer les méta-données des images (éditée via XnView). De cette façon, le nom du sujet de l'image est enregistré dans l'image et puis affiché. Sauf pour "cover", l'information contenue est le nom de la catégorie (exemple "Direction & Administration"). Voici un ZIP (https://drive.google.com/file/d/0B2Z...ZNMDdZVjQ/view) avec des photos contenant des méta-données valides.

    J'obtiens l'erreur suivante : http://pix.toile-libre.org/upload/or...1468601317.png Je ne sais pas quoi faire, je ne m'y connais pas beaucoup en PHP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    //Récupère les méta-données d'un fichier
    function MetaData($f){
       GetImageSize($f,$info);
       if (isset($info["APP13"])) {
          $iptc = iptcparse($info["APP13"]);
          return $iptc["2#105"][0];
       }
    }
     
    //Vecteur de fichiers/dossiers
    function scan_rep($repertoire){
       $le_repertoire = opendir($repertoire);
       $return = array();
       while($fichier = @readdir($le_repertoire)){
          if ($fichier != "." && $fichier != "..") {
             if(is_dir($repertoire.'/'.$fichier)){
                $folder = $repertoire.'/'.$fichier;
                $return[] = array('rep' => $fichier,'file' => scan_rep($repertoire.'/'.$fichier));
             } else {
                $return[] = array('file' => $fichier,'meta' => MetaData($repertoire.'/'.$fichier));
             }
          }
       }
       closedir($le_repertoire);
       return $return;
    }
     
    //Affichage du vecteur
    function echo_rep($rep){
       echo '<div class="cadre-nospan" style="background-image: url(\''.$rep.'/cover.jpg\')">';
       foreach($rep as $key => $value) {
         if(isset($value['rep'])) {
            echo_rep($rep."/".$value['file']);
         }
         else{
            $file = $rep."/".$value['file'];
            $meta = $value['meta'];
            echo '<a class="galerie" href="'.$fichier.'"data-lightbox="'.$rep.'"data-title="'.$meta.'">'.$fichier.'</a>';
         }
       }
       echo "</div>";
    }
     
    //Appel des fonctions :
    $tableau = scan_rep('equipe');
    echo_rep($tableau);

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Il me semble qu'il y a déjà une erreur ici entre $file et $fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    else{
            $file = $rep."/".$value['file'];
            $meta = $value['meta'];
            echo '<a class="galerie" href="'.$fichier.'"data-lightbox="'.$rep.'"data-title="'.$meta.'">'.$fichier.'</a>';
         }

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Secrétaire scolaire
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire scolaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Ha bon... Je ne sais pas, c'est pour ça que je demande de l'aide

    Toujours pas de pistes les gens ? Merci d'avance <3

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Secrétaire scolaire
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire scolaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai réussi Merci de votre aide.

    Voici mon code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    function scan_rep($repertoire){
       $le_repertoire = opendir($repertoire);
       $return = array();
       while($fichier = @readdir($le_repertoire)){
          if ($fichier != "." && $fichier != "..") {
             if(is_dir($repertoire.'/'.$fichier)){
                $folder = $repertoire.'/'.$fichier;
                $return[] = array('folder'=> $repertoire, 'rep'=>$fichier, 'file'=>scan_rep($repertoire.'/'.$fichier));
             } else {
                $return[] = array('file'=>$fichier, 'meta'=>MetaData($repertoire.'/'.$fichier));
             }
          }
       }
       closedir($le_repertoire);
       return $return;
    }
     
    function echo_rep($a,$cat,$folder,$class){
       $flag = 0;
       foreach($a as $v){
          if(is_array($v['file'])) {
             $cat = $v['rep'];
             $folder = $v['folder'];
             echo '<div class="'.$class.'" style="background-image: url(\''.$folder.'/'.$v['rep'].'/00-cover.jpg\')">';
             echo_rep($v['file'],$cat,$folder,$class); 
          } else {
             if ($v['file']=="00-cover.jpg"){
                $titre="<h6>".$v['meta']."</h6>";
             } else {
                if ($flag!=1) {
                   echo '<a href="'.$folder.'/'.$cat."/".$v['file'].'"data-lightbox="'.$cat.'"data-title="'.$v['meta'].'">'.$titre.'</a>';
                   $flag = 1;
                } else {
                   echo '<a href="'.$folder.'/'.$cat."/".$v['file'].'"data-lightbox="'.$cat.'"data-title="'.$v['meta'].'"></a>';
                }
             }
          }
       }
       echo "</div>";
    }
     
    function MetaData($f){
       GetImageSize($f,$info);
       if (isset($info["APP13"])) {
          $iptc = iptcparse($info["APP13"]);
          return $iptc["2#105"][0];
       }
    }

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Secrétaire scolaire
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire scolaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je reviens vers vous les amis... j'ai un soucis.

    Je ne peux utiliser cette fonction que sur le premier niveau d'une arborescence Je m'explique : l'une des "galerie" d'images se situe dans "equipe", là tout est en sous dossier "01-direction";"02-enseignants";etc. Ici pas de soucis. Mais une fois qu'il y a un niveau de dossier supplémentaire, ça ne fonctionne pas.

    Est-ce qu'il serait possible de faire en sorte que la fonction qui crée l'array prennent TOUS les niveaux de dossiers ? merci d'avance.

Discussions similaires

  1. Liste de fichiers et de dossiers
    Par Val25 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2008, 17h07
  2. [HTML] Intégrer un fichier Excel dans une page HTML
    Par deejayVK dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/11/2007, 14h51
  3. Réponses: 18
    Dernier message: 03/07/2007, 11h30
  4. Réponses: 3
    Dernier message: 04/06/2007, 15h32
  5. Réponses: 1
    Dernier message: 16/02/2007, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo