Dateiliste aus Pfad
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=1 : $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($item, PATHINFO_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;
}
?>