So läuft pase
- Installation
- Erstellen einer neuen Section
- Felder erstellen
- Layout
- Filtern und Sortieren
- Einstellungen
- Einfügen in die eigene Website
- Membersection
- Backup
- Sicherheit
Installation auf dem Server
pase läuft auf allen Apache Servern und ab der version 0.7b3 auch auf Microsoft IIS-Servern; die Architektur erkennt pase selbstständig. Dennoch sollten die einzelnen files von pase im Textmode auf den Server geladen werden, da pase auf einem Unix-System entwickelt wurde und somit auf MS-Servern jedes Script nur eine Zeile beinhalten würde, da die Zeilenendungen nicht dieselben sind.
Am einfachsten lädst du den ganzen pase-ordner, den du beim Entpacken des Archivs erhalten hast, auf der Server. Dann brauchen die Ordner prefs, files und layouts Schreibberechtigung; Dies erreichst du auf einem Linux/Unix Server durch Setzen der Berechtigungen (chmod) auf 0777, auf einem MS-Server musst du den ganzen pase-Ordner in den Ordner "/cgi-bin" legen.
Dann kannst du mit dem Browser in das pase-Verzeichnis surfen und loslegen; am besten setzst du dann gleich ein Admin-Passwort, denn solange kein User existiert habt jedermann uneingeschränkten Zugriff auf pase.
Sollte ein Problem auftauchen, dann klickst du am bestem auf den "check"-link unten rechts in der Statusleiste und guckst, was pase meldet.
Erstellen einer neuen Section
Links im Menü siehst du deine bereits erstellten Sections sowie den Link · neu ·. Durch Anklicken erscheint die Maske mit den Einstellungen zu einer neuen Section.
Bei der Namensangabe sind keine Sonderzeichen möglich, lediglich Buchstaben, Zahlen, der Unterstrich sowie das Minuszeichen.
Flatfile oder MySQL? Bei der Benützung von pase wirst du diesen Unterschied kaum bemerken, einzig die Sortieroptionen können mit MySQL besser ausgebaut werden und können vom Server schneller ausgeführt werden (wichtig v.a. bei vielen Einträgen). Ich empfehle deshalb das Verwenden von MySQL, sollte dies vom Server unterstützt werden (Erst möglich ab pase Version 0.7b1).
Felder
Nun kannst du Felder definieren, welche vom User ausgefüllt werden können; für alle kann einzeln festgelegt werden, ob die Eingabe erforderlich oder optional ist und ob das Feld dem Webseitenbesucher sichtbar ist oder nicht. Ist das Feld nicht sichtbar, so kann es nur via 'edit' geändert werden; dies ist z.B. bei Beurteilungen, Kommentaren oder anderen Administratorenarbeiten sinnvoll. Dazu kommen noch andere, feldspezifische Einstellungen:
- einzeiliger Text [maximale Buchstabenzahl, Standardwert]
- mehrzeiliger Text [maximale Buchstabenzahl, Standardwert]
- Dateiupload [maximale Dateigrösse, mögliche Mimetypen]
- Checkbox [Standardmässig angeklickt oder nicht]
- Auswahlliste [vorselektierter Eintrag, Auswahlmöglichkeiten]
- Datum [Standardwert]
- PHP-Variable
Layout
Es kann ein mitgeliefertes Layout angepasst werden, eines importiert (ab Version 0.8) oder ein neues kreiert werden, entweder in HTML oder PHP.
PHP ist ohne Einschränkungen nutzbar, einzig die von pase zur Verfügung gestellten Variablen können nicht innerhalb Strings benutzt werden; dazu müssen die Strings in der Art «"hier ist ".$zeilen." Text vorhanden"» zusammengesetzt werden. (Mit Ausnahmen; siehe dazu das PHP-Info gleich beim Layout-Editor)
Die Ausgabe kann im Guestbook-Style erfolgen (also der neueste Eintrag oben und die folgenden darunter) oder im FAQ-Style (z.B. nur eine Liste mit Fragen, durch Anklicken gelangt man zum vollen Eintrag). Diese Einstellung wird im Einstellungen-Tab vorgenommen.
pase stellt sämtliche selbst definierten Felder im Layouteditor als Variablen zur Verfügung, bei Datum/Zeit verschiedene Schreibweisen derselben (ab 0.7) und bei Dateien zusätzlich die Grösse in MegaByte und KiloByte. Zu jedem Eintrag wird auch automatisch die IP, das Eintragdatum und das Datum der letzen Änderung gespeichert, worauf ebenfalls zurückgegriffen werden kann. Es gibt folgende global gültige Variablen:
- ##TOTAL## » Anzahl aller Einträge
- ##SHOWN## » Anzahl angezeigter Einträge (in der Form "1 - 20")
- ##PAGELIST## » Liste zur Auswahl der anzuzeigenden Seite
- ##POSTWIN.text## » Javascript-Link (mit 'text') zum Einschreibformular
- ##FILTERSETx.text## » Link zur Ausgabe mit vordefiniertem Filterset x (0 ist die Standardausgabe)
- ##FORM## » Pfad zum Einschreibformular
- ##EDIT## » Pfad zum Editierformular
- ##ADMIN## » Pfad zum Adminbereich
- ##FILE## » absoluter Pfad zum Newsfile
- ##FILEDIR## » Pfad zum Verzeichnis mit allen Einträgen, Kommentaren, Dateien (nur bis 0.6)
- ##VERSION## » verwendete pase-Version
vordefinierte JavaScript-Funktionen:
- paseCenterwin(link, width, height) » öffnet zentriertes Fenster
- pasePopPic(!ID!, 'aab') » öffnet zentriertes Fenster so gross wie das Bild des Feldnamens 'aab'
- openPasePostform() » öffnet Einschreibformular
- openPaseEditform(!ID!) » öffnet Editierformular für den jeweiligen Eintrag
- openPaseComments(!ID!) » öffnet Kommentarfenster für den jeweiligen Eintrag
Standardvariablen für jeden einzelnen Eintrag:
- !ID! » id des Eintrags
- !IDLINK.text! » Permalink zu diesem Eintrag mit 'text'
- !IP! » IP des Einschreibers
- !DATE! » Unix-Timestamp des Einschreibens (ab 0.7)
- !DATE.US! » Datum (im US-Format) des Einschreibens
- !DATE.EU! » Datum (im EU-Format) des Einschreibens
- !DATE.STR! » Datum (in Worten) des Einschreibens
- !DATE.TIME! » Uhrzeit des Einschreibens
- !EDIT! » Unix-Timestamp der letzten Änderung (ab 0.7)
- !EDIT.US! » Datum (im US-Format) der letzten Änderung
- !EDIT.EU! » Datum (im EU-Format) der letzten Änderung
- !EDIT.STR! » Datum (in Worten) der letzten Änderung
- !EDIT.TIME! » Uhrzeit der letzten Änderung
- !EDITWIN.text! » kreiert JavaScript-Link mit dem Text 'text' zum Editierformular
- !COMMENTS! » Anzahl Kommentare zum entsprechenden Eintrag
- !COMMENTWIN.text! » kreiert JavaScript-Link mit dem Text 'text' zu den Kommentaren
- !TOTALRATINGS! » Anzahl abgegebener Bewertungen zum Eintrag
- !AVGRATING! » Durchschnittsbewertung zum Eintrag
Hier ein Beispiel der Variablen zu einem selber erstellten Dateiupload-Feld:
- !aac! » Dateiname: 14.aac.MeinBild.png
- !aac.kb! » KiloByte der Datei: 128
- !aac.mb! » MegaByte der Datei: 0.12
- !FILEPATH.aac! » URL zur Datei: (ab Version 0.7)
Und hier ein Beispiel zu einem selber erstellten Datumsfeld (ab Version 0.7):
- !aab! » Unix-Timestamp: 1105049596
- !aab.US! » Datum: 01/06/2005
- !aab.EU! » Datum: 06.01.2005
- !aab.STR! » Datum: 06. January 2005
- !aab.TIME! » Uhrzeit: 23:13
Filtern und Sortieren
Ab 0.7b2 stehen Filter- und Sortieroptionen zur Verfügung. Du kannst bis zu 10 Sets vordefinieren, aus denen der User auswählen kann. In Set 1 kann man so z.B. nach der Anzahl Kommentare sortieren lassen und alle Einträge, die ohne Kommentare sind, rausfiltern und in einem Set 2 nur die Einträge vom User "Admin" anzeigen lassen (Dies ist nur ein Beispiel, man kann über alle erstellten Felder und die Kommentaranzahl/Bewertungsanzahl sortieren/filtern).
Im Layout kannst du diese Filtersets (welche als Link zu derselben Seite, aber mit gefilterter Ausgabe fungieren) via Shortcut ##FILTERSETx.gewünschter Text## einbauen, wo auch immer du willst. Der momentan aktive Filter wird nicht als anklickbarer Link, sondern fettgedruckt dargestellt; durch verändern der Klasse "ps_filterset" kannst du das aussehen dieses B-Tags via CSS beeinflussen.
Der MySQL-Modus kann pro Set jeweils 3 Sortier- und 3 Filterangaben berücksichtigen, der Flatfile-Modus nur eine (aus Performancegründen). Ich empfehle ausdrücklick die Verwendung des MySQL-Modus, wenn Filtersets angewandt werden sollen.
Einstellungen
Unter dem Einstellungs-Tab findes du verschiedene Einstellungen.
· Die Ausgabe kann im Guestbook-Style erfolgen (also der neueste Eintrag oben und die folgenden darunter) oder im FAQ-Style (z.B. nur eine Liste mit Fragen, durch Anklicken gelangt man zum vollen Eintrag).
Die Ausgabeeinstellungen beinhalten, wieviele Einträge pro Seite angezeigt werden sollen und es lassen die Filtersets definieren (siehe oben).
· Dann kann optional eingestellt werden, ob HTML gefiltert werden soll und ob BBCode sowie die Smilies aktiv sind. Sind die Smilies aktiv, so werden bestimmte Zeichenkombinationen durch Smilie-Bilder ersetzt. Diese liegen im Ordner "smilies" und können nach belieben ausgetauscht werden; einzig der Name muss derselbe bleiben.
· Man kann einen Text definieren, der nach erfolgter Eingabe erscheinen soll; email-adressen können angegeben werden, zu welchen bei neuen Einträgen eine Benachrichtigungsmail gesendet werden soll und dann kann man auch eine beliebige PHP-Anweisung (z.B. "touch('../files/latest_entry')") ausführen lassen, wenn ein neuer Eintrag eingeschrieben wurde. Soll ein Benachrichtigungsmail an mehrere Adressen gesendet werden, so schreib einfach alle Adressen, getrennt durch ein Leerzeichen oder Komma oder Strichpunkt, in das vorgesehene Feld.
· Durch Aktivieren der Fileuploads-Checkbox werden Felder zum Dateiupload unterstützt.
· Werden die Kommentare aktiviert können zu jedem Eintrag Kommentare/Bewertungen abgegeben werden. Im Layout muss dazu ein Link eingebaut werden, welcher das Kommentarfenster öffnet. Die Anzahl Bewertungen sowie die Durchschnittsbewertungen stehen im Layout als Variablen zur Verfügung.
Einfügen in die eigene Webseite
pase kann mit folgenden Zeilen in die eigene PHP-Datei an jedem beliebigen Ort eingebaut werden; soll pase in eine bestehende (X)HTML-Seite eingebaut werden, dann muss die Datei die Endung ".php" erhalten.
1: <?php
2: $section = "section-name";
3: $relative_path = "../pfad/relativ/zum/pase_verzeichnis";
4: require("pfad/zu/pase/include_me.php");
5: ?>
(Zeile 1 und 5 sind nur bei HTML-Dateien nötig)Dabei natürlich 'section-name' durch den Namen der eigenen Section ersetzen und den korrekten relativen Pfad einfügen. Kein Sorge, bei falschen Angaben wird das gemeldet.
Anstatt dass $section fest definiert wird kann auch eine GET-variable genannt 'section' angegeben werden, dann entfällt diese Zeile. top
Membersection
Ab Version 0.7b3 hat pase eine Membersection. Beim Surfen auf das Admininterface haben jene User, die als Member gekennzeichnet sind, Zugriff auf die Einstiegsseite des Admininterface. Dort kannst du mit einem Klick eine vordefinierte Section mit dem Namen "memberpage" erstellen lassen; diese kannst du wie jede andere Section behandeln und verwalten, sie wird aber auf der Startseite des Admin-Interface angezeigt und fungiert dort als internes guestbook. Alle User, die einen Haken haben bei "Memberberech" haben Zugriff auf diese Section und können dort ihr Passwort ändern (Link "Optionen" oben links).
topBackup
Es kann jederzeit ein Backup erstellt werden, wobei bei Sections im flatfile-Modus ein XML-file des ganzen Verzeichnisses mit allen Einträgen, Kommentaren und raufgeladener Files erstellt wird. Unterstützt der Server gzip, dann wird das XML-file komprimiert.
Im MySQL-Modus wird eine Kopie der Tabelle mit den News sowie eine Kopie der Kommentartabelle angelegt.
Die Backups können wieder angewandt, gelöscht, im flatfile-Modus auch runter- und raufgeladen werden. Die Verwaltung erfolgt über den Browser.
Sicherheit
Es können beliebig viele User systemweit erstellt werden, welchen man individuell Rechte zuweisen kann. Zusätzlich kann man (ab 0.7b3) auch Gruppen erstellen und so mehrere User einfacher verwalten.
Ob ein Passwort zum Lese/Schreib/Editzugriff erforderlich ist kann für jede Section eingestellt werden, und nur User, welche auch Rechte für den entsprechenden Bereich haben, dürfen ihn betreten.
Das Passwort wird verschlüsselt gespeichert, die User können gelöscht werden, das Passwort können die User selber ändern.
Natürlich kann und sollte auch ein Admin-Passwort gesetzt werden. Dieses kann beliebig geändert werden1.
1 Bis und mit Version 0.6 kann dabei der Adminusername NICHT geändert werden. Das wird mit 0.7 gefixt. Siehe dazu auch die Bugs.
