Heinz-Jürgen Schymura

index.php


Das PHP-Quelltext Programm index.php ist sehr fehlertolerant geschrieben und gibt immer eine Webseite aus, so dass Sie hier nicht mit dem Programm Link_Test testen können, ob alle Webseiten auch wirklich vorhanden sind. Es würde im schlimmsten Falle die Startseite der Webseite zurück geben. Es benötigt auf dem Server, in dem Verzeichnis, wo es sich selbst befindet eine Konfigurationsdatei mit dem Namen index_config.php.
Die erste Zeile (<?php) bestimmt, dass nun ein PHP-Quelltext folgt und zwar bis zum Auftreten einer bestimmten Zeichenfolge in der letzten Zeile (?>). Diese beiden Zeilen werden in allen anderen Beispielen nicht mehr gezeigt.
In der index_config.php sind 4 Konstanten definiert, die das Programm auch nutzt. Möchten Sie mehr über Konstanten, Arrays oder über PHP selbst erfahren wollen, so schauen Sie bitte unter dem Menüpunkt Hilfe Menüsystem 1 index.php nach.

Bei meiner Unterwegs Webseite sieht die index_config.php so aus:
define("INDEX_PHP_NAME","index.php");
define("PFAD_ZU_MENUE_IN_PHP","PHP/");
define("MENUE_ALLGEMEINE_KONSTANTEN_NAME","Menue_Allgemein_Konst.php");
define("MENUE_KOPF_KONSTANTEN_NAME","Menue_Kopf_Konst.php");

Der Sinn der Verwendung von Konstanten erschließt sich sofort, wenn Sie sich zum Beispiel die Verwendung dieser Konstanten in der index.php anschauen.
Als erstes lädt sie die Datei index_config.php und verwendet bereits in den nächsten 2 Zeilen diese Konstanten für das Laden weiterer Dateien.

include PFAD_ZU_MENUE_IN_PHP.MENUE_ALLGEMEINE_KONSTANTEN_NAME;
include PFAD_ZU_MENUE_IN_PHP.MENUE_KOPF_KONSTANTEN_NAME;

Das heißt nichts anderes, als dass ich im Programm die Konstante PFAD_ZU_MENUE_IN_PHP verwenden kann und Sie durch die Festlegung dieser Konstanten etwa mit dem Wert PHP/ den Inhalt dieser Konstanten Ihren Wünschen anpassen können.    
Der Punkt zwischen den beiden Konstanten in den gezeigten Zeilen aus der index.php bedeutet nichts anderes, als dass PHP diese beiden Zeichenfolgen zu einer Zeichenfolge zusammenfügen soll.
Die Namen den Konstanten dürfte aussagekräftig genug sein. Sie brauchen sich aber nicht weiter mit den Einzelheiten der Menüsteuerung auseinander zu setzen, wenn Sie den MenueGenerator2 verwenden.
Sollten Sie jedoch selbst Hand anlegen wollen, so müssen Sie die betreffende Steuerdatei als reine Textdatei mit der Dateinamenserweiterung .php speichern. Auch innerhalb der Datei muss alles dem Anforderungen von PHP entsprechen. Bitte nur einen Texteditor, kein Textverarbeitungsprogramm verwenden.
Die relativen Pfade sind in den Steuerdateien, im Allgemeinen von dem Verzeichnis aus zu rechnen, in dem sich die Datei index.php befindet.
Sollten Sie sich fragen, weshalb Sie den Namen der index.php auch angeben sollen, dann liegt es daran, dass manche Server auf ihre besondere Schreibweise der Datei bestehen, es andererseits auch sein kann, dass Sie die Datei anders nennen wollen (etwa start.php), wenngleich Sie dann nicht mehr automatisch von Server aufgerufen wird, denn nur index (.php,.html und .htm) werden automatisch gesucht.
Im Weiteren werden die Konfigurations- und Steuerdateien Menue_Allgemein_Konst.php und Menue_Kopf_Konst.php besprochen und an Hand dieser Dateien dann auch der generelle Aufbau aller anderen sich aus ihnen ergebenden Konfigurations- und Steuerdateien.  
Ist Ihnen aufgefallen, dass Menue_Allgemein_Konst.php ein Name ist, der in der index_config.php bei der Konstanten MENUE_ALLGEMEINE_KONSTANTEN_NAME festgelegt wurde? Sie können sie also nennen, wie Sie wollen, ich werde sie weiter als Menue_Allgemein_Konst.php bezeichnen.

