Dateiliste aus Pfad

Erstellt: 08.03.2022 Lesedauer ≤ 1 Min.

Dieses Skript erzeug aus einem übergebenen Pfad eine Liste der darin enthaltenen PHP- und HTML-Dateien. Die Einbettung erfolgt im Layout, abhängig von der Yaml-Variablen $menu.

Das Skript

Stand: 21.10.2022

Verwendung auf eigenes Risiko. Keine Gewähr für Zuverlässigkeit, Sicherheit und Funktion. Beispielskript, es wird überlassen, wie es ist.

<?php
// 2022-04-22  08:27:19
function Linkliste($Pfad,$Modus,$Stil) {
    (
$Modus <>0) ? $Modus=$Modus=0;  // Default 0 = Nur Titel
    
$items glob($_SERVER["DOCUMENT_ROOT"] . $Pfad '*{php,html}'GLOB_BRACE);
    unset(
$Datei);    
    if (
count($items)){
        
$i 0;
        foreach (
$items as $item){
            if (
$item == "index.php" or $item == "." or is_dir($item)){   }
            else {
                
$Datei[$i]['pfad'] = $Pfad pathinfo($itemPATHINFO_FILENAME);
                
$tags get_meta_tags($item);
                if (
$Modus==0) {
                    
$Datei[$i]['titel'] = (isset ($tags['menu']) ? $tags['menu'] : $tags['title']);
                }
                else {
                    
$Datei[$i]['titel'] = $tags['title'];
                }
                
$Datei[$i]['rang'] = (isset ($tags['rang']) ? $tags['rang'] : 999);                
                if (isset (
$tags['summary']) && ($tags['summary']>'')) {
                    
$Datei[$i]['text'] = $tags['summary'];
                }  
                else 
                    if (isset (
$tags['description']) && ($tags['description']>'')) {
                        
$Datei[$i]['text'] = $tags['description'];
                    }
                    else {
                        
$Datei[$i]['text'] = 'Keine weiteren Angaben.';
                    }    
                
$i++;    
            } 
        } 
// foreach
        
array_multisort(array_column($Datei'rang'),SORT_NATURAL,array_column($Datei'titel'),SORT_NATURAL |  SORT_FLAG_CASE ,$Datei);
        
$i=0;
        
$wo pathinfo($_SERVER['REQUEST_URI'], PATHINFO_FILENAME);
        
$Ergebnis '<div class="' $Stil '">'PHP_EOL;
        foreach (
$Datei As $Inhalt){
            if (
$Datei[$i]['rang']>=0){
                (
pathinfo($Datei[$i]['pfad'], PATHINFO_FILENAME)  == $wo) ? $active ' class="active"' $active '';
                
$Ergebnis .= (($Modus) ? '<div><h3>' '<div>');
                
$Ergebnis .= '<a'.$active.' href="'$Datei[$i]['pfad'] . '">' $Datei[$i]['titel']. '</a>';
                
$Ergebnis .= (($Modus) ? '</h3>' '</div>');
                
$Ergebnis .= (($Modus) ? '<p>'.$Datei[$i]['text'].'</p></div>' '');
                
$Ergebnis .= PHP_EOL;
            }
            
$i++;
        }
        
$Ergebnis .= '</div>'PHP_EOL;
    } 
// count items 
    
else {
        
$Ergebnis '';
    }  
    return 
$Ergebnis;  
}
?>