Navigation Vor/Zurück
Mit diesem Script werden Links zum (definierten) Vorgänger und Nachfolger der aktuellen Datei erzeugt.
Der Meta-Eintrags „Rang“ (s. zListe.php) legt die Position der aktuellen Datei in der Reihenfolge der Dateien im aktuellen Verzeichnis fest. Der Vorgänger und Nachfolger wird als verlinkter Seitentitel zurück gegeben. Gleichrangige Dateien werden alphabetisch sortiert.
Das Skript
Stand: 21.10.2022
<?php function blaettern($Pfad,$rang,$stil) { $items = glob($_SERVER["DOCUMENT_ROOT"] . $Pfad . '*{php,html}', GLOB_BRACE); unset($Datei); $wo = pathinfo($_SERVER['REQUEST_URI'], PATHINFO_FILENAME); $comp = '-1'; 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 (!isset($tags['title'])) { Return ''; Exit; } $Datei[$i]['titel'] = $tags['title']; $Datei[$i]['rang'] = (isset ($tags['rang']) ? $tags['rang'] : 999); $Datei[$i]['id'] = $i; if (pathinfo($Datei[$i]['pfad'], PATHINFO_FILENAME) == $wo) { $comp = $i; } $i++; } } // foreach array_multisort(array_column($Datei, 'rang'),SORT_NATURAL,array_column($Datei, 'titel'),SORT_NATURAL | SORT_FLAG_CASE ,$Datei); $i = 0; foreach ($Datei As $Inhalt){ if ($Datei[$i]['rang']<0){ continue; } $compr = str_pad(intval($Datei[$i]['rang']), 5 , "0" , STR_PAD_LEFT) . $Datei[$i]['titel']; if ($compr < $rang) { $vorher = $i; } if ($compr > $rang) { $nachher = $i; Break; } $i++; } $Ergebnis = '<div class="' . $stil . '">'; $Ergebnis .= (isset ($vorher) ? '<a href="'.$Datei[$vorher]['pfad'] .'?m" title="Voriger Artikel">'.$Datei[$vorher]['titel'].'</a>' : 'Kapitelanfang'); $Ergebnis .= ' « ◉ » '; $Ergebnis .= (isset ($nachher) ? '<a href="'.$Datei[$nachher]['pfad'] .'?m" title="Nächster Artikel">'.$Datei[$nachher]['titel'].'</a>' : 'Kapitelende'); $Ergebnis .= '</DIV>'; } else { $Ergebnis = ''; } return $Ergebnis; } ?>