Bei meiner Unterwegs Webseite sieht die Menue_Allgemein_Konst.php so aus:
define("GET_AUSWAHL","Auswahl");
define("U_TIEFE_1",1);
define("U_TIEFE_2",2);
define("U_TIEFE_3",3);
define("TABELLE_LINKS",1);
define("TABELLE_ZENTRIERT",2);
define("TABELLE_RECHTS",3);
define("SOLL_JA",1);
define("SOLL_NEIN",0);
define("SCHALT_KOPF_BILD",SOLL_JA);
define("DIV_KOPF_BILD","kopf_Bild");
define("BILD_ZEILE","<img src=\"images/Name.jpg\" alt=\"Heinz-Jürgen Schymura\" WIDTH=\"208\" HEIGHT=\"40\">");
define("SCHALT_HTMLKOPF_DATUM",SOLL_JA);
define("TITEL_BEI_START","Heinz-Jürgen Schymura unterwegs");
define("DESCRIPTION_BEI_START","Heinz-Jürgen Schymura, Unterwegs, Städte, Wanderungen");

$htmlkopf=array ("Alles (bis auf den Titel) was im HTMLKopf der Webseite vor body steht");
$htmlkopf[]="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" ";
$htmlkopf[]="       \"http://www.w3.org/TR/html4/transitional.dtd\"> ";
$htmlkopf[]="<head> ";
$htmlkopf[]="<link rel=\"stylesheet\" type=\"text/css\" href=\"_private/Homepage.css\"> ";
$htmlkopf[]="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"> ";
$htmlkopf[]="<meta name=\"content-language\" content=\"de\"> ";
$htmlkopf[]="<meta name=\"audience\" content=\"Alle\"> ";
$htmlkopf[]="<meta name=\"author\" content=\"Heinz-Jürgen Schymura\"> ";
$htmlkopf[]="<meta name=\"publisher\" content=\"Heinz-Jürgen Schymura\"> ";
$htmlkopf[]="<meta name=\"robots\" content=\"INDEX,FOLLOW\"> ";
$htmlkopf[]="<meta name=\"revisit-after\" content=\"10 days\"> ";

