Heinz-Jürgen Schymura

Termine_Aktuell.php


Hier wird die Arbeitsweise des PHP-Quelltext Programms Termine_Aktuell.php vorgestellt. Außerdem auch die Erstellung der notwendigen Termine- und anderen Textdateien.
Termine_Aktuell.php benötigt auf dem Server, in dem Verzeichnis, in dem es sich selbst befindet, eine Konfigurationsdatei, mit dem Namen Termine_Config.php in der Sie die Einstellungen für das Programm Ihren Bedürfnissen anpassen können.
Beim Aufruf von Termine_Aktuell.php lädt dieses die Konfigurationsdatei ein. Wenn Sie genaueres zu Konfigurationsdateien und Konstanten unter PHP wissen wollen, dann können Sie ruhig unter dem Menüpunkt Hilfe Menüsystem 1 index.php nachlesen. 
In der Termine_Config.php werden 11 Festlegungen (define) gemacht. Ich zeige Ihnen hier im folgenden die Einstellungen, mit denen ich die Bilder unter dem Menüpunkt Beschreibungen Termine_Aktuell.php erzeugt habe.

define
("TERMINE_VERZEICHNIS","Termine/");
define("TERMIN_AUSGABE_EXTENSION",".html");
define("SUCH_DATEI_TAGE_ZURUECK",30);
define("TERMINE_DATEN_VERZEICHNIS","TerminDaten/");
define("TERMIN_EXTENSION",".txt");
define("TERMINE_FESTEDATEN_VERZEICHNIS","FesteDaten/");
define("START_DATEI","termine_Kopf.txt");
define("ENDE_DATEI","termine_Boden.txt");
define("OBEN_FEST_TEXT","termine_festoben.txt");
define("UNTEN_FEST_TEXT","termine_festunten.txt");
define("KEINE_TERMINE","keine_termine.txt");

Die erste Zeichenfolge in den doppelten Hochkommas dürfen Sie nicht ändern, da PHP bei define immer die erste Zeichenfolge durch den zweiten Wert in der gleichen Zeile ersetzt. So kann ich im PHP-Quelltext Programm Termine_Aktuell.php die Zeichenfolge KEINE_TERMINE schreiben und PHP ersetzt dieses dann durch die Zeichenfolge keine_termine.txt.
In der zweiten Zeichenfolge (mit doppelten Hochkommas) schreiben Sie einfach Ihre Angaben hinein um Termine_Config.php entsprechend zu konfigurieren.
Sie sehen, auch ein Zahlenwert ist zulässig, dann aber bitte ohne doppelte Hochkomma, da diese in PHP für Zeichenfolgen reserviert sind.
Sie müssen immer auf die Groß- und Kleinschreibung bei Ihren Festlegungen achten, denn die meisten Server unterscheiden hier sehr genau. Ebenso ist es wichtig, dass Sie bei Verzeichnisangaben diese immer mit einem "/" beenden. Ausnahme: Wenn Sie keinen Angaben machen, dann halt nur "".

Und so sind die einzelnen, hier gezeigten, Festlegungen zu verstehen:
Hinter TERMINE_VERZEICHNIS steht das Verzeichnis, in dem sich die Daten oder weitere Unterverzeichnisse befinden, immer von Termine_Aktuell.php aus gerechnet. Hier schreibt das Programm auch seine Ausgabedatei hinein, es braucht dort also Schreibrechte auf dem Server. Die Ausgabedatei erhält den Namen des aktuellen Datums auf dem Server mit der hinter TERMIN_AUSGABE_EXTENSION angegebenen Extension, also etwa für den 20.7.09 die Datei 2009_07_20.html.
Findet das PHP-Programm die entsprechende Datei bereits, so wird sie einfach ausgegeben, denn warum soll sie erneut erzeugt werden.
Wird sie jedoch nicht gefunden, so sucht es als erstes die vorhergehende entsprechende Datei, etwa 2009_07_19.html. Da es jedoch möglich ist, dass manchmal einen ganzen oder mehrere Tage lang kein Besucher auf der Webseite war (wünsche ich keinem, kann aber durchaus passieren, etwa bei Serverausfall oder ähnlichem) und auch dann die vorhergehende Datei gelöscht werden soll, geben Sie bitte hinter SUCH_DATEI_TAGE_ZURUECK die Anzahl der Tage (ohne Hochkommas) an, die das Programm versuchen soll, eine entsprechende Datei zu finden, um sie zu löschen. Die Begrenzung ist deshalb wichtig, damit das Programm aufhört zu suchen, wenn bisher keine entsprechende Datei vorhanden ist, etwa beim ersten mal, oder wenn die Datei von Hand gelöscht wurde.  
Hinter TERMINE_DATEN_VERZEICHNIS geben Sie bitte das Verzeichnis an, in dem sich die Dateien mit den einzelnen Terminen befinden. Bitte beachten Sie, dieses Verzeichnis ist ab dem unter TERMINE_VERZEICHNIS angegebenen Verzeichnis zu rechnen.
Hinter TERMIN_EXTENSION tragen Sie bitte die entsprechende Dateinamensextension dieser Termindateien ein.
Dann ist noch hinter TERMINE_FESTEDATEN_VERZEICHNIS das Verzeichnis anzugeben, wieder ab dem unter TERMINE_VERZEICHNIS angegebenen Verzeichnis zu rechnen, in dem sich die anderen Dateien befinden, die das Programm noch benötigt, oder die es nutzen würde.
Es braucht unbedingt die Dateien, die hinter START_DATEI und ENDE_DATEI anzugeben sind, denn in ihnen befindet sich der gesamte Rest (außer den einzelnen Terminen) der zu erzeugenden Ausgabedatei, also bei START_DATEI etwa der HTML-Kopf einschließlich der <body> Angabe und dann alles weitere bis zu der Stelle, an der der erste Termin stehen würde. Ebenso alles, was nach dem letzten Termin noch stehen muss in ENDE_DATEI, wie etwa das Schließen von Tabellen, das </body> und das </html> der Webseite.
Die 3 nächsten Angaben hinter OBEN_FEST_TEXT, UNTEN_FEST_TEXT und KEINE_TERMINE sind nicht zwingend notwendig, sie können also auch leer ("") sein.
Das Programm versucht nur, die entsprechenden Dateien zu finden und sie an entsprechender Stelle auszugeben. Also für OBEN_FEST_TEXT unabhängig von gefundenen Terminen als erstes in der Ausgabe (oben). Für UNTEN_FEST_TEXT als letzte Ausgabe nach den Terminen oder halt der Meldung (KEINE_TERMINE), die ausgegeben wird, wenn keine Termine gefunden wurden. Wenn Sie sich die Bilder unter dem Menüpunkt Beschreibungen Termine_Aktuell.php genauer angeschaut haben, können Sie erkennen, dass kein Programmfehler passiert, wenn eine der 3 angegebenen Dateien (hier termine_festunten.txt, hinter UNTEN_FEST_TEXT angegeben) nicht gefunden wird. Die entsprechende Datei wird einfach nicht eingeladen.

