Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu] Balise utilisateur pour lister les éléments d'un répertoire
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : OVH/MAMP
#~ Informations Système :
#~ OS : Mac Lion
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour,
je souhaite afficher le contenu d'un répertoire, pour le moment ça fonctionne mais j'aimerai "pousser" un peu plus loin, en effet pour le moment je l'utilise de la manière suivante : {fichiers}.
Code :
[== PHP ==]
/* repertoire du dossier */
$rep = "uploads/telechargements/test/";
$dir = opendir($rep);

while ($f = readdir($dir))
{      
   if(is_file($rep.$f))
           {
           $tab_dir[] = $f;
           }
}

/* on trie le tableau obtenu */
natcasesort($tab_dir);

echo '<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 0px; padding:2px ; border-left:1px solid #FFFFFF ; border-right:1px solid #FFFFFF ; border-bottom:1px solid #FFFFFF ; border-top:1px solid #FFFFFF; height:72px; margin-top:-78px;">';

echo '<ul style="line-height:0px;">';

/* on affiche chaque element */
foreach($tab_dir as $elem)
{

if (preg_match("#.pdf$#", $elem)) {
    $icon="Pdf.png";
} elseif (preg_match("#.xlsx$#", $elem)) {
    $icon="Excel.png";
} elseif (preg_match("#.xls$#", $elem)) {
    $icon="Excel.png";
} elseif (preg_match("#.docx$#", $elem)) {
    $icon="Word.png";  
} elseif (preg_match("#.doc$#", $elem)) {
    $icon="Word.png";  
} elseif (preg_match("#.pptx$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.ppt$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.ppsx$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.pps$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.zip$#", $elem)) {
    $icon="Zip.png";
}else {
    $icon="inconnu.png";
}

echo '<div align="center" style="text-align:left; margin-left:50px;">
<li style="list-style-type:none;">
<a href="uploads/telechargements/test//'.$elem.'"><img src="./uploads/telechargements/icones/'.$icon.'" title="'.pathinfo($elem,PATHINFO_FILENAME).'"></a>
<a href="uploads/telechargements/test//'.$elem.'" title="'.pathinfo($elem,PATHINFO_FILENAME).'">'.pathinfo($elem,PATHINFO_FILENAME).'</a>
</li><br/></div>';

}

echo'</div>';

Je voudrais améliorer le code pour lister les éléments d'un dossier passé en paramètre de la façon suivante : {fichiers name='test'}
Mais je n'y arrive il ne m'affiche rien pour le moment.
Code :
[== PHP ==]
$rep = "uploads/telechargements/";
$dir = getenv("DOCUMENT_ROOT").$rep.$params['name'];
$dh  = opendir($dir);

$i=0;
while ( $file = readdir($dh) )
{
  echo 'while 1';
  // enleve les fichiers . et ..
  if ($file != '.' && $file != '..')
  {
    echo 'data';
    // on passe les datas dans un tableau
    $ListFiles[$i]=$file;
    $i++;
   }
}
closedir($dh);

// tri par ordre decroissant
if(count($ListFiles)!=0)
{
  if($list_tri == 'DESC')
  {
    rsort($ListFiles);
   }
   else
   {
     sort($ListFiles);
    }
}

Même cette portion de code ne m'affiche rien.

Merci d'avance
Cool


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)