NOF-Forum | Referenzen | Kontakt | Impressum | Sitemap
Tutorial Veranstaltungskalender - von Webbausteine.de - für fortgeschrittene Benutzer
Tutorial vom: 08.11.2013 - Einbau am 26.09.2013
Ich beschreibe hier die Version vom 06.11.2013 (B), sollte sich die Version ändern, habe ich vom Autor die Erlaubnis Euch die von mir hier beschriebene Version zum Download zur Verfügung zu stellen, da ich nicht mit jedem Update dieses Tutorial umschreiben kann. Meldet Euch in diesem Fall. Das jeweilige Versions-Datum findet Ihr in der Datei “lies_mich.txt”.
Zunächst stellt Ihr Eure Seiten, auf denen Ihr diese Skripte einbaut, auf die Dateierweiterung .php um:
> Menü oben > Bearbeiten > Benutzerdefinierte Namen > Dateierweiterung .php wählen
Guckt Euch die Anleitungen und die Skripte bei Webbausteine.de an und ladet Euch die Skripte von dort auf Euren PC.
Ihr entpackt die ZIP-Datei und erhaltet ein Verzeichnis:
Die Skripte benötigen keine MySQL-Datenbank, sondern tragen die Veranstaltungen in Textdateien (.txt) in dieses Verzeichnis ein:
... und die Anmeldungen zu Veranstaltungen in Textdateien (.txt) in dieses Verzeichnis ein:
Damit das Skript das tun kann, müsst Ihr diese beiden Verzeichnisse zunächst mit Eurem FTP-Programm auf Euren Server in das Stammverzeichnis Eures Projektes kopieren. Diese Verzeichnisse benötigen Schreibrechte, eine .htaccess Datei befindet sich zum Schutz dieser Dateien in beiden Verzeichnissen.
Publizierungs-Struktur
Da in einigen dieser Skripte eine direkte Verlinkung auf die Seiten-Namen vorgenommen wird, möchte ich Euch raten das Projekt, auf dem Ihr diese Skripte einbaut, unstrukturiert zu publizieren. Sonst müsstet Ihr die relativen Pfadangaben zu einigen Seiten in den Skripten anpassen.
> Publizieren Ansicht > oben im Menü “Publizieren” > Dateien anordnen > Unstrukturiert
Datei einstellungen.php - ändern und mit dem FTP-Programm in das Stammverzeichnis des Projektes auf den Server kopieren
Öffnet diese Datei mit z.B. Eurem Windows-Editor und tragt Euen Administrator-Namen und das dazugehörige Passwort ein. Weiterhin könnt Ihr hier beliebig viele Mitglieder mit deren Zugangsdaten eintragen oder optional auch ein globales Passwort für alle Mitglieder verwenden. Mitglieder können sich dann zu Veranstaltungen anmelden. Achtet darauf, falls Ihr die Termine beibehalten wollt, bei Veranstaltungen “automatisch löschen” > “nein” zu wählen, ansonsten wird alles vor dem Tagesdatum automatisch gelöscht.
// Name (Administrator)
$MITGLIED = "Dein Administrator Name";
// Passwort (Administrator)
// Aus Sicherheitsgründen sollte das Passwort min. 8 Zeichen enthalten
$MITGLIED_PASS[$MITGLIED] = "Dein Administrator Passwort";
// Hier kann man ein einheitliches Passwort für Mitglieder vergeben (optional)
// $GLOB_PASS = "Globales Passwort für alle Mitglieder";
// Weitere Mitglieder und Passwörter hinzufügen (optional)
$MITGLIED_PASS["Tester"] = "test";
//$MITGLIED_PASS["Max Mustermann"] = "123456"; // Mitglieder so eingeben wenn jedes Mitglied ein eigenes Passwort haben soll
//$MITGLIED_PASS["Max Mustermann"] = $GLOB_PASS; // Mitglieder so eingeben wenn das einheitliches Passwort verwendet werden soll
// Link anzeigen um sich bei einer Veranstaltung anzumelden (ja/nein)
$VERANSTALTUNG_LINK = "ja";
// Abgelaufene Veranstaltungen automatisch löschen (ja/nein)
$AUTODELETE = "nein";
// Verzeichnisse benötigen Schreibrechte!
$events = "events/";
$anmeldungen = "anmeldungen/";
Die folgenden Dateien öffnet Ihr z.B. mit Eurem Windows-Editor und kopiert die von mir hier gezeigten Inhalte in die HTML Eurer NOF- (PHP) Seiten
Datei - kalender.php - dies ist hier meine Seite Kalender
Die CSS (Style-Anweisung) für den Kalender, die Ihr natürlich nach Euren Wünschen anpassen könnt, gehört in die HTML des Layouts.
> Layout markieren > Fenster “Layout-Eigenschaften” > was innerhalb und inklusive der <style> .... </style> Tags steht > “Zwischen Head Tags” einfügen
<style>
body {
font-family: Verdana, Sans-Serif;
font-size: 15px;
}
table#tabelle {
border-spacing: 5px;
width: 250px;
}
table#tabelle th {
background: Whitesmoke;
}
table#tabelle th, table#tabelle td {
outline: solid 1px #E3E9EF;
}
/* Aktueller Tag */
table#tabelle td strong {
display: block;
display: block;
background: #FFFACD;
}
/* Link zur Veranstaltung */
table#tabelle td a {
display: block;
}
a:link, a:visited {
color: #4169E1;
text-decoration: None;
}
</style>
Nun zieht Ihr Euch ein Textfeld an der Stelle auf, an der der Kalender angezeigt werden soll und fügt das Skript in den HTML-Code Editor ein.
> Textfeld aufziehen (Cursor blinkt im Textfeld) > mittlere Button oben im Fenster “Text-Eigenschaften” > Button “HTML” > Code einfügen
> alles was innerhalb und inklusive des <?php .... ?> Tags steht
<?php
/* Kalender für Veranstaltungen
- Webbausteine.de */
include "einstellungen.php";
$tag = isset($_GET["tag"]) ? $_GET["tag"] : date("j");
$monat = isset($_GET["monat"]) ? $_GET["monat"] : date("n");
$jahr = isset($_GET["jahr"]) ? $_GET["jahr"] : date("Y");
$jahr = (($monat < 1) ? $jahr-=1 : (($monat > 12) ? $jahr+=1 : $jahr));
$monat = (($monat < 1) ? 12 : (($monat > 12) ? 1 : $monat));
$monate = array(1 => "Januar", "Februar", "März", "April", "Mai",
"Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
echo '<table id="tabelle">
<caption><b> <a href="?monat=' . ($monat - 1) . '&jahr=' . $jahr . '"> < </a> ' . $monate[$monat] . '
<a href="?monat=' . ($monat + 1) . '&jahr=' . $jahr . '"> > </a>
<a href="?jahr=' . ($jahr - 1) . '&monat=' . $monat . '"> < </a> ' . $jahr . '
<a href="?jahr=' . ($jahr + 1) . '&monat=' . $monat . '"> > </a> </b></caption>
<tr> <th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sa</th><th>So</th> </tr>
<tr>';
$zelle = array("", "", "", "", "", "", "");
$zelle = array_splice(($zelle) ,0 , (date("w", mktime(0, 0, 0, $monat, 1, $jahr) - 1)));
for ($tag = 1; $tag <= (date("t", mktime(0, 0, 0, $monat, 1, $jahr))); $tag++) {
$alink = ""; $aLink_ = "";
$datei = $jahr . str_pad($monat, 2, "0", STR_PAD_LEFT) . str_pad($tag, 2, "0", STR_PAD_LEFT) . '.txt';
if (file_exists($events . $datei)) {
$alink = '<a href="?jahr=' . $jahr . '&monat=' . $monat . '&details=' . $datei . '">'; $aLink_ = '</a>';
}
$zelle[] = (($tag == date("j") && $monat == date("n") && $jahr == date("Y")) ?
'<strong>' . $alink . $tag . $aLink_ . '</strong>' : $alink . $tag . $aLink_);
}
foreach ($zelle as $zaehler => $inhalt) echo ' <td>' . $inhalt . '</td>' . ((($zaehler+ 1) % 7) ? '' : ' </tr> <tr>');
echo '</tr></table>';
if (isset($_GET["details"])) {
sscanf($_GET["details"], "%4s%2s%2s", $jahr, $monat, $tag);
echo '<h4>' . mb_convert_encoding(strftime("%A, %d %B %Y", mktime(0, 0, 0, $monat, $tag, $jahr)), "ISO-8859-1") . '</h4>' .
'</h4><p>' . nl2br(file_get_contents($events . $_GET["details"])) . '</p>';
if ($VERANSTALTUNG_LINK == "ja" && "$jahr$monat$tag" >= date("Ymd")) {
echo '» <a href="anmeldung.php?anmeldung=' . substr($_GET["details"], 0, -4) . '">Zur Veranstaltung anmelden</a></p>';
}
}
?>
Bei allen folgenden Seiten verfahrt Ihr ebenso
Kopiert für jede Seite die CSS Style Anweisung “Zwischen Head-Tags” und die PHP Skripte immer in den HTML-Code Editor eines Textfeldes.
Dies sind folgende Seiten: Die hier rot markierten Seiten müssen auch so in NOF heißen - also anmeldung und veranstaltungskalender
Datei - veranstaltungskalender_editor.php
Bei dieser Seite gehört, außer der Style Anweisung und dem PHP Skript für das Textfeld, noch dieses PHP Skript in die HTML des Layouts.
> Layout markieren > Fenster “Layout-Eigenschaften” > dieses PHP Skript > “Zwischen Head Tags” einfügen
<?php
/* Veranstaltungskalender
* Veranstaltung eintragen/ändern durch Eingabe des Datums -> Text -> Admin.Name, Passwort -> [OK]
* Veranstaltung löschen durch Eingabe des Datums -> Eintrag löschen-> Admin.Name, Passwort -> [OK]
* Veranstaltungen werden aufsteigend nach Datum angezeigt (aktuelle Veranstaltungen zuerst).
* Abgelaufene Veranstaltungen werden automatisch gelöscht (Optional).
Webbausteine.de */
include "einstellungen.php";
$tag = date("d");
$monat = date("m");
$jahr = date("Y");
$text = "";
$dateiendung = ".txt";
if (isset($_GET["datum"])) {
if (file_exists($events . $_GET["datum"] . $dateiendung)) {
$text = file_get_contents($events . $_GET["datum"] . $dateiendung);
sscanf($_GET["datum"], "%4s%2s%2s", $jahr, $monat, $tag);
}
}
?>
Bemerkungen:
Viel Erfolg!