Termine_Aktuell.php setzt die Termindateien immer in der oben bereits einmal gezeigten Form (2009_07_19.html) voraus. Also immer 4 stellige Jahreszahl, einen Unterstrich, 2 stellige Monatsangabe, einen Unterstrich und 2 stellige Tagesangabe mit der eingestellten Extension.
Um Termine_Aktuell.php arbeiten zu lassen brauchen Sie weiter nicht zu tun, als auf Ihrer Webseite (im Menü) bei den entsprechenden Links Termine_Aktuell.php einzutragen. Damit Sie nicht Ihr gesamtes Menüsystem umstricken müssen, ist es durchaus sinnvoll Termine_Aktuell.php und damit auch Termine_Config.php auf dem Server in dem Verzeichnis zu speichern, in dem sich auch die Startdatei (index.html, index.php) Ihrer Webseite befindet. Das war es eigentlich schon zu dem PHP-Programm Termine_Aktuell.php.

Nun werde ich mich noch ein wenig darüber auslassen, wie Sie die entsprechenden Termindateien und auch die anderen (notwendigen) Dateien am einfachsten (meine ich) erzeugen können.
Ausgangspunkt ist eine vorhandene (oder halt neu zu erstellenden) einzelne Webseite für die Termine. Sie gestalten sie bitte komplett so, wie Sie sie haben wollen, lassen nur die Termine (und auch die möglichen Angaben die Sie in den Dateien festgelegt hinter OBEN_FEST_TEXT und UNTEN_FEST_TEXT) weg.

Vorlagedatei für Miekes_HP

Für die Webseite meiner Tochter sieht das dann im WYSIWYG HTML-Editor NVU in etwa so aus. Kopf und Navigation sind vorhanden, was fehlt sind "nur noch" die einzelnen Termine. Weiter unten zeige ich Ihnen dann auch noch den HTML-Quelltext, der dahinter steckt. Diese speichere ich nun unter dem Namen termine_Vorlage.html (frei wählbar) ab.

Termin 1 für Miekes_HP

Also gebe ich doch einmal einen Termin ein und speichere die Datei dann unter dem, dem Datum entsprechenden Namen, also 2009_08_22.html, zum Beispiel im gleichen Verzeichnis, in dem auch die Datei termine_Vorlage.html ist. Und dann kann ich den nächsten Termin eingeben und unter entsprechendem Namen, hier also 2009_09_26.html speichern.

Termin 2 für Miekes_HP

Oder/Und auch die anderen Dateien für OBEN_FEST_TEXT, UNTEN_FEST_TEXT und KEINE_TERMINE erstellen und speichern.

