|
|
|
7.5 Redaktionssystem
|
|
|
|
|
7.5.1
Einleitende Worte
Viele Seiten könnten von einem Redaktionssystem profitieren: Solche Systeme erlauben es, Inhalte mehr oder minder komfortabel zu verwalten. Daher stellen wir Ihnen nun ein solches System vor: ActiveUpdate 5, eine unserer Eigenentwicklungen. Unser System ist zwar nicht sehr komfortabel, dafür aber schnörkellos und recht schnell. Die Installation ist zudem ziemlich einfach.
Das System basiert auf Perl und MySQL, wobei auch der Einsatz anderer Datenbank-Server möglich sein sollte. Es könnte jedoch sein, dass dann bestimmte Teile des Scripts angepasst werden müssen.
|
|
|
7.5.2
Installation
7.5.2.1 Download
Laden Sie sich das Script herunter. Die URL dazu lautet http://www.aboutwebdesign.de/acup5/acup5.zip. Entpacken Sie die Dateien dann in ein Verzeichnis. Wie fast immer, wenn Scripts installiert werden sollen, müssen zunächst einige Einstellungen gesetzt werden.
7.5.2.2 Einstellungen
Wenn Ihr Perl-Pfad ein anderer als #!/usr/bin/perl ist, müssen Sie die fünf .pl-Dateien im Hauptverzeichnis des Scripts anpassen, indem Sie die erste Zeile der entsprechenden Dateien korrigieren.
Öffnen Sie anschließend die Datei module/einstellungen.pl (immer ausgehend vom Script-Basisverzeichnis). Interessant sind dort vor allem die ersten vier Variablen, die bis auf die zweite wohl von Ihnen geändert werden müssen.
Wenn Sie übrigens einen anderen Server als den localhost konnektieren wollen, müssen Sie diese Angabe im Feld für die Datenbank machen. Das könnte so aussehen:
$settings::dbname = "database=db40961817;host=db70.puretec.de";
Weiterhin müssen Sie den Namen der Standard-Tabelle angeben. Wir empfehlen, standard zu verwenden.
7.5.2.3 Den Server vorbereiten
In der settings.pl werden ein Datenbankname und eine Standard-Tabelle angegeben. Logisch, dass diese Angaben auch zutreffend sein müssen. Sie müssen also die Datenbank auf dem Server entsprechend konfigurieren. Sie sollten eine eigene Datenbank für ActiveUpdate5 anlegen.
Tipp: Jede Ihrer Tabellen sollte einen Primärschlüssel namens id enthalten. Zusätzlich dazu sollte in den Tabellen, die Inhalte speichern sollen, ein Feld namens author_id vorhanden sein. Typ sollte smallint sein.
Das System benötigt für die Benutzerverwaltung weiterhin eine Tabelle users.
Der Einfachheit halber führen wir die SQL-Codes zum Anlegen der beiden Tabellen (Standard-Tabelle und Benutzer-Tabelle) hier auf:
CREATE TABLE users (id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT, login VARCHAR(255), pw VARCHAR(255), nickname VARCHAR(255), contact VARCHAR(255), dbcount INTEGER, dbsaetze INTEGER, status SMALLINT);
CREATE TABLE standard (id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT, feld1 VARCHAR(255), feld2 VARCHAR(255), author_id SMALLINT)
Natürlich kann unser System beliebig viele Tabellen verwalten. Die Anlege-Prozedur verläuft dabei genauso wie bei der Standard-Tabelle. Datenfelder können beliebig gewählt werden, nur sollten id und author_id grundsätzlich verwendet werden.
7.5.2.4 Das Script hochladen
Laden Sie nun alle Dateien und Ordner auf Ihren Server. Wenden Sie nun chmod 777 auf alle hochgeladenen Objekte an. Das schließt Ordner, Dateien und Dateien in den Ordnern ein.
7.5.2.5 Installation ausführen
Rufen Sie nun das Script install.pl aus dem Script-Basisverzeichnis in Ihrem Browser auf.
Lesen Sie sich die Meldungen des Scripts aufmerksam durch - wenn hier kein Fehler gemeldet wird, ist ActiveUpdate5 prinzipiell ansprechbar.
Es fehlt noch die Aktivierung der Templates. Rufen Sie dazu die ctemplates.pl auf.
Wir werden im Folgenden einige Aspekte des Systems besprechen. Eine umfassende Erläuterung würde den Rahmen dieser Anleitung sprengen.
|
|
|
7.5.3
Überblick
Unser System besteht aus einigen wesentlichen Dateien:
ActiveUpdate5.pl ist zuständig für Datenabfragen
changeit.pl kümmert sich um Datenzugriffe
admin.pl stellt ein Administrator-Interface bereit
ctemplates.pl muss aufgerufen werden, wenn ein Template geändert wurde.
Wir werden diese Teile nun der Reihe nach besprechen, wobei wir mit dem Admin-Interface beginnen.
|
|
|
7.5.4
Admin-Interface
Sie gelangen zum Interface, wenn Sie ActiveUpdate5.pl?ExecSQL=0&Template=admin aufrufen. Dort können Sie Benutzername und Passwort angeben, um Benutzer, Sicherheitseinstellungen und bestimmte Elemente des Interfaces zu beeinflussen.
Die Benutzer-Verwaltung ist selbsterklärend, die anderen Teile dagegen sind etwas komplizierter. Zu jeder Tabelle können Sicherheits-, GUI-(Graphical User Interface) und Wert-Einstellungen festgelegt werden. Ersterer und letzterer Modus sind noch nicht ausgereift. Die GUI-Einstellungen sind aber dann sehr wichtig, wenn Usern beispielsweise ein großes Textfeld zur Eingabe angezeigt werden soll. Was genau dort eingetragen werden kann, ist ebenfalls online recht gut erklärt.
|
|
|
7.5.5
Zugriff auf die Daten
Um Daten hinzuzufügen, zu löschen oder zu ändern, rufen Sie erneut das Admin-Interface auf und authentifizieren Sie sich über das unterste Formular. Wenn Sie mehr als eine Tabelles verwenden, müssen Sie die Templates changenew und one_entry entsprechend anpassen, denn die werden verwendet, um das Interface zu generieren. Wie das geht, steht weiter unten.
|
|
|
7.5.6
Datenabruf
Um Daten abzurufen, können Sie entweder ActiveUpdate direkt aufrufen oder via SSI einbinden:
<!--#include virtual="ActiveUpdate5.pl?Template=xyz"-->
Wenn Daten ausgegeben werden, passiert Folgendes: zunächst werden passende Datensätze herausgesucht, diese werden dann mit Hilfe der Templates in HTML ausgegeben. "Passend" heißt, dass Sie angeben können, welche Datensätze abgerufen werden sollen.
7.5.6.1 Templates
Zunächst aber etwas zu Templates: Templates liegen in ihrer HTML-Form im html-Verzeichnis. Um sie aber auch konkret verwenden zu können, muss vorher die ctemplates.pl aufgerufen worden sein. Innerhalb von Templates können Sie beliebiges HTML und ActiveUpdate-Statements verwenden. Diese werden beim Datenabruf durch dynamische Daten ersetzt.
Sehen Sie sich folgendes Beispiel an: Es erzeugt die Übersichtsseite der Datenverwaltung.
!EXEC(authorization, moderate)!
<html>
<head>
<title>Daten verändern/hinzufügen</title>
</head>
<body bgcolor="#000040" text="#EEEEEE" link="#FFFF00" vlink="#FFFF00" alink="#FFFF00">
<font face="Tahoma, Verdana, Arial, sans serif">
<b>Daten verändern, hinzufügen</b><br><br>
Bitte klicken Sie <a href="changeit.pl?Modus=table_new&table=standard&Template=standard&username=!AU5CGI(username)!&pw=!AU5CGI(pw)!">hier</a>, um einen neuen Datensatz zur Tabelle Standard hinzuzufügen.<br><br>
Nachfolgend alle Einträge der Tabelle standard. Angezeigt werden die id und feld1. Verwenden Sie nebenstehende Links.<br><br>
!QUERY('SELECT * FROM standard', standard, one_entry)!
</font>
</body>
</html>
Und dieser Code steht in der Datei one_entry:
!FIELD(id)! - !FIELD(feld1)! - <a href="changeit.pl?Modus=table_change&table=standard&Template=standard&username=!AU5CGI(username)!&pw=!AU5CGI(pw)!&id=!FIELD(id)!">Verändern </a> - <a href="changeit.pl?Modus=del&table=standard&Template=standard&username=!AU5CGI(username)!&AU_pw=!AU5CGI(pw)!&id=!FIELD(id)!">Löschen</a><br>
Der Mechanismus funktioniert so: Es wird eine wenig Drumherum in der ersten Datei ausgegeben. Der QUERY-Befehl ruft dann ActiveUpdate rekursiv auf - soll heißen, es wird eine Abfrage ausgeführt, und die Ergebnisse werden in der ersten Datei eingefügt.
Es gibt folgende Statements, die Sie in Templates verwenden können:
- !FIELD(Bezeichner)!
Beispiel: !FIELD(objectid)!
Beschreibung: setzt den Wert des angegebenen Datenfeldes ein, ist also praktisch das Standard-Statement.
- !AU5CGI(Bezeichner)!
Beispiel: !AU5CGI(arg1)!
Beschreibung: hiermit wird der Wert des CGI-Parameters arg1 eingesetzt. Wenn also ActiveUpdate so (ActiveUpdate5.pl?...&arg1=gfhfh)aufgerufen würde , würde der Beispiel-Code durch den String arg1 ersetzt.
- !QUERY('SQL', Table, Template)!
Beispiel: !QUERY('SELECT objectid, objecttitle FROM testac', testac, template1)!
Beschreibung: Führt eine Abfrage aus und setzt das Ergebnis ein. Achtung: ein Leerzeichen hinter dem Komma!
- !PLUGIN(PL-NAME, PL-WERT)!
Beispiel: !EXEC(authorization, moderate)!
Beschreibung: Führt das Plug-In PL-NAME mit dem Argument PL-WERT aus.
Der Beispiel-Code mit dem authorization-Plug-In sorgt übrigens dafür, dass nur Benutzer, die sich mit Benutzername und Passwort authentifiziert haben, auch Zugriff erhalten.
Wenn Sie eigene Plug-Ins schreiben wollen, können Sie das tun. Jedoch ist das nicht ganz einfach und verlangt gute Perl-Kenntnisse. Wenn Sie sich trotzdem daran wagen wollen, halten Sie sich an den Code der authorization.pl.
7.5.6.2 Abfragen spezifizieren
Wenn Sie auszugebende Datensätze näher eingrenzen wollen, können Sie das so tun:
ActiveUpdate5.pl?Arguments=SPECIFIC|||Wert|||Datenfeld
Wenn Sie also ActiveUpdate wie folgt aufrufen, werden nur die Datensätze ausgegeben, bei denen das Datenfeld feld1 den Wert abc hat.
ActiveUpdate5.pl?Arguments=Specific|||abc|||Feld1
Anstelle von Specific können Sie auch Smaller und Bigger verwenden. Die Wirkung ist analog.
7.5.6.3 Sonstige Argumente
Es gibt neben Arguments noch weitere CGI-Parameter, die die Ausgabe beeinflussen können:
Table gibt an, auf welche Tabelle zugegriffen wird
Template spezifiziert, welches Template für die Ausgabe verwendet wird. Der hier angegebene Name muss dem Dateinamen des Templates im html-Verzeichnis entsprechen (auch die Dateiendung .html muss ggf. übernommen werden)
Limit begrenzt die Zahl der ausgegebenen Datensätze
Sort sortiert Datensätze. Hier muss das Datenfeld angegeben werden. Wenn absteigend sortiert werden soll, muss ein DESC (mit Leerzeichen davor) ans Ende gestellt werden.
Folgendes Beispiel zeigt alle diese Parameter im Einsatz:
ActiveUpdate5.pl?Arguments=Specific|||1|||Online&Table=standard2&Template=template1&Limit=5&Sort=Priority
|
|
|
7.5.7
Tipps
Sie wissen nun alles Wichtige, um ActiveUpddate produktiv einsetzen zu können. Wenn Sie mehr über Templates wissen wollen, sehen Sie sich die mitgelieferten Templates an. Wie Sie vielleicht merken werden, sind praktisch die gesamten ActiveUpdate-Interfaces mit Templates realisiert.
Besonders die QUERY-Funktion ist eine mächtige Möglichkeit, vielschichtige Templates zu realisieren.
Wenn Sie sich für tiefergehendes Wissen interessieren, könnten Ihnen die Textdateien im Hauptverzeichnis nützlich sein. Ansonsten können Sie auch direkt in die Quellcodes einsteigen, denn die sind recht einfach zu verstehen.
|
|
|
|