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:

  • veranstaltungskalender

 

Die Skripte benötigen keine MySQL-Datenbank, sondern tragen die Veranstaltungen in Textdateien (.txt) in dieses Verzeichnis ein:

  • events

... und die Anmeldungen zu Veranstaltungen in Textdateien (.txt) in dieses Verzeichnis ein:

  • anmeldungen

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) . '&amp;jahr=' . $jahr . '"> &lt; </a> ' . $monate[$monat] . '
 <a href="?monat=' . ($monat + 1) . '&amp;jahr=' . $jahr . '"> &gt; </a> &nbsp;
 <a href="?jahr=' . ($jahr - 1) . '&amp;monat=' . $monat . '"> &lt; </a> ' . $jahr . '
 <a href="?jahr=' . ($jahr + 1) . '&amp;monat=' . $monat . '"> &gt; </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 . '&amp;monat=' . $monat . '&amp;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 '&raquo; <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

  • anmeldung.php - diese Seite bitte von der Navigation ausschließen, da sie nicht einzeln, sondern nur über das Skript aufzurufen ist.
    • Dies ist hier meine Seite Anmeldung, die Ihr von der Navigation ausschließt, da diese nicht direkt aufgerufen werden soll.
       
  • veranstaltungskalender.php
  • veranstaltungskalender_editor.php
    • Dies ist hier meine Seite Editor für den Administrator

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:

  • Die Einfügung von HTML-Code, also auch Bildern, wird aus Sicherheitsgründen von dem Skript unterbunden.
    Wollt Ihr dennoch - so wie ich hier - Bilder oder Verlinkungen einbauen, müsstet Ihr diese Codes händisch in die vorhandene .txt Datei einbauen.
    Einige Beispiele:

     
    • Text, Link und verlinktes Bild

      Dies ist mein erster Eintrag in den Kalender von Webbausteine.de
      <a href=http://www.nof-schule.de/forum/ target=_blank><span>zu unserem NOF-Forum</span></a><br />
      <a href=http://www.nof-schule.de/forum/ target=_blank><img id='Forum' src='./images/Forum-Link.png' alt='zu unserem NOF-Forum' title='zu unserem NOF-Forum' style='border: 0;'></a>

       
    • Text und Bild

      Weihnachten bei uns
      <img src='./images/Weihnachtsbild.jpg' alt='Weihnachten' title='Frohes Fest' style='border: 0;'>

       
    • Bild, Text und Tabelle

      <img src='./images/info.png'>
      Seminar zum Einbau dieses Kalenders.
      <table border="0"><tr><td>Ort:</td><td>NOF-Klapsmühle</td></tr><tr><td>Beginn:</td><td>05:30 Uhr</td></tr><tr><td>Ende:</td><td>06:30 Uhr</td></tr></table>

Viel Erfolg!

Tutorials von Thomas Frei-Herrmann

diese Seite weiter empfehlen


Counter Statistik