Und hier dann (wie versprochen) den HTML-Quelltext der Vorlageseite:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><title>miekeschymura - schauspielerin</title>
<meta name="htdig-noindex" content="mieke schymura - schauspielerin">
<meta name="DC.Creator" content="Karla Leyer">
<meta name="DC.Publisher" content="mieke schymura - schauspielerin">
<meta name="DC.Contributor" content="Karla Leyer">
<meta name="DC.Subject" content="mieke schymura - schauspielerin">
<meta name="DC.Description" content="mieke schymura - schauspielerin">
<meta name="DC.Date" content="2008-04-04">
<meta name="DC.Type" content="Text">
<meta name="DC.Format" content="text/html">
<meta name="DC.Language" content="de,en">
<meta name="DC.Coverage" content="Muenster">
<meta name="DC.Rights" content="Alle Rechte liegen beim Autor">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="Keywords" content="mieke schymura - schauspielerin" lang="DE">
<meta name="Keywords" content="mieke schymura - schauspielerin">
<meta name="Robots" content="index,follow">
<meta name="revisit-after" content="after 7 days">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body background="grafiken/linienbild.gif">
<table align="center" border="0" cellpadding="0" cellspacing="0" height="auto" width="800">
<tbody>
<tr><td colspan="4" bgcolor="#ffffff" height="40" width="800">&nbsp; </td></tr>
<tr><td align="left" bgcolor="#4f4f4f" height="200" valign="top" width="40"></td>
<td align="left" bgcolor="#4f4f4f" height="200" valign="middle" width="160">
<span style="color: rgb(204, 51, 51); font-weight: 700;"></span>
<a href="index.html">&gt;&nbsp;start</a><br>&nbsp;
<a href="vita.html">&gt;&nbsp;vita</a><br>
<a href="fotos.html">&gt;&nbsp;fotos</a><br>
<a href="demo.html">&gt;&nbsp;demos</a><br>
<a href="produktionen.html">&gt;&nbsp;produktionen</a><br>
<a href="gesang.html">&gt; gesang</a><br>
<font color="#cc3333"><b>&gt;&nbsp;termine</b></font><br>
<a href="kontakt.html">&gt;&nbsp;kontakt</a><br>
<a href="impressum.html">&gt;&nbsp;impressum</a></td>
<td colspan="3" bgcolor="#ffffff" height="200" width="600">
<img src="grafiken/banner-produktionen.jpg" alt="" border="0" height="200" width="600">
</td></tr><tr><td bgcolor="#ffffff"></td>
<td colspan="2" bgcolor="#ffffff" height="auto" valign="top" width="200"><br></td>
<td align="left" bgcolor="#ffffff" height="auto" valign="top" width="600">
</td></tr></tbody></table></body></html>

Sie sehen, bei den Anweisungen für die Höhe der Tabellenelemente wurde die Höhe auf auto gesetzt, so dass die Höhe automatisch vom Browser angepasst wird.
Wenn  ich in NVU Eingaben gemacht hatte, dann wurden diese immer zwischen den beiden letzten Zeilen eingefügt. So ist es also ein Leichtes die Suchzeichenfolgen für Erkennung Start und Erkennung Ende in der Konfiguration von DateiAuszug (eigentlich mal als reines Hilfsprogramm für die Umwandlung der einzelnen Termindateien gedacht) zu bestimmen.
Ich kann (Sie könnten) dort nun die ganze Zeile
<td align="left" bgcolor="#ffffff" height="auto" valign="top" width="600">
für Erkennung Start nutzen und die ganze letzte Zeile für Erkennung Ende
</td></tr></tbody></table></body></html>

Wenn Sie dann das Programm DateiAuszug starten und diese erzeugten Termin- und anderen Dateien damit bearbeiten lassen hätten Sie fast alles, was das PHP-Quelltextprogramm Termine_Aktuell.php benötigt. Es fehlen nur noch die beiden Dateien die hinter START_DATEI und ENDE_DATEI angegeben waren. Aber das ist ja nun auch kein Problem mehr. Sie kopieren aus der Quelltextansicht Ihrer termine_Vorlage.html (deren Namen Sie auch in  DateiAuszug an der entsprechenden Stelle eintragen sollten) alles bis einschließlich der bei DateiAuszug für Erkennung Start einzutragenden Zeichenfolge, im Beispiel also bis einschließlich
<td align="left" bgcolor="#ffffff" height="auto" valign="top" width="600">
in die hinter START_DATEI angegebene Datei und dem dann noch folgenden Teil des Quelltextes, im Beispiel also
</td></tr></tbody></table></body></html>
in die hinter ENDE_DATEI angegebenen Datei.
Diese Dateien und auch die anderen (nicht unbedingt notwendigen) Dateien brauchen  Sie dann nie wieder zu bearbeiten, es sei denn, Sie wollten im Erscheinungsbild Ihrer Terminanzeige etwas ändern.
Wenn Sie nun neue Termine eingeben und dann mit dem Programm DateiAuszug bearbeiten lassen, so können Sie die erzeugten Dateien (*.txt) einfach nur in das betreffende Verzeichnis auf dem Server hochladen, schon werden ab nächstem Tag die neuen Termine angezeigt. Wenn Sie es aber sehr eilig haben mit der Anzeige, dann brauchen Sie nur die aktuelle Anzeigedatei löschen.....

Übrigens ist es keine schlechte Idee die korrekte Arbeitsweise und das Zusammenspiel der einzelnen Dateien auf dem eigenen Rechner zumindest im Anfang mal unter xampp (eine freie und kostenlose Serverumgebung) zu testen.