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
<?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; } ?>