menue-formel.php
Daten
Technik
|
Anwendung
|
Zweck
In der Menü-Formel menue-formel.php
werden alle
Angaben gemacht, die als Strukturdaten im
Kopf in jedem HTML-Dokument stehen müssen.
Zu diesen Daten gehören die Deklarationen, sowie das Menü der Website.
Prinzip
Die Menü-Formel menue-formel.php
ist eine
Include-Datei, die in die Include-Datei kopf-start.php
eingelesen wird um damit in allen HTML-Dokumenten aufgenommen zu werden.
menue-formel.php
Include-Datei: menue-formel.php
Pfad: http://webbau.brandenberger.eu/include/struktur/menue-formel.php
<?php /* benötigte Variablen für die Schlaufe */ $leer1 = ""; // Leerzeichen, falls letzte Kapitelzahl kleiner als 10 $leer2 = " "; // Standard-Leerzeichen, welches immer vor die Bezeichnung kommt // Bsp: 1.2.1 + leer1 + leer2 + Titel (+ steht für aneinandergehängt) // aber 1.2.10 + leer2 + Titel $kap_vorher = -100.1; // speichert jeweils die vorherige Hauptkapitelzahl (am Anfang irgendein unmöglicher Wert) $u1k_vorher = -100.1; // Dasselbe mit der U1-Kapitelzahl; $u1kap_offen = false; // Falls Unterkapitelmenü geöffnet: true sonst false $u2kap_offen = false; // dasselbe mit Unter-Unterkapitelmenü /* Schlaufe, welches den Array $menue durchgeht */ foreach ($menue as $punkt) { if ($punkt[0] == "Trennzeile") echo "<li><hr></li>"; // Gegebenenfalls eine Trennlinie else { /* Schliessen von Untermenüs, wenn sich die Kapitelzahl erhöht */ if ($u1kap_offen && $kap_vorher != $punkt[2]) // schliesst das Untermenü, sobald sich die Hauptkapitelzahl ändert $u1kap_offen = false; if ($u1kap_offen && $u1k_vorher != $punkt[3]) // schliesst das UnterUntermenü, sobald sich die U1-Kapitelzahl ändert $u2kap_offen = false; /* Überprüfung, ob der Eintrag geschrieben werden soll */ $schreibe = false; // Aus Prinzip, wird mal die Zeile nicht geschrieben ;) if ($kap_vorher != $punkt[2] || $u1kap_offen) $schreibe = true; // Falls sich die Kapitelnummer nicht ändert, wird nur geschrieben falls das Untermenü offen ist if ($u1kap_offen && $u2kap_offen) $schreibe = true; // Falls beide Untermenüs offen sind, wieder sowieso geschrieben if ($u1kap_offen && !$u2kap_offen && $u1k_vorher == $punkt[3]) $schreibe = false; // Falls U1 offen und U2 geschlossen, wird nur geschrieben falls die Untermenüzahl gleich bleibt if ($punkt[7]) $schreibe = false; // Ist der 7. Punkt true, so wird der Menüeintrag weggelassen if ( $schreibe ) { // Hauptentscheidung, ob Eintrag geschrieben wird (abh. von Änderung der Hauptkapitelzahl) echo "<li "; /* Hinzufügen von Identitäten oder Klassen */ if ($u1kap_offen) { if ($u2kap_offen) { echo "class='menue_uk2'"; } else { if ($u1k_nr == $punkt[3]) { echo "id='menue_uk1_aktiv'"; $u2kap_offen = true; } else echo "class='menue_uk1'"; } } elseif ($kap_nr == $punkt[2]) { echo "id='menue_aktiv'"; $u1kap_offen = true; } /* Listeneintrag weiterschreiben */ echo "><a href='..$punkt[1]'>"; if ($punkt[2]>0) { // Falls eine Kapitelzahl Null ist, wird diese und die untergeordneten Kapitelzahlen nicht angezeigt echo $punkt[2]; if ($punkt[3]>0) { echo ".".$punkt[3]; if ($punkt[4]>0) { echo ".".$punkt[4]; if ($punkt[4]<10) echo $leer1; // Erster Leerzeichen falls letzte Zahl kleiner als 10 } elseif ($punkt[3]<10) echo $leer1; // dito } elseif ($punkt[2]<10) echo $leer1; // dito } echo $leer2.$punkt[0]."</a></li>\n"; } /* Speichern der aktuellen Kapitelzahl für nächsten Durchgang */ $kap_vorher = $punkt[2]; $u1k_vorher = $punkt[3]; } } echo $test; ?>↑