Wie oben bereits gezeigt werden zuerst Konstanten definiert. Hinter GET_AUSWAHL können Sie eintragen,welche Zeichenfolge im Get Aufruf als erstes übergeben werden soll (Beispiel etwa http://heinz-jürgen-schymura.de/index.php?Auswahl=Archiv).
Alles was mit  U_TIEFE, TABELLE_ und SOLL_ anfängt sollten Sie bitte unverändert übernehmen, denn dies sind "nur" Schalter, die in vielen Steuerdateien genutzt werden.
DESCRIPTION_BEI_START ist eine Meta-Information, die Sie in der normalen Ansicht einer Webseite überhaupt nicht sehen, sondern die im Prinzip für Websuchmaschinen da ist und im unsichtbaren Kopf (Header) einer Webseite steht. Dies können Sie sich anschauen,  wenn Sie in Ihrem Browser Quelltext anzeigen aktivieren.
Bei TITEL_BEI_START ist dies schon etwas anders, diesen Eintrag zeigen die Browser normalerweise in der obersten Rahmenzeile des Browsers an.
Und wenn Sie sich nun auch noch SCHALT_KOPF_BILD anschauen, dann sehen Sie, dass einer Konstanten selbst der Wert einer anderen, vorher definierten Konstanten zugewiesen werden kann, dann aber immer ohne doppelte Anführungszeichen vorn und hinten. Mit dem Festlegen dieser Konstanten bestimmen Sie, ob in der Kopfzeile Ihrer Webseite ein Bild angezeigt werden soll. Wenn ja, dann müssen Sie aber auch die entsprechenden, richtigen Angaben bei DIV_KOPF_BILD und BILD_ZEILE machen.
Bei SCHALT_HTMLKOPF_DATUM steuern Sie, ob im Header der einzelnen Webseite das aktuelle Datum hinter date geschrieben wird, oder ob das Datum nicht bearbeitet wird, so dass Sie es in dem nachfolgend beschriebenen Array selbst festlegen sollten.

Und nun geht es denn das erste mal zu Arrays. Mit dem ersten Benennen eines Arrays erzeugt man ein Array, oder überschreibt ein bereits bestehendes Array mit gleichem Namen.
$htmlkopf=array ("Alles (bis auf den Titel) was im HTMLKopf der Webseite vor body steht");
Hier wird also ein Array mit dem Namen $htmlkopf neu erzeugt oder halt einfach überschrieben. Es besteht nun aus einem einzigen Element, das den Inhalt Alles (bis auf den Titel) was im HTMLKopf der Webseite vor body steht hat.
Bei allen Arrays beginnt PHP bei der Zählung der Elemente immer mit 0. Das heißt, das erste Element kann über $htmlkopf[0] direkt angesprochen oder abgefragt werden.
Ich beginne in meinen PHP-Quelltextprogrammen jedoch immer bei 1, weil ich das nullte Element immer als Erklärung nutze.
Und nun zu dem eigentlichen Inhalt des Arrays $htmlkopf. Mit $htmlkopf[] wird also jeweils ein neues Element an das bestehende Array angehängt.
Sie können also  eine beliebige Anzahl von Einträgen anhängen. Es kommt für index.php nur darauf an, dass es das vorausgesetzte Array $htmlkopf auch wirklich findet. (Element 0). Dies gilt auch für allen anderen Arrays in allen anderen Konfigurations- und Steuerdateien.
Sinn dieser Einträge ist es, alle Headereinträge, die in allen Webseiten gleich sind, aufzunehmen, so dass index.php sie in die einzelnen Seiten einbauen kann.
Deshalb sollten Sie vor allem den Dokumenttyp festlegen und dann natürlich den Beginn des eigentlichen Headers $htmlkopf[]="<head> "; Hier sehen Sie auch noch einige Besonderheiten. Erstens müssen Sie jede Zeile mit einem Semikolon abschließen, aber das ist ja nichts Neues, aber das ist neu. Es ist nicht wirklich notwendig, aber wenn Sie möchten, dass in der Anzeige des Quelltextes einer Webseite auch ein Zeilenvorschub an der Stelle gemacht werden soll, dann müssen Sie halt den Zeilenvorschub so einfügen.
Das lässt sich ja noch überblicken, aber bei den anderen Elementen stehen unendlich viele \". Und hinterher im Quelltext der Webseite ist davon nur noch das " zu sehen! Das liegt daran, dass es auch nur ein doppeltes Hochkomma sein soll. Aber PHP würde ein doppeltes Hochkomma als Anfang oder Ende einer Zeichenfolge betrachten und dann voll durcheinander kommen. Deshalb muss man einem doppeltes Hochkomma immer einen Schrägstrich von links oben nach rechts (\) unten voranstellen um PH zu sagen, dass dies als doppeltes Hochkomma in der Zeichenfolge anzusehen ist. Dies können Sie sich am einfachsten mit dem Hilfsprogramm Escapen erzeugen lassen, dessen Beschreibung Sie unter dem Menüpunkt Beschreibungen Escapen und ausführlich unter Hilfe Escapen beschrieben finden.

Dies ist meine Konfigurations- und Steuerdatei Menue_Kopf_Konst.php (die Leerzeilen habe ich nur zu besseren Übersicht eingefügt).
$Schalt_Kopf_Span=array ("Soll ein Span Text ausgegeben werden für die einzelnen Menüpunkte?");
$Schalt_Kopf_Span[]=(SOLL_JA);

$Kopf_In_Ausgabe_schreiben=array ("Welche Datei soll in die Ausgabe geschrieben werden, bei Start der Webseite?");
$Kopf_In_Ausgabe_schreiben[]=("Startseite/Startseite.php");

$Kopf_menue_CSS_Container=array ("Wie ist der Container für das zu nutzende Menü in der CSS-Datei benannt?");
$Kopf_menue_CSS_Container[]=("kopf_container");

$Kopf_menue_CSS_define=array ("Wie ist die Definition für das zu nutzende Menü in der CSS-Datei benannt?");
$Kopf_menue_CSS_define[]=("kopf_Menue");

$Kopf_menue_CSS_name=array ("Wie ist das zu nutzende Menü in der CSS-Datei benannt?");
$Kopf_menue_CSS_name[]=("kopfmenue");

$Kopf_Unter_menue_Ausgabe_CSS_Container=array ("Wie ist der Container für den gesamten Bereich unterhalb des Kopfmenüs in der CSS-Datei benannt?");
$Kopf_Unter_menue_Ausgabe_CSS_Container[]=("ausgabe_container");

$Kopf_Ausgabe_CSS_name=array ("Wie der Bereich für die Ausgabe in der CSS-Datei benannt?");
$Kopf_Ausgabe_CSS_name[]=("ausgabe");
 
$Kopf_menue=array ("Hier stehen dann die Kopf Menü Einträge");
$Kopf_menue[]=(" Archiv ");
$Kopf_menue[]=(" Aktuell ");
$Kopf_menue[]=(" Suche ");
$Kopf_menue[]=(" Impressum ");

$Kopf_Titel=array ("Titel der Webseite für die Kopf Menü Einträge");
$Kopf_Titel[]=("Ihre Auswahl aus allen Beschreibungen aus dem Archiv");
$Kopf_Titel[]=("Die aktuellste Beschreibung im Archiv");
$Kopf_Titel[]=("Suche nach Begriffen im Archiv");
$Kopf_Titel[]=("Impressum");

$Kopf_kennung
=array ("Die Kennung der  Kopf Menü Einträge");
$Kopf_kennung[]=("Archiv");
$Kopf_kennung[]=("Aktuell");
$Kopf_kennung[]=("Suche");
$Kopf_kennung[]=("Impressum");

$Kopf_description=array ("Wie soll die Beschreibung hinter description im header der Webseite lauten?");
$Kopf_description[]=("Auswahl aus allen Beschreibungen im Archiv");
$Kopf_description[]=("Die aktuellste Beschreibung im Archiv");
$Kopf_description[]=("Suche in der gesamten Webseite nach Ihren Wünschen");
$Kopf_description[]=("Impressum, bitte nur hier beschweren");

$Kopf_span=array ("Wenn zugehörende Ausgaben bei den Menüpunkten angezeigt werden sollen, dann eintragen");
$Kopf_span[]=("Hier gelangen Sie zu jeder vorhandenen Beschreibung");
$Kopf_span[]=("Hier wird Ihnen die jeweils aktuellste Beschreibung angezeigt");
$Kopf_span[]=("Suche nach Begriffen im Archiv");
$Kopf_span[]
=("");

$U_Menue_Lage=array ("In welchem Verzeichnis ist die entsprechende Steuerdatei (unterhalb PHP) und wie ist ihr Name?");
$U_Menue_Lage[]=("Archiv/Jahre.php");
$U_Menue_Lage[]=("Archiv/2009/Juni/03.php");
$U_Menue_Lage[]=("_suchen/SucheInHP2.php");
$U_Menue_Lage[]=("Impressum/Impressum.php");

$U_Menue_Tiefe=array ("Wie viel Untermenüs noch unter dem Menükopf?");
$U_Menue_Tiefe[]=(3);
$U_Menue_Tiefe[]=(0);
$U_Menue_Tiefe[]=(0);
$U_Menue_Tiefe[]=(0);

$Erkennungsfolgen=array("Wird nicht genutzt, bitte in dem folgenden Arrays die Zeichenfolgen eingeben");

$Folgen
=array("Wird nicht genutzt, bitte folgende die für den Menüpunkt der Kopfzeile Zeichenfolgen eingeben");
$Folgen[]=("Jahr");
$Folgen[]=("Monat");
$Folgen[]=("Tag");
$Erkennungsfolgen[]=$Folgen;

$Folgen=array("Wird nicht genutzt, bitte folgende die für den Menüpunkt der Kopfzeile Zeichenfolgen eingeben");
$Erkennungsfolgen[]=$Folgen;

$Folgen=array("Wird nicht genutzt, bitte folgende die für den Menüpunkt der Kopfzeile Zeichenfolgen eingeben");
$Erkennungsfolgen[]=$Folgen;

$Folgen=array("Wird nicht genutzt, bitte folgende die für den Menüpunkt der Kopfzeile Zeichenfolgen eingeben");
$Erkennungsfolgen[]=$Folgen;

Die Arrays von $Schalt_Kopf_Span bis $Kopf_Ausgabe_CSS_name hätte man eigentlich auch als Konstanten definieren können, denn sie haben ja alle nur einen wirklichen Wert. Ich habe sie jedoch bewusst als Array definiert, weil so der erklärende Text sofort dabei steht in der Zeile 0.
Ab $Kopf_menue gehen die wirklichen Arrays los. Hier ist es wichtig, dass bis einschließlich des Arrays $U_Menue_Tiefe alle Arrays die gleiche Anzahl von Einträgen haben.
Auch wenn Sie bei $Schalt_Kopf_Span[] statt des Wertes SOLL_JA den Wert SOLL_NEIN (in der Datei Menue_Allgemein_Konst.php festgelegt) eingetragen hätten, dann sollten Sie immer noch in $Kopf_span[] die gleiche Anzahl von Einträgen, wenn auch nur als leere Zeichenfolge, wie für den Menüpunkt Impressum (letzter Eintrag bei $Kopf_span[]) gezeigt, anlegen.
Im Array $U_Menue_Lage ist manchmal so etwas ähnliches wie eine doppelte Verneinung notwendig. Im Normalfall bezieht sich die jeweilige Angabe auf entsprechende Steuerdatei in dem Verzeichnis, in dem sich die Datei Menue_Kopf_Konst.php selbst befindet. Haben Sie dort (wie ich) noch weitere Unterverzeichnisse (bei mir Archiv), so muss ich diese halt mir angeben. Und im Verzeichnis PHP/Archiv/ ist dann die weitere Steuerdatei Jahre.php zu finden.
Will ich jedoch, wie etwa für Suchen oder Impressum keine weitere Steuerdatei mehr hier eintragen, sondern will ich gleich eine Ausgabedatei eintragen, die sich (bei mir) nicht mehr im Verzeichnis PHP oder einem weiterem Unterverzeichnis von diesem befindet, sondern im Verzeichnis _suchen oder Impressum, beide jeweils eine Verzeichnisebene oberhalb von PHP, so muss ich hier also relativ eine Verzeichnisebene höher angeben (_suchen/SucheInHP2.php), dann passt alles wieder.
Bei $U_Menue_Tiefe[] wird, auch nur als Zahlenwert, die Anzahl der Untermenüs unter dem betreffenden Kopfmenüpunkt angegeben. Hier also bei Archiv 3 Untermenüs und bei allen anderen 0, also kein Untermenü. Jeder Wert zwischen 0 und 3 ist zulässig.

So und bei $Erkennungsfolgen wird es wirklich interessant. Sie sehen, dieses Array wird erzeugt und weiter erstmal nichts.
In dieses Array werden für die möglichen Untermenüs die Kennungen eingetragen, in etwa so, wie dies schon im Array $Kopf_kennung[] für die Kopfmenüpunkte gemacht wurden. Diese Kennungen sind für den Besucher Ihrer (meiner) Webseite in der Adressenzeile sichtbar(Get Übergabe). Deshalb ist es auch voll änderbar und anzupassen.
In der nächsten Zeile wird das Array $Folgen erzeugt und dann für den ersten Kopfmenüpunkt (Archiv) entsprechend belegt mit Jahr, Monat, Tag. Schließlich ist ja dort bei $U_Menue_Tiefe[] auch 3 angegeben.
 Danach wird dann das ausgefüllte Array $Folgen dem vorher erzeugten Array $Erkennungsfolgen als ein neuer Eintrag hinzu gefügt ($Erkennungsfolgen[]=$Folgen;).
Anschließend wird das Array $Folgen mit einem leeren Array überschrieben (wieder erzeugt) und, da für keinen weiteren Kopfmenüpunkt noch weitere Untermenüs vorhanden sind, sofort dem Array $Erkennungsfolgen hinzugefügt. Wichtig ist nur, dass die Anzahl der Arrayelemente bei $Erkennungsfolgen gleich der Anzahl etwa bei $Kopf_menue ist.
So sieht, zum Beispiel, nun der Get-Aufruf für den Kopfmenüpunkt Archiv in meiner Unterwegs Webseite aus: http://heinz-jürgen-schymura.de/index.php?Auswahl=Archiv

Nun zeige ich Ihnen meine meine Steuerdatei Jahre.php (siehe $U_Menue_Lage in der Menue_Kopf_Konst.php).
$U_1_anaus_Span=array ("Soll ein Span Text ausgegeben werden für die einzelnen Menüpunkte?");
$U_1_anaus_Span[]=(SOLL_NEIN);

$U_1_anaus_Tabelle=array ("Sollen die einzelnen Menüpunkte innerhalb einer Tabelle ausgegeben werden?");
$U_1_anaus_Tabelle[]=(SOLL_JA);

$U_1_TabName=array ("Wie ist die Bezeichnung in der CSS Datei?");
$U_1_TabName[]=("jahre");

$U_1_TabAusrichtung=array ("Wie sollen die Menüpunkte ausgerichtet sein?");
$U_1_TabAusrichtung[]=(TABELLE_LINKS);

$U_1_Tab_Spalten=array ("In wieviel Spalten sollen die einzelnen Menüpunkte angeordnet werden?");
$U_1_Tab_Spalten[]=(1);

$U_1_In_Ausgabe_schreiben=array ("Welche Datei soll in die Ausgabe geschrieben werden, wenn keine Auswahl getroffen wurde?");
$U_1_In_Ausgabe_schreiben[]=("Archiv/Allgemein.php");

$U_1_menue_CSS_name=array ("Wie ist das zu nutzende Menü in der CSS-Datei benannt?");
$U_1_menue_CSS_name[]=("linksmenue");

$U_1_Ausgabe_CSS_name
=array ("Wie der Bereich für die Ausgabe in der CSS-Datei benannt?");
$U_1_Ausgabe_CSS_name[]=("ausgabe");

$U_1_menue=array ("Hier stehen dann die Untermenü Einträge");
$U_1_menue[]=("2008");
$U_1_menue[]=("2009");

$U_1_kennung=array ("Die Kennung der Untermenü Einträge");
$U_1_kennung[]=("2008");
$U_1_kennung[]=("2009");

$U_1_Titel=array ("Titel der Webseite für die Untermenü Einträge");
$U_1_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Jahr 2008");
$U_1_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Jahr 2009");

$U_1_description=array ("Wie soll die Beschreibung hinter description im header der Webseite lauten?");
$U_1_description[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Jahr 2008");
$U_1_description[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Jahr 2009");

$U_1_Untermenue_Anzeigen=array ("Soll noch ein Untermenü angezeigt werden unter diesem Untermenü?");
$U_1_Untermenue_Anzeigen[]=(SOLL_JA);
$U_1_Untermenue_Anzeigen[]=(SOLL_JA);

$U_1_Anzeigedatei=array ("Welche Datei soll bei Auswahl der Untermenü Einträge angezeigt werden, wenn kein weiteres Untermenü mehr da ist?");
$U_1_Anzeigedatei[]=("");
$U_1_Anzeigedatei[]=("");

$U_1_span=array ("Wenn zugehörende Ausgaben bei den Menüpunkten angezeigt werden sollen, dann eintragen");
$U_1_span[]=("");
$U_1_span[]=("");

$U_1_U_Menue_Lage=array ("Wo liegt die entsprechende Menüsteuerdatei (unterhalb php) und wie ist ihr Name, falls noch ein Untermenü vorhanden?");
$U_1_U_Menue_Lage[]=("Archiv/2008/Monate.php");
$U_1_U_Menue_Lage[]=("Archiv/2009/Monate.php");

Auch hier wären die Arrays bis einschließlich $U_1_Ausgabe_CSS_name auch als Konstanten definierbar gewesen. Vom Array $U_1_anaus_Tabelle bis zum Array $U_1_Tab_Spalten einschließlich bezieht sich alles auf eine mögliche Ausgabe der Menüpunkte (von Jahre.php) in einer Tabelle, oder halt nicht. Auch wenn Sie bei $U_1_anaus_Tabelle[] den Wert SOLL_NEIN  eingetragen haben, so sollten die anschließenden bis zum Array $U_1_Tab_Spalten dennoch zumindest vorhanden sein.
Die Arrays $U_1_In_Ausgabe_schreiben und $U_1_Ausgabe_CSS_name sind den entsprechenden Arrays in der Menue_Kopf_Konst.php gleich zu setzen und das Array $U_1_menue_CSS_name enthält auch die entsprechende Angabe aus der CSS-Datei.
Die anschließenden Array (von $U_1_menue bis einschließlich $U_1_U_Menue_Lage)  entsprechen den ähnlichen Angaben im Kopfmenü (Menue_Kopf_Konst.php) bis auf das Array $U_1_Untermenue_Anzeigen.
Im entsprechenden Array $U_1_Untermenue_Anzeigen stünden die Einträge mit Verzeichnis und Name für die PHP-Textdatei, die angezeigt werden soll, wenn einer der Menüeinträge ausgewählt werden würde und es kein weiteres Untermenü gäbe.
So sieht, zum Beispiel, nun der Get-Aufruf für den Untermenüpunkt 2009 in meiner Unterwegs Webseite aus: http://heinz-jürgen-schymura.de/index.php?Auswahl=Archiv&Jahr=2009


Es gibt jedoch ein weiteres Untermenü (siehe $U_1_U_Menue_Lage[]), das in allen Fällen (bei mir) Monate.php heißt und das ich Ihnen nun zeige.
$U_2_anaus_Span=array ("Soll ein Span Text ausgegeben werden für die einzelnen Menüpunkte?");
$U_2_anaus_Span[]=(SOLL_NEIN);

$U_2_anaus_Tabelle=array ("Sollen die einzelnen Menüpunkte innerhalb einer Tabelle ausgegeben werden?");
$U_2_anaus_Tabelle[]=(SOLL_JA);

$U_2_TabName=array ("Wie ist die Bezeichnung in der CSS Datei?");
$U_2_TabName[]=("monate");

$U_2_TabAusrichtung=array ("Wie sollen die Menüpunkte ausgerichtet sein?");
$U_2_TabAusrichtung[]=(TABELLE_RECHTS);

$U_2_Tab_Spalten=array ("In wieviel Spalten sollen die einzelnen Menüpunkte angeordnet werden?");
$U_2_Tab_Spalten[]=(1);

$U_2_In_Ausgabe_schreiben=array ("Welche Datei soll in die Ausgabe geschrieben werden, wenn keine Auswahl getroffen wurde?");
$U_2_In_Ausgabe_schreiben[]=("Archiv/2009/Allgemein.php");

$U_2_menue_CSS_name=array ("Wie ist das zu nutzende Menü in der CSS-Datei benannt?");
$U_2_menue_CSS_name[]=("linksmenue");

$U_2_Ausgabe_CSS_name=array ("Wie der Bereich für die Ausgabe in der CSS-Datei benannt?");
$U_2_Ausgabe_CSS_name[]=("ausgabe");

$U_2_menue
=array ("Hier stehen dann die Untermenü Einträge");
$U_2_menue[]=("Januar");
$U_2_menue[]=("April");
$U_2_menue[]=("Mai");
$U_2_menue[]=("Juni");

$U_2_kennung=array ("Die Kennung der Untermenü Einträge");
$U_2_kennung[]=("Januar");
$U_2_kennung[]=("April");
$U_2_kennung[]=("Mai");
$U_2_kennung[]=("Juni");

$U_2_Titel=array ("Titel der Webseite für die Untermenü Einträge");
$U_2_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Januar 2009");
$U_2_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, im April 2009");
$U_2_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Mai 2009");
$U_2_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Juni 2009");

$U_2_description=array ("Wie soll die Beschreibung hinter description im header der Webseite lauten?");
$U_2_description[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Januar 2009");
$U_2_description[]=("Heinz-J&uuml;rgen Schymura unterwegs, im April 2009");
$U_2_description[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Mai 2009");
$U_2_description[]=("Heinz-J&uuml;rgen Schymura unterwegs, im Juni 2009");

$U_2_Untermenue_Anzeigen
=array ("Soll noch ein Untermenü angezeigt werden unter diesem Untermenü?");
$U_2_Untermenue_Anzeigen[]=(SOLL_JA);
$U_2_Untermenue_Anzeigen[]=(SOLL_JA);
$U_2_Untermenue_Anzeigen[]=(SOLL_JA);
$U_2_Untermenue_Anzeigen[]=(SOLL_JA);

$U_2_Anzeigedatei
=array ("Welche Datei soll bei Auswahl der Untermenü Einträge angezeigt werden, wenn kein weiteres Untermenü mehr da ist?");
$U_2_Anzeigedatei[]=("");
$U_2_Anzeigedatei[]=("");
$U_2_Anzeigedatei[]=("");
$U_2_Anzeigedatei[]=("");

$U_2_span=array ("Wenn zugehörende Ausgaben bei den Menüpunkten angezeigt werden sollen, dann eintragen");
$U_2_span[]=("");
$U_2_span[]=("");
$U_2_span[]=("");
$U_2_span[]=("");

$U_2_U_Menue_Lage=array ("Wo liegt die entsprechende Menüsteuerdatei (unterhalb php) und wie ist ihr Name, falls noch ein Untermenü vorhanden?");
$U_2_U_Menue_Lage[]=("Archiv/2009/Januar/Tage.php");
$U_2_U_Menue_Lage[]=("Archiv/2009/April/Tage.php");
$U_2_U_Menue_Lage[]=("Archiv/2009/Mai/Tage.php");
$U_2_U_Menue_Lage[]=("Archiv/2009/Juni/Tage.php");

Sie sehen, um Prinzip keine Unterschiede, wenn man von der _2_ absieht, wo beim vorhergehenden Untermenü noch _1_ stand. Es ist jedoch notwendig, dass sich die Arraynamen unterscheiden, damit nicht ein Array aus diesem Untermenü ein anderes Array überschreibt.
So sieht, zum Beispiel, nun der Get-Aufruf für den Untermenüpunkt Mai im Jahr 2009 in meiner Unterwegs Webseite aus: http://heinz-jürgen-schymura.de/index.php?Auswahl=Archiv&Jahr=2009&Monat=Mai

Es gibt noch ein weiteres Untermenü (siehe $U_2_U_Menue_Lage[]), das in allen Fällen (bei mir) Tage.php heißt und das ich Ihnen nun zeige.
$U_3_anaus_Span=array ("Soll ein Span Text ausgegeben werden für die einzelnen Menüpunkte?");
$U_3_anaus_Span[]=(SOLL_JA);

$U_3_anaus_Tabelle=array ("Sollen die einzelnen Menüpunkte innerhalb einer Tabelle ausgegeben werden?");
$U_3_anaus_Tabelle[]=(SOLL_JA);

$U_3_TabName=array ("Wie ist die Bezeichnung in der CSS Datei?");
$U_3_TabName[]=("tage");

$U_3_TabAusrichtung=array ("Wie sollen die Menüpunkte ausgerichtet sein?");
$U_3_TabAusrichtung[]=(TABELLE_RECHTS);

$U_3_Tab_Spalten=array ("In wieviel Spalten sollen die einzelnen Menüpunkte angeordnet werden?");
$U_3_Tab_Spalten[]=(4);

$U_3_In_Ausgabe_schreiben=array ("Welche Datei soll in die Ausgabe geschrieben werden, wenn keine Auswahl getroffen wurde?");
$U_3_In_Ausgabe_schreiben[]=("Archiv/2009/Mai/Allgemein.php");

$U_3_menue_CSS_name=array ("Wie ist das zu nutzende Menü in der CSS-Datei benannt?");
$U_3_menue_CSS_name[]=("linksmenue");

$U_3_Ausgabe_CSS_name=array ("Wie der Bereich für die Ausgabe in der CSS-Datei benannt?");
$U_3_Ausgabe_CSS_name[]=("ausgabe");

$U_3_menue=array ("Hier stehen dann die Untermenü Einträge");
$U_3_menue[]=("4");
$U_3_menue[]=("7");
$U_3_menue[]=("11");
$U_3_menue[]=("14");
$U_3_menue[]=("18");
$U_3_menue[]=("20");
$U_3_menue[]=("25");
$U_3_menue[]=("27");
$U_3_menue[]=("30");

$U_3_kennung=array ("Die Kennung der Untermenü Einträge");
$U_3_kennung[]=("04");
$U_3_kennung[]=("07");
$U_3_kennung[]=("11");
$U_3_kennung[]=("14");
$U_3_kennung[]=("18");
$U_3_kennung[]=("20");
$U_3_kennung[]=("25");
$U_3_kennung[]=("27");
$U_3_kennung[]=("30");

$U_3_Titel=array ("Titel der Webseite für die Untermenü Einträge");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, Oderbr&uuml;ck, auf dem Kaiserweg nach Walkenried, am 4.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, Bad Harzburg, Altenau, am 7.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, Ilsenburg, Zeterklippen, Brocken, am 11.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, Goslar, Clausthal-Zellerfeld, am 14.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, Clausthal-Zellerfeld, Altenau, Torfhaus, am 18.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, M&uuml;nchehof, Wildemann, Clausthal-Zellerfeld, am 20.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, M&uuml;nchehof, Bad Grund, Clausthal-Zellerfeld, am 25.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, M&uuml;nchehof, Lautenthal, Hahnenklee, am 27.5.2009");
$U_3_Titel[]=("Heinz-J&uuml;rgen Schymura unterwegs, Goslar, Wolfshagen, Seesen, am 30.5.2009");

$U_3_description=array ("Wie soll die Beschreibung hinter description im header der Webseite lauten?");
$U_3_description[]=("Oderbr&uuml;ck, auf dem Kaiserweg nach Walkenried");
$U_3_description[]=("Bad Harzburg, Altenau");
$U_3_description[]=("Ilsenburg, Zeterklippen, Brocken");
$U_3_description[]=("Goslar, Clausthal-Zellerfeld");
$U_3_description[]=("Clausthal-Zellerfeld, Altenau, Torfhaus");
$U_3_description[]=("M&uuml;nchehof, Wildemann, Clausthal-Zellerfeld");
$U_3_description[]=("M&uuml;nchehof, Bad Grund, Clausthal-Zellerfeld");
$U_3_description[]=("M&uuml;nchehof, Lautenthal, Hahnenklee");
$U_3_description[]=("Goslar, Wolfshagen, Seesen");

$U_3_Untermenue_Anzeigen=array ("Soll noch ein Untermenü angezeigt werden unter diesem Untermenü?");
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);
$U_3_Untermenue_Anzeigen[]=(SOLL_NEIN);

$U_3_Anzeigedatei
=array ("Welche Datei soll bei Auswahl der Untermenü Einträge angezeigt werden, wenn kein weiteres Untermenü mehr da ist?");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/04.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/07.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/11.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/14.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/18.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/20.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/25.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/27.php");
$U_3_Anzeigedatei[]=("Archiv/2009/Mai/30.php");

$U_3_span=array ("Wenn zugehörende Ausgaben bei den Menüpunkten angezeigt werden sollen, dann eintragen");
$U_3_span[]=("Oderbr&uuml;ck, auf dem Kaiserweg nach Walkenried");
$U_3_span[]=("Bad Harzburg, Altenau");
$U_3_span[]=("Ilsenburg, Zeterklippen, Brocken");
$U_3_span[]=("Goslar, Clausthal-Zellerfeld");
$U_3_span[]=("Clausthal-Zellerfeld, Altenau, Torfhaus");
$U_3_span[]=("M&uuml;nchehof, Wildemann, Clausthal-Zellerfeld");
$U_3_span[]=("M&uuml;nchehof, Bad Grund, Clausthal-Zellerfeld");
$U_3_span[]=("M&uuml;nchehof, Lautenthal, Hahnenklee");
$U_3_span[]=("Goslar, Wolfshagen, Seesen");

$U_3_U_Menue_Lage=array ("Wo liegt die entsprechende Menüsteuerdatei (unterhalb php) und wie ist ihr Name, falls noch ein Untermenü vorhanden?");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
$U_3_U_Menue_Lage[]=("");
Außer, dass hier in den Arraynamen die _3_ auftaucht, fällt hier auf, dass im Array $U_3_Untermenue_Anzeigen nun immer der Wert SOLL_NEIN steht und im Array $U_3_Anzeigedatei Verzeichnisse und Dateinamen angegeben sind. Diese sind (bei $U_1_Anzeigedatei, $U_2_Anzeigedatei und $U_3_Anzeigedatei) immer von der index.php aus anzugeben.
Im Array $U_3_U_Menue_Lage steht nun jeweils kein Eintrag mehr, da es ja kein weiteres Untermenü mehr gibt, mehr geben kann!
So sieht, zum Beispiel, nun der Get-Aufruf für den Untermenüpunkt 30 im Mai 2009 in meiner Unterwegs Webseite aus: http://heinz-jürgen-schymura.de/index.php?Auswahl=Archiv&Jahr=2009&Monat=Mai&Tag=30

Sie sehen, Sie sollten die Bearbeitung der Steuerdateien lieber mit dem Programm MenueGenerator2 ausführen, dort brauchen Sie nicht auf die Anzahl der Einträge achten, etc....