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