Navigation Bereich

Erstellt am 08.03.2022 Lesedauer ≤ 1 Min.

Dieses Skript holt den Titel oder den Menü-Eintrag (s. Einleitung) von Dateien eines Verzeichnisses für die Navigation als geordnete Liste.

Das Skript

Stand: 21.10.2022

Ladefehler: $$$ file a $$$

<?php
// 2022-04-22  08:27:19
function AreaMenu($Pfad) {
  $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);
        $Datei[$i]['titel'] = (isset ($tags['menu']) ? $tags['menu'] : $tags['title']);
        $Datei[$i]['rang'] = (isset ($tags['rang']) ? $tags['rang'] : 999);
        $i++;  
      } 
    } // foreach
    array_multisort(array_column($Datei, 'rang'),SORT_NATURAL,array_column($Datei, 'titel'),SORT_NATURAL |  SORT_FLAG_CASE ,$Datei);
    $i=0;
        $wo = str_replace('?m','',pathinfo($_SERVER['REQUEST_URI'], PATHINFO_FILENAME));
    $Ergebnis = '<ul>'. PHP_EOL;
    foreach ($Datei As $Inhalt){
      if ($Datei[$i]['rang']>=0){
        (pathinfo($Datei[$i]['pfad'], PATHINFO_FILENAME)  == $wo) ? $active = ' class="active"' : $active = '';
        $Ergebnis .= '<li><a'.$active.' href="'. $Datei[$i]['pfad'] . '">' . $Datei[$i]['titel']. '</a></li>'.PHP_EOL;;
      }
      $i++;
    }
    $Ergebnis .= '</ul>'. PHP_EOL;
  } // count items 
  else {
    $Ergebnis = '';
  }  
  return $Ergebnis;  
}
?>