Tutorial Veranstaltungsliste mit SQLite Datenbank

... von Werner-Zenk.de - ich beschreibe hier die Version vom 06.08.2016

Bitte ladet Euch das Skipt bei Werner herunter. Voraussetzung ist mindestens PHP 5.4 am Server. Lest Euch die Datei “lies_mich.txt” aufmerksam durch.

Ihr erhaltet eine Datei “veranstaltungsliste.zip”, die Ihr entpackt. Im entpackten Verzeichnis “Veranstaltungsliste” findet Ihr folgende Verzeichnisse und Dateien:

  • Verzeichnis “db” mit der bereits fertigen SQLite-Datenbank “events.sqt” und einer .htaccess Datei zum Schutz der portablen Datenbank.
     
  • event_editor.php - Datei für den Editor der SQLite-Datenbank
     
  • event_funktionen.php - Datei für die Verbindung zur SQLite-Datenbank. Öffnet diese Datei mit einem Editor und tragt Euer Passwort ein.
     
  • events.php - Beispiel-Seite zum Aufruf des Skriptes

Nachdem Ihr Euer Passwort in die Datei “event_funktionen.php” eingetragen habt, kopiert Ihr zum Testen mit Eurem FTP-Programm zunächst mal das gesamte Verzeichnis “Veranstaltungsliste” auf Euren Server und ruft die Datei “events.php” auf, also ungefähr so:

www.DeineDomain.de/Veranstaltungsliste/events.php

Man könnte diese Datei nun z.B. in einem Iframe anzeigen lassen oder (wie ich) direkt in NOF einbauen. Dazu geht Ihr wie folgt vor:

Stellt die Seite, auf der Ihr die PHP-Skripte einbaut, auf die Dateierweiterung .php und den Zeichensatz “UTF-8”.

> Menü oben > Bearbeiten > Benutzerdefinierte Namen > Dateierweiterung > .php wählen

Öffnet die Datei “events.php” mit einem Editor. Ich verwende immer den “Notepad++” zum Editieren von Skripten.

Kopiert die Style-Anweisung, die ich hier bereits etwas für meine Seite angepasst habe, in die HTML vom Layout:

> Layout markieren > Fenster “Layout-Eigenschaften” > Button “HTML” > “Zwischen Head Tags

<style>

  div.events {
   background-color: Whitesmoke;
   width: 550px;
   min-width: 550px;
   max-width: 550px;
   height: 200px;
   min-height: 100px;
   max-height: 550px;
   overflow: Auto;
   resize: Vertical;
   border: 1px solid #999999;
   box-shadow: 5px 5px 5px #888888;
  }

  /* Aktuelle Veranstaltungen */
  dt.neu:nth-child(odd) {
   color: #ffffff;
   background-color: #43ADC7;
  }

  /* Vergangene Veranstaltungen */
  dt.alt:nth-child(odd) {
   color: #777777;
   background-color: #D6D6D6;
  }

</style>

Zum Anzeigen der Veranstaltungen zieht Ihr Euch jeweils ein Textfeld auf und kopiert den Code unten in den HTML-Code Editor des Textfeldes.

> Textfeld doppelklicken (Cursor blinkt) > Fenster “Text-Eigenschaften” > mittlere Button oben “Textfeld” > Button “HTML” > Code einfügen

Für neue Veranstaltungen (1. Textfeld):

<div class="events">
    <?php
    // Aktuelle Veranstaltungen

    // Verbindungen (eventuell anpassen)
    $db = new PDO('sqlite:' . "db/events.sqt");
    include "event_funktionen.php";

    $select = $db->query("SELECT `event`, `datum`
                                       FROM `events`
                                       WHERE `datum` >= DATETIME('now','localtime')
                                       ORDER BY `datum` ASC");
    $events = $select->fetchAll(PDO::FETCH_OBJ);
    foreach ($events as $event) {
     sscanf($event->datum, "%4s-%2s-%2s %5s", $jahr, $monat, $tag, $uhr);
     echo '<dl><dt class="neu">' . wochentag($tag, $monat, $jahr) . ', ' . $tag . ' ' .  monat($monat) . ' ' . $jahr . ' &mdash; ' . $uhr . ' Uhr</dt>' .
      '<dd style="padding: 2px;">' . nl2br($event->event) . '</dd></dl>';
    }
    ?>
</div>

Bitte beachtet, dass ich im Skript noch dem <dd> Tag einen Style gegeben habe, da dieses “padding” (Innenabstand) sonst in NOF nicht wirkt.

Für vergangene Veranstaltungen (2. Textfeld):

<div class="events">
    <?php
    // Vergangene Veranstaltungen

    $select = $db->query("SELECT `event`, `datum`
                                       FROM `events`
                                       WHERE `datum` < DATETIME('now','localtime')
                                       ORDER BY `datum` DESC");
    $events = $select->fetchAll(PDO::FETCH_OBJ);
    foreach ($events as $event) {
     sscanf($event->datum, "%4s-%2s-%2s %5s", $jahr, $monat, $tag, $uhr);
     echo '<dl><dt class="alt">' . wochentag($tag, $monat, $jahr) . ', ' . $tag . ' ' .  monat($monat) . ' ' . $jahr . ' &mdash; ' . $uhr . ' Uhr</dt>' .
      '<dd style="padding: 2px;">' . nl2br($event->event) . '</dd></dl>';
    }
    ?>
</div>

Um neue Veranstaltungen einzutragen oder alte zu editieren, ruft Ihr einfach im Browser die Datei “event_editor.php” mittels Eingabe der URL auf. Ihr müsst dann bei jedem Eintrag oder jeder Änderung Euer Passwort eintragen. HTML-Code ist erlaubt, sodass Ihr z.B. auch Bilder oder Links einfügen könnt.

Also ungefähr so:

www.DeineDomain.de/Veranstaltungsliste/event_editor.php

Hier ein Ansicht von diesem Editor

Viel Erfolg!

Tutorials von Thomas Frei-Herrmann

diese Seite weiter empfehlen


Counter Statistik