Serendipity

Individuelle Weblogs für Einsteiger und Profis

Garvin Hicking

 

impressum

Copyright Garvin Hicking / 2008 Open Source Press, München
Lektorat: Franz Mayer
Open Source Press (LaTeX)
www.fritzdesign.de
Kösel, Krugzell
978-3-937514-54-3

 

 

Vorwort

Als Mitte 2003 mein Mitteilungsbedürfnis so weit überhand nahm, dass
ich ein eigenes Blog startete, fiel meine Wahl auf Serendipity, das
mir von anderen PHP-Entwicklern bekannt war. Kurz darauf begann ich,
den Sourcecode meinen Vorstellungen anzupassen, ohne zu ahnen,
dass ich über Jahre hinweg an der Weiterentwicklung dieses
Blog-Systems beteiligt sein würde.

Mit diesem Buch komme ich dem Wunsch vieler Serendipity-Benutzer nach, die
lange auf eine ausführliche Dokumentation gewartet haben. Viel
Herzblut und viel Zeit sind in dieses Buch wie auch das Projekt
selbst geflossen, und nach wie vor ist es für mich eine große Freude, jeden
Tag mit Serendipity-Benutzern zu kommunizieren und ihnen zu helfen.

Vielen dieser Benutzer bin ich zu Dank verpflichtet: Jannis Hermanns
für die Geburtshilfe des Projekts und die Pflege der Server, Robert
Lender für seine Arbeit als "Serendipity-Evangelist", Falk Döring
für sein konstantes und hilfreiches Feedback, Kristian Köhntopp fürs
Borgen, Judebert, Don Chambers und Matthias Mees für ihre tatkräftige
Hilfe im Serendipity-Forum und bei der Gestaltung von Themes, Nadine
Oberstein für ihre Begeisterung und moralische Unterstützung, Martin
Sallge für die Zerstreuung. Und natürlich auch vielen Dank dem
großartigen Redaktionsteam von Open Source Press, ohne dessen Hilfe
das vorliegende Werk niemals Gestalt angenommen hätte.

Der größte Dank aber geht an meine Lebensgefährtin Emba, für ihr
Verständnis für mein Hobby - aber auch für die nötige, wunderschöne
Ablenkung.

Ich wünsche Ihnen viel Spaß bei der Entdeckung von Serendipity
und freue mich sehr über Feedback: [email protected]

 

 

Garvin Hicking

Köln, April 2008

 

 

Diese "Entwurfs"-Revision für Serendipity 2.1 des damals veröffentlichten Buchtextes
und der im März 2012 an den Autor und die Community vom Verlag zurückgegebenen Rechte,
legt zu diesem Zeitpunkt keinen Anspruch auf Vollständigkeit (insbesondere der kompletten Überarbeitung
und Auflistung aller Konfigurationsoptionen aller hier genannten Plugins) und besitzt auch noch offene Fragen,
welche mit ??? markiert sind. Bis auf ein paar Kleinigkeiten wurde darauf Wert gelegt,
den ursprünglichen Text so weit wie möglich zu erhalten, aber als obsolet und durchgestrichen zu markieren,
wenn der damalige Text heutzutage keinen Sinn mehr machte, oder mit Serendipity 2.0/2.1 hoffnungslos überholt war.

Desweiteren wurden außer der Einrückung verschiedene Farben verwendet, um bestimmte Einheiten klarer herauszustellen.
Das helle Blau dient der Anzeige von bestimmten Listendarstellungen und Konfigurations-Optionen, insbesondere bei Plugins und überhaupt in Beziehung zum Backend.
Ebenso wurde es als Grundlage bei der Aufzählung von Datenbanktabellenfeldern gewählt.
Das helle Gelb wurde dann angewendet, wenn es um Smarty, oder klare Frontend / Template (Theme) -Eigenschaften, -Aufzählungen, CSS, Werte und Variablen ging.
Das hier verwendete helle Türkis kennzeichnet die neu hinzugefügten Textblöcke und Texte.
Bestimmte Eigenschaften von gekennzeichneten Hervorhebungen, wie Smarty-Variablen, Datei-Namen, Verzeichnissen, Datenbankfeld-Namen,
Importer, Serendipity-Hooks, etc. wurden farblich unterschiedlich markiert.

An dem Punkt, an dem der Entwurfsmodus eines Tages entfernt wird,
werden wahrscheinlich die alten und überflüssig gewordenene Textpassagen, sowie die Farbe für die neu eingefügten Blöcke entfernt.
Ansonsten ist noch viel Raum für gemeinsame Optimierungen gegeben!

Ebenso ist noch unentschieden, ob es zu einer physischen Aufteilung (zum Beispiel in Kapitel) des recht langen Textes kommen muss,
damit die Ladezeiten und Swaps für User mit wenig Spielraum mit ihrem lokalem RAM weniger intensiv sind. Ansonsten ist die momentane Version
darauf abgerichtet alles "in-one" zu laden und per Javascript bestimmte Verwandlungen wie Sprungelemente und Links vornehmen zu können.

 

Ian, für das Serendipity-Team

Zum 13. Geburtstag von Serendipity, am 29. März 2016.

 

 

Kapitel 1: Einführung

Chats und Foren dominierten noch in den 90er Jahren das interaktive
Internet. Diskussionen wurden darüber hinaus allenfalls über
Newsgroups und Mailbox-Systeme geführt. Mit der allgemeinen
Verfügbarkeit von Internetzugängen wuchs auch das Bedürfnis nach einem
System, um sich selbst in diesem neuen Medium zu präsentieren: Das
sogenannte Self-Publishing war geboren.

Während der Boom der Wiki-Communities aus dem vornehmlich
akademischen Wunsch nach Wissensaustausch resultierte, entstand auch für
das Self-Publishing eine neue Art von Software - Weblogs,
kurz: Blogs. Der Name ist Programm, denn die Grundfunktion ist
ein persönliches Tagebuch (ein Logbuch) im Internet. Blogsysteme
zeichnet aus, dass sie Inhalte sehr einfach darstellen und fassbar
machen, denn schließlich sollen die persönlichen Bemerkungen viele --
auch zufällige - Besucher schon auf den ersten Blick ansprechen.

Ganz bewusst setzen sich Blogsysteme von den
Content-Management-Systemen (CMS) ab, die aus Blogger-Sicht zu
teuer, vor allem aber zu komplex sind. Mit steigender Popularität
entstanden zahlreiche Blogsysteme im Open-Source- wie im kommerziellen
Umfeld: Serendipity, Movable Type, Blogger.com, b2 Evolution,
WordPress und andere.

Mittlerweile wird Blog-Software nicht nur für persönliche oder
firmenspezifische Tagebücher eingesetzt, sondern ebenso für kleine,
stark angepasste und individualisierte Projekt-/Produktseiten,
Firmenpräsentationen oder redaktionelle Inhalte jeder Art.

Serendipity ist eines dieser Systeme. Es entstand aus dem
Wunsch nach einer freien Software mit größtmöglicher Flexibilität,
worauf auch der - für die deutsche Zunge zugegebenermaßen etwas
gewöhnungsbedürftige - Name hinweist, der etwa bedeutet: "eine
zufällige Entdeckung, die Überraschendes und Großartiges mit sich
bringt". Und da der Name nicht nur schwierig auszusprechen, sondern
auch umständlich zu schreiben ist, kürzt man ihn in Fachkreisen
einfach ab: s9y. Geeks ersetzen längere Wörter gerne durch deren
Anfangs- und Endbuchstaben und schreiben die Zahl der ausgelassenen
Buchstaben einfach dazwischen...

Serendipity hat den Anspruch, von Anfängern einfach zu bedienen, aber
von fortgeschrittenen Anwendern weitestgehend modifizierbar zu sein.
Um auf möglichst vielen verschiedenen Serversystemen zu laufen, sollte
es mit mehreren Datenbanksystemen kompatibel sein, die verbreitete
Skriptsprache PHP einsetzen und einfach auf dem eigenen Webspace
installierbar sein. Die Wahl der Lizenz für das System fiel auf
BSD, denn diese räumt im Gegensatz zur GNU GPL auch die
Möglichkeit ein, das Blogsystem in kommerziellem Umfeld sinnvoll zu
nutzen.

So hob Anfang 2002 ein Kernteam bekannter PHP-Entwickler Serendipity
aus der Taufe: Jannis Hermanns, Sterling Hughes, George Schlossnagle,
Wez Furlong, Joyce Park und Joseph Tate (Letzterer ist auch Autor der
Cracklib [*] \cmd{http://www.cracklib.net/} und von
mod-pubsub [*] \cmd{http://sourceforge.net/projects/mod-pubsub})
sowie Sebastian Bergmann vom phpUnit-Projekt.[*] Die
PHP-Testsuite ist unter \cmd{http://www.phpunit.de/} erhältlich.
Mit den Jahren entwickelten wechselnde Programmierer das System stetig
und konsequent weiter. Seit 2003 ist der Autor dieses Buchs leitender
Entwickler.

Dieses Buch bezieht sich auf die aktuelle Version 1.32.1 und möchte einen
umfassenden Überblick über das System und seine Anpassbarkeit
vermitteln. Neben der Bedienung der Software werden Sie darum auch
lernen, eigene Plugins zu schreiben, Templates anzupassen und
Konfigurationsänderungen vorzunehmen.

1.1 - Was unterscheidet ein Blog von einem CMS?

Was unterscheidet ein Blog von einem CMS?

Ein Blogsystem zielt darauf ab, einzelne Artikel möglichst einfach zu
erfassen und in einem festen Rahmendesign darzustellen. Ein CMS
hingegen verwaltet ganz unterschiedliche Inhalte in individuellen
Designs und baut komplexe Navigationsstrukturen auf.

Für Blogsysteme sind alle Artikel grundsätzlich gleichwertig und
werden nur chronologisch sortiert dargestellt. Ein CMS sollte Seiten
unterschiedlich gewichten und diese verschlagworten und kategorisieren
können. Darum bietet es sich für umfangreiche Webseiten an, die nicht
nur eine "Seitenansammlung" darstellen, sondern eine komplexe
Hierarchie abbilden, was den Umgang mit sog. "Teasern", Übersichten,
Unter- und Parallelseiten erfordert.

Dies ist natürlich eine grobe Vereinfachung, da viele Blogsysteme
inzwischen auch solch komplexe Anwendungen meistern. Für Serendipity
gibt es beispielsweise das Plugin Statische Seiten, mit dem man
Inhalte losgelöst von den chronologisch sortierten Artikeln erstellen
und auch Hierarchien mit Unterseiten abbilden kann (siehe Seite
staticpage).

Ein weiterer fundamentaler Unterschied ist die Ausrichtung eines CMS
auf Mehrbenutzerfähigkeit und Workflows, so dass ein Artikel vor
seiner Veröffentlichung verschiedene Arbeitsphasen möglicherweise verschiedener Redakteure durchläuft. Gerade für umfangreiche Webseiten
ist es wichtig, dass mehrere Artikelversionen nebeneinander existieren
können: Während man bereits an neuen Fassungen einer Seite arbeitet,
soll die Online-Version unverändert für Besucher zur Verfügung stehen.
Solch ausgefeilte Mechanismen sind im Blog-Umfeld meist nur unnötige
Last.

Somit lässt sich ein Blog grundsätzlich als funktionsreduziertes CMS
beschreiben. Das mag negativ klingen, hat aber tatsächlich einen
großen Vorteil: Ein Blog geht zielgerichtet auf Bedürfnisse des
Web-Publishings ein. Die Bearbeitungsprozesse sind einfacher, und
Blog-spezifische Techniken (RSS-Feeds, XML-RPC, Widgets, Web-Services,
interaktive Funktionalitäten wie Kommentare und Trackbacks [*] Eine Erklärung dieser Begriffe finden Sie im Kapitel Terminologie auf Seite Terminologie.)
lassen sich meist mit wesentlich geringerem Aufwand einbinden als in
umfangreichen Content-Management-Systemen.

1.2 - Warum Serendipity?

Warum Serendipity?

Serendipity versteht sich als erweiterbares Blog-Framework, dessen
Kernarchitektur so offen konzipiert ist, dass man individuelle
Anpassungen vornehmen kann, ohne an den Sourcecode selbst Hand
anzulegen. Änderungen am Aussehen des Blogs lassen sich durch
Templates vornehmen, Funktionalitäten durch Seitenleisten- und
Ereignis-Plugins nachrüsten.

Diese Modularität macht es möglich, eigenen Code vor Updates der
Serendipity-Version zu schützen. Seit Erscheinen der ersten Version
legen die Entwickler sehr viel Wert auf Abwärtskompatibilität. Im
Gegensatz zu anderen Systemen ließen sich bestehende Plugins bisher
selbst bei großen Versionssprüngen weiterverwenden. Dies spricht zum
einen für eine gesunde Weiterentwicklung des Systems, zum anderen auch
für die Plugin-Architektur, die sich als sehr stabil erwiesen hat.

Gerade die Auslagerung von Code macht Serendipity auch im
kommerziellen Umfeld interessant. Aufgrund der BSD-Lizenz kann man
dieses Blogsystem verwenden, ohne hinzugeschriebenen Code
veröffentlichen zu müssen.

Der Einsatz dynamischer PHP-Skripte gewährleistet, dass Serendipity im
Gegensatz zu mit Perl, Ruby oder Python entwickelten Blogsystemen auf
beinahe jedem Webserver lauffähig ist. Zudem macht die Unterstützung
mehrerer Datenbank-Management-Systeme die Software portabel, so
dass sie mit unterschiedlichen Datenbank-Servern einsatzfähig ist.

Darüber hinaus legen die Entwickler viel Wert auf guten
Programmierstil (mit phpDoc-Funktionskommentaren, einheitlichen
Einrückungen und einer kleinteiligen Funktions-API) und sicheren Code.
Im Laufe der Serendipity-Entwicklung gab es bislang nur wenige
Sicherheitslücken, die bei Bekanntwerden innerhalb weniger Stunden
offiziell behoben wurden. Auch gegen weniger verbreitete
Angriffsmöglichkeiten auf eine Webanwendung wie XSRF [*] XSRF
steht für Cross-Site Request Forgery und beschreibt eine
Angriffsmethode, bei der eine fremde Website mit Privilegien eines
authentifizierten Benutzers Aktionen (zB. das Löschen aller
Artikel) durchführt.
stellte Serendipity frühzeitig Schutzmechanismen bereit.

Serendipity-Templates werden unter Verwendung des
Templating-Frameworks
Smarty, [*] \cmd{http://www.smarty.net/}
einem De-facto-Standard unter PHP, entwickelt. Zahlreiche Entwickler
schwören auf dessen einfache Syntax, die es selbst Anfängern
ermöglicht, die HTML-Ausgabe anzupassen, ohne PHP lernen zu müssen.

Das zentrale Plugin- und Template-Archiv namens
Spartacus [*] \cmd{http://spartacus.s9y.org/}
bietet derzeit mehr als 160 Plugins und knapp 100 Templates an. Diese können
Sie direkt aus der Verwaltungsoberfläche Ihrer eigenen
Blog-Installation heraus installieren oder aktualisieren. Die dort
aufgeführten Plugins werden großteils offiziell gewartet und
entsprechen den vom Serendipity-Projekt vorgegebenen Anforderungen an
Programmierstil und Sicherheit. Plugins mit identischer
Funktionalität, die den Benutzer vor die Qual der Wahl stellen, findet
man hier nicht, und auch auf Kompatibilität zu allen verfügbaren
Serendipity-Versionen wird geachtet.

Da Serendipitys Kernentwickler aus Deutschland kommen, haben gerade
deutsche Anwender den Vorteil einer stets aktuellen deutschen
Übersetzung der Benutzeroberfläche. Zudem sorgen eine engagierte
Community und ein großes Supportforum mit bislang über 65.000 117.550
Beiträgen dafür, dass Fragen zum System oder Rückfragen selten
unbeantwortet bleiben. Serendipity wird sehr nah an den Wünschen der
Community entwickelt - das Feature-Diktat von "oben herab" ist
verpönt.

Natürlich kann Serendipity zum jetzigen Zeitpunkt noch nicht alles. Der
größte Nachteil besteht wohl darin, dass man auf eine einzelne
Blog-Instanz festgelegt ist. Unter-Blogs (thematisch oder auch pro
Benutzer) lassen sich zwar hintricksen, aber an ein echtes
Multi-Blogsystem wie Movable Type kommt die Software in dieser Hinsicht
nicht heran.

Aufgrund der dynamischen Kompilierung jedes Seitenaufrufs verursacht
Serendipity auch mehr Prozessorlast als solche Systeme, die mit exportiertem
HTML arbeiten. Serendipity kann auf gut eingerichteten Servern zwar
mehrere Dutzend Seitenaufrufe parallel verarbeiten, für den Einsatz
einer Community mit Tausenden parallelen Seitenaufrufen pro Sekunde ist
das System jedoch nicht konzipiert.

Serendipity hebt sich von der Konkurrenz anderer frei oder
kommerziell erhältlicher Systeme vor allem in folgenden Punkten ab:

  • Die Browser-basierte Installationsoberfläche erlaubt sowohl eine weitgehend
    automatische Konfiguration, bei der nur essentielle Daten abgefragt werden, als
    auch die Einflussnahme auf nahezu alle Parameter bei der Fortgeschrittenen
    Installation
    (Seite webinstaller). Jede installierte Version lässt
    sich über die integrierte Oberfläche auf die jeweils aktuellste updaten (Seite
    s9yupdate).
  • Texte pflegt man auf Wunsch mit übersichtlichen, einfach verständlichen und
    funktionalen WYSIWYG-Editoren ein (Seite wysiwyg).
  • Die integrierte Mediendatenbank für Bilder, PDFs, MP3s etc. gestattet
    Rechtemanagement, Stichwortsuche und automatische Vorschaugrafiken (Seite
    Mediendatenbank). Über einen gesonderten Dialog (Seite
    Mediendatenbank-Popup) bindet man die Dateien aus der Mediendatenbank
    mit wählbaren Layout-Optionen einfach in Blog-Artikel ein. Die Inhalte dieser
    Mediendatenbank lassen sich dynamisch in einer Verzeichnisansicht darstellen, wie
    Sie es zB. vom Windows Explorer gewöhnt sind.
  • Serendipitys gruppenbasiertes Rollenkonzept erlaubt das Anlegen unbegrenzt
    vieler Autorengruppen und das Vergeben individueller Rechte (Seite
    Benutzerverwaltung und Gruppenverwaltung).
  • Kommentare und Kategorien lassen sich verschachteln, Einträge mehreren
    Kategorien zuordnen. Natürlich implementiert Serendipity alle gängigen
    Blog-Standards (und ist somit vollständig Buzzword-kompatibel): Trackback,
    Pingback, XML-RPC, XHTML 1.1, CSS, RSS, Atom ... (siehe Seite
    Terminologie).
  • Eine flexible Plugin-API erlaubt es Ihnen, Seitenleisten- und
    Ereignis-Plugins einzusetzen oder zu entwickeln, die das System ohne Eingriffe in den Serendipity-Code beliebig erweitern (Seite pluginapi).
  • Das bereits erwähnte Online-Plugin-Archiv (Spartacus) erlaubt die
    Ein-Klick-Installation von mehr als 160 Plugins (Seite Spartacus).
  • Dank Plugin-Verwaltung per Drag&Drop können Sie das Aussehen und die
    Inhalte der Seitenleisten des Blogs nach Ihren Wünschen gestalten, ohne
    Templatedateien manuell ändern zu müssen (Seite Plugins verwalten).
  • Das dynamische, Smarty-basierte Template-Konzept erlaubt die strukturelle
    Änderung sämtlicher Frontend-Elemente über aufeinander aufbauende
    Templatedateien. Smarty-Templates dürfen ohne Einschränkung Kontrollstrukturen
    wie Schleifen, Abfragen und Variablen enthalten und optional mit
    zusätzlichem PHP-Code versehen werden (Seite Smarty-Templates).
  • Einfache Integration in bestehende Webseiten. Das Konzept der Shared
    Installation
    ermöglicht den Betrieb beliebig vieler Blog-Instanzen mit nur einer
    Code-Basis (Seite sharedinstall).
  • Serendipity kämpft an Ihrer Seite mit umfangreichen, konfigurierbaren
    Anti-Spam-Maßnahmen gegen unerwünschte Kommentare oder Trackbacks. Als
    Schlagworte seien Captcha, automatische Moderation, Akismet und Blacklists
    genannt (Seite spamblock).
  • Beim Datenbanksystem haben Sie die Wahl zwischen MySQL(i), PostgreSQL und SQLite.
  • Serendipity ist nicht nur Open Source, sondern unterliegt sogar der
    BSD-Lizenz. Somit kann das System auch in kommerziellen Programmen seinen Einsatz
    finden.
  • Ob WordPress, MoveableType, b2Evo, blogger oder andere --
    Serendipity importiert auf Wunsch den Inhalt zahlreicher anderer
    Blogsysteme (Seite Daten importieren).
1.3 - Voraussetzungen

Voraussetzungen

Serendipity als Software wird nicht auf Ihrem persönlichen Computer
ausgeführt, sondern läuft im Internet auf einem Webserver.
Einen solchen mietet man meistens bei Providern wie
Manitu [*] \cmd{http://www.manitu.de/},
1&1 [*] \cmd{http://www.einsundeins.de/},
Strato [*] \cmd{http://www.strato.de/},
tiggerswelt [*] \cmd{http://www.tiggerswelt.net/} oder
anderen [*] \cmd{http://www.webhostlist.de/};
die Dienstleistung, die diese erbringen, nennt man Webhosting.

Für einen gewissen Monatsbeitrag erhalten
Sie Zugangsdaten zu einem Rechner, auf den Sie HTML-Dateien und
Software wie Serendipity mittels eines
FTP-Programms hochladen können. So gespeicherte Software
können Sie auf dem Webserver als Anwendungen ausführen; darauf greifen
Sie mittels
eines Webbrowsers von Ihrem PC aus zu - ganz so, wie Sie es von Webseiten
wie eBay oder Amazon kennen. Manche Provider (zB.
http://www.domainfactory.de/) bieten Serendipity für ihre
Kunden sogar vorinstalliert an.

Sollten Sie über keinen eigenen Webspace verfügen, gibt es noch eine
andere Möglichkeit, Serendipity zu nutzen. Einige kostenlose oder
kostengünstige Provider haben die Software auf ihren Servern
vorinstalliert und gewähren externen Nutzern Zugriff darauf. Hier können
Sie meist nur aus einer Liste vorinstallierter Plugins wählen und auch
keine Änderungen an Templates vornehmen oder eigene Plugins einspielen.
Um das System erst einmal nur zu testen oder als einfaches
Kommunikationsmittel einzusetzen, ist dies sicher eine gute Alternative. Eine Liste
dieser Provider finden Sie auf der Serendipity-Webseite.[*] \cmd{http://www.s9y.org/61.html}

Die Dateien, die zu Serendipity gehören, enthalten Quellcode, der in der
Skriptsprache PHP [*] PHP ist die Abkürzung von
\emph{PHP Hypertext Preprocessor}, siehe http://www.php.net/.
geschrieben ist.
Ein PHP-Interpreter macht diesen bei jedem Aufruf auf
dem Webserver maschinenlesbar. Das Ergebnis
dieser Aktion liefert der Webserver an den Browser des Zielsystems.
Laienhaft gesprochen, ließe sich PHP als Betriebssystem für
Serendipity ansehen.

Dies ist wichtig, um die generelle Funktionsweise von
Serendipity zu verstehen. Im Gegensatz zu Webbrowsern oder einer
Office-Anwendung kann Serendipity selbst keine Echtzeit-Eingaben von
Ihnen annehmen. Serendipity läuft komplett auf dem Webserver und wird
über Ihren Browser sozusagen ferngesteuert. Dabei sendet Ihr Browser eine
Anfrage an den Server, Serendipity verarbeitet diese und schickt ein
Resultat. Danach geht der Vorgang wieder von vorne los.

Dies hat den Vorteil, dass auch die Besucher Ihrer Seite stets aktuelle Daten
zu sehen bekommen. Da jeder Aufruf dynamisch die aktuellsten Daten darstellt,
kann Serendipity beispielsweise vorbereitete Artikel mit Erreichen eines
speziellen Datums automatisch einbinden, ohne dass Sie nochmals tätig werden
müssen. Das ist ein fundamentaler Unterschied zu einem statischen Blogsystem
wie MovableType. Dort speichert der Server (vereinfacht gesagt) nur
HTML-Dateien, in die sich dynamische Komponenten wie die neuesten Kommentare
oder die aktuelle Server-Uhrzeit nicht ohne Weiteres einbinden lassen.

Serendipitys Vorgehensweise hat zahlreiche Vorteile: Ein Besucher
kann, abhängig von seinen Zugriffsrechten, Artikel sehen, die andere nicht
zu Gesicht bekommen. Ein Besucher kann das Design der Webseite
selbständig durch Wahl einer Designvorlage verändern. Die Sprache der
Benutzeroberfläche richtet sich auf Wunsch nach seinen Einstellungen usw.

Diese Dynamik hat zwar auch Nachteile (so verlangt sie nach mehr Speicher
und macht das System langsamer), ermöglicht Ihnen als Blogbetreiber aber
auch interessante Möglichkeiten, die wir im Folgenden detailliert
beschreiben werden.

Um Serendipity einzusetzen, benötigen Sie FTP-Zugriff auf einen Webserver,
auf dem eine aktuelle PHP-Version (mindestens PHP 4.3.1, PHP5 wird
unterstützt) installiert ist und auf dem der Webhoster Zugriff
auf eine Datenbank (MySQL, PostgreSQL, SQLite) gewährt.
Als Webserver-Software eignen sich
Lighthttpd, Apache und Microsoft IIS. Das Blogsystem
lässt sich somit sowohl auf Windows- als auch auf Unix-Derivaten
einsetzen.

Mit der Serendipity 1.7.x Serie stieg die interne
Voraussetzung auf PHP 5.2 und mit dem Erscheinen von Serendipity 2.1 auf mindestens PHP 5.3, besser min 5.4+.

Damit Serendipity auf dem eigenen Webserver laufen kann, muss man einige
PHP-Einstellungen berücksichtigen. Üblicherweise sind sie passend
konfiguriert, so dass Sie als unbedarfter Benutzer direkt zum Kapitel
Installation ab Seite Installation springen können, wenn
Sie Ihren Webserver nicht selbst aufsetzen und dem Techniker bei Ihrem
Provider keine Hinweise geben müssen.

1.3.1 - Systemseitige Einstellungen

Systemseitige Einstellungen

Um herauszufinden, welche PHP-Module auf Ihrem Webserver installiert sind,
laden Sie folgende kleine Datei namens info.php in das
Webdaten-Stammverzeichnis (auch
Document Root genannt) [*] Das ist meistens
das Stammverzeichnis, in dem Sie bei Benutzung Ihres
FTP-Zugangs standardmäßig zu Beginn landen. Je nachdem, wie Ihr Provider den
Webserver konfiguriert hat, kann es aber auch sein, dass Sie zuerst in ein
Verzeichnis wie htdocs oder httpdocs wechseln müssen, um in das
Stammverzeichnis des Webservers zu gelangen.
auf den Server (im Buch
www.example.com genannt) und rufen diese in einem Browser über
http://www.example.com/info.php auf:


    <?php phpinfo(); ?>

Der Browser sollte dann eine Übersicht darstellen, aus der Sie Ihre
aktuellen Einstellungen herauslesen können. Folgende Module benötigt
Serendipity:

  • Das PHP-Modul session muss installiert und aktiviert sein sowie Session-Cookies zulassen. Dies
    erreicht man mit der php.ini-Einstellung
    session.use_cookies = On Serendipity verlangt darüber hinaus, dass die PHP-Sessiondateien schreibbar sind.
    Die php.ini-Einstellung session.save_path muss demnach auf
    ein Verzeichnis zeigen, in dem der Webserver bzw. PHP Schreibrechte hat.
    Gerade bei Windows-Servern enthält diese Variable häufig ein nicht
    existierendes oder nicht beschreibbares Verzeichnis.
  • Damit Serendipity in anderen Zeichensätzen verfasste
    Texte nach UTF-8 konvertieren und seine XML-Funktionalitäten ausspielen
    kann, muss das (standardmäßig vorhandene) PHP-Modul xml/libxml
    installiert und aktiviert sein.
  • Für andere Zeichensatzkonvertierungen, die besonders bei Import- und
    Exportvorgängen (zB. von RSS-Feeds) nötig werden, kann Serendipity
    sowohl das PHP-Modul iconv als auch mbstring verwenden. Beide
    Module sind in aktuellen PHP5-Versionen standardmäßig aktiviert.
  • Um Zeichenketten zu finden und zu bearbeiten, setzt Serendipity häufig
    reguläre Ausdrücke ein. Diese Funktionalität liefert das
    (standardmäßig installierte) PHP-Modul pcre.
  • Um die Mediendatenbank vernünftig nutzen zu können, benötigen Sie
    entweder das PHP-Modul gd oder das Paket ImageMagick. Sollten Sie
    Letzteres benutzen, müssen die Dateien des Pakets für Ihren Web-Benutzer
    ausführbar sein.
  • Damit Serendipity auf fremde Webseiten zugreifen kann, um zB.
    Webservices zu integrieren und den Download von Plugins zu ermöglichen,
    benötigt es das (standardmäßig aktivierte) PHP-Modul socket,
    das Netzwerkfunktionen bereitstellt. Selbst wenn das Modul
    vorhanden ist, kann es sein, dass Firewall-Einstellungen am Server die
    Verbindung zu fremden Servern auf HTTP-Port 80 (oder anderen) verbieten.
    Je nach Einsatzzweck müssen Sie Verbindungen zu den Servern, die
    Serendipity von sich aus anspricht (zB. spartacus.s9y.org und
    netmirror.org für den Download von Plugins), explizit erlauben.
    Sollte dies nicht möglich sein, können Sie Serendipity zwar nutzen,
    müssen aber auf die entsprechende Funktionalität verzichten.
  • Damit die Serendipity-Komponenten intern auf https-URLs zugreifen
    können (und beispielsweise Trackbacks zu solchen geschützten URLs senden
    können), wird das PHP-Modul openssl benötigt.
  • Soll Serendipity die HTML-Seiten per gzip-Kompression
    bündeln, wird das PHP-Modul zlib benötigt.
  • Um E-Mails zu versenden (zB. um auf neue Kommentare
    hinzuweisen), muss PHP mit der sendmail-Option kompiliert worden
    sein.
  • Abgesehen von einem
    Datenbanksystem muss auf Ihrem Server auch die Client-Schnittstelle für
    die jeweilige Datenbank (MySQL(i), PostgreSQL, SQLite) als PHP-Modul
    (mysql, mysqli, pgsql, sqlite)
    eingebunden sein. Standardmäßig wird PHP mit MySQL-Bibliotheken
    eingerichtet; seit PHP 5 ist auch das Datenbanksystem SQLite
    üblicherweise aktiviert.
  • Um die Geschwindigkeit zu erhöhen,
    empfiehlt sich der Einsatz von PHP-Bytecode-Caches wie APC (apc),
    ZendCache oder ionCube.

PHP bietet zahlreiche sicherheitsrelevante Parameter, deren aktueller Wert bei
der Installation des Blogs angezeigt und auf optimale Einstellung überprüft
wird. All diese Einstellungen werden in der php.ini-Konfigurationsdatei
geändert
und bedürfen je nach
Serverumgebung eines Neustarts der Webserver-Software. Für Hilfe zur
Konfiguration von PHP und des jeweiligen Webservers schlagen Sie bitte in der
Anleitung der jeweiligen Software nach, da dies den Rahmen dieses Buchs
sprengen würde.

Kommt Apache zum Einsatz, können die Einstellungen auch pro Domain
konfiguriert werden. Im jeweiligen <VirtualHost>-Abschnitt der
Konfigurationsdatei (je nach Apache-Version unterschiedlich, meist
httpd.conf
oder auch in Dateien unterhalb des Apache conf.d-Verzeichnisses)
muss dazu php_admin_value option wert bzw. php_value option
wert
eingetragen werden. Alle per php_value
einstellbaren Optionen lassen sich auch über eine .htaccess-Datei
im Stammverzeichnis des Webauftritts verändern. Einstellungen in
dieser Datei haben Vorrang vor den globalen Optionen, die in der
Webserverkonfiguration oder in php.ini definiert wurden. Via
php_admin_value gesetzte Werte lassen sich von
.htaccess-Dateien nicht mehr verändern.

Serendipity selbst legt bei der Installation eine solche Datei im
Serendipity-Verzeichnis an.
Sollte Ihr Webserver deren Auswertung
unterbinden, können Sie die von Serendipity erstellte Datei gefahrlos
löschen, verlieren dadurch aber die Möglichkeit, sprechende
URLs
zu benutzen sowie den Download einiger interner Dateien zu
verhindern.
Daher sollten Sie dies nur dann tun, wenn Ihr Provider auch nach
Rücksprache die Auswertung der .htaccess-Dateien nicht
genehmigt.

Haben Sie die Möglichkeit, die .htaccess-Nutzung über
die Option AllowOverride in der Webserver-Konfigurationsdatei zuzulassen, geschieht dies im
<VirtualHost>-Abschnitt mittels


    <Directory /pfad/zum/serendipity-verzeichnis>
  AllowOverride All
</Directory>

Notfalls reicht auch AllowOverride Options
FileInfo
. Der Wert All erlaubt es Plugins grundsätzlich, weitere
Webserver-Optionen zu setzen, und gibt Ihnen damit mehr Flexibilität.

Serendipity setzt in seiner .htaccess-Datei (siehe Seite
htaccess) die
Optionen session.use_trans_sid (Seite
session-trans-sid) und register_globals (Seite
register-globals). Bei der Benutzung des Apache-Moduls
mod_rewrite kommen auch die Optionen RewriteEngine,
RewriteBase und RewriteRule zum Einsatz. Die
.htaccess-Optionen ErrorDocument und DirectoryIndex
ermöglichen freie Permalinks (siehe Seite urlformung).
Damit der Webserver bestimmte Serendipity-Dateien nicht im Klartext
darstellt, folgt ein Deny from All als Sicherheitsmaßnahme.

Sprechende URLs

mod_rewrite ist kein PHP-Modul, sondern eine Funktionalität des
Apache-Webservers. Wenn das Modul in Apache eingebunden wurde, erlaubt
es einer Web-Anwendung,
URLs zu benutzen, die nichts mit der tatsächlichen
Dateistruktur auf dem Server zu tun haben.
Statt die Nutzer damit zu behelligen, dass sie gerade ein PHP-Skript
namens serendipity_admin.php nutzen, lässt man sie besser auf eine
URL wie http://www.example.com/serendipity/admin/ zugreifen, die
den Browser auf die tatsächlich existierende Datei serendipity_admin.php umleitet.

Das mod_rewrite-Modul ermöglicht es Serendipity, sogenannte sprechende
URLs
(auch URL-Umformung genannt) einzusetzen,
die zum Beispiel Artikeltitel oder
Kategorienamen enthalten. Für den Benutzer hat das
den Vorteil, dass er eine URL schon anhand ihres Namens eindeutig
zuweisen kann. Zudem können Suchroboter wie Google Ihre
Artikel aufgrund der Schlagwörter in der URL besser indizieren.

Serendipity kann auch mit sprechenden URLs arbeiten, wenn mod_rewrite
nicht verfügbar ist. Dann leitet der Apache-Webserver den Browser mittels eines
Tricks an die echte URL weiter: Kann er eine Seite nicht finden, hängt es vom
Error-Handling (genau: der ErrorDocument-Anweisung) ab, ob er die
Fehlermeldung an den Browser durchreicht oder diesen auf eine andere Seite
führt. Diese Methode ist jedoch einen Tick langsamer und unflexibler als
mod_rewrite und klappt leider nicht auf allen Servern, da sie die oben
erwähnte AllowOverride-Einstellung All voraussetzt. Andere
Webserver wie Microsoft IIS oder lighttpd bieten diese Möglichkeiten leider
nicht, daher ist dort keine URL-Umformung möglich [*] Mit etwas manuellem
Aufwand und Kenntnis der Webserver lassen sich die benötigten Umformungsregeln
jedoch auch nachrüsten, mehr dazu unter \cmd{http://s9y.org/119.html}
.

Bei der Installation wird Serendipity versuchen, automatisch die
passendste Methode für Sie herauszufinden. Abhängig
davon wird die .htaccess-Datei unterschiedlich erstellt, damit sie die
jeweils erforderlichen Anweisungen enthält. Die gewünschte Methode zur
URL-Umformung kann später in der Konfiguration natürlich auch umgestellt
werden.

Sobald für Serendipity das mod_rewrite-Modul aktiviert ist, wird
Serendipity sämtliche Aufrufe in seinem Unterverzeichnis umleiten.
Sollten Sie später also einmal andere Programme unterhalb des
Serendipity-Verzeichnisses aufrufen wollen, wird dies womöglich dazu
führen, dass Sie statt des installierten Programms Serendipity sehen.
Dies liegt daran, dass durch die .htaccess-Datei von
Serendipity die URL-Umformungsregeln auch für alle Unterverzeichnisse
gelten. Abhilfe können Sie schaffen, indem Sie in jedem Unterverzeichnis
einer fremden Anwendung eine eigene .htaccess-Datei erstellen, mit
dem Inhalt:


    RewriteEngine off

Diese Anweisung sorgt dafür, dass für das jeweilige Programm die
URL-Umformung deaktiviert wird.

1.3.2 - Für Serendipity relevante PHP-Konfigurationsoptionen

Für Serendipity relevante PHP-Konfigurationsoptionen

Folgende Optionen sind für Serendipity maßgeblich:

php_value magic_quotes_gpc
php_value magic_quotes_runtime

setzbar in .htaccess, php.ini oder in der Webserverkonfiguration;

Diese Variablen bestimmen, ob PHP Sonderzeichen in URL-Variablen (GET,
POST, COOKIE) automatisch in ein sicheres Format
umwandelt. Serendipity benötigt diesen Service nicht, da es
die entsprechende Umformung selber vornimmt. Steht eine dieser Optionen auf
true, macht Serendipity die entsprechende Konvertierung
rückgängig. Daher empfiehlt es sich aus Performancegründen, die beiden
Einstellungen auf false zu setzen und damit zu deaktivieren.

php_value session.use_cookies
.htaccess, php.ini oder Webserverkonfiguration;

Serendipity speichert temporäre Dateien in PHP-Sessions. Um eine Session
eindeutig zu identifizieren, vergibt das System Session-IDs, die
üblicherweise in einem HTTP-Cookie gespeichert werden. Damit Serendipity
PHP-Session-Cookies nutzen kann, muss diese Option aktiviert sein.

php_value session.use_trans_sid
wird von Serendipity selbst in der .htaccess-Datei auf 0
gesetzt, kann aber auch in der php.ini oder der
Webserverkonfiguration geändert werden;

Wenn der Browser keine Cookies akzeptiert, kann die Session-ID auch an
die URL angehängt werden.
PHP macht dies automatisch, wenn die Option
session.use_trans_sid aktiviert ist. Diese Automatik ist seitens
Serendipity jedoch aus Sicherheitsgründen unerwünscht.
Sollte die Option dennoch aktiviert
sein, können fremde Nutzer ungültige Session-IDs in die URL
einschleusen und somit möglicherweise Ihre Session-Dateien
kompromittieren. Ein Serendipity-Blog sollte daher niemals die
Session-ID in einer URL angeben.
Gibt Ihnen jemand eine Serendipity-URL wie
http://www.example.com/serendipity/index.php?PHPSESSID=23213123adasd,
kann es sein, dass diese Person
Ihre Daten ausspähen will. Die serverseitige Deaktivierung der PHP-Option
session.use_trans_sid beugt
solchem Missbrauch vor.

php_admin_value allow_url_fopen
nur in der php.ini oder in der Webserverkonfiguration
änderbar;

PHP liest und behandelt URLs wie normale Dateien, wenn diese Option
aktiviert ist. Gerade in älteren PHP-Versionen öffnet die Aktivierung
dieser Option die Tür für Angriffsszenarien, in denen Code von
fremden Internetseiten bei Ihnen ausgeführt werden kann (und so das
System kompromittiert).

Damit die Aktivierung dieser sicherheitsrelevanten Option nicht
erforderlich ist, greifen alle wichtigen Serendipity-Funktionen
stattdessen über Sockets auf
Netzwerk-Ressourcen zu. Nur veraltete Plugins erfordern
möglicherweise die Aktivierung dieser Option. Es empfiehlt
sich, sie zu deaktivieren und nur bei Bedarf zuzuschalten.

php_value register_globals
wird von Serendipity selbst in der .htaccess-Datei auf
off gesetzt, kann aber auch in php.ini oder der
Webserverkonfiguration festgelegt werden;

Wenn diese Variable aktiviert ist, stellt PHP URL-Variablen im globalen
Namensraum zur Verfügung. Ältere PHP-Programme benötigen diese Option,
Serendipity greift jedoch nicht auf dieses Feature zurück. Aus
Sicherheitsgründen ist es daher sehr zu empfehlen, die Option zu deaktivieren,
sofern sie nicht für andere auf dem Webserver laufende Anwendungen
benötigt wird.

php_admin_value safe_mode
php_admin_value safe_mode_include_dir
php_admin_value safe_mode_gid

lediglich via php.ini oder
Webserverkonfiguration änderbar;

PHPs Safe Mode stellt sicher, dass lokale PHP-Anwendungen wie
Serendipity nur auf die Daten im eigenen Stammverzeichnis zugreifen und
keine fremden Dateien einbinden können. Obwohl Serendipity mit dieser
Einschränkung generell funktioniert, hat die Aktivierung dieses Modus
folgende Nachteile:
Die Optionen safe_mode_include_dir und safe_mode_gid
legen fest, auf welche Verzeichnisse ein PHP-Skript Zugriff hat. Solange
die Benutzerrechte (Permissions) und die Eigentumsverhältnisse
(Ownership) auf dem Webserver für das
Serendipity-Installationsverzeichnis korrekt gesetzt sind, lassen sich zB.
Mediendatenbank-Dateien problemlos hochladen. Ein falsch
eingerichteter Safe Mode hat zur Folge, dass man mittels FTP oder
Administrationsoberfläche keine Templates und andere Dateien hochladen und
keine Bilder im Nachhinein löschen oder bearbeiten kann.

php_admin_value open_basedir
nur via php.ini oder in der Webserverkonfiguration änderbar;

Ähnlich wie der Safe Mode lässt sich der Datei-Zugriffsschutz von PHP auf
gewisse Verzeichnisse beschränken. Üblicherweise wird diese Option in
Zusammenhang mit den Safe-Mode-Parametern konfiguriert. Während der
Safe Mode lediglich den globalen Dateizugriff auf Gruppen- und
Benutzerebene regelt, schränkt open_basedir den
Zugriff auf vordefinierte Verzeichnisse ein.

Verwendet Ihr Webserver diese Option,
gehört das Serendipity-Installationsverzeichnis unbedingt in die damit
konfigurierte Verzeichnisliste. Anderenfalls kann der Webserver
die Installationsdateien nicht aufrufen. Als Trennzeichen zwischen zwei
Verzeichnispfaden dient in dieser Option das Semikolon (;).

Bleibt diese Option leer, ist der Zugriff auf alle
Verzeichnisse möglich. Befindet sich
bereits der Verzeichniseintrag . in der Auflistung, steht
dieser Punkt synonym für das Verzeichnis, in dem ein PHP-Programm
ausgeführt wird.

Gerade auf Servern, die viel mit symbolischen Dateisystemlinks arbeiten,
muss der Administrator sorgfältig auf die korrekte Konfiguration der
involvierten Verzeichnispfade achten.

php_value session.cookie_domain
.htaccess, php.ini oder Webserverkonfiguration;

Wenn Serendipity einen HTTP-Cookie setzt (also zB. die Session-ID
oder Login-Daten), enthalten diese den Namen der Domain, auf dem sich die
Serendipity-Installation befindet. Falls in der PHP-Variable
session.cookie_domain ein Domainname eingetragen ist, nutzt
Serendipity stattdessen diese Domainangabe. In dem Fall stellen Sie
sicher, dass sich dieser Wert mit dem Domainnamen des s9y-Servers deckt.
Wenn ein Webserver für mehrere Domains konfiguriert ist und an dieser
Stelle einen zentralen Domainnamen setzt, ist dies oft Ursache für
spätere Probleme.

php_value session.save_path
.htaccess, php.ini oder Webserverkonfiguration;

Alle von Serendipity gespeicherten Sessiondaten werden im mit dieser Option
angegebenen Verzeichnis gespeichert. Der ausführende PHP-Prozess muss
darauf Schreibrechte besitzen. Stellen Sie bei Windows-Servern sicher,
dass hier ein gültiger Verzeichnisname (zB.
C:/Temp) eingetragen ist. Sollten
PHP-Sessions nicht schreibbar sein, zeigt Serendipity
Fehlermeldungen an.

php_admin_value file_uploads
php_value post_max_size
php_value upload_max_filesize
php_value max_input_time

.htaccess, php.ini oder
Webserverkonfiguration - file_uploads nur via php.ini oder
Webserverkonfiguration änderbar;

Damit man überhaupt Dateien hochladen kann, muss file_uploads aktiv sein. Die
maximale Dateigröße einer hochgeladenen Datei legen
post_max_size, das ein Limit für HTTP-Requests mitsamt aller Daten
definiert, und
upload_max_filesize fest, das seinerseits eine spezielle Obergrenze
nur für die mittels HTTP-Request
übermittelten Dateien setzt. Die maximale Zeit für die Verarbeitung
einer Datei beim Upload legt die Variable max_input_time fest.

php_admin_value memory_limit
Einstellung via php.ini oder Webserverkonfiguration;

Serendipity benötigt einiges an Arbeitsspeicher auf dem Webserver. In einer
Grundkonfiguration reichen meist zwischen drei und vier MB RAM. Der
Speicherbedarf kann mit der Anzahl und der Komplexität von Plugins jedoch
zunehmen.

Wie viel verfügbaren Speicher PHP-Anwendungen insgesamt nutzen dürfen,
legt die Variable memory_limit fest. Sollte der Arbeitsspeicher
Fehlermeldungen zufolge nicht mehr ausreichen, müssen Sie entweder dieses
Limit hochsetzen oder Serendipity-Plugins löschen.

php_value display_errors
php_value error_log

.htaccess, php.ini oder httpd.conf;

Einige Server geben PHP-Fehlermeldungen nicht an den Browser weiter, um
weniger leicht angreifbar zu sein.[*] Fehlermeldungen können
kritische Dateipfade eines Servers offenlegen (\emph{Information
Disclosure}). Solche Informationen erlauben es Angreifern, bestimmte
Rückschlüsse auf die Einrichtung eines Server zu ziehen.
Wenn Sie
allerdings einmal auf Probleme stoßen oder eigene Anpassungen eine leere
Seite zum Ergebnis haben, empfiehlt es sich ggf., diese beiden Optionen
temporär zu aktivieren. Die bessere Alternative heißt: häufiger die
Fehler-Logfiles des Webservers prüfen.

 

1.3.3 - Serendipitys .htaccess-Datei

Serendipitys .htaccess-Datei

Befehle, die Serendipity eigenständig in die
.htaccess-Datei im Stammverzeichnis einträgt, fasst die Software in einen
Block ein, der mit
#Begin s9y beginnt und mit #End s9y endet. Wenn Sie eigene
Parameter in diese Datei einfügen, tun Sie dies daher vor
#Begin s9y oder nach #End s9y. Das verhindert, dass
Serendipity diese Zeilen ändert. Wenn Sie eine von Serendipity gesetzte
Option überschreiben müssen, fügen Sie die
Option mit dem von Ihnen gewünschten Wert am besten nach dem s9y-Block nochmals
ein.

Auf einem Server ohne mod_rewrite sieht der s9y-Block wie
folgt aus:


Der erste Parameter, DirectoryIndex, legt die zentrale Serendipity-Datei
index.php als Startseite des Blogs fest. Wenn in der Serendipity-Konfiguration
bei der URL-Umformung (siehe Seite urlformung) die Option
Apache ErrorHandling eingestellt wurde, folgt als nächste Zeile der
Eintrag ErrorDocument 404 /serendipity/index.php. Die darin genannte Datei
dient als Weiterleitungsziel für alle virtuellen URLs, auch bei der Verwendung
von mod_rewrite.

Die nächsten beiden Zeilen deaktivieren die PHP-Einstellungen
session.use_trans_sid und register_globals.

Zuletzt folgen mehrere Abschnitte, die den Zugriff auf interne
Serendipity-Dateien (*.tpl.php, *.tpl, *.sql,
*.inc.php und *.db) verbieten.

Wurde mod_rewrite aktiviert, sieht die
.htaccess bis auf einen Block genauso aus wie die eben
gezeigte:


Hinzugekommen ist der Befehl RewriteEngine On, der
mod_rewrite aktiviert. RewriteBase legt den Stammpfad für
alle Operationen fest. Die einzelnen RewriteRules legen fest,
wohin der Nutzer weitergeleitet wird, wenn er spezielle URLs aufruft.
Der erste Teil hinter einer RewriteRule gibt an, welches Muster in
der URL gesucht wird, der zweite Teil legt fest, welche Datei
aufgerufen wird, und zuletzt folgen spezielle
mod_rewrite-Optionen in eckigen Klammern.

L gibt eine abschließende Regel an: Sobald eine URL auf das
jeweilige Muster zutrifft, werden die übrigen Muster nicht mehr geprüft.
QSA bedeutet, dass URL-Parameter (die sogenannten GET-Variablen) an
die Ziel-URL angehängt werden. NC besagt, dass
Groß- und Kleinschreibung bei einer URL nicht unterschiedlich behandelt
wird.

Die jeweiligen Regeln werden mittels regulärer Ausdrücke
formuliert, die bestimmte Muster in Zeichenketten detailliert beschreiben.

1.3.4 - PEAR

PEAR

Das PHP Extension and Application Repository (kurz PEAR) ist eine
Sammlung von PHP-Skripten und -Modulen, von der zahlreiche
Web-Anwendungen Gebrauch machen. Auch Serendipity setzt mehrere
PEAR-Komponenten ein: Cache::Lite, HTTP::Request, Onyx,
Net::Socket, Text::Wiki und XML::RPC. Damit diese
nicht zentral auf dem Webserver installiert sein müssen, liefert
Serendipity die Komponenten im Unterverzeichnis bundled-libs mit.

Wenn die entsprechenden PEAR-Komponenten bereits auf dem Webserver
vorhanden sind, räumt Serendipity diesen standardmäßig den Vorrang ein,
damit Systemadministratoren bei kritischen Updates nicht auch das
bundled-libs-Verzeichnis anfassen müssen. Dabei kommt es manchmal
zu (Versions-)Konflikten.

In diesem Fall kann man in der globalen Serendipity-Konfigurationsdatei
serendipity_config.inc.php mit


    $serendipity['use_PEAR'] = false;

darauf beharren, dass die von s9y mitgelieferten Komponenten zum
Einsatz kommen.

1.4 - Terminologie

Terminologie

In Zeiten des Web 2.0 (siehe Seite Webservices) buhlen
zahlreiche allgegenwärtige Marketing- und Technologiebegriffe um
Aufmerksamkeit. Da diese auch im Zusammenhang mit
Serendipity wichtig sind, gehen wir darauf im Folgenden gezielt und knapp
ein. Detaillierte Definitionen liefert zB.
die deutsche Wikipedia.[*] \cmd{http://de.wikipedia.org/}

1.4.1 - XHTML, HTML, XML und CSS

XHTML, XML und CSS

HTML [*] \cmd{http://meiert.com/de/publications/indices/html-elements/}
stellte ursprünglich eine einfache Syntax zur Formatierung
von Dokumenten im Web bereit. Während es anfangs nur sehr primitive
Auszeichnungselemente gab (Überschriften, Fettungen, Tabellen), sorgten
viele Entwickler-Gremien
schnell und leider auch unübersichtlich für Erweiterungen.
Parallel zu HTML wurde XML
(Extensible Markup Language) als universelles Dateiformat
entwickelt, um
beliebige maschinen- und menschenlesbare Inhalte darzustellen. Im
Gegensatz zu Binärformaten lassen sich für XML plattformübergreifend Schnittstellen
bereitstellen und standardisiert eigene Unterformate für alle
erdenklichen Einsatzzwecke erfinden.

Auch HTML wurde mittels XHTML-Standard mit der XML-Syntax aufgefrischt und
konsolidiert. Strenge Regeln sorgen nun dafür, dass sich HTML-Dokumente von
vielerlei Programmen interpretieren und "validieren" (also auf syntaktische
Korrektheit prüfen) lassen. In der Theorie ermöglicht dies weitgehende
Abstraktion von Layout und Inhalt. Der besseren Interpretation durch Software
wegen konnte das CSS-Format (Cascading Style Sheets) seinen Siegeszug
antreten. CSS-Dateien lassen sich auf Elemente in XHTML-Dokumenten anwenden und
legen so die Formatierung der strukturellen Elemente eines Dokuments fest.

Auch wenn viele Webseiten heute noch nicht mit gültigem XHTML entwickelt werden
und es Bemühungen gibt, die "dumme Einfachheit" von HTML mit laxeren Prüfungen
wieder aufleben zu lassen, ist ein Vorteil von XHTML unumstritten:
Weiterverwendbarkeit.

Inzwischen sind wir bei dem universalen HTML 5 [*] \cmd{https://www.w3.org/TR/html5/}
und gar HTML 5.1 [*] \cmd{https://w3c.github.io/html/}
gelandet.

1.4.2 - Browser

Browser

Ein Browser ist eine Software auf Ihrem Computer, mit der Sie Internetadressen
aufrufen und ansehen können. Bekannte Browser sind der Microsoft Internet
Explorer
, Mozilla Firefox, Google Chrome oder auch Apple Safari. Der Begriff
"Browser" steht dabei für das "Stöbern" (neudeutsch "Surfen") im Internet,
denn erst durch diese Software wird aus einem speziell formatierten HTML-Dokument
etwas, das ein Besucher am Bildschirm wirklich ansehen und benutzen kann.

Die am Markt verfügbaren Browser unterscheiden sich in Merkmalen wie Sicherheit,
Geschwindigkeit, Funktionsumfang und auch Darstellungsqualität. Obwohl HTML und
CSS festgelegte Standards sind, weicht jeder Browser bei deren Interpretation
doch geringfügig ab, daher stellen verschiedene Browser ein und dieselbe Webseite
möglicherweise unterschiedlich dar.

1.4.3 - Client, Server

Client, Server

Bei der Kommunikation im Internet sind Millionen von Computern miteinander
vernetzt. Beim Abrufen von Daten aus dem Internet über Ihren Browser verbindet
sich Ihr Computer mit einem fremden Computer, auf dem diese Daten liegen.

Ihr Computer stellt dabei einen Client dar, also den
Empfänger. Der Rechner, der Daten ausliefert, dient dabei als
Server, also als Absender.
Bei Nutzung fast jedes Internet-Protokolls spielen für die Kommunikation
zwei Datenkategorien eine Rolle:
das, was ein Client sendet und empfängt, und
das, was ein Server sendet, empfängt und verarbeitet.

1.4.4 - RSS, Feeds, Syndication und Aggregation

RSS, Feeds, Syndication und Aggregation

RSS ist die Abkürzung für Rich Site Summary oder auch Really Simple
Syndication
und der Name eines Datenformats, das gemeinsam mit den Blogs die
Web-Welt verändert hat.

Eine Datei im RSS-Format ist grundsätzlich erst einmal nur eine XML-Datei, die
einen speziellen Satz von Elementen enthält. Diese legen die Eigenschaften von
Blog-Artikeln, wie Titel, Inhalt oder Hyperlinks, fest.

Eine RSS-Datei stellt eine Art Newsticker dar, der meistens die chronologisch neuesten
Änderungen an News-Artikeln oder
Blog-Einträgen aufführt. Solche Dateien werden
kontinuierlich (meist automatisch) aktualisiert und auch
als Feed bezeichnet. Dafür ausgelegte Software kann eine solche
maschinenlesbare RSS-Datei weiterverarbeiten und mit dem Inhalt
anderer Webseiten zusammenführen (hier seien die Schlagworte
Aggregation und Syndication genannt).

RSS-Reader-Programme ermöglichen es
Internet-Nutzern, die RSS-Dateien von Webseiten ähnlich wie mit einem E-Mail-Programm regelmäßig
zu überprüfen, und informieren so leicht und übersichtlich
über Änderungen.

Manche RSS-Dateien liefern den Inhalt eines neuen
Artikels mit, so dass der Nutzer ihn sich unabhängig von der Webseite
ansehen kann. Diese Einbindungsweise fokussiert auf den eigentlichen Inhalt von
Webseiten, da sie es erlaubt, Inhalte beinahe
darstellungsneutral zu beziehen.

Unterschiedliche Gremien haben zahlreiche RSS-Versionen
erarbeitet, teilweise inkompatibel zueinander und mit jeweils
anderen Attributen. Das verbreitetste RSS-Format ist Version
2.0. Serendipity unterstützt auch RSS 0.9, 0.91 und 1.0.
Sie gelten heutzutage aber als veraltet.

1.4.5 - Webservices, Web 2.0, Social Web

Webservices, Web 2.0, Social Web

In dem Maße, wie Webserver in
Skriptsprachen wie PHP und Perl geschriebene Anwendungen zu interpretieren
lernten, wurde es immer einfacher und
interessanter, verschiedene Komponenten miteinander zu verbinden.
Dynamische Software eröffnete ganz neue Möglichkeiten,
Besuchern einer Webseite Zusatzdienste, sogenannte Webservices, zu
präsentieren. Als Beispiel seien
die Anzeige von neuen Terminen, die Darstellung von
Wetterdaten, spezielle passwortgeschützte Bereiche oder auch die
Darstellung von Bookmarks genannt.

Auf zahlreichen Webseiten kann man oft kostenlos Community-Dienste
in Anspruch nehmen, die sich mittels Webservices an die eigene Webseite
anbinden lassen - sei es die Liste aktueller Fotos von der eigenen
Flickr-Fotoseite, die Darstellung der Lieblingslinks, des aktuellen
Wetters zuhause oder auch die Einbindung fremder Werbung. Derartige Services
bezeichnet man auch als Social Web, da ein Gedankenaustausch in einer gemeinsamen Community stattfindet.

Der Begriff Web 2.0 steht gesamtheitlich für die Wandlung des ehemals
statischen Web 1.0 hin zu einer Web-Welt mit verflochtenen Diensten
und großen Interaktionsmöglichkeiten unter Einbeziehung der Web-Nutzer.

1.4.6 - XML-RPC, SOAP, REST

XML-RPC, SOAP, REST

Damit ein Webservice angesprochen werden kann, benötigt man eine gemeinsame
Schnittstelle zwischen Empfänger (Client) und Absender (Server).
Eine solche lässt sich mittels verschiedener Techniken anbieten.

Die im PHP-Umfeld verbreitetste Schnittstelle nennt sich XML-RPC.
RPC steht hierbei für Remote Procedure Call, also der Aufruf
einer Funktion durch ein fremdes Programm. Zur Datenübergabe und -annahme
wird hierbei XML verwendet. Der Server erhält eine XML-Datei mit
speziellen Anforderungen. Die ausführende
Server-Software interpretiert diese, wertet sie aus und schickt das Ergebnis wieder im
XML-Format zurück an den Client.

Eine dazu konkurrierende Schnittstelle nennt sich SOAP (Simple
Object Access Protocol
). Auch SOAP arbeitet mit XML-Datensätzen, hat
aber eine wesentlich komplexere Datenarchitektur und wird aufgrund dieses
Overheads im Web eher selten eingesetzt.

Als dritte bekannte Schnittstelle bietet sich REST an:
Representational State Transfer. Diese simpelste der
Schnittstellen führt Abfragen anhand einfacher URL-Parameter durch und
gibt üblicherweise auch einfach zu interpretierende XML-Daten zurück.

XML-RPC ist für die Weblog-Welt insofern interessant, als sie es erlaubt, Inhalte
neutral von der verwendeten Blogsoftware zu erfassen. Die meisten Blogsysteme
binden eine gemeinsame XML-RPC-Schnittstelle ein, die das Erstellen und
Bearbeiten von Artikeln mittels "Fernsteuerung" ermöglicht. Dadurch kann ein
Benutzer seine Artikel mit ganz normaler Desktop-Software wie zB. ecto,
marsEdit, WindowsLive Writer oder sogar Microsoft Word schreiben, anstatt
sie in der Web-Oberfläche seiner Blogsoftware zu verfassen. Gerade für Benutzer,
die sich nicht mit neuer Schreib-Software auseinandersetzen wollen, ist diese
Variante sehr interessant.

1.4.7 - Atom

Atom

Um die verschiedenen Varianten von RSS wieder zueinanderzuführen,
entwickelte das W3C-Gremium einen Standard namens Atom. In einem
vollständig gültigen XML-Format deckt es alle Fähigkeiten von RSS ab,
wird aber aufgrund der höheren Komplexität heute immer noch als
Konkurrenz zu RSS 2.0 angesehen.

Der Begriff Atom steht nicht nur für ein
Dateiformat, sondern auch für eine Implementation der XML-RPC- oder
SOAP-Protokollschnittstelle, die es erlaubt, entsprechend ausgerüstete Weblog-Software fernzusteuern.

1.4.8 - Trackback und Pingback

Trackback und Pingback

Da Blogs letztlich Sprachrohre von Individuen darstellen, ist es für
einen Blog-Betreiber meist sehr wichtig, sein Blog mit anderen zu
vernetzen. Ganz im Sinne des interaktiven Webs bestand ein wichtiger
Gedanke bei der Erfindung des Blogs darin, Beiträge eines Autoren auf dessen
Seite kommentieren zu können und so in Dialog zu treten.

Leser von Blogs sind häufig selber Blogbetreiber und möchten
-- gerade bei abweichender Meinung - eine Diskussion gern auf der eigenen Seite
weiterführen, ohne dabei die Verbindung mit dem
Initiator zu verlieren.
Hierfür wurde die Technik der Trackbacks erfunden, die es einem Autor erlaubt,
seinen Artikel mit einem anderen zu verketten. Die
Besonderheit dabei: Die fremde Webseite wird davon automatisch in
Kenntnis gesetzt. Somit befindet sich nicht nur auf der eigenen Seite ein Link
auf den Quellartikel, sondern es gibt auch einen, der vom
Quellartikel auf die eigene Seite zeigt. Wie das bei Serendipity
funktioniert, behandelt Kapitel trackback ab Seite trackback.

Ein Pingback ist eine abgeschwächte Form des Trackbacks. Der
Initiator kann auf diese Weise den Ursprungsautor darauf
hinweisen, dass er sich auf ihn bezogen hat. Dabei wird auf dessen Blog kein
(ausführlicher) Verweis für andere Besucher erzeugt.

1.4.9 - API und Plugin

API und Plugin

Eine API (Application Programming Interface) stellt ein
Software-Regelwerk (meist eine konkrete Liste an Funktionen oder
Klassen) zur Verfügung, an das man sich als Programmierer halten kann,
um auf gewisse Funktionen einer Software zuzugreifen. Bei Serendipity
benötigt man ein solches Regelwerk vor allem für Erweiterungen mit
eigenen Plugins oder den Zugriff von fremder Software.

Serendipity bietet eine funktionsorientierte Kern-API zur Verwaltung von Artikeln
und Datenbankabfragen. Weiterhin gibt es eine spezielle, objektorientierte
Plugin-API, die alle notwendigen Methoden abdeckt, die man als Entwickler eigener
Plugins benötigt.

Ein Plugin ist Software, die sich nahtlos in ein
Hauptprogramm einbindet (to plug bedeutet einstöpseln). Es
hat Vorteile, gewisse Funktionalitäten in Plugins bzw.
Programmmodule auszulagern. Dadurch hält man zum einen die Kernsoftware
schlank, zum anderen kann man losgelöst von der Kernsoftware
Aktualisierungen durchführen und Funktionalitäten erweitern. Ein Benutzer
hält sein System schlank und performant, indem er nur die
Plugins installiert, die er für seine Anwendungsfälle nutzt.
Auch bei Webservices gibt es zahlreiche APIs, die den Verkehr
zwischen Client und Server jeweils strukturieren.

1.4.10 - Mashup

Mashup

Der Begriff Mashup bezeichnet die Verkettung mehrerer Webservices. Dank
der Offenheit vieler APIs lassen sich die abgefragten Daten beliebig
miteinander kombinieren, zB. die Wetterdaten eines mittels Google Maps
dargestellten Orts anzeigen.
Oder man bindet auf der Karte die Bilder ein, die Flickr-Benutzer zu
diesen Geo-Koordinaten eingestellt haben. Die Verknüpfungsmöglichkeiten sind
oft nur durch Ihre Phantasie begrenzt.

1.4.11 - Usability, Barrierefreiheit, Accessibility

Usability, Barrierefreiheit, Accessibility

Usability ist ein Forschungsfeld, das sich
damit beschäftigt, wie man zB. eine Webseite am besten bedienen kann.
Es beschäftigt sich ua. mit der konzeptionellen Struktur einer Seite, dem Aufbau der
Navigation, der Gliederung der Inhalte und auch der Einbindung von
Formularen, Suchen und anderen interaktiven
Elementen.

Da sich eine Webseite häufig stark von einer normalen Software auf dem
Computer unterscheidet, lassen sich Software-Usability-Weisheiten nicht
einfach auf Webseiten übertragen. Wie man dennoch zielgerichtet auf
Benutzer eingeht und deren Erwartungen erfüllt, ist Aufgabe
der Web-Usability.

Eine Teilmenge des Oberbegriffs Usability ist die Barrierefreiheit
(englisch Accessibility). Diese beschreibt Techniken und
Maßnahmen, die auch behinderten Personen die
Benutzung einer Webseite ermöglichen. Darunter zählen Dinge wie eine
geschickte Farbwahl, sinnvolle Kontraste, aber auch der gezielte Einsatz
von Bildern nur an Stellen, wo sie nötig sind.

XHTML erlaubt zudem die
Trennung von Layout und Inhalt, die man der Barrierefreiheit zuliebe
stets beachten sollte. Gültiger, valider Quellcode ist
Voraussetzung dafür, dass jeder Browser (und damit jeder Besucher) Ihre
Webseite problemlos bedienen kann. Denken Sie auch an blinde Menschen,
die die Inhalte Ihrer Seite vorgelesen bekommen müssen: Wenn Sie die
Navigation nicht speziell hervorheben, kann es sein, dass dem Benutzer
diese beim Vorlesen vorenthalten wird.

Serendipitys Standard-Templates versuchen so barrierefrei wie
möglich zu sein und bei der Usability auf klare Strukturen zu achten.
Erfahrungsgemäß ist dies bei einem Open-Source-Projekt recht schwer, da
meist nur Programmierer und erfahrene Benutzer am Werk sind, die keinen
Wert auf einfache Zugänglichkeit legen. Serendipity hat hier im Laufe der
letzten Jahre sehr stark zugelegt und ist daher für eine barrierefreie
Zukunft bestens gerüstet. Wie Sie diese in Ihrem Blog letztlich selber
umsetzen, wird ab Seite Anpassungen ausführlich
besprochen.

1.4.12 - BBCode, Textile, Markup und Textformatierung

BBCode, Textile, Markup und Textformatierung

Üblicherweise werden Blog-Artikel in HTML-Syntax formatiert. Da HTML
jedoch gerade für Anfänger nicht ganz trivial ist, gibt es mehrere
Standards, die das Ziel einfacher Textformatierung verfolgen. Solche
Standards, darunter
BBCode [*] \cmd{http://www.phpbb.com/community/faq.php?mode=bbcode} oder Textile [*] \cmd{http://txstyle.org/} bieten
eigene Tags (also Formatierungsmarker) an, die ein System wie
Serendipity später in
HTML-Format konvertiert.

BBCode basiert auf in Foren üblichen Markierungen:
[b]text[/b] formatiert zB. das Wort text fett. Alle Tags
werden in eckigen Klammern geschrieben;
Vereinfachungen wie [URL=http://www.google.com]Google[/url]
erlauben es, relativ einfach Links zu setzen.

Serendipity bietet für alle bekannteren Markups Plugins an, so dass auch
Kommentatoren zu einem Blog-Eintrag auf diese Syntax zugreifen können.
Die direkte Eingabe von HTML ist bei Kommentaren nicht möglich, daher
stellen solche Plugins die einzige Möglichkeit der Formatierung dar.

1.4.13 - WYSIWYG

WYSIWYG

Eine weitere Möglichkeit, die Redakteuren die Eingabe von Text
erleichtert, ist der sogenannte WYSIWYG-Modus: What You See
Is What You Get
.
JavaScript-Module erstellen im
Webbrowser ein Texteingabefeld. Dieses enthält
Formatierungsbuttons ähnlich wie bei OpenOffice bzw. Microsoft Word, die
es erlauben,
die Farbe oder den Schriftstil zu ändern, per
Drag&Drop Texte und eingebundene Bilder zu verschieben oder
Tabellen einzufügen.

Ein Nachteil solcher WYSIWYG-Komponenten ist der, dass sie komplett im
Browser ablaufen und daher stark vom eingesetzten Browser abhängen.
Gerade zwischen Internet Explorer und Mozilla Firefox gibt es hier öfters
große Unterschiede, was Kompatibilitätsprobleme nach sich zieht. Da die
WYSIWYG-Editoren die Umformung in HTML selbständig vornehmen
müssen, führt dies oft zu Problemen mit unsauberem bzw. kaputtem HTML.

Trotz des Fortschritts im Web 2.0 sind solche Probleme immer noch nicht
Browser-übergreifend gelöst, so dass Benutzer
von WYSIWYG-Komponenten oft Einschränkungen hinnehmen müssen. Serendipity selbst
ermöglicht die Einbindung freier WYSIWYG-Module wie
tinyMCE [*] \cmd{http://tinymce.moxiecode.com/},
Xinha [*] \cmd{http://xinha.webfactional.com/} und
CKEditor / FCKEditor [*] \cmd{http://ckeditor.com/}.

Serendipity wird seit Serendipity 2.0+
standardmäßig mit dem WYSIWYG-Editor CKEditor [*] \cmd{http://ckeditor.com/},
dem überaus erfolgreichen Nachfolger des FCKeditor ausgeliefert. Dieser Editor läuft problemlos mit allen aktuellen
Browsern (Chrome, Firefox, Internet Explorer, Firefox, Safari, etc) und wird profesionell und aktiv weiterentwickelt.
Er hat sich mittlerweile zum quasi-Standard der HTML Editoren am Markt entwickelt. In Serendipity ist er
als Core Editor aus Kompatibilitätsgründen ebenfalls im /htmlarea Ordner angesiedelt.
Außerdem existiert noch das CKEditor-Plugin, das immer die neueste Version mit leichter Zeitverzögerung
mitbringt und zB auch über ein eingebautes Codesnippet Tool verfügt, mit dem sehr leicht und einfach Code-Beispiele
in den Eintrags Text gegossen und schon gleich farblich herausgehoben dargestellt werden können.
Im Grunde ist es damit unnötig geworden irgendein anderes WYSIWYG-Editor-Plugin einzusetzen,
wenn nicht absolut wichtige persönliche Präferenzen dafür sprechen.

1.4.14 - Widgets, Nuggets, Blogroll

Widgets, Nuggets, Blogroll

Viele Webservices erlauben es, ihre Dienste mit einem
einfachen Code-Schnipsel auf der eigenen Seite einzubinden. Beliebte
Beispiele dafür sind zB. Google AdSense, das aktuelle Wetter, die
letzten Flickr-Bilder und vieles mehr. Solche eingebundenen Schnipsel
bezeichnet man als Widgets oder Nuggets/Klötze; sie lassen sich
auch bei Serendipity leicht ins eigene Blog einbauen.

Ein Beispiel für ein Widget ist die sogenannte Blogroll. Dies ist
letztlich nichts anderes als eine Liste von Blogs, die man persönlich
liest oder als empfehlenswert betrachtet. Sie erlaubt es zB.,
den eigenen Freundeskreis virtuell zu präsentieren.
Durch Blogrolls werden die Leser eines Blogs auch auf thematisch ähnliche oder
sozial verbundene Blogs aufmerksam. Kein unwichtiges Feature, wenn man
bedenkt, dass sich die Popularität
häufig verlinkter Blogs in Suchmaschinen steigert.

1.5 - Templates, Themes und Styles

Templates, Themes und Styles

Alles, was der Besucher eines Blogs sieht, entspringt einem
zentralen Layout. Die Begriffe Template, Theme, Style
undLayout sind im Kontext von Serendipity grundsätzlich synonym und
bezeichnen lediglich eine Ansammlung von Dateien, die später in HTML-Code
und Design übersetzt werden.
Der HTML-Code eines Templates enthält Platzhalter (sogenannte
Smarty-Variablen), an deren Stelle später der Artikeltitel, -text oder
andere dynamische Inhalte erscheinen.

1.6 - Spam, Bots, Captcha

Spam, Bots, Captcha

Mit zunehmendem kommerziellen Gewicht des Internets ist es attraktiv, für
Webseiten auf so vielen Partnerseiten wie möglich zu werben. Sobald der
"Partner" aber mit Werbung bombardiert wird oder diese unfreiwillig
zB. in Form von Gästebucheinträgen und Kommentaren zu redaktionellen
Inhalten erhält, spricht man gemeinhin von Spam. Dabei helfen
automatisierte Systeme (Bots) den Spammern, ihre Werbung möglichst
vielfältig und schnell auf fremde Webseiten zu schleusen. Wie beim
Medium E-Mail, in dem mehr als zwei Drittel aller weltweit versandten E-Mails
unerwünschte Werbemails sind, geht man bei Foren und Weblogs davon
aus, dass eine ähnlich hohe Quote von Beiträgen aus automatisiertem (und teilweise
abgewehrtem) Spam besteht.

Software kann nur sehr schwer unterscheiden, ob der Textbeitrag
eines Besuchers "echt" ist oder von einem automatischen System stammt.
Aufgrund der Funktionsweise des Internets ist es nicht möglich
herauszufinden, ob ein Aufruf einer Webseite von einem Menschen oder von
einer Maschine stammt. Daher beschäftigen sich die meisten Techniken zur
Spamabwehr damit, diesen Unterschied herauszuarbeiten.

Schon in den Anfangszeiten der Informatik postulierte der Mathematiker Alan
Turing, wie sich Mensch und Maschine unterscheiden lassen:
Bei Turing-Tests setzt man Abfragetechniken ein, die die Interaktion eines
Menschen erfordern: Er soll logische Aufgaben lösen, Farben oder Bilder
analysieren etc. - alles Dinge, die eine Maschine nach heutigem
Forschungsstand nicht können sollte.

Eine gebräuchliche Form dieses Tests nennt sich CAPTCHA (Completely
Automated Public Turing Test to tell Computers and Humans Apart
).
Captchas nutzen Grafiken mit einer Zahlen- oder Buchstabenkombination, die
häufig noch dazu visuell verfremdet dargestellt wird. Der vor dem Rechner sitzende Mensch soll
diese identifizieren
und eingeben. Nur wenn die eingetippten Zeichen mit denen auf dem Bild
übereinstimmen, gilt eine Nachricht nicht als Spam.

Ein großes Problem dieser Grafiken ist der höhere Performancebedarf
sowie die Tatsache, dass sehbehinderte Menschen
bei der Entzifferung oft Probleme haben. Auch sind Bot-Entwickler nicht
untätig und haben mittels Schrifterkennung per OCR [*] \emph{Optical
Character Recognition}
große
Fortschritte gemacht, so dass sie geläufige Captchas doch automatisiert entziffern
können.

1.7 - RDF, Semantic Web, Mikroformate

RDF, Semantic Web, Mikroformate

Schon heute lässt sich die Datenflut des Internets kaum bewältigen, noch
ist sie annähernd überschaubar. Volltextsuchmaschinen sind normalerweise
nicht in der Lage, die im Web publizierten
Texte anhand der üblichen grammatikalischen Syntax miteinander in Beziehung
zu bringen. Um
dieses Problem zu beseitigen, wurde die Initiative des Semantic
Web
(Semantisches Internet) gegründet. Diese entwarf eine Syntax namens
RDF (Resource Description Framework) auf Basis der XML-Regeln.
RDF-Anweisungen lassen sich in XHTML-Daten einbetten und
repräsentieren Metadaten (etwa Bildunterschriften, thematische
Eingrenzungen, Querverbindungen ...) zu einem gegebenen Dokument.

Anhand der Metadaten können Suchroboter und andere Webservices Seiten leichter
analysieren und gewichten. Je mehr Metadaten verfügbar sind,
desto engmaschiger lassen sich alle Informationen des Internets
miteinander verknüpfen - und das nun auch nicht mehr nur einseitig.

Zum heutigen Zeitpunkt ist die Erfassung von Metadaten eine recht
aufwändige Sache und obliegt dem Redakteur eines Textes. Daher sind
brauchbare RDF-Metadaten noch recht wenig verbreitet und
beschränken sich auf sogenannte Mikroformate.
Darunter versteht man Abwandlungen des RDF-Standards oder einfacher:
XML-Attribute, die ein Dokument um spezialisierte Metadaten ergänzen,
zB. um Visitenkarten, Kalenderdaten oder Produktbewertungen.

1.8 - Tagging

Tagging

Häufig handelt es sich bei Blogs um lose Artikelsammlungen, die der Autor mal mehr
und mal weniger miteinander in Bezug gesetzt hat. Klassischerweise
wurden Artikel thematisch ausschließlich festen Kategorien
zugeordnet. Damit stand der Redakteur vor dem Problem, sich bereits von
vornherein Gedanken über eine hierarchische Struktur seiner zukünftigen
Texte machen zu müssen.

Aus dieser Not heraus wurde das Tagging erfunden: Einem Artikel
lässt sich so dynamisch eine beliebige Menge an Stichwörtern zuordnen.
Mit deren Hilfe kann sich ein Benutzer zu Artikeln
weiterführen lassen, die dasselbe Stichwort tragen. Das geht zB. über
Tagwolken, also
Übersichten der meistgebrauchten Tags,
die häufig durch unterschiedliche Schriftgrößen gewichtet werden.

Gerade im Kontext von Foto-Providern wie Flickr ist Tagging sehr
sinnvoll. Ein Bild einer starren Hierarchie zuzuordnen bedeutete viel
Arbeit, ohne zwingend für mehr Übersicht zu sorgen.
Anhand der Stichwörter jedoch kann man
zügig auch andere Bilder mit ähnlichem Kontext auffinden, zB. weitere
Fotos, die mit dem Begriff
"Hochzeit" verkettet sind.

1.9 - Wiki

Wiki

Der Begriff Wiki steht für eine offene Webseite, auf der sich
Informationen von vielen Benutzern gleichzeitig zusammentragen lassen.
Mittels Versionierung und Protokollierung werden unterschiedliche Bearbeitungen
hervorgehoben und miteinander kombiniert.

Zum großen Erfolg der Wikis trug ihre einfache Syntax bei. Anstelle
komplizierter HTML-Regeln beschränken sich
Wiki-Anwendungen auf einfache Auszeichnungen (die je nach Software jedoch
variieren können). Beispielsweise lässt sich ein Wort durch Einschließen in
Sternchen (*) fetten.

Das zentrale Problem von Wikis ist der Vandalismus ihrer Benutzer --
die Freiheit in einer kollaborativen Umgebung können Einzelne
ausnutzen, indem sie destruktive Änderungen vornehmen, was zu hohem
Moderationsaufwand führt.
Gerade im Bereich des freien Wissensmanagements (Stichwort
Wikipedia) hat sich
eine solche Form der technisch lockeren Zusammenarbeit jedoch
bewährt.

1.10 - AJAX

AJAX

Eine Technologiekomponente, die das Web 2.0 nachhaltig verändert hat,
wird unter dem Schlagwort AJAX (Asynchronous Javascript and XML)
geführt. Letztlich handelt es sich dabei
um eine einfache Form von JavaScript, die XML als Basis für Variablen
und Daten verwendet. Innerhalb des Browsers können in dieser Sprache geschriebene Skripte mit
Webservices kommunizieren und so Webseiten weiter dynamisieren. Setzte
früher jede Aktion auf einer Webseite das Ausfüllen und Absenden von Formularen
voraus, können nun auch Aktionen ausgeführt werden, ohne dass
der Benutzer merkt, dass neue Komponenten nachgeladen werden.

Dies bringt Web-Anwendungen den gewohnten Desktop-Anwendungen um einiges
näher, stellt jedoch auch höhere Anforderungen an Programmierer und
Clients und führt zu neuen Arten von Sicherheitslücken.

1.11 - Pod- und Vodcast

Pod- und Vodcast

Dass Internet-Surfer über ständig höhere Bandbreiten verfügen, schafft den
wachsenden Bedarf an Multimedia-Inhalten. Webseiten (und damit auch Blogs)
lassen sich um Videos oder Audio-Dateien ergänzen, die im Browser
automatisch abgespielt werden. Da Videos und
Audio-Dateien auch in die RSS-Feeds der Blogs eingebunden werden können, die
MP3-Player wie Apples iPod automatisch importieren,
spricht man hier von Podcast (Audio) oder Vodcast (Video).

1.12 - Moblogging

Moblogging

Das mobile Bloggen via Handy oder PDA bezeichnet man als Moblogging.
Auf Reisen hat man meist keinen Zugriff auf einen normalen Webbrowser. Um
dennoch Inhalte in einem Blog publizieren zu können, gibt es die
Möglichkeit, eine E-Mail an das eigene Blog zu schicken, die
automatisch als Beitrag veröffentlicht wird. Auch gibt es inzwischen
mobile XML-RPC-Anwendungen, die über eine GPRS/UMTS-Verbindung direkt auf
das Blog zugreifen.

1.13 - (Hyper-)Links, URLs und Permalinks

(Hyper-)Links, URLs und Permalinks

Ein Hyperlink (Kurzform: Link), umgangssprachlich auch Verknüpfung oder
Verweis genannt, gibt die Fundstelle eines Dokuments im Internet an
und erlaubt es so, verschiedene Dateien miteinander zu vernetzen.

Das Konzept ähnelt Querverweisen oder
Fußnoten bei einem Buch: Zeigt Ihnen Ihr Browser einen speziell markierten
Begriff in einer HTML-Seite, können Sie
durch dessen Anwahl zur referenzierten Internetseite springen. Erst durch
diese Verweise werden die Dateien unterschiedlicher Webserver miteinander
in Verbindung gesetzt und stellen dadurch das
ursprüngliche Kernkonzept der HTML-Auszeichnungssprache dar.

Den Begriff Link benutzt man oft als Synonym für den Fachbegriff
URL (Uniform Resource Locator).
Was sich so kompliziert anhört, ist das, was Sie üblicherweise unter dem
Namen Internetadresse bereits kennen. Diese beschreibt, auf welche
Art und Weise (das heißt: über welches Protokoll, siehe Seite
Protokolle) und von welchem Rechner sich das Dokument beziehen lässt
(http://www.ebay.de, http://www.example.com). Oft enthält sie
zudem Pfadangaben/Dateinamen wie in http://www.s9y.org/12.html.

Außer den URLs gibt es noch die URIs (Uniform Resource)
Deren Definition geht über die der URLs hinaus. Eine URI kann sogenannte
URL-Variablen
enthalten, die nicht Bestandteil einer URL sind. Sie werden
üblicherweise von einem ?-Zeichen eingeleitet und sind mittels
& voneinander getrennt. In vielen Fällen ist der Unterschied
zwischen URL und URI für Sie als Leser unerheblich, und oft wird von einer
URL gesprochen, wenn man fachlich eigentlich URI sagen
müsste. Als Merksatz gilt: Sobald an eine URL Variablen
angehängt sind, muss man von einer URI sprechen.

Ein Permalink ist eine spezielle URL, die den Inhalt eigentlich dynamischer
Webseiten permanent "eingefroren" zugänglich macht.
Bei deren Aufruf erhält
ein Besucher immer dieselbe Seite, egal, wann er sie aufruft. Obwohl sich
Übersichtsseiten aufgrund des chronologischen Bezugs bei jedem neuen
Blogeintrag ändern, erlaubt es ein Permalink,
Artikel eindeutig zu identifizieren und immer wieder aufrufen zu können.

Permalinks können in Serendipity nach Benutzervorgabe formatiert werden
und unterschiedliche Prä-/Postfixe aufweisen (siehe Seite
Permalinks-Frontend).

1.14 - Suchmaschinenoptimierung

Suchmaschinenoptimierung

Der Bereich der Suchmaschinenoptimierung (kurz SEO für Search Engine
Optimization
) ist ein sehr weites Feld. Um Ihre Webseite möglichst weit oben in den
Suchergebnissen von Google und Co. erscheinen zu lassen (ihnen also ein
hohes Ranking zu verschaffen), gibt es einige
Tricks und Kniffe und vor allem auch Konzeptionelles zu beachten.

Webseiten werden heutzutage fast automatisch von allen Suchrobotern
gefunden. Jeder Link, der auf Ihre Seite führt, gibt dieser mehr
Gewicht bei der Berechnung des Page Rank bei Google [*] Andere
Suchmaschinen wie Yahoo benutzen vergleichbare Algorithmen, die ähnlich wie die
Rezeptur eines schwarzen Zuckergetränkes als Firmengeheimnis gelten und
Grund vieler Spekulationen sind.
. Die Begriffe, die Sie auf
Ihren Unterseiten angeben, werden jeweils verschlagwortet und erscheinen in
Abhängigkeit von der Gewichtung
an oberer oder unterer Stelle in der Liste entsprechender Suchmaschinenergebnisse.

Serendipity kann Ihnen teilweise bei der Suchmaschinenoptimierung
helfen. Durch sprechende URLs (siehe Seite
mod-rewrite) lassen sich Artikeltitel mit in die URL aufnehmen,
was die Gewichtung erhöht. Die Verwendung korrekt
verschachtelter Überschriften innerhalb der HTML-Seite und eine gültige
HTLM-Syntax steigern die Effektivität eines Suchroboters. Weiterhin gibt
es Plugins, mit denen Sie Kreuzverkettungen zu ähnlichen Artikeln in Ihrem
Blog erstellen können (siehe Seite freetag) oder auch eine spezielle
Google-Sitemap-Datei (siehe Seite googlesitemap) anlegen.

Letzten Endes zählt aber auch die Strukturierung Ihrer Artikeltexte sehr
viel. Die Verteilung der (Schlüssel-)Wörter
ist ebenso wichtig wie die Benutzung von Wörtern, die Ihre Besucher
womöglich zu einem Thema erwarten. Nicht unwichtig kann der Aufbau
eines Partner-Netzwerks sein, da Verlinkungen auf Ihre Seite den
Page Rank erhöhen. Hier wird jedoch auch viel unseriöse
Geschäftemacherei betrieben. Hüten Sie sich also vor Tricks, die womöglich
ins Gegenteil umschlagen können.

Letztlich erhalten Sie gute Suchmaschinenergebnisse nur dann, wenn Sie
für Ihre Besucher interessante Texte oder Services anbieten. Alle
anderen technischen Kniffe nutzen Ihnen nichts, wenn die Besucher
herausfinden, dass Ihre Webseite nicht das hält, was sie durch eine
Suchmaschine verspricht.

1.15 - Protokolle: HTTP, FTP, SSH

Protokolle: HTTP, FTP, SSH

Im Internet gibt es eine beinahe unendliche Zahl verschiedener
Protokolle, die Regeln
definieren, nach denen Rechner, Anwendungen und Server miteinander
kommunizieren. Im Zusammenhang mit Serendipity sind folgende
Protokolle von Belang:

  • HTTP, das Hypertext Transfer Protocol,
    ist sicherlich das geläufigste, denn Sie
    verwenden es bei jedem Abruf einer Internetseite. Erkennbar ist dies
    daran, dass die meisten URLs, die Ihr Webbrowser anzeigt, ein vorgestelltes
    http:// enthalten. Über dieses Protokoll überträgt der
    Webserver ein Dokument an den eigenen Computer, wobei der Webbrowser als
    Empfänger dient.
    Die Sonderform https tritt auf, wenn ein Webserver eine sichere,
    verschlüsselte Verbindung zur Datenübertragung nutzt. Dabei kommt das
    Protokoll SSL (Secure Socket Layer) zum Einsatz, so dass die
    übertragenen Daten durch den Einsatz von Zertifikaten ausschließlich vom Server
    und vom Client entschlüsselt werden können. Bei http ist es grundsätzlich
    möglich, dass auch andere Benutzer oder Proxies die Übertragung
    belauschen können.
  • Obwohl auch HTTP als Protokoll zum Dateitransfer dient und mittlerweile oft
    dafür eingesetzt wird, gibt es ein noch spezielleres (und älteres)
    Protokoll für den
    Dateiaustausch: das File Transfer Protocol FTP. Dieses Protokoll ermöglicht nicht nur den
    Empfang (Download), sondern auch ein Senden von Dateien
    (Upload).
  • Im Gegensatz zu grafischen Betriebssystemen wie Windows kann Unix
    komplett mit textbasierten Befehlen gesteuert werden, was sich
    gerade im Einsatz als Webserver als große Erleichterung herausgestellt
    hat. Das geht auch ferngesteuert übers Netz, am besten über einen
    abgesicherten SSH-Zugang.[*] SSH steht für \emph{Secure Shell}; mit
    Shell bezeichnet man ein Programm, das die interaktive Steuerung
    über Textbefehle ermöglicht.
    Diese Zugriffsmöglichkeit auf einen Server bezeichnen viele Leute irrtümlicherweise auch
    als root-Zugang. Den hat man aber nur, wenn man über das Login
    (meist als User root) volle Zugriffsrechte für den Server bekommt.
    SSH-Zugang ist aber auch mit reduzierten
    Zugriffsrechten (als unprivilegierter Nutzer) möglich.
    Web-Provider bieten selten SSH-Zugang an.
    Häufig steht ausschließlich FTP und HTTP zum Zugriff auf
    einen Server zur Verfügung. Die Bedienung einer SSH-Konsole setzt zudem
    einiges an Fachkenntnissen voraus, die wir in diesem Buch nicht
    vermitteln können. Dennoch wird an Stellen, wo SSH-Zugriff die Arbeit
    erleichtert, auf diesen eingegangen.
1.16 - Frontend, Backend, Admin-Oberfläche

Frontend, Backend, Admin-Oberfläche

Bei vielen Web-Anwendungen unterscheidet man zwischen
Frontend und Backend. Vereinfacht ausgedrückt ist ein
Frontend all das, was der Besucher einer Webseite sieht. Als Backend oder
Admin-Oberfläche
bezeichnet man das, was ein Redakteur oder Administrator nach einem Login in
den geschützten Bereich sehen kann.

 

1.17 - Cookies und Sessions

Cookies und Sessions

Da HTTP ein verbindungsloses Protokoll ist, "vergisst" der
Webserver nach jedem Zugriff, was der Benutzer beim
vorigen Aufruf getan hat.
Das ist besonders bei dynamischen Web-Anwendungen ärgerlich, da man
sich normalerweise bei jeder Aktion erneut einloggen müsste. Als
rettenden Kniff gibt es
das Konzept der Sessions oder Sitzungen.

Webbrowser besitzen einen kleinen Datenspeicher. Dort kann ein Webserver
den Browser anweisen, eine kleine Datenmenge auf der eigenen Festplatte
zu speichern. Diesen kleinen Datensatz nennt man Cookie. Er
wird meistens dazu eingesetzt, einen Besucher eindeutig
zu identifizieren, so dass er autorisierte Aktionen
ausführen kann. Cookies haben einen schlechten Ruf erworben, da viele
Werbetreibende sie dazu benutz(t)en, ihre Werbe-Zielgruppe
eindeutig wiederzuerkennen und Statistiken über deren Nutzerverhalten zu
sammeln. Auch besteht oft die Angst, dass ein Webserver so auf die eigene
Festplatte zugreifen könnte.

Diese Furcht ist normalerweise unbegründet. Fast alle Browser ermöglichen
es Ihnen, Cookies nur von vertrauenswürdigen Quellen und nur
im Bedarfsfall anzunehmen oder abzuweisen. Serendipity
benötigt solche Cookies ebenfalls für das Frontend und das Backend, daher
muss der Webbrowser so eingestellt werden, dass er Cookies annimmt.

Um Nutzeraktionen als zusammengehörige Session zu
erkennen, speichert Serendipity eine einfache
Zufallskombination aus Buchstaben und Zahlen, die Session-ID, als
Cookie im Browser des Besuchers.
Bei jedem Folgeaufruf überträgt dieser die ID zurück an den Server, der
damit den
Besucher identifizieren und zuvor gesetzte
Variablen (die Sessiondaten) wiederherstellen kann. Sessiondaten werden
auf dem Server gespeichert und nicht in Cookies, so dass der Nutzer sie
nicht beliebig verändern kann.

Eine Sitzung ist zeitlich begrenzt. Das heißt, dass nach einem gewissen
Timeout die Sessiondaten auf dem Server (automatisch) gelöscht
werden und keinen unnötigen Speicherplatz beanspruchen.

1.18 - Parsen und Kompilieren

Parsen und Kompilieren

Der englische Begriff to parse beschreibt das maschinelle, automatisierte
Auslesen einer Datei. Bei diesem Vorgang interpretiert ein Parser etwaige Platzhalter und
Instruktionen (Schleifen, Bedingungen ...).

Die Smarty-Templatedateien enthalten allesamt Anweisungen, die erst nach diesem
Vorgang des Parsens gültige HTML-Ausgaben enthalten.

Alternativ bezeichnet man diesen Vorgang auch als Kompilierung (von englisch: to
compile
). PHP selbst stellt eine interpretierende
Skriptsprache dar, die erst nach der Interpretation der
PHP-Funktionen und -Anweisungen einen maschinenausführbaren Code zurückliefert.

Kapitel 2: Einrichtung / Installation

Die folgenden Installationsanweisungen sind bewusst sehr ausführlich
gehalten, um auch Anfängern den Einstieg zu ermöglichen. Fortgeschrittene
Anwender finden eine Zusammenfassung
im Abschnitt Schnelle Installation auf Seite
Schnelle Installation.

 

2.1 - Wahl der Waffen

Wahl der Waffen

Um Serendipity voll auszunutzen, benötigt
man einiges an Zusatzsoftware, als Erstes
ein Programm, um Dateien (und auch
Serendipity selbst) auf den eigenen Server hochzuladen. Üblicherweise
geschieht dies mittels eines FTP-Programmes, in manchen Fällen aber auch
per SSH bzw. SFTP [*] siehe Abschnitt Protokolle auf Seite
Protokolle
. Sollten Sie FTP einsetzen, empfiehlt sich ein
Programm, das mit Threads [*] \emph{Threading} wird von FTP-Programmen benutzt, um mehrere gleichzeitige Verbindungen zu
einem Server aufzubauen.
umgehen kann, was den Upload vieler
kleiner Dateien beschleunigt. Für Windows ist
SmartFTP [*] \cmd{http://www.smartftp.com/} für solche Zwecke
empfehlenswert. Weiterhin sollte das FTP-Programm auch ermöglichen,
Dateirechte mit dem Befehl chmod zu ändern.

Zum Entpacken von Serendipity benötigen Sie ein Programm wie 7-Zip oder
Winzip oder entsprechende Kommandozeilen-Tools in einer
Linux-Umgebung.

Um das Blogsystem zu bedienen, benötigen Sie selbstverständlich einen
Webbrowser. Serendipity läuft mit allen gängigen Webbrowsern (Mozilla
Firefox, Internet Explorer, Opera, Safari) auch älterer Generation, da
JavaScript/Ajax nur im Bedarfsfall verwendet (aber nicht benötigt) wird.
Um später leicht Änderungen an Ihrem Layout durchzuführen, empfiehlt der
Autor
den Einsatz von Mozilla Firefox und die Installation der Extensions
"Firebug" [*] \cmd{http://www.getfirebug.com/} und
"Web-Developer" [*] \cmd{https://addons.mozilla.org/de/firefox/addon/60}.
Mittels dieser beiden Erweiterungen können Sie Designänderungen direkt in der
Browser-Ansicht testen. Dies erleichtert die
Template-Erstellung ungemein.

Mit den, seit dem Erscheinen dieses Buches, stark vorangetriebenen Entwicklungen der gängisten Browser,
(Mozilla Firefox, Google Chrome, Apple Safari, und MS Internet Explorer IE),
sind solche Erweiterungen über die Jahre eigentlich unnötig geworden, da heutzutage alle großen Browser von Hause aus geeignete Developer-Tools
(meist unter der Tastatur-Taste [F12] erreichbar [*] Das ist natürlich spezifisch in verschiedenen Browsern auf verschiedenen Betriebssystemen.
Zum Beispiel wäre das gleiche auf OS X in Chrome so [⌥ + ⌘ + J] zu erreichen.
) mitbringen,
die die genannten Änderungen spielerisch einfach "am lebenden Objekt" einer Webseite ermöglichen. [*] \cmd{https://developer.mozilla.org/en-US/docs/Tools}
\cmd{https://developer.chrome.com/devtools}

Zur Verwaltung von Datenbanken und Tabellen gibt es zahlreiche
SQL-Anwendungen. Bei der Benutzung von MySQL ist das Web-basierte
phpMyAdmin [*] \cmd{http://www.phpmyadmin.net/} sehr zu empfehlen,
für PostgreSQL gibt es analog
phpPgAdmin [*] \cmd{http://phppgadmin.sourceforge.net/} und für
SQLite
phpSQLiteAdmin.[*] \cmd{http://www.phpguru.org/static/phpSQLiteAdmin.html} Die Installationsanleitung für diese Web-Anwendungen schlagen Sie bitte auf den
jeweiligen Projekt-Webseiten nach.

 

2.2 - Installation

Installation

Im Folgenden gehen wir davon aus, dass Sie entweder
selbständig einen Webserver mit PHP und Datenbanken eingerichtet haben
oder von einem Dienstleister einen entsprechend aufgesetzten Webserver
bereitgestellt bekommen.

Dort müssen Sie Serendipity unterhalb des
Document Root (siehe Seite DocRoot) ablegen.
Im Folgenden nennen wir dieses Verzeichnis exemplarisch
/var/www/example.com.
Alle Angaben, die diesen Pfad enthalten, müssen Sie auf Ihre
individuellen Gegebenheiten anpassen.

Sie werden Serendipity in einem Unterverzeichnis dieses Stammpfads
installieren, so dass Sie das Blogsystem später über die URL
http://www.example.com/serendipity/ aufrufen können. Ob Sie dieses
Unterverzeichnis ebenfalls serendipity nennen, bleibt Ihnen
überlassen - es darf auch
blog, tagebuch oä. heißen. Sie sollten jedoch Sonderzeichen
wie den Unterstrich (_) sowie Zahlen am Anfang oder Ende des
Verzeichnisnamens vermeiden, da dies zu Problemen mit
Serendipitys dynamisch generierten URLs führen kann.

Sie können Serendipity natürlich auch direkt ins Stammverzeichnis selbst
installieren. Beachten Sie jedoch dabei, dass dadurch
die Installation anderer Software, etwa eines Forums oder eines
Statistikprogramms,
schwieriger werden könnte, wenn die URL-Umformung aktiviert wurde und
Serendipity direkte Zugriffe auf Unterverzeichnisse möglicherweise als eigene
Seitenausgabe auffasst.

2.2.1 - Upload der Dateien

Upload der Dateien

Das Serendipity-Paket bekommen Sie entweder von der
Projekt-Webseite http://www.s9y.org/ im Bereich
Downloads oder direkt von der SourceForge-Projektseite.[*] \cmd{http://sourceforge.net/project/showfiles.php?group_id=75065}

Auf beiden Seiten finden Sie sowohl die aktuellste Ausgabe
als auch Beta- und ältere
Versionen und die täglichen Snapshots. Obwohl es sich bei Letzteren
um die tagesaktuellen Entwicklerversionen handelt, sind diese bei Serendipity
gewöhnlich sehr stabil. Neben den vollständigen
Installationspaketen gibt es zu einigen Releases auch sogenannte
LITE Releases. Diese enthalten nur das Standard-Template
und sind mit etwa 3MB etwas kleiner als die anderen Pakete, die ca. 5MB
umfassen.

Außerdem können Sie die Pakete in mehreren Archivformaten
herunterladen: als zip-Datei sowie als bzip2
(Dateinamensendung tar.bz2) oder
gzip (Dateinamensendung tar.gz) gepackten
Tarball. Alle drei Varianten enthalten die gepackten
PHP-Dateien, die Sie auf Ihren Webserver hochladen müssen. Für
Windows-Benutzer ist das zip-Archiv am einfachsten zu handhaben,
unter Unix empfiehlt sich der Tarball.

Falls Sie via ssh direkten Shellzugriff auf Ihren Webserver haben,
laden Sie das Paket mittels wget ohne Umwege direkt auf den Server
und entpacken es
mit einem Kommandozeilen-Programm:


    user@server:~# cd /var/www/example.com/
user@server:~# wget "http://downloads.sourceforge.net/php-blog/serendipity-1.3.tar.gz?use_mirror=mesh"
[...]
user@server:~# tar -xvzf serendipity-1.3.tar.gz
[...]

Anderenfalls laden Sie das Paket auf Ihren
eigenen Rechner und entpacken es dort mit einem geeigneten Programm
in ein temporäres
Verzeichnis. Aus diesem Ordner heraus laden Sie alle Dateien und
Unterverzeichnisse des entpackten
serendipity-Unterverzeichnisses mit allen Dateien mittels
FTP-Programm auf Ihren Webserver.

Achten Sie beim Aufspielen der Dateien unbedingt darauf,
dass der Transfer nicht an einer Stelle abbricht oder fehlschlägt.
Teilweise hochgeladene Dateien können Serendipity
unbenutzbar machen. Da insgesamt mehrere hundert kleine Dateien
hochgeladen werden, empfiehlt es sich, im FTP-Programm die Benutzung
sogenannter Threads zu aktivieren. Damit öffnet es mehrere
parallele FTP-Verbindungen und lädt die Dateien so schneller hoch.
In jedem Fall sollten Sie sorgfältig auf etwaige Fehlermeldungen achten.

2.2.2 - Einrichten der Verzeichnisse

Einrichten der Verzeichnisse

Nach dem Upload finden Sie auf Ihrem Webserver
im Verzeichnis serendipity
einige Dateien mit .php-Endung (index.php,
comment.php, serendipity_admin.php ...) sowie einige
Unterverzeichnisse (bundled-libs, docs, htmlarea,
include, lang ...).

Um Zugriffsrechte auf einem Server zu verwalten, bedienen sich sowohl
Windows- als auch Linux-Systeme sogenannter Eigentümer- und
Gruppenrechte. Jeder Benutzer des Systems kann Dateieigentümer
und jeder Eigentümer kann Mitglied einer oder mehrerer
Benutzergruppen sein.

Jede Datei (und jedes Verzeichnis) auf einem Server ist einem Eigentümer
und einer Gruppe zugewiesen. Für beide wird der Zugriff auf eine Datei
über ein Zugriffs- (oder Ausführbarkeits-), Lese- und Schreibrecht geregelt. Meist hat ein
Eigentümer die vollen Rechte an einer Datei: Er kann sie ansehen, ändern
und löschen. Die anderen Mitglieder derselben Benutzergruppe können
jedoch abweichende Rechte haben, so dass sie die Datei nur
ansehen, aber nicht verändern dürfen. Zudem muss noch
geregelt werden, welche Zugriffsrechte Benutzer haben, die weder
Eigentümer noch Gruppenmitglieder sind. Auch für diese
"anderen Benutzer", also den "Rest der Welt", werden
Zugriffs-, Lese und Schreibrecht aufgeteilt.

Wenn Sie eine Datei mittels FTP auf einen Webserver laden, tun Sie dies
(zwangsläufig) mit dem Benutzeraccount, der für den FTP-Zugriff eingerichtet
wurde. Hochgeladene Dateien werden diesem Benutzeraccount und standardmäßig
einer Gruppe zugewiesen, der Ihrem Benutzerkonto angehört. Dieses Vorgehen
stellt sicher, dass andere Benutzer, die auf demselben Server tätig sind, nicht
einfach Ihre Dateien lesen oder verändern können. Optimalerweise haben diese
keine Möglichkeit, auf von Ihnen hochgeladene Dateien zuzugreifen.

Die Webserver-Software, die die von Ihnen hochgeladenen Dateien interpretiert
und als Webseite ausliefert, läuft ebenfalls mit den Rechten eines bestimmten
Benutzers. Dieser heißt häufig www-data, wwwrun oder auch
nobody. Damit dieser Systembenutzer Software wie Serendipity ausführen
kann, muss er bestimmte Rechte an den von Ihnen hochgeladenen Dateien haben. Das
müssen Sie sicherstellen. In üblichen Konfigurationen ist Ihr Benutzeraccount
Mitglied derselben Gruppe wie der Webserver-Nutzer, die Lesezugriff auf alle
hochgeladenen Dateien hat.

Beim Hochladen von Dateien mittels FTP können Sie in diese Rechte
eingreifen. Dazu bieten viele Programme bei Rechtsklick auf eine Datei
oder ein Verzeichnis ein Menü namens Permission oder CHMOD
an (Abbildung 2.1).

Abbildung 2.1: CHMOD-Maske des FTP-Programmes FileZilla
Abbildung 2.1b: CHMOD-Über die Linux Konsole

Dort trägt man, Unix-Konventionen entsprechend, die Zugriffsrechte für
Eigentümer/Benutzer (Owner), Gruppe (Group) und Rest
(Other) ein: für jede dieser drei Nutzerkategorien eine Zahl.

Eine 0 bedeutet "kein Zugriff", eine 1 "Ausführen
möglich", eine 2 "Schreiben erlaubt" und eine 4
"Lesen erlaubt". Diese Zahlen lassen sich addieren, so dass
ein Lese- und Schreibzugriff durch die Zahl 6 angegeben wird. Für
Verzeichnisse gilt dabei, dass diese nur betreten werden
dürfen, wenn das Recht mit der Zahl 1 in der Summe enthalten ist, etwa beim
Vollzugriff mit 7.

Mit der Zugriffsmaske 777 erhält jeder Nutzer volle Zugriffsrechte auf
die betroffene Datei. Damit stellt man einfach sicher, dass sowohl der eigene
Benutzeraccount als auch der des Webservers volle Zugriffsrechte haben --
allerdings auch andere Benutzer auf demselben Server. Daher ist es besser, die
Zugriffsrechte von Dateien und Verzeichnissen so strikt wie möglich zu setzen.
Wie dies konkret bei Ihnen aussieht, klären Sie am besten mit Ihrem Provider.

Damit der Webserver Serendipity ausführen kann, benötigt er Leserechte für
alle Dateien und Verzeichnisse. Um Serendipity zu installieren, braucht
er zudem anfangs Schreibzugriff auf das Stammverzeichnis, damit er die Dateien
serendipity_config_local.inc.php und .htaccess erstellen kann.
Darüber hinaus wird das Installationsprogramm die Unterverzeichnisse
templates_c, archives und uploads zu erstellen versuchen.
Sollte es diese schon geben, müssen Schreibrechte für den Webserver-Benutzer
dafür vergeben werden. Nach der Installation benötigt der Webserver nur noch
Schreibrechte auf die genannten drei Unterverzeichnisse und zwei Dateien, den
globalen Schreibzugriff auf das Stammverzeichnis können Sie also wieder
entfernen.

Wenn Sie darüber hinaus das Spartacus-Plugin zum Download von Templates
und Plugins nutzen wollen (siehe Kapitel Spartacus ab
Seite Spartacus), müssen auch die Verzeichnisse plugins
und templates beschreibbar sein (und bleiben).

2.2.3 - Einrichten der Datenbank

Einrichten der Datenbank

Nachdem nun also alle notwendigen Dateien hochgeladen wurden und Sie die
Zugriffsrechte konfiguriert haben, müssen Sie eine Datenbank für
Serendipity einrichten.

Je nachdem, welche Datenbanksoftware auf Ihrem Webserver zur Verfügung
steht, kann dieser Vorgang unterschiedlich ausfallen.

Verwendet Ihr Webserver PHP5, ist die
Datenbank SQLite automatisch verfügbar. Dieses Datenbanksystem
speichert alle seine Datenbanken und Tabellen in einer einzigen Datei.
Diese wird im Serendipity-Verzeichnis abgelegt und während der
Installation ohne Ihr Zutun automatisch erstellt, es sind
daher keine vorbereitenden Eingriffe notwendig.

Beim Einsatz von MySQL und PostgreSQL geht Serendipity davon aus, einen
Datenbankbenutzer und eine leere Datenbank vorzufinden. Üblicherweise
erhält man die Zugangsdaten von seinem Provider,
da der Benutzeraccount bereits besteht. Manche Provider gestehen
Ihnen nur eine einzelne Datenbank zu, so dass Sie keine neuen erstellen
können. Das ist nicht weiter tragisch, da sich Serendipity problemlos mit anderen
Anwendungen innerhalb derselben Datenbank betreiben lässt. Viele
Provider bieten zudem eigene Oberflächen zur Erstellung einer Datenbank an.

Serendipity benötigt lediglich irgendeine Datenbank für seine Tabellen --
man kann also problemlos eine bereits bestehende Datenbank für die
Installation benutzen.

Sollte noch kein Datenbankbenutzeraccount bestehen, müssen Sie ihn anlegen.
Dabei ist wichtig, dass der Benutzer über alle Rechte verfügt,
die Serendipity später im Betrieb benötigt. Konkret heißt das, dass er
Tabellen anlegen (CREATE), aktualisieren (ALTER) und
indizieren (INDEX) sowie Datensätze anlegen (INSERT),
aktualisieren (UPDATE), lesen (SELECT) und löschen
(DELETE) darf.

Um für MySQL einen solchen Benutzer anzulegen, benutzt man (in einem Programm
wie phpMyAdmin, welches die meisten
Provider anbieten) folgende SQL-Syntax:


    CREATE DATABASE serendipity;
GRANT SELECT, CREATE, INSERT, UPDATE, DELETE, ALTER, INDEX ON serendipity
TO 'serendipity'@'%' IDENTIFIED BY PASSWORD 'passwort';

Diese beiden Befehle erstellen die leere Datenbank namens serendipity
und den gleichnamigen Benutzer, der die notwendigen Zugriffsrechte
erhält und sich über das Passwort passwort ausweisen muss.
Bei PostgreSQL benutzt man folgende Syntax:


    CREATE USER serendipity WITH PASSWORD 'passwort';
CREATE DATABASE serendipity WITH OWNER = serendipity;
GRANT SELECT, CREATE, INSERT, UPDATE, DELETE, ALTER ON DATABASE
serendipity TO 'serendipity'

Um die Serendipity-Installation erfolgreich durchzuführen, benötigen Sie den
Benutzernamen des Datenbanknutzers (hier serendipity), dessen
Passwort, den Namen einer leeren Datenbank und den
Namen (oder die IP-Adresse) des Datenbankservers.

2.2.4 - Die grafische Installationsroutine

Die grafische Installationsroutine

Nach diesen Vorarbeiten rufen
Sie die URL Ihrer Serendipity-Installation im Browser auf, hier also http://www.example.com/serendipity/.
Versuchen Sie nicht, eine Datei Ihrer lokalen Festplatte aufzurufen oder
eine Datei mittels FTP-Zugriff zu öffnen (zB. via Doppelklick). Dies
würde Ihnen lediglich den Quellcode der PHP-Anwendung anzeigen.
Stattdessen müssen Sie den Webbrowser einsetzen, damit Ihr Webserver die
PHP-Anwendung ausführt.

Bei korrekter Einrichtung des Webservers sehen Sie nun eine Kurzübersicht
wie in Abbildung 2.2, die
aufführt, welche Voraussetzungen der Server erfüllen muss, ehe Sie
fortfahren können.
Sollte sich diese entgegen Ihren Wünschen in englischer Sprache präsentieren,
konfigurieren Sie Ihren Browser so um, dass Deutsch die
bevorzugte Sprache darstellt.

Abbildung 2.2: Installationsbildschirm

Weist Sie die Übersicht auf einen Fehler bei den Schreibrechten oder den
Server-Einstellungen hin, beheben Sie ihn und rufen Sie
die Installationsoberfläche erneut auf. Warnungen werden mit
roter Schriftfarbe dargestellt, eingeschränkte Funktionen oder Hinweise
in Gelb; korrekte Einstellungen sind grün hervorgehoben.
Für Personen mit Farbschwächen folgt jedem gelben
Hinweis ein [?], jeder Warnung ein [!].
???

Hinweise der Installationsoberfläche zeigen dabei einen Unterschied
zwischen dem von Serendipity empfohlenen Wert und der Einstellung auf Ihrem
Webserver an. Im Gegensatz zu Fehlern können Sie Serendipity bei solchen Hinweisen aber
trotzdem betreiben, jedoch entweder mit Einbußen bei der Performance oder
Funktionalität.

Stimmen die systemseitigen Voraussetzungen, starten Sie die
Installationsoberfläche über einen der beiden
Links am Ende der Seite: Einfache Installation oder
Fortgeschrittene Installation.

Die Einfache Installation verlangt von Ihnen nur die absolut
notwendigen Angaben. Dagegen bietet die
Fortgeschrittene Installation sämtliche Konfigurationsoptionen an,
die sich auch später im laufenden Betrieb ändern lassen. Da wir in
Kapitel Konfiguration ab Seite Konfiguration
detailliert auf alle Optionen eingehen, klicken Sie
an dieser Stelle am besten auf Einfache Installation.

Abbildung 2.3: Initiale Konfiguration

Die Folgeseite (Abbildung 2.3) stellt alle
Installationsoptionen in Gruppen unterteilt dar.

Der Abschnitt Datenbankeinstellungen

In diesem Bereich stellen Sie die Zugangsdaten für die gewünschte
Datenbank ein. Im Feld Datenbanktyp können Sie zwischen allen im
PHP-Kern verfügbaren Datenbanktypen wählen. Beim Einsatz
von PHP4 wird der Datenbanktyp SQLite also gar nicht
erst angezeigt.

Den Servernamen (meist localhost oder ein Name wie
db1231231.puretec.de) tragen Sie genauso wie den Namen und das
Passwort des Datenbankbenutzers in die zugehörigen Felder ein. Beim
Datenbanktyp SQLite spielen diese Einstellungen
keine Rolle und dürfen leer bleiben.

Als Datenbankname tragen Sie den Namen der, entsprechend der Beschreibung auf
Seite DBeinrichten,
erstellten Datenbank ein. Darin erstellt Serendipity
Tabellen, deren Namen es das Präfix serendipity_ voranstellt.
Diese Vorsilbe ermöglicht die Installation
in eine Datenbank, in der bereits andere Tabellen liegen.
Wählen Sie in der Fortgeschrittenen Installation ein anderes Präfix,
können Sie auch mehrere
Serendipity-Instanzen auf einem Server installieren.

Der Abschnitt Generelle Einstellungen

Die Optionen im Abschnitt Generelle Einstellungen legen den
Standard-Benutzer für das zu installierende Blog fest. Tragen Sie als
Admin-Benutzername also den Namen ein, den Sie später beim Login
verwenden wollen. Er sollte möglichst keine Sonderzeichen
oder Umlaute enthalten, da dies zu Problemen bei unterschiedlichen
Zeichensätzen führen kann. Das Gleiche gilt für das Admin-Passwort ;
lediglich im Feld Voller Name können Sie auch auf
Sonderzeichen zurückgreifen.

Die Angabe der Admin-E-Mail-Adresse benötigt Serendipity beim
Verschicken von
Hinweisen über neu eingegangene Kommentare und Trackbacks.

Den Blog-Titel und die Blog-Beschreibung zeigt das Frontend
im Kopfbereich an und verwendet beides auch für die Titelzeile im Browser.

Die Sprache des Blogs gibt die Standardsprache vor, in der
Serendipity Nachrichten und Meldungen darstellt. Später lässt sich
für Besucher der Webseite und für jeden Redakteur individuell eine Sprache
einstellen (siehe Seite eigeneeinstellungen-sprache).

Der Abschnitt Design und Optionen

Der letzte Einstellungsblock legt bei der einfachen Installation lediglich
fest, ob der Standard-Redakteur den WYSIWYG-Editor zur Erstellung von
Einträgen benutzen möchte.

Abschluss der Installation

Sind alle Optionen eingetragen (keine Angst, Sie können sie später
allesamt wieder verändern), schließen Sie den Installationsvorgang durch
einen Klick auf Vollständige Installation ab.

Die letzte Seite der Installationsroutine (Abbildung
2.4) informiert Sie über die von
Serendipity durchgeführten Aktionen. Dazu gehört das Anlegen der notwendigen
Tabellen und des Standardbenutzers und die Einrichtung der
Standard-Plugins. Sollten Sie an dieser Stelle noch nicht über eine
passende Datenbank verfügen oder andere Fehler auftreten, informiert Sie
Serendipity auch darüber. Dann
heißt es zurück zu Abschnitt DBeinrichten ab Seite
DBeinrichten.

Abbildung 2.4: Einrichtung abgeschlossen

Bei fehlerfreier Installation können Sie über die URL http://www.example.com/serendipity/ das
Frontend aufrufen und unter
http://www.example.com/serendipity/serendipity_admin.php mit den
gewählten Login-Daten auf das Backend zugreifen.

2.2.5 - Die Konfigurationsdatei serendipity_config_local.inc.php

Die Konfigurationsdatei serendipity_config_local.inc.php

Alle grundlegenden
Konfigurationsvariablen wie die Daten für den Datenbankzugang und die aktuelle
Versionsnummer speichert Serendipity in der Datei
serendipity_config_local.inc.php im Stammverzeichnis.
Diese Datei sieht ungefähr wie folgt aus:


Ähnlich wie bei der .htaccess-Datei (siehe Seite
htaccess) können Sie in dieser Datei später auch eigene
Konfigurationsparameter nachtragen. Fügen Sie diese nach
der Zeile You can place your own special variables after here: ein,
so dass Serendipity sie bei einer Konfigurationsänderung nicht
versehentlich überschreibt. Je nach Konfiguration des Webservers kann es
sein, dass Sie keine Schreibrechte für diese Datei besitzen. Dies
lässt sich mit dem fixperm.php-Skript (siehe Seite
fixperm) ändern.

2.2.6 - Fehler bei der Installation

Fehler bei der Installation

Die zahlreichen Konfigurationsmöglichkeiten von Webservern geben
Spielraum für hinterlistige Fehler.

Nur eine leere Seite erscheint

Wenn an einer Stelle der Installation lediglich eine weiße Seite
erscheint, liegt dies meist an sogenannten PHP Fatal Errors.
Normalerweise sieht man diese direkt auf der Webseite, aber einige
Webserver sind so eingestellt, dass sie PHP-Fehlermeldungen unterdrücken.
Wenn das Installationsskript endet, ohne vollständig
ausgeführt worden zu sein, führt dies dann zu den weißen/leeren
Seiten.

Um die Fehlermeldung dennoch zu sehen, versuchen Sie, in den
PHP-Fehlerlogfiles Ihres Webservers nachzuschauen. Diese liegen meist in
einem logs-Unterverzeichnis. Den genauen Speicherort solcher
Dateien teilt Ihnen der Provider mit.

Man kann aber auch versuchen, im
Serendipity-Stammverzeichnis eine Datei namens .htaccess
anzulegen und mit folgender Zeile zu füllen:


    php_value display_errors on

Beim Speichern der Datei achten Sie bitte unbedingt
darauf, dass PHP dafür Schreibrechte erhalten muss, da es diese
Datei während der Installation automatisch verändert.
Achten Sie auch darauf, dass einige FTP-Programme Dateien, die mit
einem Punkt anfangen, verstecken, so dass Sie diese erst nach Umkonfiguration
des Programms sehen.

Die Fehlermeldungen geben
meist Aufschluss über die Ursache. Oft sind dies fehlende oder defekte
Dateien. Enthält eine Datei Parse Errors [*] PHP meldet einen
Parse Error, wenn eine Datei
fehlerhafte Zeichen oder eine ungültige Syntax enthält.
, ist dies meist auf
fehlerhafte FTP-Uploads zurückzuführen. Auch fehlende Leserechte kommen als Ursache in Frage.

Am häufigsten kann der Ordner
templates_c nicht beschrieben werden. Dieser ist für
von Smarty kompilierte Dateien gedacht, die für die Darstellung des
Frontends verwendet werden.

HTTP/500 Fehlermeldung

Serendipity setzt einige Standardoptionen über die Datei
.htaccess. Von einigen Webservern wird dieser Mechanismus jedoch
nicht unterstützt und kann gar zu einem Abbruch des Skripts führen.
Sollte sich Serendipity nach der Installation nicht aufrufen
lassen, löschen Sie die .htaccess-Datei einfach. Sie ist für den
Betrieb nicht zwingend notwendig. Ohne diese Datei können Sie jedoch
keine URL-Umformung benutzen, die für Serendipity "sprechende URLs"
ermöglicht (siehe Seite urlformung).

Seiten werden nicht gefunden

Um "sprechende URLs" wie
http://www.example.com/serendipity/archives/1-Mein-erster-Artikel.html
zu unterstützen, kann Serendipity zwei Arten der URL-Umformung
unterstützen. Da Pfade und Dateien wie oben genannt nur virtuell erstellt
werden und nicht wirklich auf dem Server liegen, muss Serendipity über
Umleitungen auf seine zentrale Datei index.php geleitet werden.

Diese Umleitung konfiguriert Serendipity anhand der Datei
.htaccess. Dort gibt es zwei Varianten der URL-Umformung:
mod_rewrite und Apache Errorhandling.

mod_rewrite ist die komfortabelste Variante der Umformung,
benötigt aber ein zusätzliches Webserver-Modul, welches nicht immer
verfügbar ist. Apache Errorhandling setzt einen Trick ein, der
eigentlich nicht gefundene Seiten (HTTP/404 Not Found) virtuell
auf eine zentrale Seite umleitet, die dann den eigentlichen Inhalt
ausgibt.

Serendipity versucht bei der Installation die beste Art für Sie
automatisch zu erkennen. Auf manchen Servern gelingt dies jedoch nicht,
und es kann sein, dass Serendipity die URL-Umformung fälschlicherweise
aktiviert. Wenn diese Umformung nicht klappt, gehen alle Links von
Serendipity somit "ins Leere". Dazu zählen auch Links zum Stylesheet
des Frontends, die das Layout beeinflussen.

Löschen Sie die .htaccess, um dieses Problem zu lösen.
Danach suchen Sie die Serendipity-Administrationsoberfläche via
http://www.example.com/serendipity/serendipity_admin.php auf,
loggen sich ein und gehen über den Menüpunkt Konfiguration zu der
Unterebene Design und Optionen. Dort findet sich die Option
URL-Formung. Diese Option stellen Sie auf None und
speichern die Konfiguration. Daraufhin wird die .htaccess-Datei
neu erstellt.

Nun sollten Sie Serendipity-Unterseiten wieder problemlos öffnen können.

Installation erneut ausführen

Wenn die Installation aus irgendwelchen Gründen fehlgeschlagen ist,
möchten Sie Serendipity vielleicht von Grund auf neu installieren. Dazu
muss Serendipity in den Ursprungszustand zurückversetzt werden. Löschen
Sie dafür die Datei serendipity_config_local.inc.php. Diese Datei
enthält die Basis-Konfigurationsparameter des Blogs, und sobald diese
Datei nicht mehr vorhanden ist, erkennt Serendipity nicht mehr, dass es
installiert ist.

Auch die Datei .htaccess sollte vor einer neuen Installation
gelöscht werden. Bei beiden Dateien ist zu beachten, dass sie von PHP
erstellt wurden und von Serendipity mit minimalen Rechten versehen werden,
um diese Daten zu schützen. Daher kann es unter Umständen sein, dass Sie
mit Ihrem FTP-Zugang keinen Zugriff mehr auf diese Datei haben!

Um dies zu beheben, bedienen Sie sich eines kleinen PHP-Skripts.
Speichern Sie eine Datei namens fixperm.php im
Serendipity-Stammverzeichnis mit folgendem Inhalt:


Rufen Sie danach die Datei mittels
http://www.example.com/serendipity/fixperm.php im Browser auf. Nach
dem Aufruf sollten Sie die Ausgabe "Rechte geändert" sehen, und die
Dateirechte sollten nun so verändert worden sein, dass Sie wieder vollen
Zugriff auf die Datei haben.

Übrigens können Sie dieses kleine Skript auch später benutzen, um andere
Dateien im Serendipity-Verzeichnis wieder mit Zugriffsrechten für Sie
auszustatten. Dabei müssen Sie lediglich die Code-Zeile verändern, die
den Namen der zu ändernden Datei enthält.

Zuletzt müssen Sie noch die von Serendipity angelegten Datenbanktabellen
wieder löschen. Wenn diese Tabellen nicht gelöscht werden, würde
Serendipity diese bei einer Neuinstallation schützen wollen. Nur wenn
alle Tabellen von Serendipity vorher mittels phpMyAdmin oder Ähnlichem
gelöscht werden, wird eine vollständige Neuinstallation möglich sein.

Fehler beim Login

Wenn Sie Fehlermeldungen am Anfang der Seite erhalten, die aussehen wie
diese:


    Warning: session_write_close() [function.session-write-close]:
open(/var/lib/php/session/sess_h5a8jerb22q54pkqcjb4qtnqr1, O_RDWR)
failed: Permission denied

dann bedeutet dies, dass Ihr Webserver keinen gültigen Speicherpfad für
die PHP-Sessiondateien eingetragen hat. Entweder können Sie den Fehler
beheben, indem Sie korrekte Schreibrechte zu dem in der Fehlermeldung
genannten Pfad einrichten. Oder Sie müssen einen gültigen Pfad in der
Datei php.ini in der Variable session.save_path eintragen.

Ein weiteres Problem, das bei falsch eingerichteten PHP-Sessions
auftreten kann, ist, wenn Sie sich nach jedem Klick im Serendipity-Backend
erneut einloggen müssen. Dies bedeutet, dass der Webserver Ihre
Logindaten nicht in einer Session speichern und Sie somit nicht
eindeutig wiedererkennen kann.

Ein ähnliches Problem kann auch dann auftreten, wenn Ihr Browser keine
Cookies annimmt, weil sie zB. von einem Werbefilter oder
Anti-Virus-Programm gefiltert werden. Auch kann es passieren, dass, wenn
Sie die Serendipity-Oberfläche mit einer URL wie
http://localhost/serendipity/ aufrufen, die Cookies für eine solche
URL nicht angenommen werden. In einem solchen Fall müssten Sie
Serendipity über die IP-Adresse wie http://127.0.0.1/serendipity/
aufrufen.

Weiterleitung auf verschiedene URLs

Wenn Sie Serendipity installieren, möchten Sie Ihr Blog möglicherweise
unter mehreren URLs aufrufen können.

Ein klassischer Fall dieser unterschiedlichen URLs ist, wenn Ihr Blog
sowohl unter http://example.com/serendipity/ als auch
http://www.example.com/serendipity/ verfügbar sein soll.
Damit Serendipity die jeweils genutzte URL als Standard für Folgeseiten
übernimmt, müssen Sie lediglich in der Konfiguration Serendipitys die
Option HTTP-Hostname (siehe Kapitel HTTP-Hostname ab Seite
HTTP-Hostname) aktivieren.

Diese Funktion hilft Ihnen jedoch nur dann, wenn der benutzte Pfad (in
diesem Fall /serendipity/) in allen Fällen gleich bleibt. Sollten
Sie Ihr Blog aber sowohl unter der URL
http://example.com/serendipity/ als auch
http://serendipity.example.com/ darstellen wollen, dann würden Sie
diese Vorbedingung nicht erfüllen können. Serendipity kann mit einer
derartigen Einstellung nicht umgehen.

Der Grund dafür ist, dass bei einer abweichenden Pfadkomponente die
relativen Links nicht mehr korrekt funktionieren. Bei der einen URL
müsste Serendipity für den HTTP-Pfad immer /serendipity/ nutzen,
während bei der anderen URL immer / genutzt werden müsste. Die
Links würden daher nicht übereinstimmen und zu zahlreichen Problemen bei
der Darstellung von Grafiken und Verweisen führen.

Das bessere Vorgehen in diesem Fall wäre also die Einrichtung einer
Weiterleitung. Dabei sollten Sie sich eine endgültige URL aussuchen und
alle weiteren optionalen URLs zu dieser Zielseite weiterleiten.

Weiterleitungen können Sie auf unterschiedliche Weisen realisieren. In
unserem Beispiel gehen wir davon aus, dass
http://serendipity.example.com/ die Zielseite und
http://example.com/serendipity/ die Quellseite darstellt.

Bei vielen Standardinstallationen für mehrere verfügbare URLs würden beide
URLs bereits auf dasselbe Verzeichnis verweisen.
http://serendipity.example.com/index.php als auch
http://example.com/serendipity/index.php würden physikalisch auf
dieselbe Datei zeigen, man spricht daher von einem Alias. Sollte
dies bei Ihnen der Fall sein, haben Sie zwei Möglichkeiten der Weiterleitung:

  • Weiterleitung via .htaccess bei identischen Serendipity-Verzeichnissen

    Wenn auf Ihrem Server mod_rewrite zur Verfügung steht, können Sie an den Anfang Ihrer
    .htaccess-Datei des Serendipity-Verzeichnisses vor dem Blog #Begin s9y
    folgende Zeilen einfügen: Diese Regel weist den Webserver an, dass sämtliche Zugriffe zu http://example.com/
    auf die Zielseite http://serendipity.example.com/ weitergeleitet werden.
    Sie müssen also jeweils den Quellservernamen, das Quellverzeichnis auf dem Quellserver
    und den Zielserver in den obigen Zeilen an Ihre Gegebenheiten anpassen.
  • Weiterleitung mittels PHP bei identischen Serendipity-Verzeichnissen

    Ohne mod_rewrite müssen Sie die Weiterleitung innerhalb der Datei
    serendipity_config_local.inc.php einprogrammieren.
    Öffnen Sie diese Datei in einem Editor (bei fehlendem Schreibzugriff schauen Sie sich bitte
    fixperm.php auf Seite fixperm an) und fügen Sie
    in die Zeile vor dem letzten ?> Folgendes ein:
    Dieser Code sorgt dafür, dass, wenn Serendipity auf dem Quellserver aufgerufen wird,
    der Besucher automatisch auf die Zielseite weitergeleitet wird.

Sollten durch die Art der Einrichtung jedoch beide URLs
(Weiterleitungsquelle und Weiterleitungsziel) auf unterschiedliche
Verzeichnisse Ihrer Domain zugreifen, dann können Sie die einfachste
Form der Weiterleitung nutzen:

  • Weiterleitung mittels index.html bei unterschiedlichen Serendipity-Verzeichnissen

    Erstellen Sie die Datei index.html in dem Verzeichnis der Quell-URL (in unserem Beispiel /serendipity/):
    Beim Aufruf der Quell-URL wird dann unkompliziert auf die Ziel-URL weitergeleitet.
  • Weiterleitung mittels index.php bei unterschiedlichen Serendipity-Verzeichnissen

    Etwas schneller geht die Weiterleitung mittels PHP, da die Weiterleitung dann
    intern im Browser ausgeführt wird und Sie nicht vorher kurz eine weiße Seite im Browser
    aufflackern sehen. Speichern Sie im Quellverzeichnis folgende index.php-Datei:

Einen Sonderfall dieser Weiterleitung stellt das Beispiel dar, wenn Sie
Serendipity zwar in einem Unterverzeichnis Ihres Webservers installiert
haben (http://example.com/blog/), aber gerne möchten, dass
Serendipity beim Aufruf der Haupt-Domain (http://example.com/)
direkt aufgerufen wird. Die einfachste Variante hier wäre natürlich,
dass Sie Serendipity in das Stammverzeichnis Ihrer Webseite
installieren, da dies problemlos möglich ist. Sollten Sie dies aus
irgendwelchen Gründen nicht bevorzugen, können Sie ebenfalls die
oben genannte Methode der Weiterleitung mittels index.php oder
index.html nutzen.

Falsche Anzeige von Datumsangaben oder Sonderzeichen

Serendipity benutzt zur Darstellung von Datumsangaben für Artikel und im
Kalender ein serverseitiges System namens locales. Diese locales sind,
grob gesagt, eine Sammlung von nationalen Sprachbesonderheiten und geben an,
wie in beinahe allen gesprochenen Sprachen die Währungs- und Datumsangaben
formatiert und geschrieben werden. Damit Serendipity auf möglichst vielen
Sprachumgebungen ohne viel Aufwand lauffähig ist, verlässt es sich auf diesen
De-facto-Standard.

Ebenfalls zur weitreichenden Unterstützung verschiedener Sprachen
unterstützt Serendipity mehrere Zeichensätze. Ein Zeichensatz regelt, mit
welchem Binärsystem Buchstaben für den Computer abgespeichert werden --
denn je nach Zeichensatz ist für einen Computer "ä" nicht gleich "ä".
Für die deutsche Sprache ist der standardisierte ISO-8859-1-Zeichensatz
üblich. Um jedoch auch mit anderen Sprachen benutzbar zu
sein, hat sich der Zeichensatz UTF-8 etabliert, da dieser beinahe
alle Sonderzeichen jeder Sprache enthält. Ein arabischer Artikel könnte
so also direkt neben einem deutschen Artikel stehen, ohne dass
Sonderzeichen falsch dargestellt würden.

Sobald die Zeichensätze vermischt werden, kann es zu Fehldarstellungen im
Browser kommen - Mozilla Firefox zeigt statt des korrekten Zeichens dann
ein Karo-Symbol mit einem Fragezeichen an. Wenn Sie dies einmal in Ihren
Artikeln beobachten, liegt ein solcher Zeichensatzkonflikt vor.

In der Serendipity-Konfiguration können Sie einstellen, ob Serendipity
mit nationalem Zeichensatz oder UTF-8 betrieben wird. Standardmäßig wird
dies bei der Installation für größtmögliche Kompatibilität direkt auf
UTF-8 gesetzt. Sie sollten daher bei einer frischen Installation
keinerlei Probleme mit Zeichensätzen erwarten - erst bei späteren
Änderungen am System könnten möglicherweise einmal Probleme auftreten.

Die Behandlung von Sonderzeichen zur Speicherung in Datenbanken ist recht
komplex und kann mehrere Fehlerursachen haben.

Die erste Fehlerursache kann Ihr Browser sein. Stellen Sie sicher, dass
dieser den UTF-8-Zeichensatz darstellen kann. Wenn Sie beim Besuch der
Seite http://www.columbia.edu/kermit/utf8.html falsche
Sonderzeichen sehen, ist dies ein Indiz für eine fehlerhafte
Browserkonfiguration, die Sie mithilfe der Dokumentation Ihres Webbrowser
lösen müssen.

Die zweite Fehlerursache kann der Webserver sein, der Zeichensätze
selbständig verändert. Apache bietet eine Option an, ein sogenanntes
DefaultCharset zu setzen, das die Ausgabe von Sonderzeichen
eventuell verändern könnte. Wenn der Webserver nicht die von Serendipity
bestimmten Content-Type-HTTP-Kopfzeilen an den Browser sendet,
kann es sein, dass der Webserver durch seine Standardeinstellung die
Umbelegung durch Serendipity verhindert. Sprechen Sie daher mit ihrem
Provider und bitten Sie ihn, diese HTTP-Kopfzeilen zu überprüfen.

Zu guter Letzt gibt es nun noch die Datenbank, die Artikel mit
unterschiedlicher Kodierung speichern kann. Gerade zwischen MySQL 4.0
und 4.1 gab es weitreichende Änderungen in der Behandlung von
Zeichensätzen, die sich bei einem MySQL-Update darin äußern konnten,
dass Serendipity die Sonderzeichen falsch anzeigte. Um dies zu
korrigieren, müssen Sie sicherstellen, dass alle MySQL-Tabellen und
-Spalten als Collation den übereinstimmenden Zeichensatz
benutzen (also de_latin beim ISO-Zeichensatz und utf8 für
UTF-8). Sobald dies korrekt übereinstimmt, kann in der
Serendipity-Konfiguration die Option
Datenbank-Zeichensatzkonvertierung aktivieren
gewählt werden, was dann wieder zu einer korrekten Darstellung der
Sonderzeichen führen sollte.

In einigen Fällen ist es möglicherweise notwendig, einen vollständigen
SQL-Export der Datenbank vorzunehmen und die Datei mittels eines Editors
vom ISO-8859-1- ins UTF-8-Format zu überführen, neu zu importieren und
danach Serendipity zentral auf UTF-8-Zeichensätze umzustellen. Alternativ
können Sie das mit folgendem PHP-Skript erreichen, das einen Datenbankdump
namens dump-iso.sql in dump-utf8.sql vom ISO-8859-1-Zeichensatz
in den UTF-8-Zeichensatz verwandelt. Etwaige SQL-Befehle (COLLATION), die
MySQL-Zeichensätze bestimmen, müssen Sie jedoch manuell in der Datei
umwandeln, um sie später als vollständiges UTF-8 importieren zu können:


Zurück aber zu dem Problem mit falsch angezeigten Datumsangaben. Damit
der Wochentag "Freitag" nicht als "Friday" oder Ähnliches ausgegeben
wird, muss eine deutsche Sprachdatei für das locales-System auf dem
Server hinterlegt werden. Locales sind auf allen Betriebssystemen
verfügbar und in fast allen Fällen vorinstalliert. Je nach System können
sie auch nachinstalliert werden (bei Linux zB. mittels
locale-gen). Für jede Sprache gibt es abhängig vom Zeichensatz eine
Sprachdatei. Für Deutsch ist es üblicherweise de_DE.UTF8
(UTF-8-Zeichensatz) oder de_DE.ISO88591 (nationaler Zeichensatz).
Manchmal ist auf Servern nur das ISO-Locale installiert, und deshalb wird
der Monat "März" mit einem falschen Sonderzeichen dargestellt. Abhilfe
schafft hier die Installation der passenden UTF8-Locale-Datei.

Die Installation der Locales kann nur vom Serverbetreiber vorgenommen
werden, im Problemfall müssen Sie sich also an diesen wenden. Die
Locales, die Serendipity anwendet, finden Sie im Übrigen in der Datei
lang/serendipity_lang_de.inc.php bzw.
lang/UTF-8/serendipity_lang_de.inc.php in einer Zeile wie:


    @define('DATE_LOCALES', 'de_DE.ISO-8859-1, de_DE.ISO8859-1, german, de_DE, de_DE@euro, de');
2.3 - Schnelle Installation

Schnelle Installation

  • Serendipity-Release-Paket von der Homepage herunterladen und via FTP auf den Webserver hochladen.
  • Zugriffsrechte überprüfen: Stammverzeichnis und Unterverzeichnis archives, templates_c, uploads müssen Schreibrechte für PHP besitzen, alle anderen Dateien und Verzeichnisse Leserechte.
  • Eine leere Datenbank erstellen, falls noch nicht vorhanden. Sicherstellen, dass der Datenbankbenutzer die Rechte CREATE, INSERT, UPDATE, DELETE, ALTER, INDEX, SELECT besitzt.
  • Via HTTP die Installationsroutine aufrufen: http://www.example.com/serendipity/
  • Der Installationsroutine folgen und die Anfangskonfiguration vornehmen.
    Einrichtung

Kapitel 3: Frontend / Übersicht

Nach der Installation können Sie unter
http://www.example.com/serendipity/ das Frontend aufrufen.
Hier spielt sich alles ab, was jeder Besucher sehen kann:
Man kann Einträge lesen und kommentieren, in älteren
Archiven stöbern, eine Suche durchführen und auch etliche
Plugin-Funktionalitäten (Umfrage, Flickr-Fotos ...) ansehen.

Im Folgenden gehen wir von dem standardmäßig genutzten Theme (siehe
Seite theme) Serendipity 3.0 von Carl Galloway aus. Die
meisten anderen Themes richten sich in der Darstellung der Seitenelemente nach
demselben Schema, können aber in Details davon abweichen. Wie man die
Darstellung anpassen kann, werden Sie in späteren Kapiteln ab Seite
Anpassungen lernen.

 

3.1 - Übersicht

Übersicht

Die Startseite eines Serendipity-Blogs zeigt üblicherweise die
chronologisch letzten 15 Artikel in allen Kategorien untereinander an,
wobei der erste Artikel der aktuellste ist. Je nach Template ist dieser
Inhaltsbereich von ein bis zwei sogenannten Seitenleisten umgeben. In den
Seitenleisten können sich Seitenleisten-Plugins ansiedeln, die beliebige
Inhalte darstellen können. Ebenfalls abhängig vom Template sehen Sie
meist eine zentrale Seitenüberschrift (Kopf- oder auch Banner-Bereich
genannt) und eine weitere Überschrift vor der Artikelübersicht.

Abbildung 3.1: Frontend nach der Installation

Die Standard-Installation von Serendipity richtet eine rechte
Seitenleiste ein, in der folgende Elemente dargestellt werden:

Kalender Der Kalender stellt den aktuellen Monat in einer grafischen Übersicht dar.
Der aktuelle Tag wird hervorgehoben, und jeder Tag, an dem ein Artikel
verfasst wurde, ist ebenfalls hervorgehoben. Bei einem Klick auf einen Tag
oder auf die Navigationspfeile in der Kopfzeile des Kalenders kann man
sich die Artikel anzeigen lassen, die im gewählten Zeitraum verfasst
wurden.

Suche In die Eingabebox der Schnellsuche kann man einen Suchbegriff eingeben und den
Suchvorgang mittels (Enter)-Taste ausführen. Die Suche umfasst dabei
sowohl Artikelüberschrift als auch den Artikelinhalt und zeigt in der
Ergebnisseite die gefundenen Artikel genauso an wie in einer normalen
Artikelübersicht eines Zeitraumes.
Details zur Suche sind am Ende des Kapitels (Seite Suche)
erwähnt.

Archive Die Links dieses Plugins zeigen unterschiedliche chronologische
Abschnitte der Blogeinträge an. Standardmäßig werden die letzten drei Monate
mit Link angezeigt, und ein Klick darauf ruft die übliche Artikelansicht
auf, bei der jedoch nur der gewünschte Zeitraum berücksichtigt wird.
Der Link Das neueste führt zur üblichen Startseite und der Link
Älteres zu einer besonderen Übersichtsseite (siehe Abschnitt
Archive auf Seite Permalinks-Frontend).

Kategorien In dem Seitenleisten-Block Kategorien wird eine Liste aller
eingerichteten Kategorien des Blogs dargestellt. Ein Klick auf eine
Kategorie wird daraufhin ausschließlich Artikel anzeigen, die dieser
Kategorie zugeordnet sind. Neben jedem Kategorienamen befindet sich zudem
ein kleines Symbol, das auf den RSS-Feed dieser Kategorie zeigt.
Außerdem besteht für den Besucher die Möglichkeit, mehrere Kategorien
zur Ansicht zu kombinieren. So könnte man sich alle Beiträge mehrerer
Kategorien anzeigen lassen, indem man die Auswahlboxen neben mehreren
Kategorien ankreuzt und danach auf den Button Los! darunter klickt.
Alle Kategorien führt zurück auf die Übersichtsseite des
Blogs, in der wieder alle Beiträge aller Kategorien gezeigt werden.

Blog abonnieren Alle Feed-Formate (siehe Terminologie, Seite RSS), die das Blog
anbietet, werden in dieser Box dargestellt. Die
unterstützten Formate sind RSS 0.91, RSS 2.0, Atom 0.3 und Atom
1.0
. Zusätzlich gibt es noch einen speziellen RSS 2.0-Feed, der alle
Kommentare zu den Beiträgen enthält. Mit diesem Feed können Besucher des Blogs
auch auf dem Laufenden über neue Kommentare bleiben.

Verwaltung des Blogs Damit ein Redakteur sich leicht in das Backend des Blogs einloggen kann, wird
ein Link dorthin angeboten. Je nachdem, ob der Benutzer bereits eingeloggt ist,
steht hier entweder Zum Login oder Administrationsbereich.

Powered by Zuletzt befindet sich in diesem Block eine kleine Werbung für Serendipity.
Besucher Ihres Blogs finden die Technik dahinter womöglich faszinierend,
so dass sie dieser Hinweis über das eingesetzte System interessiert.
Da ein Open-Source-System von seinen Benutzern und seiner Verbreitung
lebt, freuen sich die Entwickler immer sehr, wenn diese Werbung
nicht entfernt wird.

3.2 - Beiträge

Beiträge

Da nach der Installation noch keine Einträge verfasst wurden, wird im
Inhaltsbereich nur die Meldung "Keine Einträge vorhanden" angezeigt.

Unterhalb des Inhaltsbereichs befindet sich der Fußbereich, in dem man
je nach dargestellter Seite vor- und zurückblättern kann. Viele
Archivansichten können so chronologisch von vorne nach hinten
durchblättert werden.

Sobald sich in dem Blog ein Artikel befindet, wird dessen Titel und der
einfache Eintragstext angezeigt. Zusätzlich werden Meta-Angaben über
einen Artikel eingeblendet: die Erstellungszeit, die Kategorie, in der
sich ein Artikel befindet, der Name des Autors und die Anzahl der
Kommentare zu diesem Artikel.

Abbildung 3.2: Frontend mit einem eingetragenen Artikel

Jeder Beitrag kann zudem einen sogenannten Erweiterten Eintrag
aufweisen. Dieser Zusatztext wird in der Übersichtsseite nicht angezeigt,
sondern erst bei der Detailansicht eines Artikels. Sobald ein Artikel
solchen Zusatztext enthält, führt der Link "Artikeltitel"
vollständig lesen
oder ein Klick auf den Titel des Beitrags zu dieser
Detailseite.

Auf dieser Detailseite befinden sich außerdem alle Kommentare und
Trackbacks zu einem Artikel. Auch in der Seitenüberschrift verändert sich
der Kopfbereich und stellt durch die Aufnahme des Artikeltitels dar, dass
man sich auf einer einzelnen Artikelseite befindet.

Sollte man sich bereits in das Backend eingeloggt haben, erscheint bei
den Meta-Angaben zu einem Artikel auch ein Link Eintrag bearbeiten,
mittels dessen man den entsprechenden Artikel direkt bearbeiten kann.

 

3.3 - Archive

Archive

Wie bereits erwähnt, verfügt Serendipity über einige besondere
chronologische Artikelübersichten, abhängig von der gewählten Kategorie,
dem Zeitraum (nach Jahr, Monat, Woche oder Tag), einem Autor und einer
Seitenzahl.

Diese Seiten sind alle vom Inhalt her gleich aufgebaut, da alle Ansichten
die Artikel gleichartig auflisten. Lediglich die dargestellten Inhalte
sind nach dem gewünschten Kriterium gefiltert, und der Kopfbereich sowie
der Fußbereich geben die Art der Übersichtsseite an.

Alle Seiten haben zudem einen Stamm-Permalink (siehe Kapitel Terminologie
auf Seite terminologie-permalinks) gemeinsam:
http://www.example.com/serendipity/archives/XXX. Alle
Archivseiten sind so einem virtuellen Verzeichnis zugeordnet, die
Darstellung richtet sich nach dem dahinterstehenden XXX.
Unterschiedliche Pfadkomponenten legen dabei fest, was genau
angezeigt wird:

/archives/2007.html stellt alle Artikel des Jahres 2007 dar.

/archives/2007/12.html stellt alle Artikel aus Dezember 2007 dar.

/archives/2007/12/01.html stellt alle Artikel vom ersten Dezember 2007 dar.

/archives/1-Beispiel.html stellt eine einzelne Artikelseite dar.

/archives/C1.html stellt alle Artikel der Kategorie mit der Nummer 1 dar.
Die Pfadkomponente C (für Category) wird dabei gefolgt von einer Zahl.

/archives/P2.html stellt die zweite Seite einer Übersicht dar.
Die Pfadkomponente P (für Page) wird gefolgt von einer Seitennummer.

/archives/A1.html stellt alle Artikel des Autors mit der Nummer 1 dar.
Die Pfadkomponente A (für Author) wird gefolgt von einer Zahl, die den Autor angibt.

/archives/W52.html stellt alle Artikel der Kalenderwoche 52 dar.
Die Pfadkomponente W (für Week) wird gefolgt von der Wochennummer.

/archives/summary.html legt fest, dass die Artikelübersicht ausschließlich
Datum und Artikeltitel (also ohne jeglichen Inhalt) darstellt.

Wichtig ist dabei, dass die Pfadkomponenten (bis auf die für eine
einzelne Artikelseite) hierbei beliebig miteinander kombinierbar sind.
Dabei ist nur zu beachten, dass die Angabe des Datums (Jahr, Monat, Tag)
immer direkt am Anfang des Permalinks stehen muss. Hier einige
Beispiele für die Kombinationsmöglichkeiten:

/archives/2007/C1/A2.html stellt alle Artikel des Jahres 2007 dar, die in Kategorie 1 vom Autor 2 geschrieben wurden.

/archives/2007/12/P2/summary.html stellt die zweite Seite der Artikelübersicht (nur Datum und Titel) aller Artikel im Dezember 2007 dar.

/archives/W52/A1.html stellt alle Artikel des ersten Autors der 52. Kalenderwoche des aktuellen Jahres dar.

Die URL muss immer auf .html enden, die letzte
Pfadkomponente darf somit keinen abschließenden / enthalten.

Da für die Ansicht der Artikel nach Autoren oder nach Kategorie
eigenständige Permalinks wünschenswert sind, bietet Serendipity dieselben
Artikelübersichten auch bei Aufruf folgender URLs an:

/authors/1-AutorenName.html stellt die
Artikelübersicht nach Autor dar, wobei in diesem Fall der Name des
Autors zu Suchmaschinenzwecken in
der URL stehen kann. Mehrere Autoren können hierbei mittels ; nach
der Nummer des Autors kombiniert werden:
authors/1;2;3-Autorenuebersicht.html. Der Parameter P für die
gewünschte Seite kann angehängt werden.

/categories/1-KategorieName.html stellt die
Artikelübersicht nach Kategorie dar, wobei in diesem Fall der Name der
Kategorie zu Suchmaschinenzwecken in der URL stehen kann. Mehrere
Kategorien können hierbei mittels ; nach der Nummer der
Kategorie kombiniert werden:
categories/1;2;3-KategorieName.html. Die Parameter
P für die gewünschte Seite sowie A für die
Einschränkung nach Autoren können zusätzlich angehängt werden.

Über http://www.example.com/serendipity/archive/ gelangt
man zu einer Übersichtsseite mit einer speziellen chronologischen Übersicht.

Abbildung 3.3: Archiv-Übersicht

Dort werden für alle Jahre, in denen Artikel verfasst wurden, die Monate
dargestellt. Eine Balkengrafik (wie im bulletproof Template) visualisiert hier zusätzlich die Menge der
Artikel, die in dem jeweiligen Zeitraum verfasst wurden. Die Links
ganz anzeigen und Überschriften anzeigen führen hierbei
wieder zu den eingangs erwähnten Archiv-Übersichtsseiten.

Auch die URL für die spezielle chronologische Übersicht kann mit
speziellen Pfadkomponenten eingeschränkt werden - eine Einschränkung
nach Zeitraum erfolgt dabei jedoch nicht, da die Übersicht immer den
ganzen Zeitraum berücksichtigt.

/archive/C1.html stellt die Übersicht aller Artikel der Kategorie mit der Nummer 1 dar. Die Pfadkomponente C (für Category) wird dabei gefolgt von einer Zahl.

/archive/A1.html stellt die Übersicht aller Artikel des Autors mit der Nummer 1 dar. Die Pfadkomponente A (für Author) wird gefolgt von einer Zahl, die den Autor angibt.

 

3.4 - Kommentare und Trackbacks

Kommentare und Trackbacks

Artikel des Blogs können von Besuchern kommentiert oder referenziert
werden. Diese Kommentare werden von Serendipity auf unterschiedliche
Weise im Frontend eingebunden und können in weiteren Übersichtsseiten
speziell gefiltert werden.

3.4.1 - Kommentare zu einzelnen Artikeln

Kommentare zu einzelnen Artikeln

Die Ansicht der Kommentare (und Trackbacks) zu einem Beitrag erreicht man
entweder durch einen Klick auf die Detailseite eines Beitrags oder
indem man auf den Link Kommentare (x) klickt. Je nach Einstellung
des Blogs (siehe Seite config-popups) öffnet sich dann ebenfalls die
Detailseite des Beitrags oder ein Popup-Fenster mit den Kommentaren.

Trackbacks zu einem Artikel werden unterhalb eines Beitrags vor den
Kommentaren chronologisch geordnet angezeigt. Ein Trackback ist ein
Artikel eines fremden Blogs, der sich auf Ihren geschriebenen Beitrag
bezieht. Dabei führt der Link des Trackbacks zu diesem fremden Beitrag,
und zur Orientierung werden die ersten Absätze des fremden Beitrags mit
angezeigt. Damit ein fremdes Blog sich auf Ihren Artikel beziehen kann,
ist der Link Trackback für spezifische URI dieses Eintrags
vorgesehen. Ein Klick darauf verrät Ihnen, dass dieser Link nicht für die
Ansicht im Browser gedacht ist, sondern für fremde Blogsysteme übernommen
werden muss. Besucher sollten diesen Link also verwenden, um ein
Trackback zu Ihnen zu senden.

Nach den Trackbacks folgt die Auflistung der Kommentare. Standardmäßig
werden diese thread-basiert aufgelistet. Dabei startet die
Auflistung mit dem chronologisch ersten Kommentar, und mögliche andere
Kommentare, die sich auf diesen beziehen, werden eingerückt darunter
dargestellt. Daher nennt sich diese Ansicht Verschachtelt. Falls
Sie eine chronologisch sortierte Ansicht bevorzugen, kann man diese über
den Link Linear aufrufen.

Als Redakteur des Blogs sehen Sie zudem noch den Link Kommentare
für diesen Eintrag nicht mehr zulassen
, mit dem Sie die
Kommentarfunktionalität eines Beitrags (auch übergangsweise) sperren
können. An derselben Stelle erscheint danach auch wieder ein Link zum
Entsperren.

Abbildung 3.4: Artikel-Ansicht mit Kommentardarstellung

Zu jedem Kommentar wird der Name des Kommentatoren dargestellt, sowie
(falls von ihm angegeben) seine E-Mail-Adresse und Homepage.

Nach der Auflistung der vorhandenen Kommentare kann ein eigener, neuer
Kommentar eingefügt werden. In das Eingabeformular trägt man dazu seine
Daten (Name, E-Mail, Homepage, Bezug) sowie den gewünschten Kommentartext
ein. Unterhalb der Eingabebox befindet sich ein Hinweis, welche
Textformatierungsmöglichkeiten es gibt, um gewisse Dinge hervorzuheben.

Die Auswahlbox Daten merken? kann genutzt werden, damit der
eingetragene Name in Zukunft vom Browser vorausgefüllt wird. Die Box
Bei Aktualisierung dieser Kommentare benachrichtigen bestimmt, ob
man bei einem neuen Kommentar zu dem Beitrag per E-Mail informiert
werden soll.

Um einen Kommentar vor Übermittlung zu überprüfen, kann man den Button
Vorschau benutzen. Die Folgeseite zeigt den eigenen Kommentar dann
so innerhalb der Webseite, wie er danach für alle Besucher erscheinen
sollte. Gerade wenn Sie Sonderzeichen oder HTML-Code in Ihrem
Kommentartext benutzen, dient die Vorschau der Kontrolle, ob später auch
wirklich alles angezeigt werden kann.

Nach Abschicken eines Kommentars kann es je nach Einstellung des
Artikels zu einer Moderation kommen - in diesem Fall muss ein Redakteur
einen Kommentar erst autorisieren, bevor er angezeigt wird (siehe Seite
Kommentare).

3.4.2 - Kommentarübersichten

Kommentarübersichten

Neben der gezielten Ansicht von Kommentaren zu einem Artikel gibt es auch
eine Übersichtsseite, auf der alle Kommentare unabhängig vom Artikel
dargestellt werden.

Abbildung 3.5: Kommentarübersicht

Dies eignet sich besonders, um zu sehen, zu welchen Einträgen bestimmte
Personen kommentiert haben. Die Seite zeigt dabei wie üblich seitenweise
blätterbar die Überschrift eines Artikels an, und darunter die getätigten
Kommentare.

Diese Übersichtsseite ist bisher in wenigen Templates eingebaut und wird
daher von Besuchern auch seltener genutzt.

Das Permalink-Schema sieht dabei wie folgt aus:

/comments/kommentator/ stellt die Übersicht aller Kommentare dar, die vom Benutzer kommentator stammen.
Die Kommentatoren werden dabei in der Datenbank nach exaktem
Übereinstimmen mit dem Namen in der URL herausgesucht. Ohne Angabe
eines solchen Wertes werden die Kommentare aller Benutzer angezeigt.

/comments/last_5/ stellt die letzten fünf Kommentare zu allen Artikeln dar. Ohne Angabe eines solchen Wertes
werden alle Kommentare angezeigt.

/comments/from_2007-12-01/ stellt alle Kommentare seit dem 01.12.2007 dar. Das Datum muss hierbei der
GNU DATE-Syntax entsprechen, siehe
http://www.gnu.org/software/tar/manual/html_node/tar_109.html.
Ohne Angabe dieses Wertes wird keine minimale Zeitbeschränkung gesetzt.

/comments/to_2007-12-31/ stellt alle Kommentare dar,
die bis zum 31.12.2007 gemacht wurden. Das Datum muss ebenfalls der
GNU DATE-Syntax entsprechen. Ohne Angabe dieses Wertes wird
keine maximale Zeitbeschränkung gesetzt.

/comments/trackbacks/ stellt anstelle einer Übersicht zu Kommentaren die Übersicht der Trackbacks dar.

/comments/comments_and_trackbacks/ stellt sowohl Kommentare als auch Trackbacks dar.

/comments/comments/ stellt nur Kommentare dar. Da die Variable dem Standard entspricht, kann man sie üblicherweise weglassen.

/comments/P2.html stellt die zweite Seite einer Übersicht dar.
Die Pfadkomponente P (für Page) wird gefolgt von einer Seitennummer.

Auch bei diesem Schema lassen sich die Pfadkomponenten miteinander
kombinieren, um besondere Ansichten zu erhalten:

/comments/garvin/last_5 stellt die Übersicht der letzten fünf Kommentare des Benutzers garvin dar.

/comments/from_2007-01-01/to_2007-12-31/ stellt die Übersicht aller Kommentare vom 01.01. bis zu 31.12.2007 dar.

/comments/comments_and_trackbacks/from_2007-01-01/P2/ stellt die zweite Übersichtsseite aller Kommentare und Trackbacks seit dem 01.01.2007 dar.

3.5 - Seite nicht gefunden (404)

Seite nicht gefunden (404)

Immer wenn man eine URL des Serendipity-Blogs aufruft, die zu einer
ungültigen Seite führt, wird statt einer Fehlerseite die Standard-Übersicht
angezeigt. Selbstverständlich wird für Suchroboter und Ähnliches dennoch eine
HTTP-404-Statusmeldung ausgegeben, um die Ungültigkeit der angeforderten Seite
herauszustellen.

Die Standard-Übersicht wird dargestellt, damit Besucher des Blogs dazu
motiviert werden, sich über die restlichen Inhalte des Blogs schnell
einen Überblick zu verschaffen, anstatt nur eine leere, nichtssagende
Fehlermeldung zu sehen.

 

3.6 - RSS-Feeds

RSS-Feeds

Streng genommen zählen RSS-Feeds nicht zum eigentlichen Frontend, da ein
RSS-Feed außerhalb von Serendipity angezeigt wird. Ein RSS-Feed enthält,
wie eingangs im Zusammenhang der Terminologie erwähnt (siehe Seite RSS),
einige XML-Elemente, die die aktuellsten Einträge des Blogs mit einigen
zusätzlichen Metadaten aufführen. RSS steht für Really Simple Syndication.

Folgende RSS-Versionen sind verfügbar:

/feeds/index.rss2 Aktuelle Beiträge in RSS-Version 2.0.
Diese Version wird aufgrund ihrer Vollständigheit bevorzugt, da sie die meisten Möglichkeiten bietet und den höchsten Verbreitungsgrad besitzt.

/feeds/index.rss Aktuelle Beiträge in RSS-Version 0.91.

/feeds/index.rss1 Aktuelle Beiträge in RSS-Version 1.0.

/feeds/atom03.xml Aktuelle Beiträge in Atom-Version 0.3 (veraltet).

/feeds/atom10.xml Aktuelle Beiträge in Atom-Version 1.0.
Diese Version liegt in ihren Möglichkeiten ungefähr gleichauf mit RSS 2.0 und wird in Zukunft
sicherlich noch an Bedeutung gewinnen, da dieser Atom-Standard vom W3C-Gremium [*] Das W3C-Gremium entscheidet in einer großen Arbeitsgruppe
über die Standardisierung von Internet-Formaten wie HTML und andere.
empfohlen wird.
Das hat sich aber bis zum Jahr 2016 noch nicht wirklich bewahrheitet [*] \cmd{http://meiert.com/de/publications/translations/intertwingly.net/rss-2.0-and-atom-1.0/}.

/feeds/index.opml Aktuelle Beiträge im OPML-Format.
Dies beinhaltet nur Artikelübersichten und dient mehr der Übersicht als einem tatsächlichen Feed-Format.

Es gilt zu beachten, dass die URLs für die RSS-Feeds von Besuchern immer
aufgerufen werden können, selbst wenn Sie das Seitenleisten-Plugin nicht
aktiviert haben. Daher ist es auch grundsätzlich irrelevant, welche
Versionen Sie persönlich bevorzugen, da Ihre Besucher die notwendige
Version eigenständig beziehen können.

Neben den Einträgen können auch aktuelle Kommentare und
Trackbacks zu einem Blog bezogen werden:

/feeds/comments.rss2 Kommentare im RSS-2.0-Format.

/feeds/trackbacks.rss2 Trackbacks im RSS-2.0-Format.

/feeds/comments_and_trackbacks.rss2 Kommentare und Trackbacks im RSS-2.0-Format.

Diese Feeds können auch durch Änderung der Dateiendung in einem anderen
Format ausgegeben werden: .rss2 für RSS 2.0, .rss1 für RSS
1.0, .rss für RSS 0.91 und .atom für Atom 1.0.

Um nur einen Feed von einer speziellen Kategorie oder einem Autor
abzurufen, sind folgende URLs möglich (jeweils auch mit oben genannten
Dateiendungen):

/feeds/categories/Kategoriename.rss2 Aktuelle Beiträge der Kategorie Kategoriename.

/feeds/authors/Autorname.rss2 Aktuelle Beiträge des Autors Autorname.

RSS-Feeds liegen von Serendipity in mehreren Versionen vor und werden allesamt
auf die Ausgabedatei rss.php umgeleitet. Diese Datei stellt den Feed dar
und kann einige optionale Parameter aufnehmen. Ein kleiner Teil dieser Optionen
wird durch Einstellungen des Seitenleisten-Plugins "Blog abonnieren"
beeinflusst, die ab Seite syndication aufgeführt sind.

rss.php kann somit auch direkt von einem Browser
aufgerufen werden, da sie übersichtlichere Paramter ermöglicht. Diese
Parameter können jeweils miteinander verbunden werden. Um mehrere
Parameter anzugeben, ruft man die URL mittels
rss.php?parameter1=wert1&parameter2=parameter3&... auf. Bitte
beachten Sie, dass Sie aus technischen Gründen die folgenden Parameter
ausschließlich beim Aufruf der rss.php-Datei anhängen können, nicht
aber beim Aufruf der sprechenden Feed-URLs wie /feeds/index.rss2.

rss.php?version=version wobei version
folgende Werte haben kann: 0.91, 1.0, 2.0,
atom0.3, atom1.0 und opml1.0. Individuelle Feeds,
die von Ihnen erstellt werden können (siehe Seite customfeeds),
werden ebenfalls einer eindeutigen Version zugeteilt und können durch diesen Parameter später
aufgerufen werden. Ohne Angabe der Version wird das RSS-2.0-Format gewählt.

rss.php?category=1 wobei die Zahl der
jeweiligen Nummer einer Kategorie des Blogs entspricht. Um einen RSS-Feed für Einträge
mehrerer Kategorien zu bündeln, können die Kategorie-Nummern mittels Semikolon (;)
hintereinander aufgeführt werden. Ohne Angabe werden Artikel aller Kategorien dargestellt.

rss.php?viewAuthor=1 wobei die Zahl der
jeweiligen Nummer eines Autors des Blogs entspricht. Um einen RSS-Feed für Einträge mehrerer
Autoren zu bündeln, können die Autor-Nummern mittels Semikolon (;) hintereinander
aufgeführt werden. Ohne Angabe werden Artikel aller Autoren dargestellt.

rss.php?type=typ Anstelle von typ kann
comments (Kommentare), content (Beiträge), trackbacks (Trackbacks)
und comments_and_trackbacks (Kommentare und Trackbacks) eingetragen werden, was dafür sorgt,
dass nur Artikel des gewünschten Typs im RSS-Feed eingebunden werden. Ohne Angabe werden nur Artikel angezeigt.

rss.php?nocache=true Diese Variable sorgt
dafür, dass Conditional GET für RSS-Feeds deaktiviert wird (siehe
Caching von RSS-Feeds auf Seite Caching von RSS-Feeds).

rss.php?cid=Artikel-ID Falls als Inhaltstyp eines
RSS-Feeds ein anderer als content gewählt wurde, kann man die Anzeige
der Kommentare und Trackbacks auf einen bestimmten Artikel einschränken. Die Nummer
(ID) dieses Artikels wird als Wert des Parameters angegeben. Solche RSS-Feeds
werden oft verwendet, damit Besucher die Kommentare zu einem Artikel verfolgen können,
an dessen Diskussion sie teilgenommen haben.

rss.php?all=true Falls dieser Parameter gesetzt wird,
enthält der RSS-Feed nicht nur die letzten 15 aktuellen Artikel, sondern alle verfügbaren.
Der RSS-Feed kann dadurch sehr groß werden, daher ist die Verwendung dieses Parameters nur
für den Export der Artikeldatenbank gedacht.

rss.php?fullFeed=true Falls dieser Parameter gesetzt ist,
enthält der RSS-Feed den vollständigen Artikel (anstelle nur des Teasers). Diese Option muss
vom Betreiber des Blogs jedoch gezielt aktiviert werden, da durch die Aktivierung der "Diebstahl"
von Artikeln stark vereinfacht wird (siehe Seite syndication-fullfeed).

rss.php?forceLocal=true Das Plugin "Blog abonnieren"
unterstützt die Möglichkeit, dass RSS-Feeds zu einem Dienstleister namens Feedburner
weitergeleitet werden. In so einem Fall würde der Aufruf der eigenen RSS-URLs immer direkt zu der Seite
des Dienstleisters führen und man hätte keine Möglichkeit mehr, den echten RSS-Feed aufzurufen.
Sollte diese Umleitungsoption also gesetzt sein, können Sie mittels des Parameters forceLocal dafür
sorgen, dass Sie nicht umgeleitet werden. Der Parameter zeigt jedoch nur Wirkung, wenn Sie als
Redakteur am Blog angemeldet sind.

 

4.6.1 - Caching von RSS-Feeds

Caching von RSS-Feeds

Da RSS-Feeds von den RSS-Readern Ihrer Besucher relativ häufig aufgerufen
werden (meist halbstündlich), ist es wichtig, dort so wenig wie möglich
Redundanz für die Datenübertragung zu verursachen.

Bei 200 Abonnenten Ihres RSS-Feeds und einem größeren Artikelbestand
kommt es durchaus vor, dass die XML-Datei des Feeds 100kb und größer ist.
Bei dieser Benutzerzahl würden Sie pro Stunde 4MB (das sind im Monat gut
3GB!) an Daten übertragen. Wenn Sie durchschnittlich nur alle drei Tage
einen neuen Artikel schreiben, wäre ein Großteil dieser Datenmenge
unnötig übertragen worden.

Um dieses Problem zu lösen, wurde im HTTP-Standard ein Caching [*] Ein
Cache ist ein Zwischenspeicher oder Puffer, der einmal erstellte Daten erneut
ausgeben kann, anstatt sie neu zusammenzustellen.
-Mechanismus vorgesehen.
Dabei überträgt der RSS-Reader (und auch jeder Webbrowser) den Zeitpunkt des
letzten Abrufs an den Server. Der Server vergleicht, ob sich seit diesem
Zeitpunkt etwas am RSS-Feed geändert hat. Falls das nicht der Fall ist, wird
eine leere Antwort an die Software zurückgeschickt, und es werden keine Daten übertragen.

Wenn sich etwas verändert hat, kann der Server lediglich die seit dem
letzten Aufruf erneuerten Daten übermitteln und spart so nochmals an
Übertragungszeit (und damit auch Server-Performance).

Dieser Vorgang wird als Conditional GET bezeichnet und ist in Form einer
verbindlichen
RFC 2616 (Richtlinie des HTT-Protokolls)
festgehalten. Dennoch gibt es leider einige Clients, die das Caching nicht
vollständig implementieren und mit derartig ausgelieferten RSS-Feeds Probleme
haben. Solche Probleme können sich darin äußern, dass ein RSS-Reader ständig
bereits bekannte Einträge des RSS-Feeds als neu ansieht oder womöglich gar
keine neuen Artikel empfangen kann.

Um bei solchen kaputten Clients dennoch einen Serendipity-Feed
korrekt abrufen zu können, ist der eingangs erwähnte Parameter
nocache=true an den Aufruf der rss.php-URL anzuhängen.

Im Zusammenhang mit dem globalen Caching unterstützt Serendipity die
Auslieferung von Artikeln ab einem bestimmten Datum. Da üblicherweise
RSS-Feeds nur die letzten 15 Artikel enthalten und man möglicherweise
einmal für eine Weile den RSS-Feed nicht empfangen kann [*] Vielleicht hat man ja einmal sein Notebook oder die
UMTS-Karte im Urlaub vergessen ... ;-)
, könnte es also passieren, dass
man Artikel schlichtweg verpasst. Bei der Übermittlung einer Angabe des
zuletzt gesehenen Artikels wird dies vermieden, und Serendipity würde in
so einem Fall auch alle weiteren Artikel über dem 15. ausliefern.

Diese Auslegung des RFC-Standards verursacht in manchen RSS-Readern und
vor allem Aggregatoren wie der Software Planet jedoch Probleme. In
der Konfiguration des Blogs wird daher die Option angeboten, das
strikte RFC2616 zu veranlassen (siehe Seite rfc2616). Zwei
weitere Variablen (siehe Seite Caching-Variablen) dienen darüber hinaus der
Feineinstellung von Caching-Inhalten.

Sobald diese Option aktiviert ist, wird Serendipity, wie andere Software
auch, stur nur die letzten 15 Artikel ausliefern und somit das Feature
der Urlaubsschaltung deaktivieren.

3.7 - Suche

Suche

Der Permalink für die Suche folgt dem Schema
http://www.example.com/serendipity/search/Suchbegriff1/Suchbegriff2.
Mehrere Begriffe werden dabei durch den Pfadtrenner /
getrennt. Die Pfadkomponente P für die gewünschte Seite der
Übersicht kann angehängt werden.

Volltextsuche wird bei Einsatz der MySQL-Datenbank mit dem
"Fulltext"-Suchmechanismus ausgeführt. Dieser Mechanismus funktioniert
nur bei MySQL-Versionen ab 4.0, und es ist erforderlich, dass ein
FULLTEXT INDEX auf die Spalten title,body,extended der
Tabelle serendipity_entries erstellt wurde. Dies erledigt die
Serendipity-Installationsroutine üblicherweise. Bei manchen Providern
(besonders beim Einsatz von Confixx) kann es jedoch passieren, dass Ihr
Datenbankbenutzer keine INDEX-Rechte hat. In einem solchen Fall
würden Sie bei der Suche nach Artikeln eine Fehlermeldung erhalten, die
Sie dazu anleitet, den Index korrekt zu erstellen. Notfalls müssen Sie
Ihren Provider bitten, Ihnen die notwendigen Rechte dafür einzuräumen.

MySQL unterstützt die Suche mittels BOOLEAN-Operatoren. Hier
können Sie Wörter mit einem Anführungszeichen einschließen und ein
+ oder - vorstellen, um Teilwörter ein- oder
auszuschließen. Auch kann das Zeichen * als Platzhalter für
beliebige Zeichen verwendet werden. Details zu der MySQL-Volltextsuche
schlagen Sie bitte in der MySQL-Dokumentation nach.

Abbildung 3.6: Volltextsuche

Zwei wichtige Besonderheiten beim Einsatz von MySQL gibt es noch zu
beachten: Die Suche funktioniert nur, wenn die Suchergebnisse nicht einen
Großteil aller vorhandenen Einträge ausgeben. Damit verhindert MySQL, dass
eine nutzlose Suche alle Einträge zurückliefern würde. Gerade wenn Sie
also erst zwei Artikel geschrieben haben und nach einem Begriff suchen,
wundern Sie sich nicht, wenn Sie keine Ergebnisse erhalten. Sobald die
Datenbank eine vernünftige Datenbasis enthält, wird die Suche wie
gewünscht funktionieren.

Die zweite Besonderheit ist, dass MySQL nur Wörter mit
standardmäßig mindestens drei Buchstaben findet und dass ein Wort kein
Stoppwort wie und enthält. Eine Suche nach DB würde also
nicht funktionieren. Dies wird durch die MySQL-Option ft_max_word_len
(siehe MySQL-Dokumentation) definiert.

Beim Einsatz von SQLite oder PostgreSQL wird die Suche mittels einer
Zeichenteilkette durchgeführt. Eine Suche nach risch würde also
sowohl Artikel mit dem Wort Frischfleisch als auch
betrügerisch finden. Diese ist zwar langsamer als die erwähnten
MySQL-Möglichkeiten, benötigt dafür aber weniger Rahmenbedingungen, um zu
funktionieren.

Kapitel 4: Backend / Administrationsoberfläche / Verwaltungsoberfläche

Nachdem Sie nun über die möglichen Ansichten von Serendipity im
Besucherbereich Bescheid wissen, ist es an der Zeit, das Backend zu
erkunden.

 

4.1 - Login

Login

Das Backend ist geschützt durch einen Login. Sie erreichen die
Administrationsoberfläche unter


    http://www.example.com/serendipity/serendipity_admin.php

Auf
dieser Seite müssen Sie Ihren Benutzernamen und das Passwort
eintragen, das Sie bei der Installation angegeben haben. Standardmäßig
ist der Benutzername John Doe und das Passwort john.

Unterhalb der beiden Eingabefelder befindet sich die Auswahlbox Daten
speichern
. Wenn Sie diese Option aktivieren, wird auf Ihrem Computer ein
Cookie gespeichert, der Sie eindeutig im System identifiziert, und Sie
können sich in Zukunft ohne Passwort einloggen.

Dieser Cookie enthält eine eindeutige Kennzeichnung sowie ein
Ablaufdatum, Ihr Benutzername oder Passwort wird nicht
gespeichert. Wenn das Ablaufdatum überschritten ist, wird der alte Cookie
automatisch als ungültig markiert und ein neuer Cookie ausgestellt.
Diese Funktionsweise stellt sicher, dass ein Angreifer aus
einem gestohlenen Cookie keine Nutzerinformationen extrahieren und
mit einem veralteten Cookie keinen Login ausführen kann.

Abbildung 4.1: Login-Bildschirm

Trotz dieser Sicherungsmethoden sollten Sie die Option Daten
speichern
niemals auf einem Computer aktivieren, zu dem auch weniger
vertrauenswürdige Benutzer Zugriff haben. Trotz aller Bequemlichkeit
ist diese Option vor allem in Internetcafes tabu.

Sofern Ihr Server die HTTPS-Verschlüsselung unterstützt, sollten
Sie die Administrationsoberfläche immer über
https://...
aufrufen. Erst diese Verschlüsselung schützt sie vor dem Ablauschen Ihrer
Logindaten während der Übermittlung.

4.1.1 - Mögliche Fehler beim Login

Mögliche Fehler beim Login

Das häufigste Problem beim Login ist ein PHP-Server, bei dem die
Sessions nicht, wie im Kapitel Voraussetzungen auf Seite
Voraussetzungen beschrieben, korrekt eingerichtet sind. Dies kann sich
darin äußern, dass Sie sich nach jedem Klick neu einloggen müssen.

Ältere Serendipity-Versionen verursachten zudem ähnliche Probleme, wenn
die URL http://localhost/... lautete. Viele Browser
akzeptieren keine Login-Cookies, wenn der Servername nicht mindestens zwei
Punkte enthält. Auch sollten Sie generell prüfen, ob Ihr Browser
möglicherweise Cookies ablehnt oder eine Antiviren-Software auf Ihrem
Rechner Session-Cookies blockiert.

Auch Umlaute im Passwort oder Benutzernamen können dazu führen, dass Ihr
Passwort nicht korrekt abgeglichen werden kann. In manchen Fällen
kann es helfen, wenn Sie in Ihrem Browser alle Cookies löschen,
die in Verbindung mit Ihrer Blog-URL gespeichert sind, dann den
Browser neu starten und sich so neu einloggen können.

4.1.2 - Passwort vergessen

Passwort vergessen

Serendipity speichert Ihr Passwort aus Sicherheitsgründen nicht im
Klartext in der Datenbank ab. Sollte man daher sein Passwort vergessen
haben, kann man dieses nicht einfach irgendwo nachschlagen, sondern muss
das Passwort neu setzen.

Bis Serendipity 1.5 verwendete Serendipity MD5-Hashes um Ihre
Passwörter für Logins in der Datenbanktabelle serendipity_authors zu sichern.

Da aber die Mechanismen MD5-Hashes mit Rainbow-Tabellen zu knacken,
oder sogar "Wörterbuch Hash" -lookups immer mehr zunahmen und immer populärer wurden,
vollzog Serendipity schon im Jahre 2009 den Schritt [*] \cmd{http://blog.s9y.org/archives/205-hash.html} , den Serendipity-Hashing-Mechanismus auf einen gesalzenen und sicheren SHA1-Hash zu erhöhen.
Damit wurde es aber unmöglich per phpMyAdmin mal eben so ein Passwort in der Datenbanktabell zu ersetzen.

Serendipity, mit seinem Anspruch höchster Rückwärts-Kompatibilität,
nutzte für diese Modernisierung einen "weichen" Upgrade Ansatz.
Neue Serendipity Versionen akzeptierten die alten MD5 Logins einmalig, um dann das vom Benutzer
angegebene Passwort zu verwenden, die sicheren neuen Hashes zu erstellen und in der Datenbank speichern.

Ein Beispiel wie man seit den 2009er Versionen von Serendipity ein Passwort neu setzen kann, liefert folgendes kleines Script,
mit dem sich problemlos arbeiten lässt, wenn man seinen Usernamen noch weiß,
oder durch einen Blick in die serendipity_authors-Tabelle herausgefunden hat.
Speichern Sie es im Serendipity root Verzeichnis als fixpass.php ab
und rufen Sie es in ihrem Browser auf.
Nach erfolgreichem Update löschen Sie es anschließend wieder von dort.


    <?php
$username = "YOURusername";
$password = "YOURpassword";
include 'serendipity_config.inc.php';
echo serendipity_db_query("UPDATE {$serendipity['dbPrefix']}authors SET password = '" . serendipity_hash($password) . "', hashtype=1 WHERE username = '" . serendipity_db_escape_string($username) . "'");
echo "Password changed.";

Das Script enthält zwei Variablen: $username und $password.
Diese Variablen müssen Sie auf Ihre Gegebenheiten anpassen. Tragen Sie
in die Variable $password das neue Passwort (in Anführungszeichen gesetzt)
ein. In die Variable $username müssen Sie logischerweise den Usernamen des Autors setzen.

Da Serendipity keine Umgehungsmechanismen des Logins (in Ihrem Interesse)
ermöglicht, ist ein Neusetzen des Passwortes nur über die Datenbank
möglich.

Dazu muss ein Tool wie phpMyAdmin benutzt werden, um die Tabelle
serendipity_authors zu bearbeiten. Diese Tabelle enthält die
Benutzernamen und Passwörter aller angelegten Benutzer im System - nach
der Installation ist dies üblicherweise nur der Hauptbenutzer.

Um nun ein Passwort für diesen Benutzer neu zu setzen, muss man sich den
Inhalt der Tabelle anzeigen lassen (phpMyAdmin: Datensätze
anzeigen
) und die Zeile bearbeiten (phpMyAdmin: Klick auf das
Stift-Icon). In der Bearbeitungsmaske dieses Datensatzes findet man das
Feld password, in das man das neue, gültige Passwort einsetzen
muss. Dabei ist zu beachten, dass für das Passwort ein sogenannter
MD5-Hash [*] Ein MD5-Hash ist ein Einwegmechanismus, der eine
Zeichenkette analysiert und eine spezielle Prüfsumme dazu erzeugt. Diese
Prüfsumme ist für alle Zeichenketten reproduzierbar, aber von der
Prüfsumme kann nicht auf die Originalzeichenkette zurückgeschlossen
werden.
eingetragen werden muss, und nicht das Passwort im Klartext.
MySQL bietet hierfür eine Spaltenfunktion namens MD5 an, die man
auswählt und dann das gewünschte Passwort in den Inhaltsbereich
einträgt - beim Speichern wird MySQL dann die Funktion MD5
anwenden und den Klartext verschlüsseln. Alternativ kann man einen
MD5-Hash für das gewünschte Passwort auch mit zahlreichen Online-Generatoren
im Internet erzeugen und mittels der Zwischenablage in den
Datensatz einfügen.

Alle anderen Spalten des Datensatzes sollten Sie unverändert lassen.

Sollte Ihnen dies alles zu komplex sein, können Sie stattdessen auch den
folgenden Code in Ihrem Serendipity-Verzeichnis als fixpass.php
speichern und per http://www.example.com/serendipity/fixpass.php
aufrufen:


Das Script enthält zwei Variablen: $authorid und $neues_passwort.
Diese Variablen müssen Sie auf Ihre Gegebenheiten anpassen. Tragen Sie
in die Variable $neues_passwort das neue Passwort (in Anführungszeichen gesetzt)
ein. Die Variable $authorid müssen Sie entweder auf die ID des Autors [*] Diese entspricht von 1 an aufwärts zählend der Anlegungsreihenfolge
der Autoren; Sie können sie mittels phpMyAdmin oder Ähnlichem in der
Datenbanktabelle serendipity_authors nachschauen.
setzen, oder Sie tragen
dort eine 0 ein; dadurch werden die Passwörter aller Benutzer auf das neue
Passwort gesetzt.

4.1.3 - XSRF/CSRF-Schutz

XSRF/CSRF-Schutz

Bei allen Zugriffen auf das Backend führt Serendipity eine Prüfung durch,
ob Sie berechtigt sind, die gewünschte Aktion (das Löschen von Beiträgen
etc.) durchzuführen.

Eine im Internet derzeit verbreitete Angriffsart ist die sogenannte
Cross-Site Request Forgery (XSRF, CSRF). Dabei enthält eine
fremde Seite ein verstecktes JavaScript. Wenn der Angreifer die Adresse
Ihres Blogs kennt und Sie die fremde Webseite besuchen, könnte diese
über das versteckte JavaScript administrative Aktionen in Ihrem Blog in
Ihrem Namen ausführen. Sozusagen eine bösartige, von Ihnen ungewollte
Fernsteuerung Ihres Blogs. Denn für Ihr Blog erscheint es so, als würden
Sie selbst die Aktion bewusst ausführen.

Um derartigem Missbrauch vorzubeugen, setzt Serendipity zweierlei
Methoden ein.

Die wirkungsvollste ist, dass jede Aktion im Backend durch einen
sogenannten
Token geschützt wird. Dieser Token wird anhand
Ihrer Logindaten automatisch und zufallsgeneriert erstellt, daher kann er von
böswilligen Angreifern nicht ohne Eindringen in Ihren eigenen Rechner
(oder die Netzwerkverbindung) ausgelesen werden. Wenn eine fremde
Webseite also Ihren Browser fernsteuern möchte, scheitert die Aktion
daran, dass der gültige Token fehlt.

Eine derartige Aktion quittiert Serendipity dann mit der Meldung:


    Ihr Browser hat keinen gültigen HTTP-Referrer übermittelt. Dies kann
entweder daher kommen, dass Ihr Browser/Proxy nicht korrekt konfiguriert
ist, oder dass Sie Opfer einer Cross Site Request Forgery (XSRF)
waren, mit der man Sie zu ungewollten Änderungen zwingen wollte. Die
angeforderte Aktion konnte daher nicht durchgeführt werden.

Wenn Sie diese Meldung erhalten, obwohl Sie eine Aktion veranlasst haben,
kann dies darauf hinweisen, dass Ihr Browser den Token nicht korrekt
übermittelt hat.
Ein Token wird in einem Browser-Cookie gespeichert,
daher muss Ihr Browser Cookies zwingend akzeptieren. Weiterhin kann die
Fehlermeldung erscheinen, wenn Sie Ihr Backend nicht unter der URL
aufrufen, unter der Sie sich eingeloggt haben [*] Beispielsweise
auch, wenn Sie sich über https://www.example.com/serendipity/
eingeloggt haben, aber über http://example.com/serendipity/ eine
Aktion aufrufen.
. Im Zweifelsfall kann es helfen, wenn Sie sich komplett
aus dem Backend ausloggen, im Browser sämtliche Cookies des Blogs löschen
und sich neu einloggen.

Die zweite Sicherheitsmethode besteht darin, dass Serendipity den
HTTP-Referrer prüft. Bei jedem Aufruf, den Ihr
Browser tätigt, wird an den Server die URL der vorausgehenden Webseite übermittelt und in
einer sogenannten HTTP-Kopfzeile namens Referrer (Verweis)
gespeichert. Anhand dieses Wertes kann Serendipity erkennen, ob Sie vor
dem Aufruf Ihres Serendipity-Backends möglicherweise eine fremde Webseite
besucht haben. Im regulären Betrieb von Serendipity kann es niemals
vorkommen, dass Sie eine administrative Aktion ausführen, ohne dass der
HTTP-Referrer Ihrer Blog-URL entspricht.

Wenn dieser Fall eintritt, gibt Serendipity ebenfalls die oben genannte
Fehlermeldung aus. Da die HTTP-Referrer-Kopfzeile jedoch laut
Spezifikation kein Pflichtfeld ist und auch gewisse private Informationen
über Sie ausliefert, können Sie in vielen Browsern die Übermittlung
dieser Variable unterdrücken. Dann kann keine Webseite herausfinden,
welche Seite Sie vorher besucht haben - und auch Serendipity kann dies
nicht mehr erkennen.

Am einfachsten ist es, dass Sie in Ihrem Browser die Übermittlung des
HTTP-Referrers für Ihr Serendipity-Blog aktivieren. Wenn dies nicht
möglich ist, können Sie Serendipity nach wie vor betreiben, werden jedoch
die oben genannte Warnmeldung sehen.

Im Gegensatz zur Sicherheitsprüfung durch den Token wird die
Prüfung des HTTP-Referrers jedoch standardmäßig die auszuführende
Aktion nicht abbrechen, damit der Betrieb von Serendipity auch mit
derartig konfigurierten Browsern funktionieren kann. Wenn Sie in Ihrem
Browser die Übermittlung des HTTP-Referrers zulassen, können Sie als
weitere Sicherheitsoption die globale Variable
$serendipity['referrerXSRF'] aktivieren - in so einem Fall wird
eine Aktion im Backend abgebrochen, wenn der HTTP-Referrer fehlt (siehe
Seite referrerXSRF).

4.2 - Übersicht

Übersicht

Nach dem Login befinden Sie sich auf der Übersichtsseite des Backends.

Abbildung 4.2: Verwaltungsoberfläche

Der Kopfbereich zeigt dabei den Namen des Blogs an und in einer kleinen
Info-Zeile darunter den Namen und Benutzerrang des aktuell eingeloggten
Benutzers.

Mit Serendipity 2.0+ agiert nun die Top-Leiste als Navigationsleiste für die Backend Startseite, die Eigenen Einstellungen, den Weg zum Frontend und für das Logout.

Im Menü der linken Seite sehen Sie als Administrator alle
Untermenüpunkte, mit denen sich Serendipity bedienen lässt. Auf der
rechten Seite sind einige Links aufgeführt, mit denen Sie zu speziellen
weiterführenden Seiten rund um Serendipity geführt werden.

Der eigentliche Inhaltsbereich gibt nur einen kleinen
Begrüßungstext aus, und der Fußbereich der Seite stellt die aktuelle
Versionsnummer von Serendipity und PHP dar.
Mit Serendipity 2.0+ wurde in diesen inhaltslosen Raum das Dashboard
mit zwei fest- und vorkonfigurierten Dashboard-Containern, letzte Artikel-Kommentare
und letzte Artikel-Entwürfe, im Serendipity Kern eingebaut.

Das Menü selbst ist in mehrere Abschnitte unterteilt:

  • Ein Anfangsblock führt zur Übersichtsseite sowie zu den
    Einstellungen des aktuellen Benutzers.
  • Einträge bietet Möglichkeiten zum Bearbeiten von Artikeln.
  • Mediendatenbank gibt Zugriff auf hochgeladene Dateien.
  • Aussehen verwaltet das Template und die eingesetzten Plugins
    des Blogs.
  • Administration umfasst alle Funktionen, die den Zugriff auf
    das Blog und dessen Daten regulieren.
  • Der abschließende Block enthält die Links Zurück zum Blog, um
    in das Frontend zu gelangen, und den Menüpunkt Abmelden, um sich
    aus dem Backend vollständig abzumelden.
  • Inhalt bietet Möglichkeiten zum Bearbeiten von Artikeln und aller Arten von inhaltsbezogenen Funktionen/Plugins.
  • Mediendatenbank gibt Zugriff auf die hochgeladenen Dateien und überhaupt auf die Administration der Mediendatenbank.
  • Aktivität verwaltet alle Arten von Backend Aktivitäten, Kommentare und eingesetzte Plugins
    des Blogs, soweit sie nicht streng artikelbezogen, eine solche Aktivität oder sonstiges sind.
  • Einstellungen umfasst alle Funktionen, die den Zugriff auf
    das Blog und dessen Daten regulieren. Darunter fallen auch das Template/Theme und die Plugin Administration.

Einige Plugins geben zudem an einigen Stellen im Menü ihre eigenen
Menüpunkte aus. Diese zusätzlichen Menüpunkte führen dann zur jeweiligen
Funktionalität eines Plugins.

 

4.3 - Eigene Einstellungen

Eigene Einstellungen

Die Eigenen Einstellungen ermöglichen den Zugriff auf alle
Einstellungen, die lediglich für den aktuellen Redakteur von Belang sind.
Jeder Benutzer kann somit seine eigenen, individuellen Einstellungen in
diesem Bereich vornehmen.

Der Bereich ist zweigeteilt in Persönliche Einstellungen und
Voreinstellungen für neue Einträge. Im ersten Abschnitt legen Sie,
wie bei der Installation bereits geschehen, den Benutzernamen, das
Passwort und den Loginnamen fest.

Damit später Ihr Passwort nur von autorisierten Personen geändert werden
kann, muss für dessen Änderung auch stets das alte Passwort angegeben
werden. Wenn Sie das Passwort nicht ändern wollen, tragen Sie daher in
dem Eingabefeld Passwort nichts ein.
Beachten Sie bitte, dass
einige Browser (zB. Firefox) die sogenannte Automatische
Vervollständigung für Passwort-Felder unterstützen und möglicherweise
daher automatisch das zuletzt verwendete Passwort im dafür vorgesehenen
Feld eintragen. Sollten Sie also bereits vorausgefüllte Sternchen in dem
Eingabefeld vorfinden, hat diese Ihr Browser eingefügt und nicht
Serendipity. Würden Sie nun direkt auf den Button Speichern am
Ende der Seite klicken, bekämen Sie eine Fehlermeldung von Serendipity,
da Ihr Browser das Feld Altes Passwort nicht eingetragen hat.

Nach diesen Login-relevanten Feldern folgen weitere Einstellungen:

E-Mail Hier tragen Sie Ihre E-Mail-Adresse ein. Diese wird von Serendipity
an mehreren Stellen verwendet, um Sie über neu eingegangene Kommentare zu
benachrichtigen oder auch Administratoren des Blogs über den Zugang neuer
Benutzer zu informieren. Geben Sie die Adresse hier im Format
[email protected] an, also ohne zusätzliche Formatierungen wie
"Ihr Name" <[email protected]>.

Sprache Die Übersetzung der Systemtexte des Backends und des Frontends richtet
sich nach der Auswahl in diesem Feld. Beachten Sie dabei, dass die Sprache
erst nach dem nächsten Klick innerhalb des Backends gewechselt wird und
nur für Sie gilt. Die globale Sprache stellen Sie in der
Konfiguration ein (siehe Abschnitt
Konfiguration, Seite Konfiguration).
Die hier eingestellte Sprache gibt lediglich an, welche Übersetzung
Serendipitys aktiviert wird. Sie sind durch die Festlegung dieser Option
nicht daran gebunden, Ihre Artikel auch in der gesetzten Sprache zu
verfassen.

Abbildung 4.3: Eigene Einstellungen

Grafischen WYSIWYG-Editor verwenden Serendipity liefert einen WYSIWYG-Editor (siehe Abschnitt WYSIWYG
auf Seite WYSIWYG). Dieser Editor stellt beim Erstellen eines
Artikels für Ihr Blog erweiterte, einfache Textformatierungen zur
Verfügung. So können Sie einen Blog-Artikel wie in einem Office-Programm
erstellen und formatieren.
Wenn Sie dies wünschen, aktivieren Sie Grafischen
WYSIWYG-Editor verwenden
. Dieser wird jedoch nur in aktuellen Browsern
unterstützt.
WYSIWYG-Editoren funktionieren leider in unterschiedlichen Browsern und
je nach Einsatzzweck recht unterschiedlich - so auch die von Serendipity
standardmäßig verwendete Komponente HTMLArea. Dieser Editor fügt
leider gerade bei intensiven Kopier-/Einfüge-Operationen häufig problematische
HTML-Konstrukte ein, die die Formatierung in Ihrem Blog
durcheinanderbringen könnten. Beispielsweise sind dies falsche
Zeilenabstände, überflüssige Absätze bis hin zur falschen Platzierung von
eingebundenen Bildern. Dies hat sich über die Jahre extrem verbessert.
Leider wird Sie nur die Erfahrung lehren, wie ein WYSIWYG-Editor
einzusetzen ist, ohne Fehler zu produzieren. Generell gilt die Empfehlung,
Textformatierungen nur mit Bedacht einzusetzen und ab und an den
WYSIWYG-Editor in den Quelltext-Modus zu versetzen, um zu prüfen, ob sich
dort überflüssige, leere HTML-Konstrukte befinden.
Einige Plugins für Serendipity bieten zudem externe WYSIWYG-Editoren wie
TinyMCE [*] \cmd{http://tinymce.moxiecode.com/},
CKEditor [*] \cmd{http://ckeditor.com/},
FCKEditor [*] \cmd{http://www.fckeditor.net/} und
Xinha [*] \cmd{http://xinha.python-hosting.com/} zur Einbindung an,
die in ihrem Funktionsumfang durchaus variieren. Auch diese externen
Editoren werden nur dann verwendet, wenn die Option Grafischen
WYSIWYG-Editor verwenden
aktiviert ist. Aufgrund der weiteren Entwicklungen in den folgenden Jahren bis Heute, können aber nur das
CKEditor-Plugin und vielleicht noch das TinyMCE-Plugin empfohlen werden. Die beiden anderen sind hoffnungslos veraltet!

WYSIWYG-Buttonleiste Mit Serendipity 2.0+ können Sie hier die vorkonfigurierten Toolbar-Buttonleisten auswählen.
Es sind die sogenannten Basic- (Reduziert-), Standard- und Full- (Vollständige-)Toolbars und auch noch die
Standard-Alternative mit unterschiedlicher Menge und Anordnungen der Buttons erhältlich.
Wählen Sie einfach diejenige aus, die am besten zu Ihnen und ihren Einträgen passt.
Desweiteren kann man dieselben auch noch erzwingen, wenn man sich einmal eine eigene Toolbar
im eigenen Theme erstellt hatte und nun wieder zu den Originalen Einstellungen zurück will.
Lesen Sie dazu über die individuelle Konfiguration (mittels einer individuellen JavaScript-Konfigurationsdatei
in templates/XXX/admin/ckeditor_custom_config.js) in CKEditor (siehe Seite wysiwyg ).

Fortgeschrittene JavaScripts einsetzen? Grundsätzlich ist Serendipity ohne den Einsatz von JavaScript problemlos
zu bedienen, also auch von textbasierten Browsern. Dennoch gibt es
einige zusätzliche Features, die AJAX (siehe Seite AJAX)
einsetzen. Wenn die Option Fortgeschrittene JavaScripts einsetzen
aktiviert ist, werden die zusätzlichen Features aktiviert.
Aktuell wird diese Option nur an zwei
Stellen ausgewertet: bei der Plugin-Konfiguration (um Plugins via Drag
and Drop
anzuordnen, siehe Kapitel Plugins verwalten auf Seite
Plugins verwalten) und für das Beschneiden eines Bildes.

Bei Kommentaren benachrichtigen? Sobald ein Benutzer zu einem Ihrer Blog-Artikel einen neuen Kommentar
verfasst, können Sie per E-Mail benachrichtigt werden.

Bei Trackbacks benachrichtigen? Sobald ein Benutzer zu einem Ihrer Blog-Artikel ein neues Trackback
geschickt hat, können Sie per E-Mail benachrichtigt werden.

Vereinfachte Filter Vielen Benutzer benötigen die erweiterten Funktionen
die Serendipity bereitstellt nicht und sind sogar eventuell überfordert, wenn
zu viele Möglichkeiten ihren Schreibfluss behindern.
Wenn aktiviert, werden Suchformulare und Filteroptionen auf die notwendigen Optionen reduziert.
Ist diese Option deaktiviert, werden alle erweiterten Filteroptionen,
z.b. beim Eintrags-Editor oder der Mediendatenbank, angezeigt.

Popups für das Backend verwenden? Sollen im Backend Popup-Fenster eingesetzt werden?
Wenn deaktiviert (Standard), werden eingebettete modale Dialoge,
z.b. für die Mediendatenbank und die Kategorieauswahl verwendet.

Popups in speziellen Bereichen erzwingen Wenn Popups generell deaktiviert wurden,
kann an speziellen Stellen dennoch der Einsatz von Popups forciert werden,
indem die Liste jener Stellen hier aufgeführt wird (kommasepariert).
Die vollständige Liste lautet: images, comments,
categories, tags, links.

Symbolleiste für das Mediendatenbank-Popup anzeigen? Vielen Benutzer benötigen die erweiterten Funktionen
die Serendipity bereitstellt nicht und sind sogar eventuell überfordert, wenn
zu viele Möglichkeiten ihren Schreibfluss behindern.

Der zweite Abschnitt der Eigenen Einstellungen stellt
Voreinstellungen für neue Einträge ein:

Kommentare und Trackbacks dieses Eintrags werden moderiert. Diese Option stellt ein, ob bei einem neu erstellten Artikel
standardmäßig Kommentare und Trackbacks moderiert werden sollen. Im Falle
einer Moderation muss ein neuer Kommentar oder ein Trackback erst
freigeschaltet werden, bevor er für Besucher angezeigt wird.

Kommentare für diesen Eintrag zulassen. Mittels dieser Option wird festgelegt, ob Kommentare zu einem Artikel
erlaubt sind.

Neuer Eintrag Wenn Sie einen neuen Artikel erstellen, kann dieser entweder als
Veröffentlichung oder Entwurf gespeichert werden. Nur
veröffentlichte Artikel werden den Besuchern angezeigt, ein Entwurf ist
nur für Redakteure sichtbar.

Symbolleiste für das Mediendatenbank-Popup anzeigen? Um eine Grafik oder Datei in einen Blog-Artikel einzufügen, kann man ein
Popup-Fenster mit der Mediendatenbank Serendipitys öffnen. Da diese
Oberfläche in diesem Fall nur zur Einfügung von Objekten benutzt wird,
werden einige Optionen der Mediendatenbank (Bearbeiten, Umbenennen von
Dateien und Weiteres) der Übersichtlichkeit halber ausgeblendet. Sollten
Sie jedoch diese Funktionen auch gerne innerhalb des Popup-Fensters
ausführen wollen, müssen Sie die Option Symbolleiste für das
Mediendatenbank-Popup anzeigen
aktivieren.

Um die vorgenommenen Änderungen an den Einstellungen zu speichern, müssen
Sie auf den Button Speichern am Ende der Seite klicken.

In älteren Versionen von Serendipity befanden sich auf der Seite
Es können keine Einträge mehr veröffentlicht werden
einige weitere spezielle Konfigurationsparameter: Zugriffsrechte,
Gruppenzugehörigkeit, Rechte: Einträge veröffentlichen und
Erstellung von Einträgen verbieten. Diese Optionen sind in neuen
Versionen nun in den Bereich Administration → Benutzerverwaltung
verschoben worden, wo sie konzeptionell sinnvoller liegen. Bei Verwendung
von Serendipity 1.2 und höher können Sie den folgenden Abschnitt also
getrost ignorieren.

Über diese Optionen war es ehemals möglich, seinem eigenen Benutzer
wichtige Grundrechte zu entziehen. So konnte es vorkommen, dass ein
Administrator sich selbst (versehentlich) als Redakteur verzeichnete
oder keine Gruppenmitgliedschaften auswählte. Beide Optionen führten
dazu, dass man die Situation nur mittels Eingriff in die Datenbank
wieder richten konnte.

Die Option Rechte: Einträge veröffentlichen konnte zudem dazu
führen, dass sich ein Autor die Möglichkeit entzog, Einträge überhaupt
veröffentlichen zu dürfen.

Weitaus schlimmer war die Aktivierung der Option Erstellung von
Einträgen verbieten
. Diese Option ist eigentlich für eingeschränkte
Benutzerkonten gedacht, die im Backend überhaupt nichts tun dürfen.
Benutzer, bei denen diese Option gesetzt ist, können im Menü außer dem
Login, dem Logout und den eigenen Einstellungen auf nichts anderes
zugreifen.

Sollte in einer älteren Version diese Fall eintreten, können Sie
folgendes PHP-Script in Ihrem Serendipity-Verzeichnis als
fixpriv.php abspeichern und mittels
http://www.example.com/serendipity/fixpriv.php aufrufen.


Dieses Script ändert den Benutzer mit der ID 1 so, dass er
wieder als Administrator mit vollen Rechten zählt. Sollten Sie die Rechte
eines anderen Autors beheben wollen, müssen Sie in der Datenbanktabelle
serendipity_authors nach der ID des gewünschten Autors suchen und
ihn an den beiden Stellen in der fixpriv.php ändern.

 

4.4 - Einträge

Einträge

Der Bereich Einträge enthält sämtliche Menüpunkte, die der
Erstellung und dem Bearbeiten von Blog-Artikeln dienen.

4.4.1 - Neuer Eintrag

Neuer Eintrag

Der Menüpunkt Neuer Eintrag stellt nach der Einrichtung des Blogs
üblicherweise die meistgenutzte Funktionalität zur Verfügung: die
einfache Erstellung eines Artikels.
Dahinter verbirgt sich die Eintrags-Maske, die in einem
übersichtlich strukturierten Bereich alle Optionen für einen Artikel
darstellt.

Abbildung 4.4: Einträge: Neuer Eintrag (aktivierter WYSIWYG-Editor)

Die jeweiligen Eingabefelder sind:

Titel In diesem Feld wird der Titel des Artikels eingetragen, so wie er auch im
Frontend dargestellt werden soll. Im Titel können Sonderzeichen und
Umlaute enthalten sein, jedoch können keine HTML-Tags dort eingetragen
werden.

Artikelmodus Im Auswahlfeld rechts neben dem Titel kann bestimmt werden, ob der
Artikel beim Speichern veröffentlicht werden soll oder nur als
Entwurf abgelegt wird. Die Standardeinstellung richtet sich nach
der Festlegung in den Eigenen Einstellungen. Je nach den Rechten
Ihres Redakteurs kann es sein, dass dieses Auswahlfeld nur die Option
Entwurf zulässt. In diesem Fall muss ein Chefredakteur Ihre
Artikel veröffentlichen.

Datum Das Datum wird in dem Feld unterhalb des Artikeltitels festgelegt. Es
muss dabei in einem maschinenlesbaren Format gespeichert werden:
Jahr-Monat-Tag Stunde:Minute. Um die aktuelle Uhrzeit Ihres
Rechners dort einzufügen, können Sie auf das Uhr-Symbol rechts neben dem
Eingabefeld klicken. Dies ist in solchen Fällen hilfreich, wenn Sie einen
Artikel überarbeiten (oder einen Artikel im Entwurfsmodus
veröffentlichen wollen) und dabei die Uhrzeit aktualisieren möchten.
Wenn Sie hier einen zukünftigen Zeitpunkt eintragen, wird
Serendipity einen derart veröffentlichten Eintrag in der Übersicht
nicht anzeigen. Sobald jedoch der eingetragene Zeitpunkt erreicht wurde,
wird der Artikel ohne Ihr eigenes Zutun automatisch dargestellt.
Somit können Sie dieses Eingabefeld auch für eine zeitgesteuerte
Veröffentlichung nutzen.

Kategorie Während eine einzelne Kategorie durch normale Auswahl des Ausklappmenüs
für den Artikel festgelegt wird, können Sie einem Artikel zusätzlich mittels
Klick auf das +-Symbol links neben diesem Ausklappmenü auch
mehrere Kategorien zuweisen. Nach einem Klick auf das Symbol verändert
sich das Ausklappmenü in ein mehrzeiliges Auswahlfeld. Mit gedrückter
(Strg/Apfel)-Taste und einem linken Mausklick können Sie dabei mehrere
Kategorien markieren und mit einem zweiten Klick eine Markierung auch
wieder aufheben. Alle ausgewählten Kategorien werden dabei vom Browser
markiert dargestellt.
Rechts neben der Datumseingabe befindet sich ein Ausklappmenü, das
standardmäßig auf Keine Kategorie gesetzt ist. Wenn Sie das Feld
aufklappen, sehen Sie eine Liste aller erstellten Kategorien in
hierarchischer Gliederung.

Eintrag Den größten Platz dieser Seite nimmt das Feld für den eigentlichen
Artikeltext ein. Je nachdem, ob Sie den WYSIWYG-Editor in den
Eigenen Einstellungen aktiviert haben, sieht dies etwas
unterschiedlich aus.
Eintrag mit deaktiviertem WYSIWYG-Editor Bei deaktiviertem WYSIWYG-Editor sehen Sie ein Feld, in das direkt
HTML-Code eingetragen wird. Wenn Sie einfachen, unformatierten Text
schreiben wollen, können Sie diesen hier einfach einfügen. In HTML werden
Umbrüche nicht durch einen üblichen Zeilenumbruch mittels
Eingabe-Taste angegeben, sondern mittels des HTML-Tags <br />.
Damit Sie aber Artikel trotz HTML-Tags bequem verfassen können, ist
standardmäßig bei der Serendipity-Installation ein Plugin namens
Textformatierung: NL2BR aktiviert worden. Dieses kümmert sich beim
Speichern Ihrer Artikel darum, automatisch den gewohnten Zeilenumbruch in
einen HTML-Zeilenumbruch umzuwandeln.
Rechts oberhalb des Eingabebereichs für den Eintrag befindet sich
eine kleine Symbolleiste, auf der mehrere Buttons verteilt sind. Damit
können Sie einige Formatierungsoptionen auf Ihren Artikeltext anwenden.
Geben Sie dazu einen kleinen Text in Eintrag ein und markieren Sie ein Wort
daraus per Maus.
NoBR Aktiviert einen Block indem das nl2br Plugin nicht aktiv sein darf. Dies ist ratsam, wenn einzelne Textpassagen im Textfeld bereits HTML-formatiert sind. I, B, U formatiert ein Wort kursiv, ein
Klick auf B formatiert es fett, und ein Klick auf U
unterstreicht das gewählte Wort.
Zitat markiert einen größeren gewählten
Textbereich als Zitat markieren. Gerade bei Blog-Einträgen ist die Form
des Zitierens sehr gebräuchlich.
[group: external files] Die letzten drei Buttons dienen der Einbindung von externen Dateien und
benötigen daher keine vorherige Textauswahl. Ein Klick auf einen der
Buttons img, Mediendatenbank oder URL wird an der
Stelle, wo sich der Cursor im Text befindet, das gewünschte Objekt
einbinden.
img bindet ein externes Bild ein. Bei einem Klick auf den Button
werden Sie über ein Popup-Fenster aufgefordert, die URL des Bildes
einzugeben. Tragen sie die URL vollständig mit http://-Präfix ein.
Nach dem Klick auf OK wird automatisch der benötigte HTML-Code in
Ihren Eintrag eingefügt - so können Sie sich auch direkt merken, wie ein
Bild bei Gelegenheit auch manuell eingefügt werden kann.
Media öffnet beim Anklicken ein neues Popup-Fenster, in
dem ein Bild aus der eigenen Mediendatenbank eingefügt werden kann. Eine
detaillierte Beschreibung dieses Popups folgt auf Seite
Mediendatenbank-Popup.
URL öffnet ein Eingabefenster, um einen Hyperlink zu einer
Webseite einzutragen. Geben Sie dort die URL wieder vollständig mit
http://-Präfix ein. Nach dem Klick auf OK können Sie
zusätzlich die Beschreibung des Hyperlinks eingeben, wie er später dem
Benutzer dargestellt wird. Sie können hierbei auch vor dem Klick auf den
Button URL einen Text in Ihrem Artikel mit der Maus markieren,
dieser wird dann beim Einfügen eines Hyperlinks automatisch als
Beschreibungstext eingesetzt. Zuletzt fordert Sie der Einfügedialog noch
auf, einen title/tooltip zu vergeben. Der Text, den Sie dort
eintragen, wird später beim Darüberfahren mit der Maus für den Besucher
in einem Info-Popup angezeigt.
Eintrag mit aktiviertem WYSIWYG-Editor Abbildung 4.4a: Einträge: Neuer Eintrag (aktivierter WYSIWYG-Editor - Standard Toolbar) Abbildung 4.4b: Einträge: Neuer Eintrag (aktivierter WYSIWYG-Editor - Vollständige Toolbar) Ist in Ihren Eigenen Einstellungen der WYSIWYG-Editor aktiviert,
sehen Sie einen Eingabebereich, der aus Microsoft Word oder OpenOffice
bekannte Bedienelemente abbildet. Die meisten der Symbole werden auf
einen markierten Text im Artikel angewendet. Wenn Sie mit der Maus
darüberfahren und etwas warten, wird ein Info-Popup die jeweilige
Beschreibung des Icons anzeigen.
Dabei wird ab Serendipity 2.0+ der im Kern implementierte CKEditor verwendet
und die benötigte Toolbar kann per Auswahlbox in den Eigenen Einstellungen festgelegt
werden. Die Default Buttons des Editors sind in in schwarzer Schrift/Icon auf grauem Grund gehalten,
die per Serendipity Plugin dazu installierten Plugins haben ein farbiges Icon. Dazu gehört per Default auch das Mediendatenbank-Icon.

Weitere Hinweise zur individuellen Anpassung befinden sich in den Dateien htmlarea/ckeditor_s9y_config.js und htmlarea/ckeditor_s9y_plugin.js. Im Einzelnen bedeuten sie Folgendesdie Buttons und Gruppen Folgendes (Auswahl):
font formatiert einen ausgewählten Textbereich mit der im Auswahlfeld gewählten Schriftart. size formatiert einen ausgewählten Textbereich mit der im Auswahlfeld gewählten Schriftgröße. format stellt ein, welchem Texttyp ein ausgewählter Textbereich entspricht.
Überschriften werden später auch als HTML-Überschriften gesetzt.
B formatiert einen ausgewählten Textbereich fett. I formatiert einen ausgewählten Textbereich kursiv. U formatiert einen ausgewählten Textbereich unterstrichen. S formatiert einen ausgewählten Textbereich durchgestrichen. Die beiden x-Zeichen mit hoch- und tiefgestellter
2 können einen ausgewählten Textbereich entsprechend positionieren
group: clipboard Im letzten Bereich der oberen Symbolleiste befinden sich die Funktionen für die Zwischenablage.
Ein markierter Text kann hiermit in die Zwischenablage kopiert oder ausgeschnitten
und von dort in den Text eingefügt werden. Die beiden Pfeile zurück und
vor können eine vorherige Aktion rückgängig machen oder wiederherstellen.
group: textflow Der erste Bereich der unteren Symbolzeile ermöglicht es, den Textfluss eines gewählten Absatzes
zu verändern: linksbündig, zentriert, rechtsbündig
und Blocksatz. Beachten Sie beim Blocksatz, dass dies aufgrund fehlender Browser-Unterstützung
für Wortumbrüche selten empfehlenswert ist.
group: textdirection Die beiden Symbole mit dem Paragraphen-Symbol können einen markierten Textbereich in eine
bestimmte Textrichtung (links nach rechts oder rechts nach links)
fließen lassen. Dies ist hauptsächlich für arabische Sprachen interessant.
group: lists Im nächsten Bereich befinden sich Icons, die den jeweiligen markierten Text in eine
nummerierte oder geordnete Listenaufzählung formatieren können.
Die Buttons rechts daneben dienen zur Einrückung eines Textes.
group: colors Die Textfarbe und Hintergrundfarbe eines markierten Textbereichs stellen Sie über die
beiden Icons mit dem T-Symbol bzw. dem Farbeimer ein.
Bei einem Klick darauf öffnet sich ein Farbauswahlfenster.
- Der Button mit dem horizontalen Strich fügt ein Trennzeichen
in den Text an der aktuellen Cursorposition ein.
chain Der Button mit dem Kettensymbol fügt an der aktuellen Cursorposition
im Text einen Hyperlink ein. Bei einem Klick auf den Button werden Sie in einem Popup-Fenster aufgefordert, das Linkzie
und die Linkbeschreibung einzutragen. Etwaiger vormarkierter Text wird hierbei als Beschreibung vorausgewählt.
picture frame Das Symbol mit dem Bilderrahmen ermöglicht das Einfügen eines
externen Bildes. Bei einem Klick hierauf öffnet sich ein Dialog, in dem Sie die URL eines Bildes sowie weitere Optionen
eintragen können. Diese sind Alternate text (für eine manuell vergebene Bildbeschreibung),
Alignment (für die Ausrichtung des Bildes), Border thickness
(für die Randstärke eines Bildes), Horizontal spacing (für den horizontalen Abstand in Pixel
des Bildes zum Text), Vertical spacing (für den vertikalen Abstand in Pixel des Bildes zum Text).
Bei einem Klick auf OK wird das gewählte Bild in den Text eingefügt.
imagelist Die komfortablere Art, ein Bild einzufügen, führt über die integrierte Mediendatenbank
von Serendipity. Das Symbol hierfür befindet sich rechts neben dem Bilderrahmen und soll eine stilisierte
Bilderübersicht in einer Liste darstellen. Ein Klick hierauf öffnet das Mediendatenbank-Popup,
das auf Seite Mediendatenbank-Popup eingehender erklärt wird.
table Über den Button Tabelle lässt sich eine HTML-Tabelle einbinden.
Dies ist leider relativ komplex gelöst und erfordert viel Fingerspitzengefühl bei der Einrichtung einer Tabelle,
da Spalten- und Zeilenanzahl vorher festgelegt werden müssen. Eine Tabelle kann nach ihrem Einfügen im Eingabetext selber
gefüllt werden.
<> Der letzte Button <> hat eine ganz besondere Bedeutung:
Er schaltet vom normalen WYSIWYG-Modus in den HTML-Modus um. Sobald der HTML-Modus aktiviert ist, kann man sozusagen
einen Blick hinter die Kulissen werfen und prüfen, wie der Editor die eigenen Eingaben in HTML umsetzt.
Wenn man sich mit HTML etwas auskennt, kann man hier möglicherweise manuell einige Fehler beheben, die der WYSIWYG-Editor
bei einigen Operationen einfügen könnte. Während der HTML-Modus aktiv ist, sind alle weiteren Optionen des WYSIWYG-Editors
so lange ausgeblendet, bis der HTML-Modus durch erneuten Klick wieder deaktiviert wird.
min/max Der Button rechts neben dem HTML-Modus ermöglicht das Öffnen eines Popup-Fensters,
in dem man den Text des Artikels in einem größeren Bereich bearbeiten kann. Diese Ansicht muss man mit erneutem Klick
auf den Button wieder schließen, um die Änderungen in das Serendipity-Fenster zu übernehmen.
? kann man eine Hilfe-Seite öffnen, die die (englische)
Dokumentation der verwendeten WYSIWYG-Komponente HTMLArea öffnet.
! öffnet eine kleine Informationsseite von HTMLArea. ? öffnet eine kleine Informationsseite von CKEditor.
Im Textbereich können Sie wie gewohnt Text eintippen. Wenn Sie die
(Enter)-Taste drücken, wird ein neuer Absatz begonnen, wenn Sie
(Shift)+(Enter) drücken, wird ein einfacher Zeilenumbruch
eingefügt.
Eintrags Markup Fehler Beachten Sie, dass Sie bei aktiviertem WYSIWYG-Editor das
Textformatierungs-Plugin Textformatierung: NL2BR (siehe Seite
nl2br) besser deinstallieren sollten. Andernfalls könnte es
zu doppelten Zeilenumbrüchen kommen oder bei Tabellen zu überflüssigen
Zeilenumbrüchen vor/nach der Tabelle. Alternativ können Sie das
NL2BR-Plugin auch gezielt nur für einzelne Artikel deaktivieren, indem
Sie es mithilfe des Plugins Erweiterte Eigenschaften von
Artikeln
(siehe Seite entryproperties) in den
Erweiterten Optionen des jeweiligen Artikels aus der Liste
auswählen. Ab Serendipity 2.0 sorgt das mitgelieferte entryproperties-Plugin automatisch dafür,
dass die Nutzung des WYSIYWG Editors selbstständig erkannt wird und die Nutzung von NL2BR per Eintrag ausgeschaltet wird.
Individuelle WYSIWYG-Editor Komfiguration In der Datei /htmlarea/ckeditor_s9y_config.js können Sie nachlesen,
wie Sie sich einen eigenen individuellen CKEditor konfigurieren,
und diesen updatesicher in ihrem Template sichern können.

Kommentar-Optionen Unterhalb des Eingabebereichs für den Text
gibt es zwei Optionen, mit denen man steuern kann, ob Kommentare zu diesem
Artikel zugelassen sind, und wenn ja, ob diese Kommentare nach dem
Abschicken durch den Besucher erst von einem Redakteur freigeschaltet
werden müssen. Die Voreinstellung dieser beiden Optionen wird in den
Eigenen Einstellungen vorgenommen.

Aktionen Rechts unterhalb des Eingabebereichs befinden sich
zwei Aktions-Buttons. Der Button Vorschau lädt die Seite neu und
zeigt oberhalb der Erfassungsmaske eine Voransicht des gerade
erstellten Artikels an. Die Voransicht ist nur eine vage Annäherung,
wie der Artikel später im Blog aussehen wird, kann aber dennoch als grobe
Richtlinie dienen, um dessen Formatierung zu prüfen.
Mittels des Buttons Speichern wird ein Artikel im System
gespeichert. Sollte vor einem Klick auf diesen
Button der Computer abstürzen, sind die Einträge unwiderruflich verloren.
Daher empfiehlt es sich sehr, einen längeren Artikel erst in den
Entwurfs-Modus zu setzen und zwischendurch häufiger zu speichern,
oder alternativ den Text in einem normalen Schreibprogramm vorzutippen.
Was beim Speichern eines Artikels geschieht, erfahren Sie auf Seite
Eintrag-speichern.

Erweiterter Eintrag Der Artikeltext, den Sie im Bereich Eintrag verfasst haben, wird später im
Frontend vollständig auf den Übersichtsseiten angezeigt. Dieser Text stellt somit
einen Teaser [*] Ein Teaser ist ein Kurztext, der dem
Leser einen Vorgeschmack auf die ausführliche Fassung geben soll.
dar.
Der vollständige Text eines Artikels kann im Bereich Erweiterter
Eintrag
verfasst werden. Der hier eingegebene Text wird später im
Frontend erst auf der Detailseite eines Artikels angezeigt und ist
auch standardmäßig nicht im RSS-Feed enthalten.
Bei der Ansicht der Detailseite eines Artikels wird der normale
Artikeltext zusätzlich angezeigt. Verfassen Sie daher Ihre Beiträge so,
dass die beiden Textbereiche ineinander übergehen.
Der Bereich Erweiterter Eintrag ist identisch formatiert wie
der normale Eintrag. Sie können im
Nicht-WYSIWYG-Modus diesen erweiterten Bereich mittels des Icons +
ein- und ausklappen.

Erweiterte Optionen Unterhalb des erweiterten Eintrags befindet
sich ein Block mit dem Titel Erweiterte Optionen. Hier werden
diverse Optionen von eingebundenen Plugins angezeigt, und auch
eigene Plugins können an dieser Stelle eingebunden werden. Die
angebotenen Optionen an dieser Stelle können Sie der jeweiligen Erklärung
der Plugins in den folgenden Kapiteln entnehmen.

Mediendatenbank-Popup Das Mediendatenbank-Popup ist ein Fenster, das sich an mehreren Stellen
Serendipitys öffnen lässt, vor allem beim Einfügen von Bildern bei der
Artikel-Erstellung.
Abbildung 4.5: Mediendatenbank-Popup zum Einfügen einer Datei Das Popup-Fenster enthält eine vereinfachte Ansicht der Mediendatenbank
Serendipitys. Abhängig von der Option Symbolleiste für das
Mediendatenbank-Popup anzeigen
in den Eigenen Einstellungen wird
Ihnen jedoch zusätzliche Funktionalität angeboten, die im Kapitel
Mediendatenbank auf Seite Mediendatenbank detailliert
beschrieben wird.
Solange das Popup-Fenster geöffnet ist, sollten Sie im Ursprungsfenster
von Serendipity keine Änderungen vornehmen. Sollten Sie dies tun, kann
das Popup-Fenster ein ausgewähltes Bild nicht mehr an den ursprünglich
vorgesehenen Platz stellen.
Das Fenster ist in zwei Bereiche aufgeteilt. Auf der linken Seite
befindet sich eine Übersicht über die vorhandenen Verzeichnisse in der
Mediendatenbank. Diese Struktur entspricht der des uploads-Verzeichnisses
auf Ihrem Server.
Da sich Verzeichnisse beliebig verschachteln lassen, können
Unterverzeichnisebenen über einen Klick auf ein +-Symbol geöffnet
und danach auch wieder durch einen Klick auf - geschlossen
werden. Diese Art der Verzeichnisnavigation kennen Sie sicher auch aus
dem Windows Explorer oder ähnlichen Dateiverwaltungs-Programmen auf Ihrem
Computer.
Oberhalb der Verzeichnisse können Sie durch einen Klick auf Alle
Optionen ein-/ausblenden
alle Unterverzeichnisebenen auf einmal aus-
bzw. einklappen. Je nachdem, wie viele Unterverzeichnisse Sie besitzen,
kann die Ansicht sehr groß werden - in so einem Fall können Sie die
üblichen Browser-Elemente zum Vergrößen/Verkleinern des Popup-Fensters
benutzen und die Scrollbalken einsetzen.
Unterhalb der Verzeichnisliste befinden sich zwei Buttons Neu und
Verzeichnisse verwalten, mit denen man neue Unterverzeichnisse anlegen
kann. Wenn Sie nur ein Bild in einen Artikel einfügen möchten, ist dies meist
nicht notwendig, daher lesen Sie bitte die Beschreibung dieser Möglichkeiten im
Kapitel Mediendatenbank ab Seite Mediendatenbank.
Ein Klick auf einen beliebigen Verzeichnisnamen im linken Bereich
beeinflusst die Darstellung des Popup-Fensters auf der rechten Seite.
Dabei stellt die Übersicht dort alle Dateien des gewählten
Verzeichnisses dar.
Standardmäßig sehen Sie auf der rechten Seite die Bilder aller
Verzeichnisse in chronologischer Reihenfolge, also unabhängig von einem
gewählten Verzeichnis.
In dieser Dateiübersicht sehen Sie jeweils Vorschaubilder für alle
hochgeladenen Dateien. Auch können dort Nicht-Bilddateien
(Word-Dokumente, PDF-Dateien, ZIP-Archive ...) angezeigt werden.
Wenn Sie eine bestimmte Datei suchen, werden Ihnen die Filteroptionen der
Mediendatenbank sehr hilfreich sein. Diese sind ebenfalls detailliert im
Kapitel Mediendatenbank ab Seite Mediendatenbank Filter
beschrieben.
Da wir das Popup-Fenster nur aufgerufen haben, um ein Bild
auszuwählen, dient die Dateiübersicht der einfachen Auswahl jenes Bildes.
Ein Klick auf eines der Vorschaubilder führt zu einer Folgeseite, in der
Sie bestimmen können, wie das Bild eingefügt werden soll. Abhängig vom
Kontext, in dem Sie das Popup-Fenster aufgerufen haben, kann es sein, dass
die Folgeseite nicht erscheint, sondern das Objekt direkt in die
aufrufende Seite eingetragen wird. Auch wenn Sie eine einfache Datei
anstelle eines Bildes einfügen wollen, wird die Folgeseite nicht
erscheinen, sondern die Datei wird direkt in den Artikel eingebunden.
Abbildung 4.6: Mediendatenbank-Popup zur Formatierung einer eingefügten Datei Auf dieser Folgeseite sehen Sie im oberen Bereich, für welche Datei Sie
sich entschieden haben. Die kleine Vorschaugrafik wird ebenfalls dargestellt.
Es folgen nun einige Bereiche, in denen Sie das Layout des eingefügten
Bildes bestimmen:
Bei dem Bereich der Bildgröße legen Sie fest, ob nur das kleine
Vorschaubild eingefügt werden soll oder das Bild in seiner
Originalgröße.
Über die Bildausrichtung bestimmen Sie, wie das Bild im Text des
Artikels arrangiert wird. Dabei wird das Layout durch eine kleine Grafik
visuell dargestellt. Die erste Option richtet ein Bild oberhalb eines
Absatzes, also für sich allein stehend aus. Die zweite Möglichkeit
bettet ein Bild so ein, dass es vom folgenden Text
linksbündig umflossen wird. Die letzte Möglichkeit bindet ein Bild so
ein, dass es innerhalb des Textes rechtsbündig dargestellt wird.
Im Abschnitt Bild als Link können Sie zusätzlich einen Link auf
ein Bild legen. Bei einem Klick auf ein Bild wird dann die
eingetragene URL aufgerufen. Standardmäßig wird der Dateipfad zu der
großen Version eines Bildes in dem Eingabefeld Das Bild soll
hierhin linken:
eingefügt. Über die Option Ziel dieses Links kann
man einstellen, wie dieser Link im Browser geöffnet wird.
Popup-Fenster (JavaScript) wird das Bild in einem Fenster öffnen,
das sich der Bildgröße genau anpasst. Eigenständige Seite wird
eine spezielle Frontend-Seite öffnen, die ausschließlich Ihr Bild im
umgebenden Layout und mögliche Meta-Daten eines Bildes anzeigt.
Die Option Popup-Fenster (target=_blank) nutzt eine einfachere
Version eines Popup-Fensters, die auch ohne aktiviertes JavaScript des
Besuchers ein neues Fenster öffnen kann.
Zuletzt haben Sie noch die Möglichkeit, zu einem Bild eine
Bildunterschrift in das Feld Kommentar hinzuzufügen. Dieses wird
dann im Artikel später dem Bild zugehörig angezeigt.
Wenn Sie abschließend auf Fertig klicken, wird das Bild an die
aufrufende Stelle Serendipitys zurückgeliefert und mittels HTML-Code
eingebunden. Dort können Sie es gegebenenfalls auch noch innerhalb des
Eintrages verschieben und anpassen.
Sämtliche Einfügeoperationen des Mediendatenbank-Popups benötigen
JavaScript. Sollte das Einfügen bei Ihnen also fehlschlagen, prüfen Sie,
ob Sie JavaScript im Browser korrekt aktiviert haben. Auch
mögliche Popup-Blocker oder die Firefox-Erweiterung NoScript könnten
den erfolgreichen Aufruf der Mediendatenbank verhindern.
Wenn Sie gerne ein Bild einfügen möchten, das Sie noch nicht in die
Mediendatenbank hochgeladen haben, dann müssen Sie dafür nicht extra auf
den Menüpunkt Mediendaten hinzufügen im Hauptmenü klicken.
Stattdessen ermöglicht es das Mediendatenbank-Popup in der Bildübersicht,
direkt, mittels Klick auf den Button Mediendaten hinzufügen eine
neue Datei von Ihrem Computer hochzuladen. Diese Datei wird dann direkt
für die Folgeseite zur Bestimmung der Einfügungsoptionen übernommen, was
Ihnen einiges an Klickarbeit abnimmt.
Details zum Hochladen von Dateien finden Sie im Kapitel Mediendaten
hinzufuegen
auf Seite Mediendaten hinzufuegen, die auch für das
Mediendatenbank-Popup gelten.

Speichern eines Eintrags Wenn Sie einen Beitrag speichern, wird Serendipity in einem eigenen Bereich
einige Aktionen durchführen.
Zuerst wird der Artikel vollständig in der Datenbank gespeichert. Danach
können etwaige Plugins ausgeführt werden, die individuelle Funktionen auf
den Artikel anwenden und ihn umwandeln. So könnte ein Plugin zB. den
neuen Artikel an Google und andere Suchmaschinen wie Technorati
übermitteln, oder der Text könnte auf korrekte Syntax geprüft werden.
Sollte der Artikel als Veröffentlichung gespeichert sein, wird in einem
weiteren Schritt der Artikeltext automatisch nach allen enthaltenen
Hyperlinks durchsucht. Jeder gefundene Hyperlink wird daraufhin von
Serendipity aufgerufen und geprüft, ob ein Trackback (siehe Seite trackback)
an diese Adresse gesendet werden soll. Für jede gefundene URL wird auf
dem Bildschirm eine Nachricht ausgegeben, ob ein Trackback an diese URL
geschickt werden konnte.
Auch etwaige Fehlermeldungen werden Ihnen beim Speichern an dieser Stelle
angezeigt. Der Prozess endet mit einer Meldung Serendipitys, dass der
Eintrag gespeichert wurde. Falls der Artikel direkt veröffentlicht wurde,
können Sie die URL mit diesem Artikel direkt anklicken.
Wenn Serendipity lediglich den Entwurf eines Beitrags gespeichert hat,
wird keine Trackback-Analyse durchgeführt, und Serendipity meldet nach dem
Speichern, dass der Entwurf eines Artikels gespeichert wurde.
Sollten Sie nach dem Speichern eines Artikels keine solche Meldung
erhalten, bedeutet dies möglicherweise, dass der Webserver Fehler
verursacht hat. In diesem Fall sollten Sie die Fehler-Logfiles des
Servers prüfen, da hierfür meist Netzwerk-Verbindungsprobleme oder
Firewalls zuständig sind. In so einem Fall müssten Sie möglicherweise die
Trackback-Funktionalität deaktivieren (siehe Seite commentphp).
Um vorab Probleme mit verlorenen Artikeltexten zu vermeiden, können Sie die auf
Seite automatic-backup beschriebenen Maßnahmen einsetzen.
Nach dem Speichern landen Sie erneut auf der
Seite zur Bearbeitung des Artikels, um gegebenenfalls Änderungen vorzunehmen
und den Artikel erneut zu speichern.

4.4.2 - Einträge bearbeiten

Einträge bearbeiten

Um einen geschriebenen Beitrag später zu bearbeiten, benutzen Sie
den Hauptmenüpunkt Einträge bearbeiten. Bei einem Klick auf diesen
Menüpunkt wird eine blätterbare Liste aller geschriebenen Einträge
dargestellt.

Bei einem Klick auf den jeweiligen Eintrag gelangt man auf die Seite, in
der man einen Neuen Eintrag erstellen kann. Die Felder sind dabei
vorausgefüllt mit den jeweiligen Daten des gewählten Eintrags, und ein
Speichern erstellt keinen neuen Eintrag, sondern überarbeitet den
bestehenden.

Die Liste der Einträge stellt in der ersten Zeile den Titel des Artikels
dar. Sollte der Artikel noch nicht veröffentlicht worden sein, wird das
Wort Entwurf: vorangestellt. Wenn Sie mit der Maus über einen
Beitragstitel fahren, wird ein Info-Popup angezeigt, in dem die
Artikel-ID angezeigt wird. Diese ID kann an einigen Stellen des
Serendipity-Backends eingetragen werden, unter anderem auch am Ende der
Seite zum schnellen Bearbeiten einer bekannten Artikelnummer.

Rechts neben dem Titel wird die Erstellungszeit des Artikels angezeigt.
Wenn rechts daneben das Uhrsymbol steht, heißt dies, dass der
Artikel seit seiner Erstellung mindestens einmal überarbeitet wurde. Wenn
Sie mit der Maus über dieses Icon fahren (oder klicken), zeigt ein
Info-Popup den Zeitpunkt der letzten Aktualisierung an.

Abbildung 4.7: Einträge: Einträge bearbeiten

Die Zeile unterhalb des Titels gibt an, wer der Eigentümer eines Artikels
ist. Bei Bearbeitung eines Artikels durch andere Redakteure ändert sich
der Eigentümer nicht. Sollte ein Artikel in einer oder mehreren
Kategorien zugeordnet sein, werden alle Kategorienamen nach dem Autornamen
aufgelistet. Ein Klick auf den Kategorienamen ruft die Frontend-Ansicht
der jeweiligen Kategorie auf.

Innerhalb der Box, die den Artikel anzeigt, werden auf der rechten Seite
drei Buttons dargestellt. Der erste Button mit einer Lupe zeigt
bei einem Klick abhängig vom Veröffentlichungsstatus entweder die
Ansicht oder Vorschau des Artikels im Frontend in einem
neuen Fenster an. Der zweite Button stellt mit dem
Stift die Möglichkeit bereit, einen Artikel zu bearbeiten (wie bei
einem Klick auf den Artikeltitel).
Der Button mit rotem Kreuz löscht einen Artikel
unwiderruflich. Zur Sicherheit werden Sie beim Löschen gefragt, ob Sie
die Aktion wirklich ausführen wollen.

Als Letztes wird eine Auswahlbox neben dem Löschen-Button
angezeigt. Hier können Sie mehrere Artikel auswählen, um anschließend am
Seitenende durch den Klick auf Markierte Einträge löschen diese
Artikel gesammelt zu löschen.

Der Button Auswahl umkehren wird jeden gewählten Artikel
deselektieren und jeden deselektierten Artikel wieder auswählen. Wenn
Sie also einmal alle Artikel bis auf einen löschen wollen, markieren Sie
nur diesen einen Artikel, klicken auf Auswahl umkehren, wodurch
automatisch die anderen Artikel ausgewählt werden, und können danach
löschen.

Am Ende der Seite finden Sie eine Eingabebox, in der Sie die Artikel-ID
eingeben können, um einen Eintrag direkt zu bearbeiten. Alle Artikel in
Serendipity werden bei 1 beginnend automatisch durchnummeriert. Wenn ein
Artikel einmal gelöscht werden sollte, verändert sich die ID aller
anderen Artikel nicht, daher können ggf. Lücken entstehen.

Am Anfang der Seite sehen Sie mehrere Filtermöglichkeiten, die die
Anzeige der Artikel beinflussen. Standardmäßig werden Ihnen die
chronologisch aktuellsten Artikel angezeigt, die Liste ist über die
Buttons Weiter und Zurück ober- und unterhalb der Artikel
blätterbar.

Folgende Filteroptionen sind verfügbar:

Autor Das Auswahlfeld neben der Option Autor schränkt die Darstellung
der Artikel auf den ausgewählten Autor ein.

Artikelmodus Unterhalb des Autors gibt es ein weiteres Auswahlfeld, mit dem Sie
auswählen können, ob nur Entwürfe, Veröffentlichungen oder
beide Artikelarten angezeigt werden sollen.

Kategorie Um nur Artikel einer gewissen Kategorie anzuzeigen, können Sie im
Auswahlfeld Kategorie die gewünschte Auswahl treffen.

Inhalt In das Feld Inhalt können Sie ein beliebiges Suchwort eingeben,
das in einem Artikeltext (oder dem erweiterten Artikeltext) vorhanden
sein muss. Die Suche berücksichtigt dabei auch Teilworte und ignoriert
die Klein- und Großschreibung, wenn Sie also miet
eingeben, werden auch Artikel angezeigt, die vermieten oder
Mietbüro enthalten.

Sortieren nach Die Sortierung der gefilterten Artikel bestimmen Sie durch das
Auswahlfeld Sortieren nach. Folgende Sortierungsmöglichkeiten
stehen zur Verfügung: Datum, Veröffentlichung/Entwurf,
Autor (Autorname, alphabetisch), Kategorie (Kategoriename,
alphabetisch), Zuletzt aktualisiert, Titel (Artikeltitel,
alphabetisch) und die ID eines Artikels.

Sortierung Die Rangfolge der Sortierung (Absteigend oder Aufsteigend)
können Sie durch das Auswahlfeld Sortierung einstellen. Dadurch
bestimmen Sie, ob die Liste vom aktuellsten/ersten Eintrag bis zum
ältesten/letzten Eintrag sortiert wird oder umgekehrt.

Artikel pro Seite Standardmäßig enthält die Übersicht die letzten 12 Artikel. Um eine
größere Übersicht zu ermöglichen, können Sie die Artikel pro Seite
auf die Werte 12, 16, 15, 50 oder 100 stellen. Beim Blättern wird die jeweilige
Folgeseite ebenso viele Artikel darstellen.

Ein Klick auf Los! führt die gewünschte Filterung aus und zeigt
die daraus resultierende Artikelauswahl in der eingetragenen Sortierung.
Bei Angabe mehrerer Filterkriterien werden diese alle miteinander
UND-verkettet, d.h. es müssen alle Filterbedingungen zutreffen,
damit ein Artikel in der folgenden Liste aufgeführt wird.

Die zuletzt eingestellten Filter- und Sortierungsoptionen werden in einem
Cookie gespeichert und beim nächsten Aufruf des Menüs erneut angewendet.
Wenn Sie also einmal eine chronologische Auswahl erwarten würden, prüfen
Sie zuerst, ob die Filtereinstellungen dies verhindern.

4.4.3 - Kommentare

Kommentare

Ähnlich wie die Übersichtsseite Einträge bearbeiten enthält die
Seite Kommentare eine Übersicht aller übermittelten Kommentare und
Trackbacks Ihrer Besucher.

Von dieser Oberfläche aus können Sie Kommentare löschen, freischalten,
überarbeiten oder auch nach speziellen Kommentaren suchen.

Der Inhaltsbereich zeigt die Kommentare in einzelnen Boxen untereinander
an. Direkt oberhalb dieser Boxen befindet sich ein Informationstext, der
die Anzahl der dargestellten Kommentare und die Nummer der aktuellen Seite angibt.
Die Möglichkeit zum Blättern mittels Weiter und Zurück
befindet sich sowohl oberhalb als auch unterhalb der Kommentarauflistung.

Abbildung 4.8: Einträge: Kommentare

Jede Kommentarbox enthält folgende Angaben:

Überschrift Oberhalb jeder Box steht eine kleine Informationszeile, die angibt, ob die
Box einen Trackback oder einen Kommentar darstellt, zu welchem Artikel der
Kommentar gehört und wann er erstellt wurde. Der Bezug zu einem Artikel
ist dabei klickbar und führt ins Frontend Ihres Blogs.
Nicht freigeschaltete Kommentare und Trackbacks werden durch eine
auffällige gelbe Markierung vom Rest abgehoben.

Autor Der Name des Verfassers eines Kommentars wird hinter dem Punkt
Autor dargestellt. Wenn das Spamblock-Plugin (siehe Seite
spamblock) installiert ist, wird neben dem Namen ein Symbol mit
Schraubstock angezeigt. Ein Klick auf dieses Symbol wird in
Zukunft Kommentare des gleichnamigen Autors in eine
Blacklist einfügen und abweisen. Wenn der Schraubstock rot
eingefärbt erscheint, wird der Name bereits gefiltert, und ein erneuter
Klick hebt den Filter wieder auf.

E-Mail Die E-Mail-Adresse eines Kommentators wird neben E-Mail angezeigt.
Auch hier kann bei aktiviertem Spamblock-Plugin die E-Mail-Adresse
in einen Filter aufgenommen werden.

IP In der zweiten Zeile der Kommentarbox wird die IP-Adresse des Kommentators angezeigt.
Eine IP-Adresse identifiziert einen Benutzer im
Internet beim Aufruf einer Seite. Sollte Sie einmal rechtswidrige Inhalte in
einem Kommentar auffinden, kann eine Strafverfolgungsbehörde mit Hilfe dieser
IP möglicherweise den wahren Täter aufspüren. Meist werden für derartige
Straftaten aber offene Proxies eingesetzt, die die eigene IP-Adresse des
Täters verschleiern, so dass er sozusagen nur über einen Deckmann auf Ihren Server
zugreift.

URL Die Homepage eines Kommentators wird unterhalb seiner E-Mail-Adresse
angezeigt. Ein Klick hierauf öffnet die Homepage direkt in einem neuen
Browserfenster. Auch die URL kann als Filter für das
Spamblock-Plugin durch Klick auf das Schraubstock-Symbol
gesetzt werden.

Referrer Wenn ein Besucher Ihre Webseite aufruft, übermittelt sein Browser
üblicherweise die URL der zuletzt aufgerufenen Webseite. Wenn ein
Besucher über eine Suchmaschine den Weg zu Ihnen findet, gibt der
sogenannte Referrer Auskunft darüber, nach welchen Begriffen er
gesucht hat. Möglicherweise ist es also für Sie interessant zu erfahren,
von welcher Webseite ein Besucher zu Ihnen kam und dann einen Kommentar
hinterlassen hat.
Genau diese vorherige Webseite wird in der Kommentarbox beim Punkt
Referrer eingebunden, ein Klick darauf öffnet die entsprechende
Webseite.
Wenn ein Besucher keine vorherige Webseite besucht hat, ist in diesem
Feld meistens die URL des kommentierten Artikels enthalten.

Kommentar Der eigentliche Text, den der Besucher als Kommentar (oder Trackback)
hinterlassen hat, wird im Hauptteil der Box angegeben. Damit zu lange
Texte nicht den Rahmen sprengen, werden sie nach 160 Zeichen mit einem
... abgekürzt.

Symbolleiste Unterhalb jedes Kommentars befindet sich eine Symbolleiste mit Buttons.
Die Buttons richten sich dabei danach, ob das Objekt ein Kommentar oder
ein Trackback ist, ob es freigeschaltet oder moderiert ist und ob der
Text länger als 160 Zeichen ist oder nicht.
Bei noch nicht freigeschalteten Beiträgen erscheint der Button
Bewilligen als Erstes. Ein Klick darauf wird den gewählten Beitrag
freischalten. Ist ein Kommentar bereits freigeschaltet, erscheint der Button
Moderieren, um den Kommentar erneut zu verstecken.
Bei Beiträgen, die länger als 160 Zeichen sind, wird der Button ganz
anzeigen
eingeblendet. Per Klick wird der vollständige Kommentartext angezeigt,
ein erneuter Klick reduziert die Ansicht wieder auf die gekürzte Fassung.
Danach folgen Buttons, die immer verfügbar sind. Anzeigen öffnet
bei einem Klick ein neues Fenster, in dem der Kommentar im Kontext des
Artikels im Frontend dargestellt wird.
Bearbeiten öffnet eine Oberfläche, in der ein Kommentar von Ihnen
bearbeitet und redaktionell verändert werden kann
Abbildung 4.9: Einträge: Kommentar bearbeiten In dieser Oberfläche können Sie wie beim Kommentieren im Frontend die bekannten
Felder ändern, die mit den Eingaben des Besuchers vorausgefüllt sind. Ein Klick
auf Kommentar abschicken speichert die von Ihnen überarbeitete Fassung
des Kommentars. Achten Sie bei der Moderation von Kommentaren darauf, dass dies
möglicherweise von Besuchern als Zensur aufgefasst werden könnte. Zensur Überarbeiten Sie also einen Kommentar
wirklich nur dann, wenn Sie entweder darauf hinweisen oder es unabdingbar ist.
Der Button Löschen entfernt einen Kommentar vollständig aus der
Datenbank. Wenn sich bereits andere Kommentare auf einen zu löschenden Kommentar
beziehen (also im Frontend verschachtelt darunter dargestellt
werden), wird ein Kommentar beim Löschen erst nur gekürzt. Der Text wird
ausgeschnitten, aber die Grunddaten des Kommentars bleiben intakt, um die
Verschachtelung nicht durcheinander geraten zu lassen. Erst wenn ein
derartiger Kommentar ein zweites Mal gelöscht wird, werden die Bezüge
zerstört und der Kommentar komplett entfernt.
Die Symbolleiste stellt als Letztes den Button Antwort zur
Verfügung. Dies ermöglicht Ihnen, direkt zu einem Popup-Fenster zu
springen, um den betreffenden Text direkt mit einer Antwort kommentieren
zu können. Das Eingabefeld Antwort zu ist dabei korrekt mit dem
betreffenden Kommentar vorausgefüllt, ebenso Ihr Name und Ihre E-Mail-Adresse.

 

Innerhalb jeder Kommentarbox befindet sich eine Ankreuzbox. Wenn diese
ausgewählt wird, kann man die markierten Kommentare über den Button
Markierte Kommentare löschen entfernen. Der Button Auswahl
umkehren
dreht die Markierungen um, so dass vorher ausgewählte
Kommentare nun nicht mehr gewählt sind und stattdessen alle anderen. So
lässt sich besonders leicht Spam herausfiltern, da eine ganze Seite mit
dargestellten Kommentaren durch einen Klick auf Auswahl umkehren
markiert und gelöscht werden kann.

Ebenfalls analog zu der Oberfläche Einträge bearbeiten kann die
Darstellung der Kommentarübersicht nach bestimmten Kriterien gefiltert
werden:

Autor In das Feld Autor können Sie den Namen eines Kommentators
eingeben, nach dessen Kommentaren Sie suchen möchten. Dabei wird ein
Autorenname unabhängig von Groß- und Kleinschreibung nach Teilwörtern
durchsucht. Eine Suche nach ann wird also sowohl Kommentare von
Hanni als auch von Nanni darstellen.

E-Mail Um nur Kommentare von Benutzern mit einer bestimmten
E-Mail-Adresse anzuzeigen, können Sie deren Adresse in diesem Eingabefeld
eintragen. Hierbei gilt dasselbe Suchmuster wie bei der Suche nach
Autor.

URL Um nur Kommentare von Benutzern mit einer speziellen URL-Adresse
anzuzeigen, können Sie diese URL eintragen. Hierbei gilt dasselbe
Suchmuster wie bei der Suche nach Autor.

IP Um nur Kommentare von Benutzern mit einer speziellen IP-Adresse
anzuzeigen, können Sie diese hier eintragen. Hierbei gilt dasselbe
Suchmuster wie bei der Suche nach Autor. Bei der Angabe von IPs
empfiehlt es sich daher, immer die vollständige Zahlenreihe einzugeben und
nicht nur Teile davon.

Inhalt Hier können Sie Kommentare nach dem
Auftreten bestimmter Wörter im Inhaltstext des Kommentars
durchsuchen. Es gilt dasselbe Suchmuster wie bei der Suche nach
Autor.

Referrer Die URL der Webseite, auf der sich ein Kommentator zuletzt befunden hat,
kann in dem Eingabefeld Referrer eingetragen werden. Auch hier
können Teilwörter wie bei der Suche nach Autor eingetragen werden.

Kommentare Das Auswahlfeld Kommentare ermöglicht es, mehr als nur 10
Kommentare pro Seite anzuzeigen. Die Auswahl reicht hier von 10, 20 und
50 bis hin zu allen Kommentaren. Achten Sie darauf, dass bei der Anzeige
aller Kommentare die HTML-Seite sehr groß werden kann und Ihren Browser
sehr lange beschäftigen könnte.

Zeige Über dieses Auswahlfeld kann man einstellen, ob man in der
Kommentarübersicht noch freizuschaltende Kommentare/Trackbacks sehen
möchte, nur freigeschaltete oder Kommentare/Trackbacks beiden Typs.

Typ Das Auswahlfeld schränkt ein, ob man nur Kommentare,
nur Trackbacks oder beide Sorten von Kommentaren dargestellt
bekommen möchte.

 

Diese Filteroptionen werden durch einen Klick auf Los! gesetzt
und beim Blättern der Folgeseiten auch angewendet. Falls Sie das
Spamblock-Plugin verwenden, können Sie übrigens durch einen Klick
auf Anti-Spam-Maßnahmen konfigurieren direkt zu dessen
Konfigurationsoberfläche springen.

Kommentarbenachrichtigungen

Wenn in Ihrem Blog ein Besucher einen neuen Kommentar hinterlässt, wird
abhängig von den Einstellungen des Artikels und Ihrer Eigenen
Einstellungen
eine E-Mail an Sie gesendet, um Sie darüber zu
benachrichtigen.

Innerhalb der E-Mail sehen Sie dann eine Übersicht über die Identität
des Kommentators, den Kommentartext und einen Link zu dem Artikel in
Ihrem Frontend.

Wenn Beiträge moderiert werden, müssen Kommentare von Ihnen erst
freigeschaltet werden. Dazu dienen die drei Links am Ende der E-Mail:
Ansehen, Löschen und Bewilligen. Diese Links führen direkt
ins Frontend zu dem gewünschten Artikel und werden den Kommentar
anzeigen, löschen oder freischalten. Dies funktioniert jedoch nur, wenn Sie sich
vorher im Backend eingeloggt haben oder noch einen Login-Cookie besitzen.
Andernfalls könnte jeder Besucher Ihres Blogs selbständig Kommentare
freischalten.

Natürlich können Sie den Kommentar auch von der
Kommentar-Verwaltungsoberfläche aus freischalten oder auch löschen.

Sobald ein Kommentar freigeschaltet wird, sucht Serendipity danach, ob
sich andere Kommentatoren desselben Beitrags mit der Option Bei
Aktualisierung dieser Kommentare benachrichtigen
eingetragen haben. An
alle diese Personen wird dann eine E-Mail verschickt, die sie über den
Eingang eines neuen Kommentars informiert. Innerhalb der E-Mail
befindet sich für jeden Empfänger die Möglichkeit, einen derart
abonnierten Artikel auch wieder abzubestellen.

4.4.4 - Kategorien

Kategorien

Im Bereich Kategorien können die für Artikel gültigen Kategorien
erstellt und verändert werden.

Auf der Übersichtsseite sieht man die Auflistung aller verfügbaren
Kategorien in ihrer hierarchischen Ordnung. Für jede Kategorie gibt es
eine einzelne Zeile, und Kategorien können unendlich tief ineinander
verschachtelt werden, um Unterkategorien zu ermöglichen.

Pro Zeile gibt es zwei Buttons zum Bearbeiten und Löschen
einer Kategorie. Rechts daneben befindet sich ein (funktionsloses) Symbol
für eine Kategorie sowie den Namen einer Kategorie. Eingerückt dahinter
steht die Beschreibung einer Kategorie, und abschließend für jede Zeile
sehen Sie den Namen des Eigentümers einer Kategorie.

Der Eigentümer einer Kategorie bestimmt im späteren Verlauf, welche
Redakteure Artikel für diese Kategorie erstellen dürfen. Gewähren gewisse
Rechtekonstellationen (siehe Kapitel Gruppenverwaltung auf Seite
Gruppenverwaltung) keinen Zugriff, wird die Kategorie auf
dieser Übersichtsseite für unbefugte Redakteure nicht
angezeigt und ist auch beim Erstellen eines Beitrags nicht auswählbar.
Wenn an der Stelle des Eigentümers Alle Autoren steht, bedeutet
dies, dass die Kategorie keinen speziellen Eigentümer besitzt, sondern für
alle Redakteure zur Verfügung steht.

Abbildung 4.10: Einträge: Kategorien

Am Ende der Seite führt der Button Neue Kategorie zu der
Erstellungsmaske für eine neue Kategorie.

Abbildung 4.11: Einträge: Kategorien: Neue Kategorie

Sowohl der Klick auf Neue Kategorie als auch das Bearbeiten
einer Kategorie führen zu derselben Maske. Dort können folgende Daten
erfasst werden:

Name Der Name einer Kategorie wird in das Feld Name eingetragen; sie wird
später im Frontend jeweils mit diesem Namen dargestellt. Sonderzeichen
und Leerzeichen sind erlaubt. Die Zeichenlänge ist grundsätzlich
unbeschränkt, aber sehr lange Kategorienamen könnten zu problematischen
Zeilenumbrüchen in Auswahlboxen führen.

Beschreibung Die Beschreibung einer Kategorie wird an einigen Stellen im Backend und
als Meta-Beschreibung zur Kategorie im Frontend angezeigt. Hier können Sie
auch längere Beschreibungen eintragen.

Bild Wenn Sie einen Artikel in einer Kategorie veröffentlichen, können Sie ein Bild
mit dieser Kategorie verbinden. Dieses Bild wird dann bei der Darstellung
eines Artikels im Frontend im Inhaltsbereich ausgegeben und ermöglicht
den Besuchern eine einfache Assoziation des Textes mit einem Thema.
Über den Button Bild können Sie das Mediendatenbank-Popup (siehe
Seite Mediendatenbank-Popup) aufrufen und die gewünschte
Bilddatei einfügen. Alternativ tragen Sie in das Eingabefeld Bild
eine vollständige URL mit dem Bildziel ein.

Leserechte Wenn Sie einen Artikel in einer Kategorie verfassen, kann es sein, dass
nicht jeder Besucher der Webseite Einträge aus dieser Kategorie lesen
soll.
Über das Auswahlfeld Leserechte können Sie diejenigen
Benutzergruppen wählen, die später im Frontend die Befugnis haben, einen
Artikel zu lesen. Mehrere Gruppen können mit gedrückter
(Strg/Apfel)-Taste und einem Mausklick gewählt werden.
Die Sondergruppe Alle Autoren wird benutzt, wenn eine Kategorie von jedem Besucher
(also nicht eingetragenen Redakteuren) aufgesucht werden darf.
Sobald eine Einschränkung auf eine Benutzergruppe eingerichtet wurde, muss ein
Redakteur dieser Gruppe(n) sich erst ins Backend eingeloggt haben, bevor er
im Frontend die Artikel lesen kann. Alle derart geschützten Artikel sind
auch im normalen RSS-Feed nicht mehr vorhanden.
Die Option der Einschränkung von Leserechten kann durch die globale
Serendipity-Konfigurationsoption Leserechte auf Kategorien anwenden
(siehe Kapitel Konfiguration, Seite Konfiguration) ausgehebelt
werden. Um im Seitenleisten-Plugin Kategorien (Seite
categoriesplugin) ebenfalls nur die Kategorien anzuzeigen, für die
man Leserechte besitzt, muss in der Konfiguration dieses Plugins die Option
Quelle der Kategorien auf Derzeitiger Autor eingestellt werden.

Schreibrechte Analog zu den Leserechten können bei Serendipity die Schreibrechte
einer Kategorie vergeben werden.
Nur die ausgewählten Benutzergruppen werden später die Möglichkeit haben,
einen Artikel für diese Kategorie zu schreiben. Sobald eine Einschränkung
des Schreibrechts auf mindestens eine Benutzergruppe vorgenommen wird,
wird für die Kategorie der aktuelle Redakteur als Eigentümer der
Kategorie vermerkt und in der Kategorieübersicht dargestellt. Die
spezielle Option Alle Autoren bedeutet, dass der Schreibzugriff
auf die Kategorie nicht eingeschränkt ist.

Übergeordnete Kategorie Kategorien können beliebig verschachtelt werden. Um eine Kategorie einer
Oberkategorie zuzuordnen, muss diese Kategorie im Auswahlfeld
Übergeordnete Kategorie ausgewählt werden. In diesem Auswahlfeld
sind alle bisher angelegten Kategorien hierarchisch (durch Leerzeichen
eingerückt) dargestellt.
Beim Bearbeiten einer Kategorie kann diese somit leicht (mitsamt allen
untergeordneten Kategorien) an einen anderen Punkt des Kategoriebaums
eingehängt werden.

Artikel von Unterkategorien verstecken? Wenn Sie im Frontend eine Kategorie zur Ansicht ausgewählt haben, werden
standardmäßig alle Einträge dieser Kategorie und auch alle Einträge in
den zugehörigen Unterkategorien dargestellt.
Dies ermöglicht dem Besucher, dass er bei der Auswahl von Oberkategorien
nicht jede Unterkategorie einzeln anklicken muss.
Wenn Serendipity jedoch eher als Content-Management-System eingesetzt
wird, ist dieses Verhalten recht untypisch und häufig nicht gewünscht.
Daher können Sie für jede Oberkategorie die Option Artikel von
Unterkategorien verstecken
aktivieren. Daraufhin werden bei Auswahl
einer derart konfigurierten Kategorie im Frontend ausschließlich die
Artikel angezeigt, die auch in exakt dieser Kategorie eingetragen wurden.

 

Ein Klick auf Erstellen (für neue Kategorien) bzw.
Speichern schließt die Erstellungs-/Bearbeitungsmaske und
speichert die Änderungen.

Wenn Sie eine Kategorie löschen möchten, wird Serendipity Sie fragen, was
mit Einträgen geschehen soll, die dieser Kategorie bisher zugeordnet
waren. Mittels eines Auswahlfeldes können Sie festlegen, ob diese Einträge
stattdessen einer anderen bestehenden Kategorie zugeordnet werden
sollen. Ohne eine Neuzuordnung werden Artikel nicht gelöscht, sondern sind dann
einfach keiner Kategorie mehr zugeordnet.

Einige Plugins benötigen zur Konfiguration die Kategorie-ID. Eine ID
identifiziert eine Kategorie eindeutig und bleibt auch gleich, wenn Sie eine
Kategorie einmal umbenennen. Diese ID wird üblicherweise weder im
Frontend noch im Backend wirklich deutlich angezeigt; sie ist jedoch
meist Bestandteil der URL (zB. /categories/17-Generelles).

Um die ID ohne Nachschlagen in der Datenbank oder Durchsuchen
des HTML-Quellcodes zu ermitteln, können Sie in der
Kategorie-Übersicht im Backend-Bereich Kategorien mit der Maus
über das Stift-Symbol fahren. Wenn Sie dann kurz warten, wird Ihr Browser
unterhalb der Mausposition ein kleines Fenster anzeigen, in dem die ID der
Kategorie steht.

4.5 - Mediendatenbank

Mediendatenbank

Serendipity kann von Ihnen hochgeladene Bilder und Dateien in einer
eigenständigen Datenbank, der Mediendatenbank, verwalten.

Die Mediendatenbank besteht aus zwei Komponenten. Zum einen ist das ein
Unterverzeichnis namens uploads im Serendipity-Stammverzeichnis.
Dort werden die Dateien, die Sie von Ihrer eigenen Festplatte aus
hochladen, abgespeichert. Zum anderen ist das eine Tabelle in Ihrer
serverseitigen Datenbank, die sogenannte Meta-Informationen über
die hochgeladenen Dateien speichert.

Diese Meta-Informationen enthalten Angaben über den Typ einer Datei, wann
und von wem die Datei hochgeladen wurde sowie etwaige Beschreibungen der
Datei.

Serendipity stellt nur die Dateien der Mediendatenbank dar, die auch in
dieser Datenbanktabelle verzeichnet sind. Dateien, die lediglich manuell
mittels FTP-Programm in das Verzeichnis uploads auf den Server
geladen werden, sind dort vorerst nicht enthalten.

Aufgrund dieser zwei unterschiedlichen Komponenten ist es wichtig, dass
Serendipity diese ständig miteinander synchronisiert, denn sonst
könnte es passieren, dass Ihnen Dateien angezeigt werden, die gar nicht
existieren - oder Ihnen könnten bereits hochgeladene Dateien fehlen.

Im Dateisystem der Mediendatenbank können sowohl Bilder (JPEG, GIF,
PNG und weitere) verwaltet werden als auch beliebige andere Dokumente
(MP3, AVI, ZIP, DOC). Diese Dateien können zur besseren
Strukturierung auch in beliebig verschachtelten Unterverzeichnissen
abgelegt werden.

Unterschiedliche Schreib- und Leserechte auf Bildordner können über die
Meta-Informationen der Mediendatenbank verwaltet werden.

Bilder können in der Mediendatenbank speziell bearbeitet werden. So kann
man die Bilder auf dem Server vergrößern/verkleinern, und Serendipity kann
kleine Vorschaubilder (Thumbnails) einer Grafik erstellen. Für
diesen Automatismus muss Ihr Webserver entweder gdlib oder
ImageMagick unterstützen (siehe Kapitel Voraussetzungen auf
Seite Voraussetzungen). Trotz dieser rudimentären
Grafikbearbeitungsmöglichkeiten ersetzt Serendipity nicht die
Nachbearbeitung eines Bildes mit Programmen wie GIMP oder
Adobe Photoshop. Ein Bild, das direkt von einer Digitalkamera
kommt, ist üblicherweise viel zu groß für die Darstellung im Internet.
Daher sollten Sie Bilder von vornherein auf eine angemessene Größe
bringen. Statistisch liegen die verbreitetsten Auflösungen im Internet
unter 1280 x 1024 Pixel, daher macht eine Datei mit einer
höheren Auflösung als dieser nur in besonderen Fällen Sinn und würde nur
zu viel Speicherplatz benötigen.

4.5.1 - Mediendaten hinzufügen

Mediendaten hinzufügen

Um Ihre Mediendatenbank mit Daten zu füllen, müssen Sie die Dateien in
dieser Datenbank anmelden. Um eine Datei komfortabel über die Oberfläche
hochladen zu können, gibt es den Menüpunkt Mediendaten hinzufügen.

Auf dieser Seite können Sie zwischen zwei Varianten wählen, von welcher Quelle
eine Datei eingestellt werden soll.

Abbildung 4.12: Mediendatenbank: Mediendaten hinzufügen

Die erste Variante ist der Download einer Datei, die bereits im Internet
unter einer URL verfügbar ist. Wenn Sie also auf einer Webseite eine
Bilddatei sehen, können Sie über Ihren Browser (meist mittels eines
Rechtsklicks auf die Grafik) die URL dieses Bildes heraussuchen und in das
Feld URL zum Download angeben eintragen.

Achten Sie bitte beim Download einer Grafikdatei aus dem Internet immer
darauf, dass die Bilder/Dateien urheberrechtlich geschützt sein könnten
und die Einbindung einer solchen Datei in Ihrem Blog rechtlich nicht
erlaubt ist. Stellen Sie daher immer sicher, dass Sie das Recht haben,
eine Datei zu vervielfältigen.

Unterhalb der Eingabebox zum Download einer Datei aus dem Internet
befindet sich das Auswahlfeld Download-Methode. Wenn Sie hier
Bild auf diesem Server speichern auswählen, bedeutet das, dass
die Daten der eingetragenen URL heruntergeladen und auf dem eigenen Webserver
gespeichert werden. Wenn Sie ein solches Bild später einbinden, wird es
von den Besuchern von Ihrem eigenen Webserver heruntergeladen und verursacht
auf Ihrem Webserver Kosten für den aufgekommenen Traffic
(Datenverkehr). Die zweite Möglichkeit stellt die Option Nur zum
Quellserver linken
dar. Ist diese Option gewählt, wird die von Ihnen
eingetragene Datei nicht wirklich heruntergeladen, sondern nur ein
Verweis auf den Zielserver gespeichert. Wenn Sie eine derartige Datei
später einbinden, werden die Daten dann vom fremden Webserver geladen --
dies nennt man hotlinking. Dies hat den Vorteil, dass auf Ihrer
eigenen Seite kein erhöhter Datenverkehr entsteht und dass,
formaljuristisch gesehen, die Einbindung solcher Bilder urheberrechtlich
unterschiedlich gehandhabt wird, da Sie das Bild nicht eigenständig anbieten.[*] Diesen Hinweis genießen Sie bitte mit Vorsicht. Im
Zweifelsfall sollten Sie den Eigentümer einer Datei immer um Erlaubnis
bitten oder mit der Hilfe eines Fachanwalts den Sachverhalt klären.
Der
Nachteil einer solchen Einbindung ist jedoch, dass, wenn einmal der
verwiesene Server nicht mehr betrieben oder die Datei entfernt wird,
ein solches Bild natürlich auch in Ihrem Artikel nicht mehr angezeigt werden
kann.

Als zweite Variante zum Hinzufügen einer Datei können Sie diese von Ihrer
eigenen Festplatte auswählen. Wenn Sie auf den Button Durchsuchen
neben der Eingabebox Datei zum Hochladen angeben klicken, öffnet
sich ein Dateiauswahldialog Ihres Betriebssystems, und Sie können eine
Datei aus Ihrer Verzeichnisstruktur auswählen.

Sie können immer nur eine dieser beiden Varianten des Hinzufügens wählen.
Entweder Sie laden eine Datei aus dem Internet, oder Sie
laden sie vom eigenen Computer. Wenn Sie beide Eingabefelder ausfüllen,
wird nur die Datei aus dem Internet geladen und die selbst hochgeladene
Datei ignoriert. Wenn Sie also sowohl eine Datei aus dem Internet als
auch eine vom eigenen Computer hochladen wollen, müssen Sie dies nacheinander
tun.

Wenn Sie eine Datei von der eigenen Festplatte hochladen, können Sie noch
weitere Details bestimmen. Im Eingabefeld Datei speichern mit dem
Namen
können Sie einen Dateinamen für die hochgeladene Datei vergeben.
Standardmäßig wird hier der Originalname der Datei von Ihrer Festplatte
eingetragen. Im Feld In diesem Verzeichnis ablegen können
Sie das Unterverzeichnis auswählen, in dem die Datei später gespeichert
wird. Unterverzeichnisse werden über den Mediendatenbank-Menüpunkt
Verzeichnisse verwalten (siehe Kapitel Verzeichnisse
verwalten
auf Seite Verzeichnisse verwalten) erstellt.

Wenn Sie mehr als eine Datei hochladen möchten, können Sie auf den Button
Mehr Bilder hinzufügen klicken. Jeder Klick auf diesen Button
stellt ein zusätzliches Eingabefeld für eine auszuwählende Datei
zur Verfügung, und in jedem dieser Blöcke können Sie danach auch den Dateinamen und
das Zielverzeichnis bestimmen.[*] Diese Funktion benötigt
aktiviertes JavaScript und wird von allen gängigen Browsern
unterstützt.
Beachten Sie bitte, dass Sie nicht zu viele Dateien in
einem Schritt hochladen sollten. Je nach Einstellung des Webservers
(siehe Kapitel file-uploads auf Seite file-uploads)
dürfen Sie ein gewisses Limit (meist 4MB) nicht überschreiten.

Nachdem Sie also die Dateien ausgewählt haben, haben Sie zwei
Möglichkeiten der Speicherung. Ein Klick auf Los! speichert die
Datei und erstellt ggf. automatisch kleine Voransichten. Wenn Sie
jedoch auf Los und Eigenschaften angeben klicken, werden Sie auf
einer Folgeseite gebeten, zu einer Datei optionale Meta-Informationen
anzugeben. Diese Meta-Informationen können Sie auch später noch
nachtragen oder überarbeiten, wenn sie in der Mediendatenbank bereits
gespeichert sind.

4.5.2 - Mediendaten: Probleme beim Upload

Mediendaten: Probleme beim Upload

Scheitert das Speichern einer neuen Datei, liegt dies meist an
falschen Zugriffsrechten (Kapitel Zugriffsrechte auf Seite
Zugriffsrechte). Stellen Sie sicher, dass Ihr
Webserver Schreibzugriff auf den Ordner uploads besitzt. Auch eine
falsche Einstellung durch den PHP SafeMode kann Schreibprobleme
verursachen.

Wenn eine Datei aufgrund der Größenbeschränkung des Webservers nicht
hochgeladen werden kann, wird Serendipity darüber einen Hinweis geben.

Einige Webserver filtern zudem spezielle Dateien, um Sicherheitsprobleme
zu verhindern. Wenn Sie also merkwürdige Fehlermeldungen erhalten,
sollten Sie Webserver-Module wie mod_security oder suhosin
in Betracht ziehen und gemeinsam mit dem Serverprovider anpassen.

Beim Upload großer Dateien kann es zudem auch passieren, dass Ihre
Verbindung aufgrund der großen Transferdauer entweder sehr lange dauert
oder sogar abbricht. In so einem Fall sollten Sie besonders große Dateien
lieber mittels FTP-Programm auf den Server laden.

4.5.3 - Mediendaten: Eigenschaften angeben

Mediendaten: Eigenschaften angeben

Wenn Sie beim Hochladen einer Datei auf den Button Los und
Eigenschaften angeben
geklickt oder innerhalb der
Mediendatenbank-Übersicht auf das Schraubstock-Symbol einer Datei
geklickt haben, landen Sie auf einer Seite, in der Sie die Eigenschaften
einer Datei überarbeiten können.

Abbildung 4.13: Mediendatenbank: Eigenschaften angeben

Diese Seite stellt die betreffenden Meta-Informationen einer Datei dar.
Als Erstes wird dabei entweder das Vorschaubild einer Grafikdatei oder
ein Dateityp-Icon von Nicht-Grafikdateien angezeigt.

Unterhalb dieses Icons sehen Sie den Namen und den Typ der gewählten
Datei. Direkt darunter wird aufgeführt, wer die Datei zu welchem Datum
hochgeladen hat und wie groß die Datei ist. Im Falle einer Grafikdatei
wird hier zudem die Auflösung der Grafik und die Auflösung des kleineren
Vorschaubildes angezeigt.

Es folgt der Block mit den Medien-Eigenschaften. Auch hier werden
abhängig vom Dateityp gewisse Zusatzinformationen angezeigt. Bei Bildern
wird die
DPI-Zahl [*] Die DPI-Zahl (Dots Per Inch) eines
Bildes bestimmt, wie fein die Datei beim Ausdruck gerastert wird. Je
höher die Zahl ist, desto mehr Pixel passen auf ein Inch und desto feiner
wird eine Grafik dargestellt. Druckgrafiken haben meist 300 DPI und
Dateien, die nicht für den Druck vorgesehen sind, 72 DPI.
angegeben. Bei
Video- und Audiodateien wird die Länge der Datei dargestellt. Serendipity
versucht die DPI-Zahl und die Spieldauer einer Datei automatisch
auszulesen, jedoch kann dies bei den vielen unterschiedlichen
Dateiformaten manchmal misslingen. Daher können Sie diese Angaben auch
manuell korrigieren und in die Eingabefelder eintragen.

Für alle Dateitypen werden die folgenden Felder angezeigt:

Verknüpftes Datum Jede Datei kann einen Zeitstempel enthalten, wann sie erstmals gespeichert
wurde. Bei Bildern, Videos oder Musikstücken entspricht dies oft dem
Aufnahmedatum. Diese Information versucht Serendipity anhand der Datei
automatisch zu erkennen. Sollten Sie das Datum ändern wollen, können Sie
es (beliebig formatiert) hier eintragen.

Copyright Das Feld Copyright kann Urheberrechtsinformationen für die
jeweilige Datei enthalten.

Titel Der Titel einer Datei wird vom Redakteur manuell festgelegt.

Kurzer Kommentar Langer Kommentar Eine kurze sowie eine ausführliche Beschreibung einer Datei können Sie
in diesen beiden Eingabefeldern eintragen.

Verzeichnis Das Auswahlfeld Verzeichnis bestimmt, in welchem Verzeichnis eine
Datei gespeichert wird. Wenn Sie später eine Datei verschieben wollen,
können Sie das zugeordnete Verzeichnis an dieser Stelle ändern.
Bei der Änderung werden die Datei sowie das Vorschaubild in das
gewünschte Verzeichnis auf dem Server physikalisch verschoben, der
alte Speicherort existiert dann also nicht mehr. Serendipity versucht
automatisch alle Ihre Artikel anzupassen, die das verschobene Bild
referenziert haben.[*] Dies funktioniert nur bei Einsatz des
MySQL-Datenbanksystems und nicht bei PostgreSQL oder SQLite, da
dafür reguläre Ausdrücke zur Datenbankabfrage eingesetzt werden
müssen, die nur bei MySQL verfügbar sind.
Prüfen Sie also bitte
sicherheitshalber, ob alle Ihnen bekannten Verweise auf die Datei nach
dem Verschieben noch stimmen. Generell empfiehlt es sich, nachdem Sie
eine Datei bereits eingebunden haben, den Speicherort der Datei nicht
mehr zu verändern.

Bearbeiten Der Button Bearbeiten öffnet ein spezielles Popup-Fenster, in
dem eine Originalgrafik beschnitten werden kann. Dieses Fenster zeigt
zwar bereits korrekt eine Originaldatei und die Oberfläche zum
Beschneiden an, die Funktionalität dazu ist aber in Serendipity zum
jetzigen Zeitpunkt noch nicht implementiert. Sehen Sie dies also als
einen Vorgeschmack auf Dinge, die noch kommen werden.

 

Diese Felder können später von Redakteuren in der Mediendatenbank eingesehen und
durchsucht werden und stehen auch in speziellen Galerie-Ansichten (siehe Seite
mdb-profi) für normale Besucher zur Verfügung.
Sie können auch individuell weitere Meta-Informationsfelder für Dateien
erfassen. Dies wird über die Option Medien-Eigenschaften in der
Serendipity-Konfiguration (siehe Kapitel Konfiguration ab Seite
Konfiguration) eingestellt.

Der Abschnitt Medien-Schlüsselwörter kann für eine Datei vorher
festgelegte Schlüsselwörter angeben. Die verfügbaren Schlüsselwörter
werden dabei ebenfalls an zentraler Stelle der Serendipity-Konfiguration
(so.) über die Option Medien-Schlüsselwörter festgelegt.

Jedes Schlüsselwort kann über die Aktivierung der links daneben stehenden
Auswahlbox aktiviert werden. Schlüsselwörter machen es später leichter,
eine Datei mit bestimmten Kriterien über eine Suche in der Mediendatenbank
wieder aufzufinden.

Am Ende der Seite befindet sich im Abschnitt EXIF/IPTC/XMP eine
von der Datei abhängige Liste an Datei-Angaben. Das EXIF-Format
stellt spezielle Angaben wie das Erstellungsdatum, Angaben über die
verwendete Digitalkamera, Blendenwerte, involvierte Software und Weiteres
innerhalb einer Datei zur Verfügung und kann von Serendipity daher
ausgelesen werden. Da diese Angaben fest in der Datei gespeichert sind,
können sie von Ihnen nicht bearbeitet werden, sondern dienen nur der
Information. Moderne Digitalkameras speichern diese Informationen in den
erstellten Bilddateien automatisch ab.

Sollte eine Datei über die Mediendatenbank im Frontend speziell
eingebunden werden (siehe Seite mdb-by-id), können Sie in einem weiteren
Abschnitt alle Verweisquellen aufgelistet sehen. Die dort aufgeführten
Webseiten stellen also Internet-Seiten dar, auf denen das aktuelle Bild
dargestellt wird. So können Sie leicht herausfinden, ob ein Bild
überhaupt eingesetzt wird oder ob Sie es problemlos löschen/verändern
können.

4.5.4 - Mediendatenbank: Übersicht

Mediendatenbank: Übersicht

Über den Menüpunkt Mediendatenbank wird die zentrale Übersicht
aller in der Mediendatenbank eingetragenen Dateien aufgerufen.

Diese Seite haben Sie möglicherweise auch schon im Kapitel
Mediendatenbank-Popup auf Seite Mediendatenbank-Popup
gesehen, dort jedoch noch ohne Bearbeitungsoptionen für jede Datei.

Die Übersicht besteht aus einem Kopfbereich zur Suche in der
Mediendatenbank und darunter einer zweispaltigen Ansicht aller von Ihnen
hochgeladenen Dateien, oder eines einzelnen Ordners.

Abbildung 4.14: Mediendatenbank: Übersicht

Die Seite stellt standardmäßig jeweils acht Dateien pro Seite dar und kann
über die Buttons Weiter und Zurück (in einem Bereich vor
und nach der Dateiübersicht) geblättert werden.
Mit Serendipty 2.1 kamen noch Seitenanfang und Seitenende Buttons, wie auch für die Blog Eintrags Liste hinzu.
Ebenfalls neu ist die Möglichkeit, analog zur bisherigen Sammel-Löschung mittels checkbox Auswahl, einer Sammel-Verschiebung von Dateien
innerhalb der Mediendatenbank über den "Bewegen" Knopf und das Verzeichnis Auswahl Feld am unteren Ende. Damit können etwas ausgeuferte Medien
Sammlungen effizient in Form gebracht werden.

Abbildung 4.14a: Mediendatenbank: Symbolleiste

In dem zweispaltigen Bereich wird pro Box ein Objekt aus der
Mediendatenbank dargestellt, mit den jeweiligen Informationen und
Optionen dieses Objekts:

Symbolleiste Die Symbolleiste unterhalb jeder Infobox stellt
die möglichen Funktionen für eine Datei dar. Abhängig davon, ob eine
Datei ein Bild oder etwas anderes darstellt, bietet die Symbolleiste
unterschiedliche Optionen an.
Die Lupe öffnet eine Ansicht der
Originaldatei in einem separaten Popup-Fenster. Bei Bildern wird hierin
passgenau das Originalbild angezeigt, bei anderen Dateitypen wie
PDF-Dokumenten wird das damit assoziierte Programm auf Ihrem Computer
gestartet.
Das Stift-Icon ermöglicht Ihnen, eine Datei
umzubenennen. Ein Popup-Fenster wird Sie nach dem neuen Dateinamen
fragen. Beim Umbenennen der Datei müssen Sie darauf achten, dass, sofern die
Datei bereits in Blog-Artikeln referenziert wird, Sie den Namen der Datei
dort ebenfalls anpassen müssen, damit er dem neuen entspricht. Beim Umbenennen
einer Datei kann nur der Stammname verändert werden und nicht die
Dateiendung.
Bei Bilddateien sehen Sie nun drei weitere Buttons: Das Symbol der Zwei Pfeile
ermöglicht es, ein Bild zu vergrößern oder zu verkleinern. Bei einem Klick
darauf öffnet sich eine Seite, die das Originalbild und dessen
Originalauflösung darstellt, und Sie können in einer Texteingabebox die
neue Auflösung eintragen.
Die Auswahlbox Proportionen beibehalten
kann hier aktiviert werden und bewirkt, dass das Seitenverhältnis
einer Datei bei der Verkleinerung beibehalten wird. Siehe nachfolgend: Abbildung 4.14b.
Die beiden weiteren Buttons in der Symbolleiste
(Rotation nach links, Rotation
nach rechts
) drehen ein Bild im oder gegen den Uhrzeigersinn jeweils um
90 Grad. Sie können daher ein im Querformat hochgeladenes Bild ins Hochformat
umwandeln und umgekehrt.
Der letzte Button ist nun wieder für jeden Dateityp identisch.
Das Picture-Symbol öffnet die Medien-Eigenschaften einer Datei
(siehe Seite Mediendaten-Eigenschaften hinzufuegen). Das Icon
mit dem roten Kreuz kann eine Datei aus der Mediendatenbank und
vom Server löschen. Wenn die zu löschende Datei in einem Blog-Artikel
referenziert wird, kann sie dort dann selbstverständlich nicht mehr angezeigt werden.

Da es relativ selten ist, dass man Bilder wieder löschen muss,
wurde die Einzelbild-löschen-Funktionalität zugunsten der "globalen" Löschung mittels Checkbox mit Serendipity 2.0 aufgegeben.
Wenn Sie in ihren persönlichen Einstellungen die Option Einfache Filter auf
Nein stellen, ist diese "globale" Funktionalität in der Mediendatenbank erhalten. Siehe nachfolgend: Abbildung 4.14c.

Abbildung 4.14b: Mediendatenbank: Symbolleiste: Proportionen ändern
Abbildung 4.14c: Mediendatenbank: Symbolleiste: Medien Eigenschaften

Dateiname Der Name einer Datei (mit Dateiendung) wird rechts neben der Symbolleiste
angezeigt.

Eigentümer Direkt unterhalb des Dateinamens finden Sie den Namen des Autors, der
dieses Bild hochgeladen hat.

Vorschaubild/Icon Bei Bildern sehen Sie in der Mitte der Übersichtsbox ein Vorschaubild.
Bei anderen Dateien kann hier ein Symbol für das jeweilige Dateiformat
stehen.

Dateigröße Unterhalb des Vorschaubilds sehen Sie die Dateigröße (in Kilobyte) und
ggf. die Auflösung einer Bilddatei.

Dateiinformationen Ehemals direkt sichtbare Dateinformationen,
wie Dateiname, Eigentümer und Dateigröße wurden mit Serendipity 2.0
in den Info Layer der Symbolleiste beordert. Auf den Eigentümer wurde verzichtet. ??? (Grund angeben) ???

 

Abbildung 4.15: Mediendatenbank: Filtern und Sortieren

Üblicherweise richten sich die dargestellten Dateien nach deren
chronologischem Hochlade-Zeitpunkt. Das erste dargestellte Bild ist also
das, was zuletzt hochgeladen wurde - ganz gleich, in welchem Verzeichnis die
Datei abgelegt wurde. Diese Reihenfolge und die Kriterien, nach denen Dateien
angezeigt werden, können Sie im Kopfbereich anpassen:

Filter: Verzeichnise Im Auswahlfeld Verzeichnis können Sie wählen, aus welchem
Unterverzeichnis Dateien dargestellt werden sollen.

Filter: Dateiname Wenn Sie die Mediendatenbank nach einem ganz speziellen Dateinamen
durchsuchen wollen, können Sie diesen in dem Eingabefeld Dateiname
eintragen. Dabei wird die Suche später auch nach Teilwörtern und ohne
Berücksichtigung der Groß- und Kleinschreibung ausgeführt. So könnten Sie
beispielsweise nach allen PDF-Dateien suchen, indem Sie dort .pdf
eintragen.

Filter Die beiden vorangestellten Pfeile vor dem Button Filter deuten
darauf hin, dass ein Klick einen Unterbereich im Filtermenü ausklappt.
Dieser belegt recht viel Bildschirmplatz und wird standardmäßig
ausgeblendet. Sie finden innerhalb dieses eingeblendeten Bereichs
zahlreiche Filtermethoden, die Sie ausfüllen können, um Dateien nach
bestimmten Kriterien zu suchen.
Alle ausgefüllten Filterkriterien werden dabei miteinander so verkettet
(UND-Verkettung), dass nur Dateien angezeigt werden, auf die
jedes Kriterium zutrifft. Wenn Sie daher nach Dateien suchen
wollen, die mehreren unterschiedlichen Kriterien entsprechen könnten,
müssen Sie dafür jeweils erneut eine Suche ausführen.
Filter: Medien-Schlüsselwörter In das Eingabefeld Medien-Schlüsselwörter können Sie, mit
Semikolon getrennt, mehrere Schlüsselwörter eingeben, die auf ein Bild
zutreffen müssen. Rechts neben dem Eingabefeld sehen Sie die Liste aller
verfügbaren Schlüsselwörter, die Sie auch direkt durch Anklicken in das
Eingabefeld übernehmen können.
Filter: Upload-Datum Um nur Dateien anzuzeigen, die in einem gewissen Zeitraum eingestellt
worden sind, können Sie das Start- und Enddatum in das Feld
Upload-Datum eintragen. Das Dateiformat kann dabei der Syntax
Tag.Monat.Jahr oder Jahr-Monat-Tag oder Monat/Tag/Jahr
entsprechen - die Angabe einer Uhrzeit ist nicht möglich. Wenn Sie nur
das Startdatum eintragen, werden alle Dateien seit diesem Zeitpunkt bis
heute angezeigt. Ist nur das Enddatum ausgefüllt, werden alle Dateien bis
zu diesem Zeitpunkt angezeigt.
Filter: Dateiname Die Filterung nach einem Dateinamen konnten Sie bereits oberhalb des
Filter-Bereichs einstellen, aber er wird hier der Vollständigkeit halber
nochmals aufgeführt.
Filter: Autor Wenn Sie nach Dateien suchen, die ein bestimmter Autor hochgeladen hat,
können Sie diesen aus dem Auswahlfeld Autor aussuchen.
Filter: Dateiendung Wollen Sie nach einem Dateinamen
und einer Dateiendung suchen, reicht es
nicht aus, nur das Feld Dateiname auszufüllen, da Sie dort ja
nur nach einer einzigen Teilzeichenkette suchen. Daher können Sie
zusätzlich im Feld Dateiendung nach einer Endung suchen und
Dateiname für den eigentlichen Dateityp verwenden. Um zB.
nach allen PDF-Dateien mit der Zeichenkette hund im Dateinamen
zu suchen, tragen Sie pdf in Dateiendung ein und
hund in Dateinamen. So werden
Schäferhund.pdf wie auch Hundekuchen.pdf gefunden.
Hätten Sie für den Dateinamen nur hund.pdf eingetragen, wäre nur
Schäferhund.pdf gefunden worden!
Filter: Dateigröße Die Dateigröße kann ähnlich wie das Upload-Datum in einem
von-bis-Bereich angegeben werden. So können Sie alle
Dateien zwischen X und Ykb Größe anzeigen.
Filter: Bildbreite Filter: Bildhöhe Auch die Bildbreite und Bildhöhe lassen sich hier in Pixeln
in einem minimalen und maximalen Bereich angeben. Wenn Sie also nach
besonders kleinen oder großen Bildern suchen wollen, können Sie diese
Einschränkung hier vornehmen.
Filter: DPI Die DPI-Angaben einer Bilddatei lassen sich im Eingabefeld DPI
filtern. Sollte man also nach einer druckfähigen Bilddatei suchen, könnte
man hier 300 angeben.
Filter: Laufzeit Bei einer Video- oder Audio-Datei könnte man im Eingabefeld
Laufzeit den Bereich der Spieldauer eintragen. Die Angabe erfolgt
dabei in Sekunden.
Filter: Verknüpftes Datum Wenn Sie nach einer Datei suchen, die zu einem speziellen Zeitpunkt
erstellt wurde und in den Meta-Daten einer Datei festgehalten wurde,
können Sie im Eingabefeld Verknüpftes Datum danach suchen. Die
zeitliche Einschränkung wird im selben Format vorgenommen wie bei der
Filterung nach Upload-Datum.
Filter: Copyright Suchen Sie Dateien mit einem speziell hinterlegten Urheber, können Sie im
Eingabefeld Copyright danach suchen. Teilwörter werden dabei auch
akzeptiert. Achten Sie darauf, dass das Copyright ein vom Redakteur
optional ausgefülltes Informationsfeld ist und daher nicht zwingend bei
jeder Datei verfügbar ist.
Filter: Titel, Kurzer Kommentar, Langer Kommentar Die letzten drei Filterfelder Titel, Kurzer Kommentar und
Langer Kommentar können ebenfalls Teilwörter enthalten, nach denen
Sie in den entsprechend vom Redakteur ausgefüllten Meta-Feldern suchen
können.

 

Die verfügbaren Filter-Felder der Meta-Informationen lassen sich mittels
der Option Medien-Eigenschaften in der Serendipity-Konfiguration
(siehe Kapitel Konfiguration ab Seite Konfiguration)
einstellen. Alle dort festgelegten Felder können als Filterkriterium
dienen.

Unterhalb des Filter-Bereichs können Sie die Sortierung der Anzeige
beeinflussen:

Sortieren nach Über das Auswahlfeld Sortieren nach stellen Sie ein, wie die
Bilder innerhalb der Übersicht sortiert werden. Zur Auswahl steht das
Upload-Datum, der Dateiname (alphabetisch), der
Autorname (alphabetisch), die Dateiendung (alphabetisch),
die Bildbreite oder Bildhöhe und zuletzt die
Sortierung nach allen konfigurierten Meta-Feldern.

Sortierung Die Sortierungsreihenfolge (absteigend oder aufsteigend)
wird über das Auswahlfeld Sortierung festgelegt.

Dateien pro Seite Die letzte Option der Suche gibt an, wie viele Dateien pro Seite in
der Übersicht angezeigt werden sollen. Die Auswahl ist auf 8, 16,
50
oder 100 Dateien begrenzt.

Per Verzeichnis Die Option der nächsten Zeile gibt an,
ob nur Dateien des ausgewählten Verzeichnissebene, oder alle Mediendateien inklusive der Unterverzeichnisse
dargestellt werden sollen.

 

Ein Klick auf den Button Los! wird die gewünschten Filterkriterien
auswerten und danach alle Suchergebnisse in der gewohnten blätterbaren
Übersicht darstellen.

4.5.6 - Verzeichnisse verwalten

Verzeichnisse verwalten

Ähnlich wie die Verwaltung der Kategorien (siehe Kapitel Kategorien
auf Seite Kategorien) können Schreib- und Leserechte von
Mediendatenbank-Dateien verwaltet werden.

Hinter dem Menüpunkt Verzeichnisse verwalten sehen Sie eine
Übersicht aller Unterverzeichnisse der Mediendatenbank
(uploads-Verzeichnis im Serendipity-Stammverzeichnis).

Abbildung 4.16: Mediendatenbank: Verzeichnisse verwalten: Neues Verzeichnis anlegen

Neben allen Verzeichnissen, die jeweils wie im Dateisystem verschachtelt
untereinander angezeigt sind, sehen Sie zwei Buttons zum
Bearbeiten und Löschen eines Verzeichnisses.

Ein Klick auf den Button Neues Verzeichnis anlegen öffnet eine
Seite, in der Sie den Namen eines neuen Verzeichnisses sowie
dessen übergeordnetes Stammverzeichnis aus einem Auswahlfeld
wählen können. Wenn Sie danach auf Verzeichnis anlegen klicken,
wird Serendipity versuchen, das neue Verzeichnis zu erstellen. Damit dies
erfolgreich durchgeführt werden kann, müssen die Zugriffsrechte (siehe
Seite Zugriffsrechte) korrekt eingerichtet sein.

Abbildung 4.16a: Mediendatenbank: Verzeichnisse verwalten: Neues Verzeichnis anlegen

Ein erstelltes Verzeichnis kann bearbeitet werden, indem Sie auf das
Stift-Icon klicken. In dieser Maske sehen Sie zum einen den
Namen des Verzeichnisses und zum anderen zwei größere
Auswahlfelder für die Leserechte und die Schreibrechte.

Abbildung 4.17: Mediendatenbank: Verzeichnisse verwalten: Verzeichnis bearbeiten

Diese Zugriffsrechte bestimmen ausschließlich die Zugriffsmöglichkeiten
innerhalb Serendipitys. Wenn Ihre Redakteure auch per FTP Zugriff auf die
Dateien der Mediendatenbank haben, entzieht sich dies Serendipitys
Zugriffsmöglichkeiten.

Die Zugriffsrechte in der Mediendatenbank werden auch nicht herangezogen,
wenn eine in einem Artikel eingebundene Datei im Frontend angezeigt wird.
Der Link für eine eingebundene Datei zeigt direkt auf den Dateinamen und
kann außerhalb von Serendipity über den normalen Webserver
heruntergeladen werden. Serendipity selbst ist also beim Download der
Datei nicht involviert und kann daher auch keine Zugriffsrechte auswerten.[*] Um Bilder nicht über den vollständigen
URL-Pfad auszugeben und so Zugriffsrechte abzufragen, gibt es jedoch einen
Trick, der auf Seite mdb-by-id erklärt wird.

Einzig das Mediendatenbank-Popup und weitere Funktionalitäten für
Redakteure werten später die Zugriffsrechte aus und zeigen entsprechend
der Rechte eines Redakteurs die ihm verfügbaren Optionen an.

Hat ein Redakteur kein Schreibrecht auf ein Verzeichnis, gilt dies auch
für alle darin enthaltenen Dateien. Solche Dateien könnte ein Redakteur
daher später nicht löschen. Wenn ein Redakteur auch keine Leserechte in
einem Verzeichnis besitzt, wird er derartige Bilder in der
Mediendatenbank-Ansicht erst gar nicht angezeigt bekommen.

Die Lese- und Schreibrechte können jeweils für mehrere Benutzergruppen
definiert werden, indem Sie die (Strg/Apfel)-Taste gedrückt halten und
anklicken. Die Option Alle Autoren gibt ein Verzeichnis für alle
Redakteure frei.

Alle Lese- und Schreibrechte gelten ausschließlich für das aktuell
bearbeitete Verzeichnis. Etwaige Unterverzeichnisse müssen alle separat
konfiguriert werden. Dadurch ist es später möglich, zwar ein
Stammverzeichnis für Redakteure zu sperren, aber Unterverzeichnisse
gezielt wieder zugänglich zu machen. Wenn Sie im Nachhinein bei einer
bestehenden Verzeichnisstruktur Rechte vergeben, möchten Sie vielleicht
gerne diese Rechte auch für alle Unterverzeichnisse identisch vergeben.
Dafür müssen Sie das Ankreuzfeld Identische Rechte auch auf alle
Unterverzeichnisse anwenden
aktivieren.

Um ein Verzeichnis zu löschen, klicken Sie auf das rote Kreuz Mülleimer Symbol. Sie
gelangen danach auf eine Unterseite, die Sie nochmals fragt, ob Sie das
Verzeichnis inklusive aller Dateien löschen (sowohl in der
Mediendatenbank als auch im Dateisystem) wollen.
Wenn Sie einmal Dateien mittels FTP in das zu löschende Verzeichnis (oder
eines seiner Unterverzeichnisse) hochgeladen haben, kann es sein, dass
sich darin Dateien befinden, die die Mediendatenbank noch nicht
synchronisiert/importiert hat. Standardmäßig löscht Serendipity jedoch
nur alle Dateien, die in der Mediendatenbank auch verzeichnet sind. Wenn
Sie die Option Alle Dateien dieses Verzeichnisses löschen
aktivieren, wird Serendipity auch alle dem System unbekannten Dateien
zu löschen versuchen. Auch hier gilt wieder, dass Serendipity nur Dateien
löschen kann, auf die es auch Schreibzugriff hat.

Abbildung 4.18: Mediendatenbank: Verzeichnisse verwalten: Verzeichnis löschen
4.5.7 - Vorschauen erneuern

Vorschauen erneuern

Wie am Anfang des Kapitels Mediendatenbank auf Seite
Mediendatenbank erklärt, muss Serendipity zwischen den Dateien
innerhalb der Verzeichnisstruktur auf dem Server und einer
Datenbanktabelle mit Meta-Informationen synchronisieren.

Wenn Sie also Dateien mittels FTP in das Mediendatenbank-Verzeichnis
uploads hineinkopieren, wird Serendipity davon erst einmal nichts
mitbekommen. Damit Serendipity einen Abgleich zwischen Dateien auf dem
Server und der Mediendatenbank durchführen kann, nutzen Sie den Menüpunkt
Vorschauen erneuern.

Wenn Sie auf diesen Menüpunkt klicken, wird Serendipity alle Dateien und
Unterverzeichnisse des uploads-Verzeichnisses durchgehen und
prüfen, ob die Datei bereits (oder noch) in der Mediendatenbank vorhanden
ist. Etwaige gelöschte Dateien auf dem Server werden daraufhin aus der
Mediendatenbank entfernt und neue Dateien importiert.

Für jede gelöschte oder neu hinzugefügte Datei wird daraufhin ein
Hinweis auf die durchgeführte Aktion ausgegeben. Die Meldung Fertig
(xx Bilder synchronisiert)
am Ende des Vorgangs gibt genaue Information
darüber, wie viele Dateien bearbeitet wurden.

Fehlerhafte und nicht lesbare Dateien werden ebenfalls in dieser Ausgabe
angezeigt, so dass Sie diese Dateien möglicherweise manuell via FTP löschen
oder verändern müssen.

Wenn Sie besonders viele Dateien und Verzeichnisse in der Mediendatenbank
gespeichert haben, kann die Ausführung dieser Funktion möglicherweise
sehr lange dauern oder gar zu Server/PHP-Timeouts führen. Wenn dies
passiert, sollten Sie entweder überlegen, alte Dateien in der
Mediendatenbank zu löschen, oder Sie können alternativ in der
Serendipity-Konfiguration die automatische Synchronisierung der
Mediendatenbank aktivieren (siehe Seite MDB-Synchronisation).
Sobald die automatische Synchronisierung aktiviert ist, werden extern
hochgeladene Dateien beim Betrachten der Mediendatenbank automatisch
importiert. Dies beansprucht weniger Zeit, da bei einem etwaigen
Verbindungsabbruch an der Stelle fortgefahren werden kann, bei der zuletzt
abgebrochen wurde.

Ein weiteres Feature der Funktion Vorschauen erneuern ist, dass alle
Vorschaugrafiken von Bildern überprüft und ggf. neu erstellt werden. Falls Sie
also versehentlich eine Vorschaugrafik namens
.serendipityThumb auf dem Server gelöscht haben, kann diese Datei neu
erstellt werden. Wenn Sie in der Serendipity-Konfiguration (siehe Seite
Thumbnailgroesse) die Auflösung der Vorschaugrafiken einmal verändert
haben (standardmäßig 110 Pixel), könnten sämtliche Vorschaubilder mit der neuen
Auflösung neu berechnet werden.

Die automatische Synchronisierung kann Änderungen in der
Vorschaubild-Auflösung nicht automatisch durchführen. Wenn also Ihre
Mediendatenbank zu groß geworden ist, um die Ausführung der Funktion
Vorschauen erneuern erfolgreich zu beenden, müssen Sie die Vorschaubilder
leider manuell mittels anderer Bildverwaltungsprogramme verkleinern.

4.6 - Aussehen

Aussehen

Der Menübereich Aussehen fasst die Möglichkeiten zusammen, um Ihr
Blog zu individualisieren. Zum einen können Sie hier das Template Ihres
Blogs wählen, zum anderen Ihre eingesetzten Plugins verwalten.

4.6.1 - Styles verwalten

Styles verwalten

Bei Serendipity sind die Begriffe Style, Theme und Template
synonym verwendet. Alle drei Begriffe bezeichnen eine Sammlung von
Dateien, die das Layout Ihres Frontends (und auch in begrenztem Maße des
Backends) bestimmen.

Alle Templates werden im Verzeichnis templates verwaltet. Dort
befindet sich pro Template ein Unterverzeichnis, das eine Sammlung von
Dateien enthält (siehe Kapitel templatefiles ab
Seite templatefiles).

Um eigene oder fremde Templates in Serendipity einzubinden,
müssen sich die Template-Dateien in diesem Unterverzeichnis befinden. Erst
dann kann Serendipity über den Menüpunkt Styles verwalten auf
diese Verzeichnisse zugreifen.

Eine Template-Datei stellt dabei bestimmte Elemente (Einträge, Übersichten,
Kommentare ...) in einfachem HTML-Format dar. Innerhalb der
Template-Datei (*.tpl) werden Platzhalter verwendet, die bei der
Ausführung Serendipitys durch eigentliche Inhalte ersetzt werden. Für
diese Platzhalter-Logik verwendet Serendipity eine Software-Bibliothek
namens Smarty [*] \cmd{http://www.smarty.net/}.
Smartys Aufgabe ist es, die Template-Dateien nach Platzhaltern zu durchsuchen, zu
kompilieren (in PHP-Code umwandeln) und danach auszugeben. Dabei
kann Smarty weitaus mehr, als nur Variablen zu ersetzen: Smarty bietet
Kontrollstrukturen (IF-Abfragen), Schleifen und
PHP-Funktionsaufrufe an. Dies alles kann von Template-Entwicklern benutzt
werden, um ganz individuelle Darstellungen des Frontends zu erreichen, und
wird in Kapitel Smarty-Templates ab Seite Smarty-Templates
ausführlich erklärt.

Ein Klick auf den Menüpunkt Styles verwalten stellt eine
Liste aller verfügbaren Templates dar. Dabei werden auch kleine
Vorschaubilder zu den Themes untereinander angezeigt, die einen Eindruck
vermitteln, wie Ihr Frontend später aussehen könnte.

Abbildung 4.19: Aussehen: Styles verwalten

Jede Template-Box enthält dabei als Überschrift den Namen des Templates
und Informationen über den Autor, das Erstellungsdatum und ob eine
Angepasste Admin-Oberfläche vorhanden ist. Zu einigen Templates
wird Ihnen auch ein großes Vorschaubild angeboten, wenn Sie auf die
kleine Vorschaugrafik klicken.

Um ein Template zu aktivieren, klicken Sie einfach auf den Button mit dem
Diskettensymbol rechts daneben. Daraufhin wird das Template
aktiviert, und wenn Sie das Frontend nun öffnen (Zurück zum Blog),
werden Sie das neue Layout betrachten können.
Je nach eingesetztem Browser könnte es notwendig sein, dass Sie den Browser neu starten oder
den Browsercache leeren müssen, bevor die Änderungen am Layout bei Ihnen
sichtbar sind. Dies könnte erforderlich sein, da das Design zum Teil von
der geladenen Stylesheet-Datei bestimmt wird, die aus
Geschwindigkeitsgründen von vielen Browsern zwischengespeichert wird.

4.6.2 - Template-Optionen

Template-Optionen

Seit Serendipity 1.1 besteht für Templates die Möglichkeit, eigene
Optionen zu konfigurieren. Das bedeutet, dass ein Template individuell
entscheiden kann, was für zusätzliche Möglichkeiten und Darstellungsarten
Sie gerne aktivieren möchten.

Abbildung 4.20: Aussehen: Template-Optionen des Standard Themes 2k11

Wenn Sie ein Template ausgewählt haben, das diese Optionen bereitstellt,
sehen Sie einen zusätzlichen Bereich im ersten Abschnitt des Styles
verwalten
-Menüpunktes. Nur wenige der von Serendipity mitgelieferten
Templates unterstützen diese Optionen. Das Serendipity (2k11) Standard-Template cappucino) von
David Cummins
bietet z. B. diese Template-Optionen an, um den Inhalt der
zusätzlichen Navigations-Links im Frontend einstellen zu können.

Ist dieses Template gewählt, so befinden sich im oberen Bereich jeweils
zwei Eingabeboxen pro Menüpunkt. Über diese Eingabeboxen können Sie den
jeweiligen Link eines Menüpunkts im Frontend bestimmen und festlegen, wie der Text
des Menüpunktes lauten soll.

Andere Templates, die via Spartacus (siehe Seite Spartacus)
bezogen werden können, bieten Template-Optionen für weitaus
fortgeschrittenere Konfigurationsmöglichkeiten, die Sie z. B. zwischen
mehreren Farbvarianten wählen lassen oder auch bestimmen, wie die
Inhaltsbreite festgelegt wird.

4.6.3 - Besondere Templates

Besondere Templates

Bei Serendipity gibt es eine kleine Zahl besonderer Templates, die Sie
nur in Sonderfällen aktivieren sollten. Dies sind:

PHP Engine (Dev) Das Template PHP Engine (Dev) benutzt eine vom Standard abweichende Template-Engine. Anstelle von Smarty kommt hier PHP-Syntax zum Einsatz. Dieses Template ist nur für Entwickler gedacht und führt zu Fehldarstellung des Frontends, wenn es ohne weitere Modifikationen eingesetzt wird.

XML Engine (Dev) Auch das Template XML Engine (Dev) benutzt eine vom Standard abweichende Template-Engine. Hier kommt XSLT zum Einsatz, und auch dieses Template kann ohne weitere Anpassung die Darstellung des Frontends unbenutzbar machen. Für beide genannten Templates gilt, dass der Namenszusatz Dev für Developer (Entwickler) steht und daher auch nur von dieser Zielgruppe benutzt werden sollte.

Newspaper Blog Dieses Template wird eher aus historischen Gründen mitgeliefert und stammt aus einer Zeit, in der Serendipity-Templates noch nicht mittels Smarty-Syntax erstellt wurden. Dementsprechend erhalten Sie die Warnung: Hinweis: Das aktuelle Template verwendet eine ältere Methode der HTML-Erzeugung. Falls möglich, bitte das Template auf die Nutzung von Smarty optimieren. wenn das Template aktiviert wurde.

Im Grunde genommen soll dieses Template
also nur demonstrieren, dass auch ganz alte Templates mit Serendipity
noch grundsätzlich funktionstüchtig sind.

4.6.4 - Plugins verwalten

Plugins verwalten

Das Herzstück des Serendipity-Systems zur Erweiterung des Blogs ist der
Menüpunkt Plugins verwalten.

Als Plugin bezeichnet man eine eigenständige PHP-Datei, die
zusätzliche Funktionalität in das System "stöpselt".
Das Aktivieren eines Plugins erfolgt komfortabel über eine Verwaltungsoberfläche,
Sie müssen also selber keine Dateien bearbeiten oder Kenntnisse des
Systems haben.

Ein Plugin hat zudem den Vorteil, dass bestimmte Funktionen so einfach
optional nachgerüstet werden können. Für viele Benutzer ist
möglicherweise ein Umfrage-Modul interessant, während andere Benutzer
damit gar nichts anfangen können. Da liegt es nahe, diese optionale
Funktionalität so loszulösen, dass nur diejenigen die Komponente
installieren, die sie auch benötigen. Das hält das Grundsystem schlank
und macht es einfacher wartbar. Durch die Auslagerung von Code in Plugins
können auch kleine Bestandteile des Blogs einzeln aktualisiert werden.
Wenn eine neue Version einer Komponente veröffentlicht wird, müssen Sie
also nicht direkt das ganze Blogsystem aktualisieren.

Abbildung 4.21: Aussehen: Plugins verwalten

Bei Serendipity gibt es zwei verschiedene Arten von Plugins.
Seitenleisten-Plugins stellen Inhalte und Funktionen in der
Seitenleiste eines Blogs im Frontend dar.
Ereignis-Plugins sind
interne Funktionen von Serendipity, die Anpassungen des Kernsystems
ermöglichen und sich nicht nur im Frontend, sondern auch im Backend
auswirken können. Ein Seitenleisten-Plugin sieht man daher immer an einer
festgesetzten Stelle im Frontend, während ein Ereignis-Plugin eher
im Hintergrund arbeitet.

Nach einem Klick auf Plugins verwaltenEinstellungen: Plugins sehen Sie zuerst eine Liste
aller Seitenleisten-Plugins
die Liste der Seitenleisten- oder Ereignis-Plugins, je nachdem, welche sie zuletzt genutzt haben. Pro Plugin gibt es eine einzelne Inhaltsbox.
Die Seitenleisten-Plugins sind in verschiedene Bereiche unterteilt:
links, rechts und versteckt. Diese Bereiche
entsprechen also der Positionierung des Seitenleisten-Plugins im Frontend,
auf der linken oder rechten Seite. Dabei
gilt es zu beachten, dass einige Templates möglicherweise nur eine
Seitenleiste anbieten, und manchmal sind beide Seitenleisten auch rechts
oder links angegliedert. Abhängig vom Template kann es auch sein, dass
hier noch weitere Plugin-Bereiche dargestellt werden.

Der Bereich versteckt ist dabei ein Sonderbereich. Alle Plugins,
die dort aufgeführt sind, sind inaktiv gesetzt und werden später im Frontend nicht dargestellt.

Innerhalb der Pluginbox sind folgende Informationen/Einstellungen
enthalten:

Drag and Drop-Rahmen
Jede einzelne Pluginbox kann mittels JavaScript Drag'n'Drop in ihrer
Position verändert werden. Das heißt, sowohl die Reihenfolge der Plugins
untereinander als auch die Wahl der linken oder rechten Seitenleiste
kann bestimmt werden. Dazu klicken Sie mit der Maus auf den
Anfassbereich in der linken oberen Ecke jeder Pluginbox (der Cursor
verwandelt sich dann in einen Positionierungspfeil), halten die Maus
gedrückt und verschieben dann die Box an die gewünschte Position. Dabei
wird der jeweilige Bereich, über dem Sie sich befinden, mit einem Rahmen
hervorgehoben. Sobad Sie die Maustaste loslassen, wird das Plugin in den
gerade hervorgehobenen Bereich eingefügt.
Diese Funktionalität wird mittels JavaScript eingebunden. Sollte Ihr
Browser dies nicht unterstützen, können Sie über das Menü Eigene
Einstellungen
die Option deaktivieren, dass Fortgeschrittene
Javascripts
eingesetzt werden sollen. Sobald dies geschehen ist,
sehen Sie anstelle der Anfasser für jedes Plugin eine Auswahlbox, mit
der Sie angeben, ob das Plugins links, rechts oder versteckt platziert
wird. Die Reihenfolge kann in diesem Falle dann über zwei eigenständige
Pfeil-Buttons verändert werden.
Es ist wichtig, dass Sie nach der Änderung der Positionierung auf den
Button Speichern klicken. Erst wenn Sie diesen Button anklicken,
werden die Änderungen tatsächlich gespeichert. Sollten Sie also einmal
nach einer längeren Sortierungsaktion unzufrieden mit dem Ergebnis sein,
können Sie die Seite einfach neu laden oder verlassen, und die Änderungen
werden verworfen.

Markierungsbox Neben jedem Plugin-Titel ist eine Auswahlbox dargestellt, die angekreuzt
werden kann. Um ein oder mehrere Plugins zu löschen, müssen Sie die Boxen
der jeweiligen Plugins aktivieren und danach auf den Button
Markierte Plugins entfernen klicken.

Zahnrad-Symbol Einige Plugins bieten spezielle Konfigurationsoptionen an. Jedes Plugin
mit solchen Optionen zeigt ein Zahnrad-Symbol an, auf
das Sie klicken können.

Plugin-Titel Der Name eines Plugins wird im Zentrum der Pluginbox angezeigt. Plugins,
die eigene Konfigurationseinstellungen anbieten, kann man mit einem Klick
auf das Zahnrad-Symbol bearbeiten.

Plugin-Beschreibung In der Plugin-Beschreibung, die sich nach einen Klick auf den angezeigten Pluginnamen entfaltet, wird die Funktionalität eines Plugins kurz
beschrieben. Dies ist auch diejenige Beschreibung, die auf Spartacus angezeigt wird.

Plugin-Version Da Plugins öfter aktualisiert werden und mit neuen Versionen Fehler
behoben oder neue Funktionen angeboten werden, ist es ab und zu
interessant zu erfahren, welche Version eines Plugins man gerade
einsetzt. Diese Versionsnummer wird unterhalb der Plugin-Beschreibung
angezeigt.

Plugin-Eigentümer Zuletzt gibt ein Auswahlfeld den Eigentümer eines Plugins an. Bei einigen
Plugins ist nur der hier festgelegte Eigentümer (oder ein Administrator)
autorisiert, Änderungen an der Konfiguration eines Plugins durchzuführen.
Ob ein Plugin solche Einschränkungen festlegt, ist dem Plugin selbst
überlassen. Das Plugin HTML Klotz ist ein Beispiel hierfür.
Diese Einstellung regelt nicht, wer den Inhalt eines Plugins im Frontend
sehen darf! Wenn solche Beschränkungen vorgenommen werden sollen, muss das
Plugin Seitenleisten ein/ausklappen (siehe Seite sidebarhider)
verwendet werden.

 

Um bestimmte Plugins zu entfernen, markieren Sie diese und klicken auf
Markierte Plugins entfernen. Um Änderungen an dem Eigentümer eines
Plugins zu speichern, müssen Sie das Plugin markieren und danach auf
Speichern klicken. Für Änderungen an der Positionierung oder
Reihenfolge eines Plugins klicken Sie einfach nur auf Speichern,
eine Auswahl der beteiligten Plugins ist in diesem Fall nicht
notwendig.

Ein neues Seitenleisten-Plugin können Sie installieren, indem Sie den Link
Hier klicken, um Seitenleisten-Plugin zu installieren benutzen.

Analog zu der Auflistung der Seitenleisten-Plugins werden die
Ereignis-Plugins dargestellt. Da diese im Frontend keinem Bereich
entsprechen, sind sie nicht weiter unterteilt und gliedern sich nur in
Aktiv und Inaktiv. Ein aktives Ereignis-Plugin wird bei
jedem Seitenaufruf von Serendipity in den Speicher geladen und
ausgeführt. Wenn Sie ein Plugin vorübergehend deaktivieren wollen,
können Sie es einfach in den Bereich Inaktiv verschieben.

Die Reihenfolge von Ereignis-Plugins
kann in einigen Situationen wichtig sein. Die Liste dieser Plugins wird vom
ersten bis zum letzten in dieser Reihenfolge ausgeführt; dabei kann die Ausgabe
des vorigen Plugins miteinbezogen werden.
Gerade bei Textformatierungs-Plugins, die gewisse Umformatierungen Ihrer Einträge
vornehmen, ist diese Reihenfolge von Interesse. Wenn bspw. ein
Textformatierungs-Plugin wie Textformatierung: Smilies
ausgeführt wird und danach ein Plugin wie das Textformatierung: Wiki-Markup, dann könnte
dies dazu führen, dass die HTML-Formatierung der Smilies durch das
Wiki-Markup-Plugin zerstört wird. Richtig wäre es daher, das Wiki-Markup-Plugin als eines
der ersten Textformatierungs-Plugins anzuwenden. Bei welchen Fällen Sie auf die
Reihenfolge zu achten haben, wird bei der Beschreibung des jeweiligen Plugins in
diesem Buch erwähnt.

Ereignis-Plugins können ähnlich wie Seitenleisten-Plugins über
Hier klicken, um Ereignis-Plugin zu installieren neu
hinzugefügt werden.

4.6.5 - Fehler bei Plugins

Fehler bei Plugins

Je länger die Liste der Ereignis-Plugins, desto mehr Arbeitsspeicher
benötigt Serendipity auf dem Webserver. So kann es passieren, dass
nach der Installation eines neuen Ereignis-Plugins der
Arbeitsspeicher ausgereizt ist.

Es kann durchaus passieren, dass zu viele Plugins die fehlerfreie
Ausführung des Frontends oder Backends verhindern. In so einem Fall
müssen Sie also Ereignis-Plugins löschen oder Ihren Provider bitten, den
Arbeitsspeicher (siehe Kapitel memory-limit auf Seite
memory-limit) zu vergrößern.

Sollten Sie nicht mehr auf die Plugin-Verwaltungsoberfläche gelangen,
können Sie ein Plugin auch entfernen, indem Sie das entsprechende
Verzeichnis im plugins-Unterverzeichnis löschen. Sobald Serendipity
eine angeforderte Plugin-Datei nicht mehr findet, wird das
entsprechende Plugin einfach temporär deaktiviert. Sie werden es dann
trotzdem noch in der dann wieder aufrufbaren Plugin-Verwaltung sehen
können, dort wird dann jedoch nur eine Meldung wie


    Fehler! serendipity_event_xxx

zu sehen sein. Ein solches Plugin können Sie jedoch wie gewohnt löschen.

Abgesehen von der absichtlichen Löschung eines Plugins kann es auch
einmal vorkommen, dass Sie die obige Meldung bei Plugins sehen, die
eigentlich fehlerfrei funktionieren sollten. Diese Meldung kann auch
angezeigt werden, wenn eine Plugin-Datei für Serendipity nicht lesbar
ist oder womöglich fehlerhaft via FTP hochgeladen wurde. Prüfen Sie
daher, ob diese Dateien auch dem richtigen Zustand (Dateigröße und
Dateirechte) entsprechen.

Auch nach einem Serverumzug kann es vorkommen, dass früher
funktionierende Plugins plötzlich nicht mehr aufrufbar sind. In diesem
Fall finden Sie in der Datenbanktabelle serendipity_plugins eine
Auflistung aller aktivierten Plugins inklusive deren Dateipfad. Diesen
Pfad müssen Sie möglicherweise auf neue Gegebenheiten anpassen.

Manchmal kann es sein, dass nach der Installation
mehrere Instanzen eines Plugins aktiviert wurden. Sie können daher doppelte Plugins
leicht wieder aus der Verwaltungsoberfläche löschen.

Wenn Sie eine Plugin-Datei selbständig editieren, kann es passieren, dass
Sicherungskopien eines Plugins mit der Dateiendung .bak oder
.php~ von Ihrem Editor im jeweiligen Plugin-Verzeichnis gespeichert
werden. Diese Dateien können die Plugin-Verwaltung von Serendipity stören
und müssen daher unbedingt gelöscht werden. Auch ganze Kopien eines
Verzeichnisses unter einem zweiten Namen dürfen niemals im
plugins-Unterverzeichnis gespeichert werden, verschieben Sie
derartige Sicherheitskopien immer an einen von Serendipity unabhängigen
Speicherort!

4.6.6 - Neue Plugins installieren

Neue Plugins installieren

Wenn Sie ein neues Ereignis- oder Seitenleisten-Plugin installieren, wird
Serendipity Ihnen die verfügbaren Plugins auf einer Plugin-Übersicht
darstellen. Dort wird jedes Plugin, das im Serendipity-Verzeichnis
vorhanden ist, aufgelistet. Auch bereits installierte Plugins werden
daher an dieser Stelle dargestellt, da es einige Arten von Plugins
gibt, die mehrfach installiert (genauer: instanziert)
werden können.

Serendipity wird mit einer kleinen Auswahl an verfübaren Plugins
ausgeliefert, die nicht alle von Anfang an aktiviert sind. Sollten Sie
weitere Plugins benötigen, können Sie diese entweder vom Server
http://spartacus.s9y.org/ manuell herunterladen, automatisch
mittels des Spartacus-Plugins installieren oder ein
selbst entwickeltes Plugin auswählen. Wenn Sie aus dem Internet ein
Serendipity-Plugin als ZIP-Datei heruntergeladen haben, müssen Sie
dieses in die Unterverzeichnisstruktur von plugins entpacken.
Serendipity kann mit der ZIP-Datei selber nichts anfangen, und auch wenn
eine Plugin-Datei versehentlich nur ins Stammverzeichnis kopiert werden
sollte, kann dies dazu führen, dass es später in der Plugin-Übersicht
nicht aufgeführt wird.

Plugins müssen also in zwei Schritten für Serendipity verfügbar gemacht
werden. Zum einen muss ein Plugin in einem Unterverzeichnis des
plugins-Verzeichnisses gespeichert werden, damit Serendipity das
Plugin überhaupt sehen kann. Im zweiten Schritt muss dann das
hochgeladene Plugin für Serendipity über die Plugin-Verwaltung
aktiviert werden.

Abbildung 4.22: Aussehen: Plugins verwalten: Neues Plugin installieren (Ausschnitt)

In der Plugin-Übersicht für die Installation sehen Sie pro Zeile jeweils
einen Plugin-Namen. Die Plugins sind unterteilt in verschiedene Gruppen,
die Sie speziell auch über das Auswahlfeld Filter am Seitenanfang
anwählen können.

Unter jedem Plugin-Namen wird eine Beschreibung des Plugins angezeigt,
sowie der Autor und die Versionsnummer des Plugins. UnterhalbRechts neben der
Beschreibung sehen Sie entweder einen Button zur Installation des
gewünschten Plugins oder die Information, dass ein Plugin bereits
installiert
ist.

Wenn Sie auf den Installations-Button klicken, werden Sie ggf. direkt
zur Konfiguration des gerade gewählten Plugins weitergeleitet. Dort
werden Ihnen die Standardoptionen bereits vorausgefüllt, Sie müssen also
nicht sofort die vollständige Konfiguration aufrufen, sondern können die
Konfiguration auch jederzeit später vervollständigen. Nach diesem Vorgang
ist ein Plugin installiert und kann wie gewohnt über den Menüpunkt
Plugins verwalten verschoben und konfiguriert werden.

4.6.7 - SPARTACUS

SPARTACUS

SPARTACUS steht für das Serendipity Plugin Access Repository
Tool And Customization/Unification System
. Trotz des zugegebenermaßen
konstruierten Akronyms wird deutlich, dass Spartacus ein System ist, das
Plugins und Templates zur Verfügung stellt.

Spartacus besteht aus zwei Komponenten: Zum einen der zentrale Server
http://spartacus.s9y.org, auf dem sämtliche verfügbaren
offiziellen Plugins vorhanden sind und auch für Nicht-Serendipity-Benutzer
übersichtlich dargestellt werden.
Zum anderen wird bei Serendipity ein gleichnamiges Ereignis-Plugin
mitgeliefert, das direkt auf diesen zentralen Server zugreifen und
Plugins herunterladen kann. Das Plugin stellt einige Anforderungen an den
Server, auf dem Sie Serendipity installiert haben:

  • Der Webserver darf nicht durch eine Firewall blockiert werden. Er
    muss Zugriffe auf GitHub, netmirror.org,
    sourceforge.net und spartacus.s9y.org auf Port 80
    ermöglichen.
  • Die PHP-Konfiguration muss den Zugriff auf Netzwerk-Sockets erlauben.
  • Damit Serendipity Dateien selbständig herunterladen und auf dem
    Server speichern kann, muss Schreibzugriff auf die Verzeichnisse
    plugins und templates gewährt werden.

Auf manchensehr vielen Webservern schlägt die erste Bedingung fehl, was dazu
führt, dass keine PHP-Anwendung nach draußen zugreifen kann.
Gerade bei großen Providern ist aus Sicherheitsgründen ein derartiger
Zugriff nicht gestattet. In so einem Fall können Sie Spartacus also
leider nicht einsetzen und müssen die Plugins manuell vom Server
http://spartacus.s9y.org/ beziehen. Seit langemIn der neuesten Serendipity-Version
besteht behelfsweise die Möglichkeit, Dateien direkt über Ihren FTP-Zugang
auf den Webserver hochzuladen - dadurch werden die
PHP-Beschränkungen umgangen. Die Zugangsdaten müssen Sie in der Konfiguration
des Spartacus-Plugins festlegen.

Wenn das Spartacus-Plugin auf solchen blockierten Servern installiert
wird, kann das zu einer Reihe von Problemen führen: von der vollständigen
Fehlfunktion der Plugin-Installationsoberfläche bis hin zu weißen Seiten
beim Klick auf ein zu installierendes Plugin.

Sollten Sie also beim Installieren von Plugins eine leere Seite erhalten,
oder Ihr Browser gibt an, die Datei serendipity_admin.php müsse
lokal auf der Festplatte gespeichert werden, oder die Installation eines
Plugins führt zu langen Ladezeiten, dann können Sie sich sicher
sein, dass Spartacus auf Ihrem Server nicht gestartet werden kann. Eine
Fehlermeldung, die in diesem Zusammenhang auch auftreten kann, ist:


    Access Denied in /var/www/example.com/serendipity/bundled-libs/PEAR.php at line 848

Dies ist eine generische Fehlermeldung, die bedeutet, dass die für den
Download zuständige PEAR-Komponente keine Verbindung zu einem Server
aufnehmen konnte.

Möglicherweise kann Ihr Webserver auf fremde Server zugreifen, wenn Sie einen
Proxy-Server benutzen. Um einen Proxy für Spartacus einzustellen, bietet das
Plugin Trackbacks kontrollieren (siehe Seite trackbacks) eine
Möglichkeit, den Proxy-Server zu konfigurieren. Der dort eingestellte
Proxy-Server gilt dann für alle Serendipity-Funktionalitäten und aktuellen
Plugins.

Wenn Sie ein älteres Plugin nutzen, das sich nicht von der im
Trackback-Plugin konfigurierten Proxy-Einstellung beeindrucken lässt,
können Sie notfalls auch manuell in der Datei
bundled-libs/HTTP/Request.php in Zeile 150 folgende Variablen
setzen:


    $this->_proxy_host = null;
$this->_proxy_port = null;
$this->_proxy_user = null;
$this->_proxy_pass = null;

Beachten Sie, dass diese Änderung einer zentralen Bibliothek nicht gerade
die feine englische Art ist, da die lokale Bibliothek auf einigen
Servern durch eine zentrale PEAR-Bibliothek übergangen werden könnte.

Aufgrund der aufgeführten potenziellen Probleme ist das Spartacus-Plugin
standardmäßig nach der Installation nicht aktiviert. Sie müssen es daher
über den Menüpunkt Klicken Sie hier, um Ereignis-Plugin zu
installieren
erst auswählen und aktivieren. In der Konfiguration des
Spartacus-Plugins können einige wichtige Optionen festgelegt werden,
siehe Seite Spartacus.

Kann Spartacus auf dem Server eingesetzt werden, fügt es sich
nahtlos in die Serendipity-Oberfläche ein. Wenn Sie sich mit aktiviertem
Plugin dann die Plugin-Verwaltung zur Installation eines neuen
Plugins ansehen, wird das Plugin automatisch aus dem Internet eine
aktuelle Liste der verfügbaren Plugins laden und Ihnen darstellen. Bei
Klick auf ein Plugin wird Spartacus automatisch alle benötigten
Dateien herunterladen und Sie über diesen Download benachrichtigen.

??? (Ist das ersatzlos gestrichen) ???

Plugins, die mittels Spartacus installiert werden, stellen als
Aktions-Button ein CD-Symbol mit Download-Pfeil dar. Außerdem wird bei
diesen Plugins zusätzlich in der Informationszeile angegeben, dass sie
mittels Spartacus heruntergeladen werden.

Sollte der Download eines Plugins mittels Spartacus einmal fehlschlagen,
können Sie über FTP das entsprechende Plugin-Verzeichnis einfach
komplett löschen und die Neuinstallation probieren.

Auch die Aktualisierung von Plugins kann mittels Spartacus komfortabel
vorgenommen werden. Anstatt über die Spartacus-Webseite nach neuen
Versionen zu suchen, können Sie über die Plugin-Verwaltung die ButtonsMenüpunkte
Neue Versionen von Seitenleisten-Plugins und Neue Versionen
von Ereignis-Plugins
Updates(Seitenleisten-Plugins) und Updates
(Ereignis-Plugins)
anklicken. Dort werden Sie dann alle
aktualisierbaren Plugins aufgelistet bekommen und können auf den
roten Aktualisierungsbutton klicken, um ein Upgrade durchzuführen.

??? (Stimmt das noch... ;-) ) ???

Leider gibt es bei einem Upgrade in der Plugin-Oberfläche keinen
Hinweis, welche Dinge sich bei einem Plugin verändert haben. Als
Faustregel gilt, dass nur große Versionssprünge in einem Plugin
tiefgreifende Änderungen mit sich bringen. Die meisten Updates sind
Bugfixes oder kleinere neue Features. Da Plugin-Entwickler oft faule
Leute sind, ist die Dokumentation der Updates jedoch meist dürftig,
und Sie müssen sich die Aktualisierungen manuell in der
Spartacus-Versionsverwaltung ansehen.[*] \cmd{https://github.com/s9y/additional_plugins}
Details zu dieser Webseite finden Sie im Kapitel
sourcecodeverwaltung ab Seite sourcecodeverwaltung.

Auch bei Plugins werden Updates immer unter großer Beachtung der
Rückwärts-Kompatibilität durchgeführt. Sie müssen also nicht fürchten, dass
sich bei einem Update eines Plugins etwas für Sie ändern könnte oder zu Bruch
geht - diese Gefahr ist relativ gering. Lediglich wenn Sie selbst Änderungen
an den Plugin-Dateien gemacht haben, müssen Sie diese sichern und nach dem
Update erneut einfügen. Die Konfigurationsoptionen Ihrer Plugins bleiben bei
einer Aktualisierung weiterhin bestehen.

Wenn Sie mehrere Plugins auf einmal aktualisieren wollen, müssen Sie
diese nacheinander anklicken. Bei einem Browser, der Tabs
(Registerkarten) unterstützt, könnten Sie einfach jeden Link mit einem
Klick der mittleren Maustaste auf das Plugin-Symbol in einem solchen
separaten Fenster öffnen. Das spart Ihnen etwas Zeit, um nicht jedes Mal
zurück zur Verwaltungsoberfläche gehen zu müssen.

Wenn Sie mehrere Plugins auf einmal aktualisieren wollen, müssen Sie
sie mittels des rechten Mausbuttons in neue Tabs installieren. Achtung:
Dies kann, je nach Menge und zur Verfügung gestellter Kapazität des Servers durchaus zu Fehlern führen,
wenn die Grenzen erreicht sind. Besser und sicherer ist es jedoch, jedes Plugin einzeln und nacheinander upzudaten,
auch, da es mittlerweile durchaus Plugins geben kann,
wie das CKEDITOR Plugin, das augenblicklich für wichtige Upgrade-Aufgaben in seine eigene Konfiguration zurückfallen möchte.
Mit Serendipity 2.0+ wurde die hier beschriebene Nutzung der mittleren Maustaste aufgegeben,
so dass nur noch per rechter Maustaste Plugins per Multi-Update in einzelne Tabs geöffnet werden können.
Die hier beschriebene mögliche Last und Fehleranfälligkeit ist weiterhin gültig.

Das Upgrade eines Plugins können Sie auch ausführen, wenn Sie wie gewohnt
die Übersicht aktivierbarer Plugins durchgehen. Auch hier sollten Ihnen
die roten Aktualisierungs-Buttons ins Auge stechen.

Oberhalb jeder Übersichtsseite werden Sie einige Meldungen von Spartacus
sehen, die Sie darüber informieren, dass gerade eine Übersichtsdatei oder
Weiteres aus dem Internet geladen wird. Diese Meldungen helfen Ihnen, im
Fall von Zugriffsproblemen die Schreibrechte zu prüfen.

Die XML-Dateien, die Spartacus herunterlädt, werden in dem temporären
Verzeichnis templates_c gespeichert. Damit das Plugin
nicht bei jedem Zugriff auf Ihre Plugin-Verwaltung diese Dateien neu lädt,
wird Spartacus die Dateien zwischenspeichern und nur alle 24 Stunden auf
Aktualisierung prüfen. Aufgrund dieser Zwischenspeicherung kann es also
passieren, dass neue Plugins im Spartacus-Archiv erst mit maximal
24 Stunden Verzögerung dargestellt werden. Wenn Sie unbedingt forcieren
wollen, dass Spartacus den Zwischenspeicher leert, dann können Sie über
die Plugin-Konfiguration von Spartacus einfach auf den Button
Speichern klicken. Dadurch werden die temporären Dateien alle
gelöscht. Auf Wunsch könnten Sie die Dateien natürlich auch mit einem
FTP-Programm löschen.

Alle Inhalte des Spartacus-Systems können Sie auch ohne Serendipity unter
http://spartacus.s9y.org/ ansehen und dort Plugins als ZIP-Datei
manuell herunterladen.

Die Plugins von Spartacus werden, ebenso wie Serendipity selbst, öffentlich
über ein Versionskontrollsystem gepflegt. Alle vorgenommenen Änderungen
werden darin protokolliert. Details finden Sie in Kapitel
sourcecodeverwaltung auf Seite sourcecodeverwaltung.

4.7 - Administration

Administration

Im Menübereich Administration befinden sich alle
Möglichkeiten, die Optionen und Benutzer Ihres Blogs zu bearbeiten. Auch
der Export und der Import von Blog-Artikeln wird über diesen Bereich
ausgeführt.

 

4.7.1 - Konfiguration

Konfiguration

Hinter Konfiguration finden Sie alle Einstellungen
des Blogs, die Sie auch bei der Installation im
Fortgeschrittenen-Modus festlegen können.

Der Konfigurationsbereich ist dabei in mehrere Bereiche untergliedert,
um etwas Struktur in die Oberfläche zu bringen. Jeder Bereich kann
dabei über den +-Button aus- und eingeklappt werden. Um alle
Bereiche auf einmal auszuklappen, klicken Sie auf den Link Alle
Optionen ein-/ausblenden
.

Datenbankeinstellungen

Die Datenbankeinstellungen bestimmen den Zugang zur zentralen
Serendipity-Datenbank und deren möglichen Optionen.

Hier müssen immer die aktuell gültigen Zugangsparameter zur
Datenbank eingetragen werden. Diese Datenbankinformationen werden
zusätzlich in der Datei serendipity_config_local.inc.php
gespeichert. Wenn sich also einmal die Zugangsdaten ändern, könnte es
sein, dass Sie manuell zuerst diese Datei (siehe auch Kapitel
Installation erneut ausfuehren auf Seite
Installation erneut ausfuehren) überarbeiten müssen, bevor Sie sich wieder ins
Backend einloggen können.

Abbildung 4.23: Administration: Konfiguration

 

Datenbanktyp In diesem Auswahlfeld sind die verfügbaren Datenbanktypen aufgeführt,
zu denen Serendipity Verbindung aufnehmen kann. Die Liste der
verfügbaren Typen richtet sich nach der Konfiguration Ihres
PHP-Servers. PHP muss für jeden Datenbankserver eine sogenannte
Client-Library eingebunden haben, um auf die Funktionen des
jeweiligen Datenbanktyps zugreifen zu können. Wenn Sie sich sicher
sind, dass auf Ihrem Server ein MySQL-Server läuft, muss das nicht
automatisch bedeuten, dass PHP darauf auch zugreifen kann. Zahlreiche
Linux-Distributionen bieten die Client-Libraries in eigenen Paketen
an, bei Debian beispielsweise php-mysql.
Serendipity kann auf folgende Client-Libraries zugreifen: mysql
(MySQL 3, eingeschränkt auch 4 und 5), mysqli (ab MySQL 4),
postgres (PostgreSQL), PDO postgres (spezielle PHP5-Variante
der PostgreSQL-Library), sqlite und sqlite3.
SQLite ist ein Sonderfall einer Datenbank, da es ohne einen Datenbankserver
auskommen kann. Ab PHP5 ist SQLite fester Bestandteil von PHP und somit immer
verfügbar. Die Vorteile von SQLite sind eine sehr hohe Performance beim Lesen
von Datenbanken und die Erstellung einer einzelnen Datenbankdatei, von der man
sehr leicht ein Backup aufnehmen kann. Der Nachteil ist, dass SQLite nicht alle
Datenbank-Operationen mittels SQL-Syntax unterstützt und gerade bei komplexeren
Datenbankabfragen doch eher langsam wird.
Am besten getestet ist Serendipity bei Verwendung der MySQL-Datenbank.
Die Kernfunktionen Serendipitys laufen auch problemlos mit allen
anderen Datenbanktypen, aber einige Plugins könnten spezielle
MySQL-Funktionen einsetzen.
Wenn Sie den Datenbanktyp bei einer aktiven Serendipity-Installation
ändern, richtet Serendipity keine neue Datenbank auf dem
gewünschten System ein! Alle Datenbankeinstellungen richten sich nach
dem Ist-Zustand, Serendipity geht also davon aus, dass Sie mit
diesen Optionen die aktuellen Gegebenheiten abbilden, und nicht, wie
Sie es in Zukunft gerne hätten. Um Serendipity auf eine andere Datenbank
umzustellen, müssen Sie die Migration mithilfe der Dokumentation des
Datenbankservers leider selbständig vornehmen.

Datenbank Servername Der Servername der Datenbank kann entweder eine IP-Adresse (zB.
127.0.0.1), ein lokaler Hostname (localhost) oder ein Internet-Hostname
(www.example.com) sein. Wird für SQLite nicht benötigt.

Datenbank Username Der Benutzername für den Datenbankserver. Wird für SQLite nicht
benötigt.

Datenbank Passwort Das Passwort für den Benutzer des Datenbankservers. Wird für SQLite
nicht benötigt.

Datenbankname Der Name der Datenbank, in der Serendipity installiert wurde. Bei
Verwendung von SQLite wird hier der Dateiname der .db-Datenbank
gespeichert.

Datenbank-Präfix Jede Serendipity-Tabelle in einer Datenbank muss einen vordefinierten
Präfix besitzen, damit sich die Tabellennamen von möglicherweise gleichnamigen
Tabellen anderer Anwendungen in derselben Datenbank abheben können.
Standardmäßig wird hier serendipity_ eingetragen. Wenn Sie den
Tabellenpräfix nachträglich ändern, müssen Sie die bestehenden Tabellen
manuell in der Datenbank umbenennen, Serendipity führt dies nicht
selbständig aus.

Persistente Verbindungen nutzen Bei jedem Aufruf einer Seite von Serendipity wird eine Verbindung zur
Datenbank aufgebaut. Im "Lebenszyklus" einer PHP-Anwendung wird diese
Datenbankverbindung nach der Ausführung automatisch wieder geschlossen.
Um etwas Zeit zu sparen, können PHP-Anwendungen sogenannte
Persistent Connections (Ständige Verbindungen) nutzen.
Diese Option wird in der PHP-Dokumentation [*] \cmd{http://php.net/manual/de/features.persistent-connections.php} ausführlicher beschrieben und bewirkt - kurz gesagt --, dass mehrere
PHP-Aufrufe dieselbe Datenbankverbindung nutzen können, ohne diese
ständig neu auf- und abzubauen.
Generell birgt diese Option einige Gefahren, da bei Datenbankproblemen
eine Verbindung nicht mehr automatisch neu aufgebaut wird und
möglicherweise viele Zugriffe auf die Webseite das Ressourcenlimit an
Verbindungen schneller erschöpfen könnten. Daher sollte diese Option
nur dann aktiviert werden, wenn Sie sich mit ihren
Vor- und Nachteilen auskennen.

Datenbank-Zeichensatzkonvertierung aktivieren Diese Option gilt nur für MySQL-Datenbanktypen und bringt Serendipity
dazu, beim Verbinden mit der Datenbank anzugeben, welchen Zeichensatz
das Blog benutzt. Gerade bei den damals aktuellen MySQL-Versionen ab 4.1 kannkonnte die
falsche Verwendung von Zeichensätzen zu Fehlern führen, siehe Kapitel
Falsche Anzeige von Datumsangaben oder Sonderzeichen ab Seite
Falsche Anzeige von Datumsangaben oder Sonderzeichen.
Sollte Ihr Blog bei der Darstellung von Sonderzeichen Probleme machen,
könnte die Umstellung dieser Option Abhilfe schaffen.

Pfade

Im Bereich Pfade tragen Sie einige Optionen zur Festlegung der
URLs ein. Bitte beachten Sie, dass Sie an dieser Stelle die derzeit
gültigen Pfade eintragen müssen, die mit Ihrer Installation
übereinstimmen.

Wenn Sie eine Serendipity-Installation auf dem Server verschieben
wollen, müssen Sie dies vorher manuell (mittels FTP-Programm oder
Ähnlichem) erledigen und nachträglich die geänderten Pfade an dieser
Stelle eintragen.

Fehler: Seite nicht gefunden
Seite nicht gefunden Bitte achten Sie darauf, dass alle Pfadangaben immer mit einem
Schrägstrich enden müssen. Etwaige fehlerhaft eingestellte Pfade können
dazu führen, dass Links in Ihrem Blog nicht aufgerufen werden können
und zu leeren Seiten führen. Auch wenn Ihre Seite unformatiert aussieht
und keine Grafiken darstellt, kann das seine Ursache in einem falsch
konfigurierten Pfad haben.

Voller Pfad Diese Option enthält den vollständigen Pfad der
Serendipity-Installation auf dem Server. Dieser Pfad entspricht also
dem eigentlichen Dateisystem (zB.
/var/www/example.com/serendipity/), und nicht dem Schema der URL
(/serendipity/). Bitte stellen Sie sicher, dass der Pfad immer
einfache Schrägstriche (/) verwendet und nicht den Backslash
(\). Auf Windows-Systemen können Sie den Backslash
einfach mit einem normalen Schrägstrich ersetzen, und lassen Sie das
Laufwerk (C:/) am Anfang weg.[*] Den Laufwerksbuchstaben
bräuchten Sie nur, wenn Ihr DocumentRoot nicht auf demselben
Laufwerk liegen würde wie das Verzeichnis von Serendipity. Da
Serendipity aber immer innerhalb des DocumentRoot liegen muss,
kann dieser Fall effektiv nicht eintreten.
Wenn möglich, sollten Sonderzeichen in den Verzeichnispfaden vermieden
werden, und der Pfad muss immer mit einem Schrägstrich enden.

Upload-Pfad Unterhalb des im Voller Pfad eingetragenen Verzeichnisses
befindet sich der Ordner, in dem die Dateien der Mediendatenbank
gespeichert werden sollen (üblicherweise uploads). Wenn Sie Ihre
Mediendateien in einem anderen Verzeichnis speichern wollen, können Sie
den gewünschten Speicherort relativ zum vollen Pfad hier eintragen.
Sollte das Upload-Verzeichnis außerhalb des Serendipity-Verzeichnisses
liegen, dürfen Sie hier nicht einfach einen absoluten Pfad eintragen,
sondern müssen mittels ../../ die jeweiligen Verzeichnisebenen
höher wechseln. Wenn Sie also Serendipity im Verzeichnis
/var/www/example.com/serendipity/ gespeichert haben und Ihr
Upload-Verzeichnis sich in /var/uploads/ befindet, müssen Sie für
den Upload-Pfad ../../../uploads/ eintragen.
Wenn Sie dieses Verzeichnis umkonfigurieren, müssen Sie bereits
hochgeladene Dateien manuell in das neue Verzeichnis verschieben.

Relativer HTTP-Pfad Der Relative HTTP-Pfad gibt die Pfadkomponente der URL an, in
der Serendipity installiert wurde. Dabei muss der HTTP-Pfad sämtliche
Verzeichnisnamen hinter dem Domain-Namen enthalten. Wäre Serendipity
unter http://example.com/~john/serendipity/ installiert,
müsste der relative HTTP-Pfad den Eintrag /~john/serendipity/
enthalten.

Relativer Template-Pfad Um Grafiken und Stylesheets der Templates anzuzeigen, muss Serendipity
auf den Stammordner zugreifen, in dem sich die Templates befinden. Der
Relative Template-Pfad gibt dabei die notwendige
Verzeichnisstruktur (relativ zum HTTP-Pfad) an.
Sie sollten diese Option möglichst nicht ändern, da an zahlreichen
Stellen in Serendipity der Template-Pfad templates/ fest vorgesehen
ist. Eine Änderung macht nur Sinn, wenn Sie mit symbolischen Links auf
dem Webserver arbeiten, die unterschiedliche Pfadangaben benötigen.

Relativer Upload-Pfad Wenn Sie den Upload-Pfad wie im Beispiel oben ändern, wird sich auch
dessen URL ändern. Die Option Relativer Upload-Pfad gibt dabei
den Verzeichnisnamen des Speicherorts der Mediendateien an,
relativ zur Stamm-URL.
Sollte sich das Serendipity-Verzeichnis auf
einem anderen VirtualHost oder einer ganz abweichenden Pfad-Struktur
befinden, kann dies nur funktionieren, wenn Sie einen
symbolischen Link [*] Symbolische Links sind häufig auf Linux-Servern zu finden
und ermöglichen einen Datei- oder Verzeichnisverweis zu völlig anderen
Verzeichnissen. Symbolische Links können nur mit direktem Zugriff zum
Dateisystem eines Servers erstellt werden und sind daher meist
Administratoren bzw. Shell-Benutzern vorbehalten.
zum Ziel-Upload-Verzeichnis erstellen.

URL zum Blog Im Eingabefeld URL zum Blog tragen Sie die vollständige URL (mit
Protokoll und Domainnamen) ein. Dabei können Sie, falls verfügbar, auch
gerne https:// benutzen, wenn Ihr Server dies anbietet.
Sollte Ihr Blog unter mehreren URLs erreichbar sein [*] zB.
http://example.com/serendipity/,
https://www.example.com/serendipity/ und
http://blog.example.com/serendipity/
, dann müssen Sie lediglich
eine dieser URLs hier konfigurieren und die Option HTTP-Hostnamen
automatisch erkennen
aktivieren (siehe unten).
Auch hier gilt: Wenn Sie Serendipity auf eine andere URL verschieben
möchten, müssen Sie die Verzeichnisse und Dateien manuell verschieben
und können erst danach diese Konfigurationsoption den neuen
Gegebenheiten anpassen.

HTTP-Hostnamen automatisch erkennen Wenn Ihr Blog unter mehreren URLs erreichbar ist, können Sie Serendipity
zwar unter allen drei URLs aufrufen, aber alle Verweise
innerhalb des Blogs werden ausschließlich auf die in URL zum
Blog
konfigurierte URL verweisen.
Wenn Sie gerne möchten, dass für jeden Besucher die URL weiterbenutzt
wird, die er zum Aufrufen verwendet hat, dann können Sie die Option
HTTP-Hostnamen automatisch erkennen aktivieren.
Diese Funktion kann jedoch nur dann korrekt funktionieren, wenn sich
die Pfadkomponente der URL niemals ändert. Sollte Ihr Blog aber unter
den URLs http://example.com/serendipity/ und auch
http://serendipity.example.com/ verfügbar sein, dann wäre dies
nicht der Fall. In so einem Fall können Sie nur eine der beiden URLs
für den korrekten Betrieb von Serendipity wählen. Mögliche Lösungen
dieses Problems finden Sie im Kapitel Weiterleitung auf Seite
Weiterleitung.

Index-Datei Diese Option legt fest, welche zentrale Datei Serendipity benutzt, um
jeden Seitenaufruf dorthin umzulenken.
Üblicherweise sollten Sie diese Option nur ändern, wenn Sie Serendipity
in einer anderen Webseite einbetten (siehe Option Eingebettete Nutzung
von Serendipity aktivieren
auf Seite embedding).
In der Datei .htaccess wird die hier konfigurierte Datei als
ErrorDocument und DirectoryIndex eingebunden. Sollten Sie
einmal eine eigene Datei hier angeben, müssen Sie in dieser Datei
sicherstellen, dass das Serendipity-Framework über index.php
eingebunden wird.
Sie sollten die Option nicht zweckentfremden, um eine eigene
HTML-Seite als Startseite für Serendipity festzulegen. Dies würde dazu
führen, dass auch andere URLs von Serendipity nicht mehr zugänglich
wären. Eine individuelle Startseite für Serendipity können Sie mittels
des Plugins Statische Seiten einstellen, siehe Kapitel
staticpage ab Seite staticpage.

Permalinks

Sämtliche Permalinks [*] Permalinks sind sprechende URLs (siehe
Seite urlformung), die im Frontend eindeutig zu den jeweiligen
Funktionalitäten führen.
können im gleichnamigen Konfigurationsbereich eingestellt werden.

Bei den Permalinks ist es sehr wichtig, dass Sie genau wissen, in welchem
Rahmen die Pfade verändert werden können. Es ist bei jedem Permalink wichtig,
dass ein festes Verzeichnis-Präfix (wie archives, categories und
andere) für jeden Permalink-Typen definiert wird, damit Serendipity beim Aufruf
einer URL erkennen kann, welche Unterseite angefordert wird. Sie können also
nicht einfach einen Pfadteil weglassen und Eintrags-URLs ohne vorangestellten
Pfad konfigurieren, da Serendipity dann keine Pfad-Zuordnung treffen kann.

Jeder konfigurierte Pfad muss exakt in der Permalink-Struktur
übernommen werden, Sie können also Pfad zu den
Einträgen
nicht auf eintraege setzen und dann für die
Permalink-Struktur artikel/%id%-%title%.html einsetzen. In
beiden Fällen müssen Sie entweder eintraege oder
artikel benutzen.
Vermeiden Sie möglichst Sonderzeichen (also auch Leerzeichen) in der
URL.

Ein Hinweis noch zu dem Parameter %id%, den Sie bei mehreren
Permalinks aufgeführt sehen. Obwohl dies später im Frontend als
sprechende URL möglicherweise nicht sexy aussieht, birgt die
Verwendung von %id% einen großen Performancevorteil. Denn
sobald diese ID enthalten ist, kann Serendipity ohne weitere
Datenbankabfrage herausfinden, welche Inhalte es anzeigen muss.

Bei der Umstellung von Permalinks ist darauf zu achten, dass dadurch
die vorher gültigen URLs nicht mehr aktiv sind! Sollte eine
Suchmaschine Ihre Seiten also bereits indiziert haben, kann eine
Umstellung der Permalinks bedeuten, dass die Suchmaschine sämtliche
Ihrer Seiten aus dem Index wirft und neu bewerten muss. Legen Sie sich
daher möglichst früh auf Ihr gewünschtes URL-Muster fest.

Die Seiten, die sich hinter den jeweiligen Permalinks befinden, sind
ausführlich im Kapitel Permalinks-Frontend ab Seite
Permalinks-Frontend beschrieben.

Permalink-Struktur für die Artikel-URLs Hier wird die Struktur des Permalinks eingetragen, die beim Aufrufen
eines einzelnen Artikels verwendet wird. Platzhalter dienen jeweils
dazu, dynamische Teile in die URL zu übernehmen:
%id% für die ID eines Artikels. %title% für den Titel eines Artikels. %day% für den Tag, an dem der Artikel verfasst wurde. %month% für den Monat, in dem der Artikel verfasst wurde. %year% für das Jahr, in dem der Artikel verfasst wurde. Diese (und auch alle folgenden) Permalink-Strukturen können weitere
beliebige Pfadkomponenten enthalten.

Permalink-Struktur für Autoren-URLs Für die Darstellung der Einträge eines Autors wird dieser Permalink
verwendet. Folgende Variablen sind verfügbar:
%id% für die ID eines Autors. %realname% für den Benutzernamen eines Autors, wie er
üblicherweise bei Artikeln angezeigt wird.
%username% für den Login-Namen eines Autors. %email% für die E-Mail-Adresse eines Autors.

Permalink-Struktur für Kategorie-URLs Dieser Permalink stellt Einträge pro Kategorie dar. Verfügbare
Variablen sind:
%id% für die ID einer Kategorie. %name% für den Namen einer Kategorie. %description% für die Beschreibung einer Kategorie
(Vorsicht bei langen URLs durch lange Beschreibungen!).
%email% für die E-Mail-Adresse eines Autors.

Permalink-Struktur für RSS-Kategorien-Feed URLs Die Artikel einer Kategorie für einen RSS-Feed können über diese
konfigurierte URL aufgerufen werden. Es sind dieselben Variablen wie
für den normalen Kategorie-Permalink verfügbar.

Permalink-Struktur für RSS-Autoren-Feed URLs Die Artikel eines Autors für einen RSS-Feed werden in diesem Permalink
festgehalten. Es gelten dieselben Variablen wie für die normalen
Autoren-Permalinks.

Pfad zu den Einträgen Der erste Verzeichnisname für alle Artikelübersichten, standardmäßig
archives.

Pfad zu den Archiven Der Verzeichnisname für die Archivübersicht, in der die Artikel nur
chronologisch dem jeweiligen Monat zugeordnet sind.

Pfad zu den Kategorien Der Verzeichnisname für die Artikelübersicht einer Kategorie.

Pfad zu den Autoren Der Verzeichnisname für die Artikelübersicht eines Autors.

Pfad zum Abbestellen/Löschen/Bewilligen von Kommentaren Wenn Sie als Autor oder Administrator über den Eingang eines neuen
Kommentars per E-Mail benachrichtigt werden, können Sie innerhalb der
E-Mail auf Links klicken, die den Kommentar freischalten oder löschen.
Für Personen, die neue Kommentare bei einem Artikel abonniert haben,
gibt es zusätzlich einen Link, der dieses Abonnement wieder aufhebt.
Alle drei Pfadvariablen können über diese Konfigurationsfelder
angepasst werden.

Pfad zu den RSS-Feeds Der Verzeichnisname für alle RSS-Feeds.

Pfad zu einem externen Plugin Ereignis-Plugins können eigenständige, neue Unterseiten in Ihrem Blog
zur Verfügung stellen. Diese Unterseiten können unabhängig vom
Serendipity-Layout von einem Plugin ausgegeben werden; unter anderem
werden die Anti-Spam-Grafiken vom Spamblock-Plugin derart ausgegeben.
Dafür benutzen die Plugins das Unterverzeichnis plugin. Sie
sollten dieses Verzeichnis möglichst nicht ändern, da es mehrere
Plugins gibt, die immer fest auf das Verzeichnis plugin zugreifen
und möglicherweise nicht mehr funktionieren, wenn Sie den
Verzeichnisnamen ändern!

Pfad zur Administration Der Pfad, den Sie aufrufen, um das Backend (die
Administrationsoberfläche) hervorzubringen.

Pfad zur Suche Der Pfad zur Suche nach Begriffen in Artikeltexten.

Pfad zu Kommentaren Der Pfad zur Übersicht von Kommentaren zu Artikeln.

Generelle Einstellungen

Weitere globale Einstellungen befinden sich im Bereich Generelle
Einstellungen
.

Abonnieren von Einträgen erlauben? Wenn Sie es Ihren Besuchern erlauben wollen, dass sie per E-Mail über
Kommentare benachrichtigt werden, muss diese Option aktiviert sein. Ein
Benutzer kann Kommentare jedoch nur abonnieren, wenn er selber zu einem
Beitrag kommentiert hat.

Blog-Titel Der Blog-Titel legt die Überschrift Ihres Blogs fest. Hier
können Sie auch Sonderzeichen einfügen, jedoch keinen HTML-Code oder
Grafiken. Eine derartige Sonderdarstellung müssen Sie über Anpassungen
in Ihrem Template vornehmen (siehe Seite templatefiles).

Blog-Beschreibung Die Blog-Beschreibung wird unterhalb des Blog-Titels im Frontend
angezeigt. Auch hier können Sie Sonderzeichen einfügen, aber keinen
HTML-Code.

E-Mail-Adresse des Blogs Wenn Serendipity E-Mails an Autoren oder Kommentatoren schickt, muss
eine E-Mail-Adresse für den Absender eingetragen werden. Da Serendipity
E-Mails über den Webserver verschickt, muss die hier eingetragene
E-Mail-Adresse auch vom Mailserver als gültig anerkannt werden.
Ansonsten könnte der Mailserver Ihre E-Mail als Spam deklarieren und
verwerfen. Meist können an dieser Stelle nur E-Mail-Adressen
eingetragen werden, die auch auf demselben Server gehostet werden.
Sollte Serendipity einmal keine Mails an Sie verschicken, prüfen
Sie, ob Sie hier eine gültige Adresse eingetragen haben und ob Ihr
Webserver auch in der Lage ist, E-Mails mittels
sendmail [*] Sendmail ist ein Unix-Mailbefehl, der von PHP
nur genutzt werden kann, wenn dieses Paket auf dem Server installiert
ist.
zu versenden.
Auf Windows-Servern muss ein Mailserver in der
php.ini-Datei eingetragen werden.

Sprache An dieser Stelle können Sie die Sprache der Oberfläche des Blogs
wählen. Serendipity zeigt dann alle eigenen Meldungen in dieser Sprache an.
Im Gegensatz zur Spracheinstellung im Menü Eigene Einstellungen
wird hier nur die Sprache für Besucher des Blogs eingestellt. Ihre
persönliche Spracheinstellung "überschreibt" diesen Wert.

Zeichensatz-Auswahl Serendipity ermöglicht die Darstellung aller Meldungen und Ihrer
eigenen Artikel in verschiedenen Zeichensätzen. Alle Sprachen können im
Zeichensatz UTF-8 abgebildet werden, daher ist dieser
Zeichensatz mittlerweile der Standard im Internet. Einige andere
Sprachen, besonders Chinesisch, verwenden jedoch eigene, nationale
Zeichensätze zur korrekten Darstellung. Wenn Sie in dem Auswahlfeld
dieser Option Nationaler Zeichensatz wählen, wird dieser
spezielle nationale Zeichensatz benutzt (abhängig von der jeweils gewählten Sprache).
Wenn Ihr Blog bereits Artikel enthält, wird die Umstellung dieser
Option dazu führen, dass die Sonderzeichen Ihrer Artikel falsch
angezeigt werden. Sie müssen daher die Konvertierung in diesem Fall
manuell vornehmen, wie im Kapitel Falsche Anzeige von Datumsangaben oder Sonderzeichen
ab Seite Falsche Anzeige von Datumsangaben oder Sonderzeichen
beschrieben.

Kalendertyp Für einige Kulturen gibt es möglicherweise unterschiedliche Arten der
Kalender-Darstellung. Für Serendipity wurde daher der persische
Kalender als Alternative zum bekannten gregorianischen Kalender
eingebaut und kann hier ausgewählt werden.

Sprache des Browsers eines Besuchers verwenden Wenn diese Option aktiviert ist, wird Serendipity die Sprache des
Frontends abhängig von der im Browser des Besuchers eingestellten
Sprache auswählen. So können Sie es Ihren Besuchern erleichtern, die
umgebenden Texte zu verstehen, wenn sie Ihre Artikel in der Landessprache
nicht lesen können. Bitte beachten Sie, dass diese
Sprachauswahl die Artikel nicht automatisch übersetzen kann.

Sollen persönliche Plugin-Rechte für Benutzergruppen aktiviert werden? Serendipity ermöglicht es, pro Benutzergruppe zu definieren, welche
Plugins von dieser Gruppe im Backend ausgeführt werden dürfen. Über die
Definition in der Gruppenverwaltung kann verhindert werden,
dass bestimmte Autoren zum Beispiel Zugriff zu dem Plugin Statische
Seiten
haben.
Da es in Blogs relativ selten vorkommt, dass Sie den Zugriff derart
strikt eingrenzen müssen, ist diese Option standardmäßig nicht
aktiviert und muss daher bewusst von Ihnen eingeschaltet werden. Das
Einschalten dieser Option kann die Performance von Serendipity spürbar
negativ beeinflussen, da für jede Ausführung eines Plugins nun erst
geprüft werden muss, ob Zugriff darauf erlaubt ist.
Wenn Sie also auf diese Flexibilität verzichten können, sollten Sie die
Option Sollen persönliche Plugin-Rechte für Benutzergruppen
aktiviert werden
weiterhin auf Nein stellen.

Design und Optionen

Optionen, die das Aussehen des Blogs betreffen, sind im Bereich
Design und Optionen zusammengefasst.

Anzahl der Artikel auf der Startseite Standardmäßig zeigt Serendipity die letzten 15 Artikel auf der
Startseite. Über die Einstellung Anzahl der Artikel auf der
Startseite
können Sie diese Anzahl kontrollieren, die auch für alle
Übersichtsseiten angewendet wird.

Einträge im Feed Analog zu der Anzahl der Artikel auf der Startseite bestimmt die Option
Einträge im Feed, wie viele Artikel in Ihrem RSS-Feed
standardmäßig enthalten sind.
Eine hohe Einstellung dieser Zahl stellt Ihren Besuchern zwar mehr
Einträge dar, vergrößert aber auch die Dateigröße des RSS-Feeds (und
damit den Traffic) erheblich.

Strikte RFC2616 RSS-Feed Kompatibilität Wie im Kapitel Caching von RSS-Feeds auf Seite
Caching von RSS-Feeds erklärt, können RSS-Feeds bei Ihren Besuchern
zwischengespeichert werden. Dieses Caching macht möglicherweise bei
einer kleinen Anzahl von Software-Programmen Probleme. Sollte die
benutzerseitige Deaktivierung des Cachings (siehe erwähntes Kapitel)
nicht ausreichen, können Sie die Option Strikte RFC2616 RSS-Feed
Kompatibilität
aktivieren.
Serendipity verhält sich dann absolut standardgemäß, verzichtet jedoch
auf das zusätzliche Feature der fallweisen Artikelauslieferung abhängig
vom letzten Besuchsdatum.
Zwei weitere Einstellungen, die das Caching beeinflussen, können Sie auf
Seite Caching-Variablen nachschlagen.

GZIP-Kompression verwenden Wenn Serendipity den HTML-Code des Frontends an den Browser Ihrer
Besucher ausgibt, wird dabei eine Menge an Klartext-Daten übertragen.
Klartext lässt sich mittels ZIP-Kompression relativ stark bündeln und
bietet sich daher zum Einsparen von Traffic an. Gerade bei Besuchern
mit niedriger Bandbreite (Benutzer von Modems, GPRS-Verbindungen) kann
die GZIP-Komprimierung einige Vorteile bringen.
Leider benötigt das Packen mit GZIP-Kompression einiges an
CPU-Leistung. Daher muss man abwägen, ob der eigene Server eher einen
Engpass bei der CPU-Leistung oder bei der Trafficmenge hat. Zwar
wird eine Aktivierung der GZIP-Kompression weniger Daten übertragen,
aber die Performance von Serendipity wird dadurch sinken.
Hier müssen Sie eine Entscheidung treffen. Da Bandbreite heutzutage ein
selteneres Problem ist, empfehle ich, zugunsten der
Servergeschwindigkeit diese Option zu deaktivieren.

Popups für Kommentare, Trackbacks usw. verwenden? Blendet Serendipity im Frontend einen Link auf Kommentare und Trackbacks
eines Artikels ein, können diese Links entweder auf die
vollständige Artikelansicht zeigen oder auch ein Popup-Fenster mit der
gewünschten Darstellung öffnen.
Wenn Sie diese Popups benutzen wollen, aktivieren Sie die Option
Popups für Kommentare, Trackbacks usw. verwenden. Beachten Sie
jedoch, dass Popups bei vielen Internet-Nutzern verpönt sind und es daher
empfehlenswert ist, Ihren Besuchern die Wahl zu lassen, ob sie etwas
als Popup öffnen möchten oder nicht. Jeder moderne Browser bietet dazu
das Öffnen von Links in einem neuen Fenster mit einfachem Mausklick
der mittleren Taste an.

Eingebettete Nutzung von Serendipity aktivieren? Wenn Sie Serendipity in eine andere Anwendung einbetten wollen, können
Sie die Ausgaben Serendipitys zentral speichern und in der
PHP-Anwendung weiterverarbeiten. Damit diese Einbindung gelingt, darf
Serendipity dann keine HTML-Kopf- und -Fußzeilen senden.
Die Aktivierung dieser Option bietet genau dies: Serendipity sendet
dann nur den eigentlichen Inhalt des Blogs, der von der fremden
Anwendung im Zusammenspiel mit der Option Index-Datei (siehe Seite
index-Datei) genutzt werden kann.
Diese Option war besonders für ältere Serendipity-Versionen notwendig.
Seit es Smarty-Templates gibt, kann man diese Templates auch leicht
so anpassen, dass keine Kopf- und Fußzeilen mehr gesendet werden
müssen. Schlagen Sie im Kapitel sharedinstall ab Seite sharedinstall
nach, um eine Anleitung zur Einbettung von Serendipity zu erhalten.
Sollte Ihr Serendipity-Blog ein merkwürdiges Layout aufweisen, ist
womöglich die Aktivierung dieser Option "schuld" daran.

Externe Links klickbar? Für die Seitenleisten-Plugins Top Exits und Top Referrer
kann man mittels dieser Option einstellen, ob in diesen Plugins
dargestellte Links mittels HTML klickbar dargestellt werden oder nicht.
Eigentlich gehört diese Option mittlerweile in die Konfigurationsseite
der beiden Plugins. Aus historischen Gründen ist die Option jedoch in
der globalen Konfiguration enthalten und wird möglicherweise in
zukünftigen Versionen verschwinden.

Referrer-Tracking aktivieren? Wenn Sie die Option Referrer-Tracking aktivieren, wird bei jedem
Aufruf einer Serendipity-Seite ausgewertet, von welcher Seite ein
Besucher kam. Diese Daten können dann in den Statistiken verwendet
werden und zeigen Ihnen, von welchen Webseiten häufig zu Ihnen verlinkt
wird.
Leider wurde diese Option im Laufe der Zeit sehr oft durch Spammer
missbraucht und zeigt nur noch in seltenen Fällen wirklich nutzbare
Daten an.

Geblockte Referrer Um ein wenig Kontrolle auf Referrer-Spammer auszuüben, können Sie
in diesem Eingabefeld mehrere Stichwörter eintragen, die Sie mittels
; voneinander trennen. Sobald eines dieser Stichwörter in der
URL eines Besuchers vorkommt, wird diese URL nicht mit in die
Referrer-Statistik übernommen.

URL-Formung Die Option URL-Formung ist zuständig, um sprechende URLs zu
aktivieren (siehe Seite mod-rewrite). Ob Serendipity URLs hübsch
formatieren kann, hängt davon ab, ob Ihr Webserver dies unterstützt.
Die Unterstützung können Sie ausprobieren, indem Sie testweise einfach
die Methoden zur URL-Formung aktivieren und die Konfiguration
abspeichern. Besuchen Sie danach Ihr Frontend und prüfen Sie, ob der Link
zu einer Artikel-Detailseite noch funktioniert.
Wenn Sie Fehlermeldungen erhalten oder dies nicht klappt, müssen Sie
die URL-Formung wieder deaktivieren. Die Administrationsoberfläche
können Sie immer unter
http://www.example.com/serendipity/serendipity_admin.php auch im
Fehlerfall aufrufen. Möglicherweise müssen Sie dazu die Datei
.htaccess löschen, wenn bei Ihrem Webserver sonst alle Aufrufe
fehlschlagen.
Folgende Arten der URL-Formung sind möglich: Disable URL Rewriting Bei dieser Methode werden sprechende URLs
deaktiviert. Ein Link sieht dann aus wie:
http://www.example.com/serendipity/index.php?/archives/1-MeinArtikel.htm Diese URLs mögen für Sie zwar sprechend aussehen, aber für eine
Suchmaschine wie Google sind sie es nicht und können daher nicht zur
Aufwertung der Auffindbarkeit dienen (siehe Kapitel SEO).
Use Apache ErrorHandling Auf vielen Apache-basierten Webservern ist diese Methode einsetzbar.
Mittels eines kleinen Tricks werden
Fehlerseiten dazu benutzt, um die eigentlich nicht existierende
virtuelle Seite aufzurufen. Eine URL sieht dann aus wie:
http://www.example.com/serendipity/archives/1-MeinArtikel.html
Der Nachteil dieser Methode ist, dass für jeden URL-Aufruf in Ihrem
Apache Fehler-Logfile ein Eintrag erscheint, was man als
unsexy bezeichnen könnte.
Use Apache mod_rewrite Die performanteste Methode der URL-Formung stellt Use Apache
mod_rewrite
dar. Sie produziert identische URLs wie das Apache
ErrorHandling, ist aber flexibler und erzeugt keine
Fehler-Logfile-Einträge.

Zeitunterschied des Servers Wenn Ihr Webserver in einer anderen Zeitzone als Ihr eigener Computer
steht, kann es zu einem Zeitversatz kommen. Ihr Server würde Artikel,
die Sie um 15:00 Uhr Ortszeit erstellen, je nach Serverzeit
möglicherweise für 03:00 Uhr morgens auszeichnen.
Um diesen Zeitversatz zu korrigieren, können Sie in dem Eingabefeld
Zeitunterschied des Servers eintragen, wie viele Stunden
Zeitunterschied zwischen Ihrem Computer und dem Server liegen. Um
diesen Zeitunterschied herauszufinden, wird die aktuelle Serverzeit im
Text neben der Eingabebox für Sie angezeigt.
Sie können halbe Stunden mit einer Angabe wie 1.5 eintragen.
Negative Zeitunterschiede geben Sie mit einem vorangestellten - an.

Zukünftige Einträge zeigen Üblicherweise wird Serendipity nur Artikel darstellen, deren Uhrzeit
nicht vor der aktuellen Serverzeit liegt. So können Sie zukünftige
Einträge bereits verfassen, ohne dass Sie zum jeweiligen Zeitpunkt
manuell etwas freischalten müssen.
Wenn Sie jedoch auch zukünftige Artikel anzeigen wollen (zum
Beispiel für ein Blog mit in der Zukunft stattfindenden Ereignissen),
können Sie die Option Zukünftige Einträge zeigen aktivieren.

Leserechte auf Kategorien anwenden Serendipity unterstützt die Möglichkeit, Artikel in Kategorien mit
einem Leseschutz zu versehen. So können Sie einer Kategorie Leserechte
nur für bestimmte Benutzergruppen zuweisen, und alle anderen
Benutzergruppen (insbesondere anonyme Besucher des Frontends) können
dann Artikel in dieser Kategorie nicht lesen. Dies ermöglicht es,
Serendipity auch als CMS einzusetzen.
In vielen Blogs ist ein derartiger Zugriffsschutz jedoch nicht
notwendig, da alle Artikel von allen Besuchern gelesen werden sollen.
Ist dies der Fall, können Sie die Option Leserechte auf
Kategorien anwenden
gerne auf Nein setzen. Dies wird die
Geschwindigkeit der Darstellung im Frontend positiv beinflussen, da
weitaus weniger Datenbankabfragen ausgeführt werden müssen, um die
Artikelübersicht zu erzeugen.

Bildkonvertierung

Der letzte Bereich, Bildkonvertierung, legt einige Optionen
für die Mediendatenbank und die Vorschaubild-Erzeugung fest.

ImageMagick zur Skalierung verwenden Wenn Sie auf Ihrem Webserver die Software ImageMagick [*] \cmd{http://www.imagemagick.org} installiert
haben, können Sie diese Software zur Erstellung und Konvertierung von
Vorschaubildern benutzen.
Ist ImageMagick nicht aktiviert, kann Serendipity auch die
PHP-Bibliothek gdlib einsetzen.
ImageMagick bietet den Vorteil, dass auch Vorschaubilder von
PDF-Dateien erzeugt werden können. Bis auf diesen Vorteil sind gdlib
und ImageMagick gleichwertig.

Pfad zur convert ImageMagick-Datei In diesem Eingabefeld müssen Sie den vollständigen Pfad zur
ImageMagick-Datei auf dem Webserver eintragen. ImageMagick kann nur
ausgeführt werden, wenn der Webserver-Benutzer für diese Datei
Zugriffsrechte gewährt. Gerade bei aktiviertem Safe Mode ist dies
selten der Fall. Deaktivieren Sie ImageMagick, falls Fehlermeldungen
bei der Vorschaubild-Erzeugung auftreten.

Thumbnail-Endung Als Thumbnail bezeichnet man die Vorschaugrafiken, die Serendipity von
einer Bilddatei automatisch erzeugt.
Jede dieser Vorschaugrafiken enthält standardmäßig den Namenszusatz
serendipityThumb. Die Vorschaudatei zum Bild logo.jpg wird
also logo.serendipityThumb.jpg heißen und im selben Verzeichnis
angelegt werden.
Diesen Dateinamen können Sie über die Option Thumbnail-Endung
selber festlegen. Wenn Sie den Dateinamen ändern und bereits Dateien
in der Mediendatenbank vorhanden sind, müssen Sie im Menü
Mediendatenbank auf Vorschauen erneuern klicken.

Thumbnailgröße Jede Grafikdatei wird standardmäßig auf maximal 110 Pixel Breite oder
Höhe für die Vorschaugrafik verkleinert. Der jeweils größere Wert
(Breite oder Höhe) wird dabei auf 110 Pixel verkleinert und der
jeweils kleinere Wert unter Berücksichtigung der Bildproportionen
errechnet.
Serendipity zeigt die Vorschaubilder in der Mediendatenbank stets in der
hier konfigurierten Größe an. Wenn Sie also größere (oder kleinere)
Vorschaubilder bevorzugen, können Sie die maximale Größe unter
Thumbnailgröße einstellen. Auch hier müssen Sie auf
Vorschauen erneuern klicken, wenn Sie diesen Wert ändern, obwohl
Sie schon Dateien in die Mediendatenbank eingestellt haben.

Maximale Dateigröße für den Upload Wenn Sie den Upload von Dateien künstlich einschränken wollen, können
Sie die maximale Dateigröße einer in die Mediendatenbank hochgeladenen
Datei über das Feld Maximale Dateigröße für den Upload
einstellen.
Beachten Sie, dass Sie diesen Wert nicht größer einstellen können als
die ebenfalls limitierenden Konfigurationsoptionen
upload_max_filesize, post_max_size und
max_input_time der php.ini (siehe Kapitel file-uploads
auf Seite file-uploads).

Maximale Breite eines hochgeladenen Bildes Maximale Höhe eines hochgeladenen Bildes Abgesehen von der Dateigröße können Sie ein hochgeladenes Bild auch auf
eine maximale Auflösung festlegen. Wenn das Bild eine dieser
Dimensionen überschreitet, wird es nicht akzeptiert. So können Sie
verhindern, dass Redakteure Bilder hochladen, die für den Einsatz im
Internet nicht geeignet sind.

Automagische Synchronisation der Mediendatenbank Da Serendipity, wie im Kapitel Mediendatenbank ab Seite
Mediendatenbank beschrieben, den Dateibestand des
Upload-Verzeichnisses mit einer eigenen Datenbanktabelle abgleicht,
kann es hier zu Unterschieden kommen.
Serendipity kann bei jedem Aufruf der Mediendatenbank prüfen, ob
möglicherweise Dateien hinzugekommen oder gelöscht worden sind. Dazu
werden alle Verzeichnisse und Dateien auf dem Server mit der Datenbank
abgeglichen. Serendipity optimiert den Zugriff dabei, indem es diese
Aktion nur ausführt, wenn sich etwas an der Menge der Dateien und
Unterverzeichnisse getan hat.
Dieser Vorgang kann bei einer großen Mediendatenbank
möglicherweise zu Ressourcen-Engpässen führen. In so einem Fall müssen
Sie die automagische Synchronisation deaktivieren.
Wenn der automatische Synchronisationsvorgang eine neue Datei findet
oder eine alte Datei löscht, wird dies direkt innerhalb der
Mediendatenbank dargestellt.

Dynamische Bildgrößenanpassung erlauben Üblicherweise kann Serendipity von einem Bild entweder nur die
Originalgrafik oder die Vorschaugrafik zurückliefern.
Ein Teil der Mediendatenbank kann aber auch (manuell) über
das Frontend angesprochen und benutzt werden, um Grafiken auch in jeder
anderen beliebigen Dateigröße auszugeben (siehe Seite mdb-profi).

EXIF/JPEG Metadaten übernehmen? Wenn Sie ein Bild in die Mediendatenbank von Serendipity hochladen,
kann Serendipity automatisch die Binärdaten des Bildes auswerten und in
der Mediendatenbank speichern. In solchen Binärdateien können
sogenannte EXIF-Daten [*] \cmd{http://www.exif.org/} gespeichert werden, die zB. von Digitalkameras automatisch eingefügt
werden und Informationen über Belichtungszeit und Aufnahmezeitpunkt
enthalten.
Serendipity kann diese Metadaten innerhalb der
Mediendatenbank anzeigen. Da das Auslesen der Binärdaten einiges an
Server-Ressourcen beanspruchen kann, könnte dies möglicherweise zu sehr
großen Datenmengen in der Datenbank (dort werden die Metadaten
zwischengespeichert) oder auch dazu führen, dass das Hochladen von
Dateien fehlschlägt. Deaktivieren Sie in diesem Fall die Option
EXIF/JPEG Metadaten übernehmen.

Medien-Eigenschaften Zu jeder Datei in der Serendipity-Mediendatenbank können Sie eine
selbst definierte Menge von möglichen Metadaten eintragen.
Standardmäßig greift Serendipity dabei auf die Felder DPI (nur
bei Bildern), Laufzeit (nur bei Video/Audio), Datum,
Copyright, Titel, Kurzer Kommentar und Langer
Kommentar
zurück.
Diese verwendeten Felder werden in der Eingabebox
Medien-Eigenschaften festgelegt. Die Eingabebox mag für Sie
etwas kryptisch erscheinen, ist aber für Serendipity ein sehr
schneller Weg, ohne umständliche Zusatzoberfläche Ihre Eingaben zu
erfassen.
Alle gewünschten Felder werden dabei mit einem ;-Zeichen
getrennt: DPI;DATE;COPYRIGHT;TITLE;COMMENT1;COMMENT2
Jedes Feld kann einen beliebigen Namen haben, der aber keine
Sonderzeichen und Leerzeichen beinhalten darf. Wie der Name eines
Feldes später in der Mediendatenbank angezeigt wird, richtet sich
ebenfalls nach diesem Feld. Serendipity sucht dabei in den
Sprachdateien (siehe Kapitel lang-dir, Seite lang-dir)
nach einer definierten Konstante MEDIA_PROPERTY_DPI.
Ist diese Konstante definiert, wird die darin definierte Bezeichnung in
der Mediendatenbank angezeigt. Gäbe es keine solche Konstante, würde
der Begriff selbst dargestellt werden. Wenn Sie also das Feld
QUALITAET am Ende einfügen, wird in der Mediendatenbank auch
QUALITAET angezeigt. Um eine eigene, klarere Bezeichnung zu
wählen, müssen Sie die Konstante selbst definieren, wie im
angesprochenen Kapitel erwähnt.
Nun kann jedes aufgeführte Feld noch einige Optionen aufweisen,
die jeweils durch das :-Zeichen getrennt werden. Vier Optionen
sind verfügbar:
:IMAGE wenn das vorangehende Feld nur für Bilddateien
benutzt werden soll.
:VIDEO wenn das vorangehende Feld nur für Videos
benutzt werden soll.
:AUDIO wenn das vorangehende Feld nur für Sounddateien
benutzt werden soll.
:MULTI wenn eine Medien-Eigenschaft einen längeren
Eingabetext anstelle nur einer einzeiligen
Eingabebox zulassen soll.
Beispielsweise möchten Sie gerne für Bilder ein Eingabefeld
Bildqualität, für Videos Bewegungsqualität und für alle
Dateien pauschal ein großes Eingabefeld Einsatzzweck speichern.
Dafür würden Sie folgende Konfiguration vornehmen:
Bildqualitaet:IMAGE;Bewegungsqualitaet:VIDEO;Einsatzzweck:MULTI

Medien-Schlüsselwörter Jeder Datei in der Datenbank können Sie über die Eigenschaftsoberfläche
einer Liste von selbst definierten Schlüsselwörtern zuordnen. Dabei
können mehrere Schlüsselwörter einer einzelnen Datei zugewiesen werden,
und die Mediendatenbank kann später auch nach diesen Schlüsselwörtern
durchsucht werden.
Schlüsselwörter werden fest in der Eingabebox
Medien-Schlüsselwörter vorgegeben. Alle möglichen
Schlüsselwörter müssen Sie mit einem Semikolon voneinander
trennen. Ein einzelnes Schlüsselwort darf in diesem Fall auch
Sonderzeichen und Leerzeichen enthalten.

 

Über den Button Testen & speichern können Sie die geänderte
Konfiguration sichern. Falls Sie Änderungen an den Datenbankparametern
vorgenommen haben, wird Serendipity die Datei
serendipity_config_local.inc.php neu speichern. Bei Änderungen
an der Permalink-Struktur oder den Pfaden wird zusätzlich die Datei
.htaccess erneut erstellt.

Durch einen Klick auf diesen Button können Sie daher auch eine
versehentlich gelöschte .htaccess-Datei wieder neu erzeugen.

Profi-Einstellungen

Abgesehen von diesen menügesteuerten Einstellungsoptionen besitzt
Serendipity noch einige versteckte Optionen. Diese legt man in den
Dateien serendipity_config_local.inc.php und
serendipity_config.inc.php fest. Dafür müssen Sie also die beiden
genannten Dateien mit einem Editor öffnen und ändern. Innerhalb der Datei
sind einige Werte festgelegt, die sich alle auf unterschiedliche
$serendipity[...]-Variablen beziehen.

Diese Variablen sind im Folgenden aufgeführt. Einige von ihnen
werden über die Datei serendipity_config.inc.php vorbelegt,
die Sie jedoch im Bedarfsfall über die eigene
Konfigurationsdatei serendipity_config_local.inc.php
überschreiben können.

$serendipity['versionInstalled']
In dieser Variable wird die aktuell installierte
Serendipity-Versionsnummer gespeichert. Diese müssen Sie höchstens dann
manuell anpassen, wenn Sie ein gescheitertes Update neu ausführen wollen!

$serendipity['dbName']
$serendipity['dbPrefix']
$serendipity['dbHost']
$serendipity['dbUser']
$serendipity['dbPass']
$serendipity['dbType']
$serendipity['dbPersistent']
Enthält die Zugangsdaten und Parameter der Datenbankverbindung, mit der
Serendipity installiert ist. Diese Variablen können normal über die
Serendipity-Konfiguration eingestellt werden und sollten daher in dieser
Datei nur geändert werden, wenn Sie die Datenbank oder den Server
gewechselt haben und nicht mehr auf Ihre Serendipity-Installation
zugreifen können.

$serendipity['noautodiscovery'] Wenn Serendipity nicht versuchen soll, automatische Trackbacks an URLs zu
schicken, die Sie in Ihren Artikeln angegeben haben, können Sie die
Variable $serendipity['noautodiscovery'] auf true setzen.
Standardmäßig ist die Variable überhaupt nicht gesetzt und daher
deaktiviert (false).

$serendipity['pingbackFetchPage'] Wenn Serendipity einen Pingback (siehe Seite trackback)
empfängt, bedeutet dies, dass ein fremdes Blog sich auf Ihr Blog bezieht,
aber kein Trackback senden möchte. Ein Pingback ist somit eine reduzierte
Form des Trackbacks.
Serendipity kann ab Version 1.3 Pingbacks vollständig auswerten. Da ein
Pingback üblicherweise nur die URL des fremden Blogs enthält, kann es
im Gegensatz zu einem Trackback keine Textauszüge mitliefern. Somit
würden Sie nur die URL des fremden Blogs in Ihrem Artikel auffinden.
Um Textauszüge zu beziehen, kann Serendipity die fremde URL öffnen und
dort die ersten Zeichen des Textes mit einbinden. Damit dies erfolgen
kann, muss die Variable $serendipity['pingbackFetchPage'] auf
true gesetzt werden.
Standardmäßig ist diese Variable nicht gesetzt, da das Öffnen einer
fremden URL zu einem Performanceverlust des Blogs führen kann und auch
DDoS-Angriffe [*] Rasche Zugriffe in Folge von mehreren
automatisierten Browsern, die sämtliche Ressourcen Ihres Webservers
aufbrauchen oder durch manipulierte URLs Timeouts erzeugen
können.
erleichtert.

$serendipity['pingbackFetchPageMaxLength'] Bei empfangenen Pingbacks wird standardmäßig nur eine beschränkte Anzahl an
Zeichen der sendenden Blog-Seite abgerufen. Diese Zeichen werden später
verwendet, um den Inhalt des Pingbacks zu füllen. Die Anzahl der Zeichen, die
ausgelesen werden, können Sie über die Variable
$serendipity['pingbackFetchPageMaxLength'] steuern, standardmäßig sind
dies 200 Zeichen.

$serendipity['referrerXSRF'] Serendipity verfügt über zwei Methoden zur Sicherung des Blogs gegen
XSRF-Angriffe (siehe Seite XSRF). Wenn Sie die Variable
$serendipity['referrerXSRF'] auf true setzen, wird
Serendipity bei einer fehlenden HTTP-Referrer-Kopfzeile (vom
Browser übermittelt) eine angeforderte Aktion nicht ausführen. Diese
Option können Sie aktivieren, wenn Sie Ihr Blog gegen zusätzliche
Attacken sichern möchten; Sie müssen aber sicherstellen, dass alle Redakteure
des Blogs in ihrem Browser die Übermittlung von HTTP-Referrern aktiviert
haben und auch kein etwaiger Proxyserver diese Kopfzeilen herausfiltert.
Ist der Wert auf false gesetzt, wird Serendipity eine Warnmeldung
ausgeben, sobald Ihr Browser oder Proxyserver bei der Ausführung einer
Aktion keinen HTTP-Referrer ausliefert.

$serendipity['expose_s9y'] Standardmäßig ist diese Variable auf true gesetzt. Dies bedeutet,
dass Serendipity einige HTTP-Header an den Browser übermittelt, die
darauf hindeuten, dass Serendipity auf dem Server eingesetzt wird. Wenn
Sie dies aus Sicherheitsgründen vermeiden wollen, können Sie die Variable
auf false setzen.

$serendipity['useHTTP-Auth'] Diese Variable ist
standardmäßig auf true gesetzt und Serendipity ermöglicht damit
eine HTTP-Authentifikation. Diese HTTP-Authentifikation benutzt die
Abfrage eines Benutzernamens und Passworts und ist Teil des
HTT-Protokolls. Ihr Browser zeigt daher für die Autorisation ein
Popup-Fenster an, das den Benutzernamen und das Passwort abfragt. Die
eingegebenen Daten dienen dann für den Login eines
Serendipity-Benutzers und können alternativ zum Login über das Backend
dienen.
Der große Vorteil der HTTP-Autorisation ist, dass man sich auch ohne
Interaktion des Benutzers mit dem Aufrufen einer URL einloggen kann:
http://John+Doe:[email protected]/serendipity/ Benutzername und Passwort müssen der URL vorangestellt werden.
Besonders hilfreich ist diese Art der Authentifikation für RSS-Feeds. Da
diese von externen Programmen (RSS-Readern) aufgerufen werden, können Sie
häufig nicht auf Ihren vorhandenen Login ins Backend zugreifen. Ohne
diesen Login kann Serendipity nicht zuordnen, welcher Benutzergruppe man
angehört, und so würde man eventuell lesegeschützte Artikel nicht lesen
können. Gibt man als URL für den RSS-Reader jedoch diese authentifizierte
URL an, kann der Login sozusagen durchgereicht werden.
Wenn Sie das Authentifikations-Popup des Browsers verwenden wollen,
können Sie an jede URL den Parameter http_auth=true anhängen, also
zum Beispiel:
http://www.example.com/serendipity/index.php?http_auth=true Die HTTP-Authentifikation kann nur bei Apache-Webservern benutzt werden,
bei denen PHP als Modul (nicht als CGI) eingebunden wurde. Diese Art der
Authentifikation kann man häufig auch mittels einer .htaccess-Datei
herbeiführen:
Sollten Sie manuell derartige Kommandos eingebaut haben, um das Frontend
von Serendipity zu schützen, wird Serendipity diese automatisch auch zum
Login in das Backend verwenden. Daher müssten die Benutzernamen, die Sie
zum HTTP-Auth-Login verwenden, identisch sein mit den Zugangsdaten der
Serendipity-Benutzerdatenbank. Sollte dies nicht der Fall sein, müssen
Sie die Variable $serendipity['useHTTP-Auth'] auf false
setzen und damit die HTTP-Authentifikation im Backend unterbinden.
Einen Benutzernamen und ein Passwort, das Sie zum Login einsetzen wollen,
können Sie auch notfalls an jede URL mit den Parametern
http_auth_user und http_auth_pw anhängen:
http://www.example.com/serendipity/index.php?http_auth_user=John+Doe&http_auth_pw=john Bei einem derartigen Aufruf müssen Sie darauf achten, dass Ihr
Benutzername und Passwort im Klartext an den Webserver übermittelt werden
und dabei möglicherweise in Zugriffs-Logfiles auftauchen könnten. Nutzen
Sie daher diese Art des Logins nur in vertrauenswürdigen Umfeldern und
wenn die obige Variante mittels Apache-PHP-Modul nicht möglich ist.
Die sicherste Methode zum Login bleibt jedoch nach wie vor der Zugriff
über das HTTPS-Protokoll.

$serendipity['use_PEAR'] PEAR ist eine Sammlung von PHP-Bibliotheken (siehe Kapitel
PEAR auf Seite PEAR), die Serendipity für einige
Funktionalitäten benötigt. Serendipity liefert diese Bibliotheken zwar
mit, aber da sie oft auf Servern vorhanden sind und besser gewartet werden,
bevorzugt Serendipity standardmäßig die Server-Bibliotheken.
Dies kann jedoch möglicherweise zu Problemen führen, wenn Ihr Server ganz
alte PEAR-Bibliotheken anbietet oder es zu Zugriffsrechtsproblemen kommt.
In so einem Fall können Sie die Variable $serendipity['use_PEAR']
auf false setzen und damit erzwingen, dass Serendipity seine
eigenen Bibliotheken benutzt.

$serendipity['CacheControl'] Falls diese Variable auf false gesetzt ist, wird Serendipity
spezielle HTTP-Header senden, die es dem Browser ermöglichen, die Seiten
des Blogs lokal zwischenzuspeichern. Dies beschleunigt den Aufruf von
bereits besuchten Blog-Seiten ungemein.
Wenn Sie jedoch ein Blog führen, in dem es häufig Änderungen im
Minutentakt gibt, kann das Zwischenspeichern dazu führen, dass Ihre
Besucher ältere Inhalte sehen und nicht merken, dass es neue Daten gibt.
Standardmäßig ist die Variable auf
true gesetzt und verbietet daher dieses Caching zugunsten stets
aktueller Inhalte.

$serendipity['version'] Im Gegensatz zu $serendipity['versionInstalled'] gibt
diese Variable nicht an, welche Version gerade
aktiviert ist, sondern welcher Version die Dateien auf dem Server
entsprechen. Dieser minimale Unterschied ist dann wichtig, wenn Sie
gerade eine neue Serendipity-Version hochgeladen haben, denn Serendipity
wird aufgrund eines Unterschieds in den Versionsnummern der beiden
genannten Variablen erkennen, ob und wenn ja, welches Update ausgeführt
werden soll. Ändern Sie diese Versionsnummer daher nicht eigenständig.

$serendipity['production'] Wenn diese Variable auf true gesetzt ist, befindet sich Serendipity
im produktiven Einsatz. In diesem Fall werden dann einige
Fehlermeldungen nicht ausgegeben, die Serendipity in einer
Testumgebung ansonsten darstellen würde.
Um Fehler leichter zu bemerken, ist diese Variable bei allen
Beta-Versionen und Snapshots von Serendipity standardmäßig deaktiviert
(false), damit Fehlermeldungen ausgegeben werden. In allen finalen
Versionen ist sie standardmäßig aktiviert.

$serendipity['allowDateManipulation'] Standardmäßig ist diese Variable auf true gesetzt und ermöglicht
es dadurch einem Redakteur, eine beliebige Uhrzeit für die
Veröffentlichung seines Artikels einzutragen. Wenn Sie diese Variable auf
false setzen, wird immer nur die aktuelle Uhrzeit für einen Artikel
eingetragen, und Redakteuren (auch Administratoren!) ist es nicht
erlaubt, das Datum zu verändern. Diese Option ist daher bei solchen Blogs
sinnvoll, die streng auf ehrliche Zeitangaben setzen.

$serendipity['max_last_modified'] $serendipity['max_fetch_limit'] Diese beiden Variablen beziehen sich auf das Caching der RSS-Feeds (siehe
Seite Caching von RSS-Feeds).
Wenn ein Artikel von Ihnen überarbeitet wird oder einen neuen Kommentar
erhält, ändert dies nichts an dem Veröffentlichungsdatum Ihres
Blog-Artikels. Ein RSS-Feed würde daher Änderungen an einem Artikel nicht
an die Benutzer weiterreichen. Da so ein Verhalten unerwünscht ist, sorgt
Serendipity bei jeder Aktualisierung (auch bei Kommentaren) eines
Artikels dafür, dass ein Aktualisierungsdatum auf den aktuellen Zeitpunkt
gesetzt wird. Der RSS-Feed richtet sich nach diesem Aktualisierungsdatum
und zeigt trotz aktiviertem RSS-Caching daraufhin die neuen Einträge an.
Da RSS-Reader Einträge eindeutig anhand einer ID oder ihrer URL
identifizieren, kann das Programm den aktualisierten Artikel erneut
einlesen und Sie über Änderungen (und neue Kommentare) informieren.
Die Variable $serendipity['max_last_modified'] legt nur fest,
wie alt ein Artikel maximal (relativ zum aktuellen Zeitpunkt) sein darf,
damit Änderungen am Artikel in RSS-Feeds als neu angesehen werden.
Schließlich interessiert es einen Leser Ihres RSS-Feeds sicher nicht,
wenn Sie einen zwei Jahre alten Artikel überarbeiten oder jemand den ersten
Eintrag Ihres Blogs kommentiert. Diese Variable enthält eine Angabe in
Sekunden, die der Abstand zwischen Veröffentlichungsdatum und aktuellem
Zeitpunkt maximal betragen darf. Ist ein Artikel älter als diese
Zeitangabe, wird er nicht als aktualisiert markiert. Standardmäßig
ist $serendipity['max_last_modified'] auf 604800 Sekunden [*] Das entspricht sieben Tagen. Für Programme ist es einfacher,
einheitlich mit Sekunden zu arbeiten, auch wenn die Angabe fürs
menschliche Auge etwas merkwürdig wirken mag.
gesetzt.
Die zweite Variable $serendipity['max_fetch_limit'] legt fest,
wie viele Artikel ein Benutzer, der Ihren RSS-Feed seit langem nicht mehr
aufgerufen hat, maximal empfangen darf. Standardmäßig ist der Wert auf
50 Artikel gesetzt, um nicht zu viel Bandbreite zu verschwenden und
potenziellen Missbrauch einzudämmen.

$serendipity['trackback_filelimit'] Wenn Serendipity ein Trackback zu einem Artikel schicken will, muss es
die URL zu dem fremden Artikel öffnen. Dies macht Serendipity mit allen
URLs, auf die Sie in einem Artikel verweisen, um automatisch
herauszufinden, zu welchen URLs ein Trackback gesendet werden soll. Wenn
Sie jedoch auf große Dateien (Videos, Audio-Dateien) verweisen, muss
Serendipity auch diese URL vollständig abrufen. Das kann dann dazu
führen, dass Serendipity sehr lange braucht, um Trackbacks auszuwerten, und
währenddessen auch viel Bandbreite/Traffic aufbraucht.
Sollten Sie Trackbacks aber nicht pauschal deaktivieren wollen (siehe Seite
noautodiscovery), können Sie die maximale Dateigröße
(in Bytes) in der Variable $serendipity['trackback_filelimit']
eintragen. Das Standardlimit steht derzeit auf 150kb. Bitte
beachten Sie, dass Serendipity nicht immer von vornherein beim Besuch
einer URL weiß, wie groß der Inhalt sein wird. Daher kann es auch passieren, dass
URLs mit größeren Inhalten zwangsweise aufgerufen werden. In diesem Fall
hilft das Plugin Trackbacks kontrollieren (siehe Seite
trackbacks), mit dem Sie Trackbacks gezielt auf spezielle URLs
einschränken können.

$serendipity['use_iframe']
Wenn Serendipity einen Artikel speichert, führt es diese Aktionen in
einem separaten Bereich der Webseite aus, den Serendipity oberhalb der
Artikelmaske einbettet. Ein derart eingebetteter Bereich nennt sich
iframe und kann von allen halbwegs modernen Browsern angezeigt
werden.
Bei Browsern auf Handys und PDAs könnte diese Technik jedoch
möglicherweise Probleme machen, daher können Sie die Variable
$serendipity['use_iframe'] auf false setzen, um Serendipity
ohne diese Technik nutzen zu können.
Wenn iframes deaktiviert sind, können mögliche Fehler beim Speichern
eines Artikels (hauptsächlich Trackback- und Plugin-Fehler) jedoch eher
dazu führen, dass der gesamte Artikel nicht gespeichert wird. Daher
sollten Sie iframes nur im größten Notfall deaktivieren und vorzugsweise
lieber auf einen anderen Browser zurückgreifen. Beachten Sie auch, dass
das Deaktivieren der iframes global für alle Redakteure gilt.

$serendipity['languages'] In dieser Variable speichert Serendipity die Liste aller für Besucher
und Redakteure verfügbaren Sprachen. Die dort aufgeführten Kürzel
müssen eine entsprechende Sprachdatei
lang/serendipity_lang_XX.inc.php aufweisen, damit Sie die
Sprache auch wirklich benutzen können. Wenn Sie also eine neue
Übersetzung von Serendipity (zB. für Plattdeutsch) erstellen
wollen, können Sie die neue Sprache zum einen in diese Variable
miteintragen und zum anderen die entsprechende Sprachdatei im
lang-Unterverzeichnis erstellen.
Wenn Sie die Liste der verfügbaren Sprachen für Redakteure
einschränken wollen, können Sie die überflüssigen Sprachen aus der
Variablenliste entfernen.

$serendipity['autolang'] Die Sprache, die Serendipity standardmäßig bei der Installation benutzt
(wenn keine andere Sprache vom Browser präferiert wurde), wird in der
Variable $serendipity['autolang'] gespeichert. Das dort
eingetragene Kürzel (standardmäßig en für englisch) muss in
der Liste der Variable $serendipity['languages'] enthalten sein.

$serendipity['defaultTemplate'] Templates müssen nur die Dateien in ihrem eigenen Verzeichnis mitliefern, die
von den Standarddateien abweichen. Dadurch können Templates klein
gehalten werden und ihre Features vom Standard-Template abhängig machen.
Wenn eine Template-Datei eines Themes nicht vorhanden ist, wird die Datei
im Standard-Theme benutzt. Eben jenes Standard-Theme definieren Sie in
der Variable $serendipity['defaultTemplate'] (standardmäßig
carl_contest, Serendipity 3.0).
Weiterhin gilt als letzter Ausweg immer das Verzeichnis default im
Template-Verzeichnis.

$serendipity['skip_smarty_hooks'] Wenn der Wert dieser Variable auf true gesetzt wird, können
Smarty-Templates selbständig keinerlei Ereignis-Plugins aufrufen (siehe auch
Seite serendipity-hookPlugin).

$serendipity['skip_smarty_hook'] Statt den Aufruf aller Ereignis-Plugins mittels
$serendipity['skip_smarty_hooks'] zu verbieten, kann dieses Array eine
Liste von Ereignissen (Hooks) enthalten, die ein Smarty-Funktionsaufruf
innerhalb der Template-Dateien nicht aufrufen darf. Jeder Array-Schlüssel
muss hierbei dem Namen des zu verbietenden Hooks enthalten.

 

Achten Sie darauf, dass, wenn Sie Änderungen in der Datei
serendipity_config.inc.php vornehmen, diese Änderungen bei einem
Update von Serendipity überschrieben werden und Sie sie neu eintragen
müssen. Einzig Änderungen in der Datei
serendipity_config_local.inc.php (sofern sie am Ende der Datei
vorgenommen wurden) behält Serendipity bei einem Update bei.

4.7.2 - Benutzerverwaltung

Benutzerverwaltung

In der Benutzerverwaltung Serendipitys können Sie die Redakteure und
ihre Zugriffsmöglichkeiten verwalten.

Auf dieser Übersichtsseite sehen Sie eine Liste aller Redakteure, auf die
Sie Zugriff haben.

Abbildung 4.24: Administration: Benutzerverwaltung

In Serendipity werden Zugriffsrechte aufgrund von zwei Eigenschaften
geregelt. Die eine ist der globale Benutzerrang/Userlevel, der der
Zahl 0 (einfacher Redakteur), 1 (Chefredakteur) oder 255 (Administrator)
entspricht. Die zweite ist die Zugehörigkeit zu einer Benutzergruppe,
wobei jede Benutzergruppe flexible Rechte besitzen kann.

Die festen Benutzerlevel wurden in Serendipity 0.6 eingeführt und
mittlerweile in fast allen Bereichen durch die Eingliederung in
eigenständige Benutzergruppen abgelöst, die den Zugriff viel
kleinstufiger regeln können. Dennoch gilt der Benutzerrang nach wie vor
als ein Kriterium für einige zusätzliche Plugins. Sollte ein Redakteur
keiner Gruppe zugehörig sein, regelt sein Benutzerrang alle ihm zur
Verfügung stehenden Zugriffsmöglichkeiten.

Grundsätzlich empfiehlt es sich daher weiterhin, neue Redakteure auch
einem Benutzerrang grob zuzuordnen. Bestimmen Sie dabei, ob ein Redakteur
volle Rechte zu einem Blog haben soll (Administrator), ob er als
Chefredakteur über anderen Redakteuren stehen soll oder ob er nur einen ganz
schlichten Redakteur zur Texterfassung darstellen soll.

Ein Administrator sieht in der Übersicht alle Redakteure. Ein
Chefredakteur sieht hier nur noch andere Chefredakteure und normale
Redakteure. Normale Redakteure wiederum sehen nur andere normale
Redakteure.

In der Benutzerübersicht wird dem Benutzerrang entsprechend ein kleines
Symbol dem Namen vorangestellt. Es folgen der Benutzerrang und zwei
Links zum Bearbeiten und Löschen eines Benutzers.

Über den Button Einen neuen Benutzer anlegen können Sie einen
neuen Benutzer anlegen, die Oberfläche ähnelt dabei den Optionen bei
der Bearbeitung eines Redakteurs. Beachten Sie beim Bearbeiten eines
Redakteurs, dass Ihre Möglichkeiten zum Ändern der Daten von Ihren
Rechten abhängig sind, daher wird Ihnen unter Umständen beim Speichern
eines Benutzers das Recht verwehrt, diese Änderung durchzuführen.

Einen neuen Benutzer anlegen oder einen Benutzer bearbeiten

Die Oberfläche zum Bearbeiten/Anlegen eines Redakteurs sieht
größtenteils exakt so aus wie die Seite der Eigenen
Einstellungen
(siehe Kapitel Eigene Einstellungen ab Seite
Eigene Einstellungen). Hier können Sie einen Benutzer so
bearbeiten, als wären es Ihre eigenen Einstellungen. Tun Sie dies bitte
nur mit Vorsicht, denn üblicherweise sollten die Redakteure ihre
Einstellungen selbständig vornehmen.

Das Alte Passwort eines Benutzers muss an dieser Stelle nur
eingegeben werden, wenn der Benutzer Ihrem eigenen Redakteurs-Account
entspricht. Andernfalls kann ein Administrator bzw. befugter Benutzer
Änderungen auch ohne Passwortangabe vornehmen und so auch ein neues
Passwort setzen.

Abbildung 4.25: Administration: Benutzerverwaltung: Neuer Redakteur

 

Abweichend von den Eigenen Einstellungen sind in dieser Oberfläche
zusätzlich die folgenden Optionen aufgeführt:

Zugriffsrechte Die Zugriffsrechte entsprechen der groben Einordnung eines
Benutzers in einen Benutzerrang. Wählen Sie aus dem Auswahlfeld,
welchem Rang der Benutzer am ehesten entspricht.
Achten Sie darauf, dass Sie, wenn Sie Ihren eigenen Benutzer bearbeiten,
Ihre eigenen Rechte beschränken könnten. Wenn Sie versehentlich Ihren
Benutzerrang auf Redakteur stellen, sind Ihre Rechte erstmal
eingeschränkt. Um in diesem Fall Ihren Benutzerrang zu reaktivieren,
müssen Sie das Script fixpriv.php auf Seite fixpriv.php
ausführen.

Gruppenzugehörigkeit Die Gruppenzugehörigkeit des gewählten Redakteurs wird über das
Mehrfachauswahlfeld Gruppenzugehörigkeit gesteuert. Ein
Redakteur kann dabei Mitglied in mehreren Gruppen sein, um alle Rechte
jeder einzelnen Gruppe zu vereinen.
Achten Sie auch hier darauf, dass, wenn Sie sich (versehentlich) als
Mitglied der Gruppe entfernen, Sie möglicherweise Ihren Zugriff auf
Serendipity zerstören.

Benutzer deaktivieren/Rechte entziehen Eine globale Option, um einem Benutzer sämtliche Zugriffsrechte außer
dem Einloggen zu verbieten, stellt der Punkt Benutzer deaktivieren
dar. Ist der Wert Ja aktiviert, ist ein Benutzer sozusagen
gesperrt.
Dies ist besonders nützlich, wenn Sie Benutzer anlegen wollen, die
eigentlich nur im Frontend Artikel lesen, aber im Backend
keinerlei Möglichkeiten nutzen sollen. Über das Plugin Freie
Benutzer-Registrierung
können Sie Besuchern ermöglichen, sich selbst
einen Redakteurs-Account anzulegen (Details siehe Seite adduser)
- auch bei solchen Redakteuren wird es oft gewünscht sein, den Zugriff
stark einzuschränken.
Achten Sie darauf, nicht versehentlich für sich selbst diese
Option zu aktivieren. Auch dies können Sie nur mittels des
fixpriv.php-Scripts rückgängig machen.

Rechte: Einträge veröffentlichen Die Option Rechte: Einträge veröffentlichen bestimmt, ob es einem
Redakteur erlaubt ist, einen Artikel als Veröffentlichung zu
speichern. Ist diese Option nicht aktiviert, kann ein Benutzer
lediglich Entwürfe speichern. Diese Entwürfe müssen dann von
einem höherrangigen Redakteur veröffentlicht werden.

 

Beim Erstellen eines neuen Benutzers achten Sie bitte auf die
Voreinstellungen, da zB. die Option Rechte: Einträge
veröffentlichen
standardmäßig auf Nein steht. Möglicherweise
entspricht dies nicht der Einstellung, die Sie beabsichtigen.

4.7.3 - Gruppenverwaltung

Gruppenverwaltung

Ähnlich wie bei der Verwaltung der Benutzer sehen Sie in der Übersicht der
Gruppenverwaltung alle angelegten Benutzergruppen.

Abbildung 4.26: Administration: Gruppenverwaltung

Sie können von dort aus entweder eine Neue Gruppe anlegen,
bestehende Gruppen Bearbeiten oder Löschen. Beim Löschen
einer Gruppe müssen Sie vorsichtig sein, dass Sie damit bestehenden
Redakteuren nicht den Zugriff auf das Backend vollständig entziehen.

Standardmäßig werden in Serendipity drei Benutzergruppen angelegt:
Administrator, Chefredakteur und Redakteur. Jede
dieser Gruppen ist so eingerichtet, dass sie den Zugriff für die
Mitglieder dieser Gruppen so einschränkt, wie es zu erwarten wäre:
Redakteure dürfen nur Artikel anlegen und eigene Artikel bearbeiten,
Chefredakteure dürfen zusätzlich Plugins und das Aussehen des Blogs
verwalten und Einträge anderer Redakteure überarbeiten. Administratoren
dürfen natürlich alles.

Jede Gruppe kann eine große Menge an kleinstufigen Rechten festlegen,
die Sie in der Detailseite einer neuen oder bestehenden Gruppe
ankreuzen können.

Eine Gruppe erstellen oder bearbeiten

Die Detailseite einer Gruppe listet alle
Rechte auf. Sie können dabei nur diejenigen Rechte mittels einer
Auswahlbox auswählen, die Sie selber aufgrund Ihrer
Gruppenmitgliedschaft besitzen.

Abbildung 4.27: Administration: Gruppenverwaltung: Gruppe bearbeiten

Wenn Sie als Mitglied der Gruppe Chefredakteur eine neue
Gruppe erstellen, können Sie keine Rechte zur Administration des Blogs
vergeben - das wäre natürlich eine einfache Art, sich die Blog-Herrschaft
anzueignen.

Bei solchen nicht vergebbaren Rechten sehen Sie also nur den aktuellen
Wert des jeweiligen "gesperrten" Rechtes.

Folgende Rechte stehen zur Verfügung:

Name Der Name einer Gruppe kann von Ihnen frei gewählt werden und darf auch
Sonderzeichen enthalten. Bei den von Serendipity vordefinierten Gruppen
steht an dieser Stelle nicht der jeweilige Gruppenname, sondern etwas
in der Art USERLEVEL_CHIEF_DESC. Dies wird später bei der
Darstellung durch den jeweiligen "echten" Namen ersetzt, damit bei
anderssprachigen Redakteuren deren Gruppenzugehörigkeit nicht auf
einen deutschen Begriff festgelegt wird.

Gruppenzugehörigkeit In dieser Auswahlbox werden alle verfügbaren Redakteure dargestellt. So
können Sie einer neuen Gruppe relativ leicht bestehende Redakteure
hinzufügen, indem Sie sie einfach in dem Mehrfachauswahlfeld markieren.
Einen Benutzer können Sie auf zwei Arten aus einer Gruppe entfernen:
Entweder Sie heben die Zugehörigkeit in diesem Mehrfachauswahlfeld auf,
oder Sie bearbeiten den jeweiligen Benutzer und heben dort die
Gruppenzuordnung auf.
Mehrere Redakteurszuordnungen können Sie mit gedrückter
(Strg/Apfel)-Taste und der linken Maustaste vornehmen.

adminCategories, adminCategoriesDelete, adminCategoriesMaintainOthers Wenn das Recht adminCategories aktiviert ist, kann ein Redakteur
Kategorien verwalten (neue Kategorien anlegen und bestehende Kategorien
bearbeiten). Besitzt er das Recht adminCategoriesDelete, darf er
auch Kategorien löschen.
Dabei ist der Zugriff nur auf selbst angelegte Kategorien möglich. Erst
wenn ein Benutzer auch das Recht adminCategoriesMaintainOthers
besitzt, darf er auch Kategorien anderer Benutzer verwalten.

adminComments Damit ein Redakteur die Kommentarübersicht aufrufen kann, muss er das
Recht adminComments besitzen. Ohne dieses Recht darf er nur
Kommentare zu von ihm geschriebenen Artikeln (mittels der E-Mail-Benachrichtigung)
freischalten.

adminEntries, adminEntriesMaintainOthers Nur wenn ein Redakteur das Recht adminEntries besitzt, darf er
Einträge im Blog erstellen. Dabei darf er nur selbst erstellte Artikel
im Nachhinein überarbeiten. Wenn er das Recht
adminEntriesMaintainOthers besitzt, darf er zusätzlich auch auf
Artikel anderer Redakteure zugreifen.
Ob ein Benutzer überhaupt Einträge erstellen und veröffentlichen darf,
wird zusätzlich individuell pro Benutzer in dessen Einstellungen (siehe
Seite Benutzerverwaltung) festgelegt.

adminImages und weitere
Um auf die Mediendatenbank zuzugreifen, benötigt ein Redakteur das
Recht adminImages. Weitere feinstufige Rechte kontrollieren, was
der Redakteur innerhalb der Mediendatenbank durchführen darf.
Mittels adminImagesAdd darf er neue Mediendateien hochladen. Das
Recht adminImageDelete ermöglicht es ihm, Mediendateien auch
wieder zu löschen. Neue Unterverzeichnisse kann er mit dem Recht
adminImagesDirectories anlegen.
Um Vorschaubilder erneut zu erstellen, benötigt er das Recht
adminImagesSync.
Die Mediendatenbank selbst kann ein Redakteur zum Einbinden von Dateien
nur aufrufen, wenn er das Recht adminImagesView besitzt. Um auch
die Dateien anderer Redakteure anzusehen, benötigt er das Recht
adminImagesViewOthers.
Um auch die Mediendaten anderer Redakteure bearbeiten/löschen zu
können, ist das Recht adminImagesMaintainOthers erforderlich.

adminImport Das Recht adminImport regelt, ob ein Redakteur die Einträge
fremder Blogsysteme importieren darf.

adminPlugins Besitzt ein Redakteur das Recht adminPlugins, kann er
Seitenleisten- und Ereignis-Plugins installieren. Dabei wird der
Redakteur als Eigentümer eines Plugins aufgeführt und kann daraufhin
nur seine eigenen Plugins auch konfigurieren. Über das Recht
adminPluginsMaintainOthers kann ein Redakteur auch die
Konfiguration fremder Plugins ändern.

adminTemplates Um ein anderes Template zu aktivieren und Template-Optionen zu
konfigurieren, benötigt der Redakteur das Recht adminTemplates.

adminUsers und weitere
Ob ein Redakteur die Benutzerverwaltung aufrufen darf, wird mit dem
Recht adminUsers eingestellt. Neue Benutzer darf er mit dem
Recht adminUsersCreateNew anlegen, Benutzer löschen mit
adminUsersDelete.
Den Benutzerrang darf er nur verändern, wenn er das Recht
adminUsersEditUserlevel besitzt. Ansonsten darf er nur Redakteure
niederen Ranges anpassen.
Die Gruppenverwaltung darf der Benutzer mit dem Recht
adminUsersGroups anlegen. Besitzt er das Recht
adminUsersMaintainSame, darf er gleichrangige Benutzer
bearbeiten, und wenn er das Recht adminUsersMaintainOthers
besitzt, darf er auch alle anderen Benutzer verwalten.

blogConfiguration Wenn der Redakteur das Recht blogConfiguration besitzt, darf er
Änderungen an der globalen Konfiguration des Blogs vornehmen. Darunter
fallen jedoch keine Änderungen der Datenbankkonfiguration oder
systemnaher Einstellungen.

personalConfiguration, personalConfigurationNoCreate Die Eigenen Einstellungen darf ein Redakteur nur mit dem Recht
personalConfiguration aufrufen.
Das Sonderrecht, einen Benutzer zu sperren, darf ein Redakteur nur
ausüben, wenn er das Recht personalConfigurationNoCreate besitzt.
Analog dazu darf er die Sondervariablen zum Veröffentlichungsrecht von
Artikeln und den Benutzerrang nur bearbeiten, wenn er über die Rechte
personalConfigurationRightPublish und
personalConfigurationUserlevel verfügt.
siteConfiguration Die systemweite Konfiguration (mit Einstellungen der Datenbank und
anderer systemnaher Optionen) darf ein Redakteur nur verändern, wenn er
über das Recht siteConfiguration verfügt.
userlevel Die vordefinierten Gruppen von Serendipity können mit einem
Benutzerrang verkettet werden. Dies ist nicht veränderbar und lediglich
für die vordefinierten Gruppen von Interesse. Daher sehen Sie an dieser
Stelle auch in allen Fällen nur ein Nein.
Verbotene Plugins Ist die globale Option Sollen persönliche Plugin-Rechte für
Benutzergruppen aktiviert werden?
in der Konfiguration des Blogs
(Abschnitt Generelle Einstellungen) aktiviert, werden Sie an
dieser Stelle eine Liste aller installierten Plugins sehen. Sollte die
Option (wie standardmäßig der Fall) deaktiviert sein, sehen Sie hier
nur einen Hinweis, der auf die Konfigurationsoption Bezug nimmt.
In dem Mehrfach-Auswahlfeld können Sie alle Plugins auswählen, auf die
eine Benutzergrupe keinen Zugriff hat. So können Sie
Redakteure von der Benutzung einiger Plugins gezielt ausnehmen.
Verbotene Ereignisse Die Ereignis-Plugins von Serendipity werden an speziellen Stellen des
Systems ausgeführt. Diese Stellen nennen sich Ereignisse und
tragen alle einen individuellen Namen. Plugins können sich zu einem
Ereignis einklinken und dann beliebige Aktionen durchführen.
Wenn man ein Plugin nicht zentral verbieten will, kann über dieses
Mehrfachfeld gezielt nur eine Menge von gewünschten Ereignissen für die
Benutzergruppe blockiert werden.
Die Namen der Ereignisse lassen auf deren Bedeutung schließen, sind aber
nur für erfahrenere Benutzer von Belang. Auch von
Plugins selbst eingebundene Ereignisse sind in dieser Liste enthalten.
Eine Übersicht über die üblichen Serendipity-Ereignisse sehen Sie im
Abschnitt Ereignisse ab Seite Ereignisse.

Wenn Sie eine neue Gruppe anlegen wollen, sehen Sie am Ende der
Eingabemaske den Button Neue Gruppe anlegen.

Sollten Sie eine bestehende Gruppe bearbeiten, können Sie die
vorgenommenen Änderungen über den Menüpunkt Speichern übernehmen.
Auch hier sehen Sie dann den Button Neue Gruppe anlegen. Dieser
dient dazu, eine ganz neue Gruppe mit den konfigurierten Möglichkeiten zu
erstellen. Sie können diese Methode also nutzen, wenn Sie eine Gruppe
erstellen wollen, die einer bestehenden Gruppe ähnelt. Bearbeiten Sie
dann diese Gruppe als Vorlage, nehmen Sie die Änderungen vor und klicken
Sie auf Neue Gruppe anlegen, um dies durchzuführen.

4.7.4 - Daten importieren

Daten importieren

Serendipity kann von anderen Blogsystemen Daten importieren.
Über den Menüpunkt Daten importieren finden Sie eine Auswahl
des betreffenden Systems, von dem Sie importieren wollen.

Abhängig vom gewählten System können nur Teile der Daten dieses Systems
importiert werden, und da es bei fremder Software öfter zu Änderungen der
Datenbankstruktur kommt, kann die exakte Versionsnummer beim Import sehr
wichtig sein.

Sollte Ihre Blogsoftware in der Liste nicht aufgeführt sein, ist ein
Import zu Serendipity dennoch nicht unmöglich. Fragen Sie in diesem
Fall im Serendipity-Forum unter http://board.s9y.org/ einfach
einmal nach, dort wird man sicher helfen können. Grundsätzlich müssen beim
Import lediglich Daten auf Datenbankbasis eingelesen und in einem neuen Format
gespeichert werden. Wenn Sie über SQL-Kenntnisse verfügen, könnten Sie Ihren
eigenen Importer so relativ einfach entwickeln. Details zur Datenbankstruktur
von Serendipity finden Sie ab Seite er-schema.

Abbildung 4.28: Administration: Daten importieren

Nachdem Sie das Quell-Blogsystem gewählt haben, klicken Sie auf Los!.
Auf der Folgeseite werden Ihnen abhängig vom gewählten System einige
Optionen präsentiert.

Abbildung 4.29: Administration: Daten importieren: WordPress

Meist ist es wichtig, dass die Datenbank des Zielsystems sich auf demselben
Server wie das Serendipity-Blog befindet, um auf die Datensätze
zugreifen zu können. Sie sollten auf jeden Fall mittels einer Software
wie phpMyAdmin vor dem Import ein Backup sowohl der Serendipity-Datenbank
als auch des Quell-Blogs machen.

Der Import-Vorgang in Serendipity kann beliebig oft durchgeführt werden
und führt bei jedem neuen Aufruf zum erneuten Import. So kann es also
passieren, dass bei mehreren Importversuchen die Artikel mehrfach
importiert werden. Nach jedem fehlgeschlagenen Import sollten Sie daher
die möglicherweise bereits erstellten Einträge, Kategorien und Autoren
wieder löschen.

Folgende Blogsysteme stehen zum Import bereit:

WordPress Importiert werden: Autoren, Passwörter, Kategorien, Kommentare,
Artikel, Statische Seiten.
Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks. Die Option Zeichensatz gibt an, in welchem Zeichensatz WordPress
seine Artikel gespeichert hat. Dies ist in neuen
WordPress-Versionen meist UTF-8, und ISO-8859-1 in älteren.
In WordPress-Artikeln werden oft Sonderzeichen mit HTML-Syntax
maskiert. Aus einem Ä wird so ein &Auml;. Serendipity
bevorzugt jedoch die echten Sonderzeichen. Wenn Sie die Option
Soll versucht werden, HTML-Instanzen automatisch zu konvertieren
aktivieren, werden derartige Sonderzeichen wieder korrekt umgewandelt.
Sollten Sie beim Import der Einträge später einmal merkwürdige
Sonderzeichen erhalten, probieren Sie einmal diese beiden Optionen aus.
Mit der Option Trackbacks an erkannte Links im Eintrag senden
können Sie erzwingen, dass alle Trackbacks zu den importierten Einträgen
nochmals geschickt werden. Üblicherweise ist dies unerwünscht, daher ist
die Voreinstellung auf Nein gesetzt.
WordPress kann neben Artikeln auch sogenannte attachments und
staticpages speichern. Wenn Sie die Option Auch
attachments und staticpages als normale Blog-Einträge importieren

aktivieren, werden diese Sonderseiten auch als Serendipity-Artikel
importiert.

WordPress PostgreSQL Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks. Eine Abspaltung von WordPress stellt WordPress PostgreSQL dar.
Dieses läuft mit einer PostgreSQL- statt MySQL-Datenbank und kann mit
identischen Optionen (Datenbankeinstellungen, Sonderzeichen,
Trackbacks) wie WordPress importiert werden.

b2Evolution 0.9.0.11 Paris Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

LifeType Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

bBlog 0.7.4 Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

Blogger Importiert werden: Autoren, Kommentare, Artikel. Konfigurationsoptionen: Blogger.com-Exportdatei, Passwort für
neue Autoren, Zeichensatz, Einteilung erweiterter Artikel.
blogger.com stellt einen recht komplizierten Fall des Imports
dar. Dieses System läuft nicht auf dem eigenen Webserver, sondern wird
von Google bereitgestellt. Daher gibt es auch keinen direkten
Datenbankzugriff zum System.
Der Blogger-Import besteht aus einer ausführlichen Beschreibung, wie
man sein Blog bei Blogger.com konfigurieren muss, um eine Exportdatei
herzustellen. Diese Datei kann dann Serendipity wiederum importieren
und auslesen.
Leider sind die Anweisungen auf die alten Templates von Blogger.com
bezogen und können bei der neuen Blogger-Oberfläche nicht ohne
Umstellung angewendet werden.
Notfalls müssen Sie daher Ihre Einträge von Blogger mittels des
Allgemeinen RSS-Imports importieren.

boastMachine 3.0 Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

Geeklog 1.3.11 Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

LiveJournal Importiert werden: Nur Artikel. Konfigurationsoptionen: XML-Quelldatei, zugeordnete Kategorie, Artikelstatus. Ähnlich wie Blogger.com ist LiveJournal ein Online-Dienst, der
Ihnen keinen direkten Zugriff auf Ihre geschriebenen Artikel
ermöglicht.
Jedoch ermöglicht es LiveJournal, eine XML-Datei der Einträge zu
exportieren. Diese können Sie auf Ihren Webserver hochladen und dem
Importer benennen.
Leider können über diese XML-Datei nur die Artikel importiert
werden und keinerlei andere Informationen.

MovableType Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: MovableType-Datensätze, Zeichensatz, Debugging, Trackbacks. MovableType speichert seine Daten (in älteren Versionen) in einem für
Serendipity nicht zugänglichen Datencontainer. Von der
MovableType-Administrationsoberfläche aus können Sie jedoch eine
Exportdatei erzeugen. Diese Exportdatei können Sie dann auf den
Serendipity-Server hochladen und den Pfad zu dieser Datei beim
Importvorgang eintragen.
Die MoveableType-Datensätze liegen leider in einem relativ
"chaotischen" Format vor, und daher kann es leicht zu defekten
Importen kommen. Daher gibt es eine Debugging-Option und die
Möglichkeit, trotz defekter Datei lesbare Einträge zu importieren.

Nucleus Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

Pivot Importiert werden: Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Pivot-Datensätze. Pivot speichert seine Dateien in einer zentralen PHP-Datei. Den Pfad zu
dieser Datei müssen Sie beim Importvorgang angeben. Alle importierten
Artikel werden dem aktuellen Serendipity-Benutzer zugeordnet.

pMachine Pro 2.4 Importiert werden: Autoren, Passwörter, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

sunlog 0.4.4 Importiert werden: Autoren, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz,
HTML-Maskierung, Trackbacks.
Sunlog bietet zwar diverse Zugriffsrechte für seine Redakteure, diese
sind jedoch inkompatibel zu Serendipity. Dabei werden beim Import nur
die Stammdaten der Redakteure übernommen, und alle Redakteure werden als
Administratoren übernommen. Da Sunlog seine Passwörter in einem für
Serendipity nicht lesbaren Format speichert, müssen die Passwörter
aller Autoren erneut vergeben werden. Standardmäßig wird ein Redakteur
dabei mit dem Passwort sunlog angelegt.

Textpattern 1.0rc1 Importiert werden: Autoren, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks. Da Textpattern seine Passwörter in einem für Serendipity nicht lesbaren
Format speichert, müssen die Passwörter aller Autoren erneut vergeben
werden. Standardmäßig wird ein Redakteur dabei mit dem Passwort
txp angelegt.

phpNuke Importiert werden: Autoren, Kategorien, Kommentare, Artikel. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks.

Voodoopad Importiert werden: Inhalte. Konfigurationsoptionen: VoodooPad-Datendatei. Voodoopad ist eigentlich kein Blogsystem, sondern eher ein
Offline-Wiki. Der Importer kann exportierte Daten von Voodoopad
übernehmen und als statische Seiten importieren. Daher wird das
Serendipity-Plugin Statische Seiten benötigt (siehe Seite
staticpage).
Im Importer geben Sie den Pfad zu der XML-Datei an, und alle Datensätze
darin können daraufhin importiert werden.

phpBB Importiert werden: Autoren, Kategorien, Postings. Konfigurationsoptionen: Zugangsdaten, Zeichensatz, HTML-Maskierung, Trackbacks. phpBB ist ein Forensystem. Was in einem Blog die Artikel und Kategorien
sind, wird in einem Forum als Bereiche und Postings definiert.
Serendipity kann alle eingetragenen Benutzer des Forums importieren und
als Serendipity-Redakteur übernehmen. Dabei wird auch erkannt, ob ein
Forenbenutzer Administratorrechte hat, und er erhält diese dann auch in
Serendipity.
Die einzelnen Foren und Unterforen werden in Serendipity als Kategorien
und Unterkategorien übernommen. Der jeweils erste Eintrag in einem
Foren-Thread wird als Blog-Artikel importiert, alle folgenden Postings
des Threads werden als Blog-Kommentar importiert.

Allgemeiner RSS-Import Importiert werden: Nur Artikel. Konfigurationsoptionen: RSS-Feed URL, Artikelstatus, Zugeordnete
Kategorie, Zeichensatz, Erweiterter Eintrag.
Als letzte Möglichkeit des Artikel-Imports gilt der Allgemeine
RSS-Import
. Hiermit können Sie einen RSS-Feed in Ihr eigenes Blog
importieren. Dabei werden die importierten Artikel dem aktuell
eingeloggten Serendipity-Benutzer zugeschrieben.
Da in einem RSS-Feed nur sehr wenige Daten vorhanden sind, können nur
Artikelstammdaten (Veröffentlichungszeitpunkt, Titel, Text) importiert
werden. Sollte eine Kategoriezuordnung im RSS-Feed enthalten sein,
versucht der Importer eine gleichnamige Kategorie im Blog zu finden und
zuzuordnen. Schlägt das fehl, wird die im Importer festgelegte
Standard-Kategorie zugeordnet.
In einigen RSS-Feeds kann neben den Artikel-Teasern auch ein
erweiterter Artikeltext enthalten sein, der ebenfalls importiert wird.
Wenn Sie die Option Füge den gesamten importierten Text in das
einzelne Text-Feld ein
auf Ja setzen, wird sämtlicher
verfügbarer Inhalt in das Hauptfeld des Blog-Artikels übernommen.
Andernfalls versucht Serendpity, den Teaser-Text und vollständigen Text
des RSS-Artikels sinnvoll aufzuteilen.
Als Sonderfall des RSS-Imports dient das WPXRSS-Format. Dieses wird von
WordPress-Blogs eingesetzt und enthält außer Artikeln auch Informationen zu
Kategorien, Kommentaren und Redakteuren. Das WPXRSS-Format funktioniert nur auf
Webservern mit PHP5-Unterstützung.
Bitte beachten Sie, dass dieser Importvorgang nicht für den
regelmäßigen Import eines RSS-Feeds gedacht ist. Dafür gibt es das
RSS Aggregator-Plugin, siehe Seite aggregator.

4.7.5 - Einträge exportieren

Einträge exportieren

Hinter dem Menüpunkt Einträge exportieren befindet sich nur ein
einzelner Button: Vollständigen RSS-Feed exportieren.

Dieser Button ist lediglich ein Link auf Ihren RSS-Feed im Frontend,
dem der Parameter all=1 angehängt ist.

Als Ergebnis dieser Exportaktion wird Ihr Browser also einen RSS-Feed
mit allen Ihren Einträgen anzeigen. Diesen RSS-Feed können Sie
speichern und in andere Anwendungen importieren.

Bitte beachten Sie unbedingt, dass der RSS-Feed nur einen ganz kleinen
Teil Ihres Blogs enthält, nämlich nur den Beitragstext sowie die
Überschriften Ihrer Artikel und einige zusätzliche Informationen wie
den Autor, die zugeordnete Kategorie und die Veröffentlichungszeit.
Nicht enthalten sind in diesem RSS-Feed die erweiterten
Artikelinhalte, Benutzerinformationen, alle verfügbaren Kategorien und
noch vieles mehr. Daher ist ein RSS-Export definitiv nicht als Backup
geeignet.

Um die Daten von Serendipity in ein anderes Blogsystem zu überführen, müssen
Sie daher auf manuelle Importwege zurückgreifen (siehe Kapitel Wartung)
oder auf die Entwicklung eines Import-Moduls des Fremdsystems für Serendipity
hoffen. Serendipity selbst bietet eine Reihe von Import-Modulen für andere
Blogsysteme an. Häufig sind die Datenbankstrukturen fremder Systeme nicht so
weit entfernt voneinander, so dass mit etwas SQL-Kenntnis ein Import
vorgenommen werden kann.

4.8 - Bookmarklet

Bookmarklet

Der Punkt Bookmarklet ist eigentlich kein eigenständiger
Menüpunkt im Backend. Vielmehr sehen Sie diesen Menüpunkt im Kasten
Weitere Links auf der Startseite des Backends.

Der Link zum Bookmarklet führt dabei auf Ihre eigene Seite und enthält
einen JavaScript-Code. Dieser Link ist nicht zum Anklicken gedacht,
sondern Sie sollten ihn als Lesezeichen/Favorit in Ihrem Browser
speichern.

Wechseln Sie nun auf eine fremde Webseite, über die Sie in einem
eigenen Blog-Artikel gerne berichten wollen. Markieren Sie dort einen
Textteil, auf den Sie sich beziehen wollen, und wählen Sie in Ihrem
Browser das Lesezeichen Bookmarklet aus. Sie werden nun auf Ihr
Blog geleitet, und die URL der fremden Seite wird automatisch in Ihren
Artikeltext eingefügt. So können Sie komfortabel und ohne eigenes
Zutun schnell Artikel verfassen.

Kapitel 5: Seitenleisten-Plugins

Serendipity bietet eine große Menge von Plugins an. Einige davon werden
direkt bei Serendipity mitgeliefert, andere sind im externen
Spartacus-Archiv (siehe Seite Spartacus)
verfügbar.

Plugins sind bei Serendipity in Seitenleisten- und
Ereignis-Plugins unterteilt. Wie im Kapitel zur Plugin-Verwaltung
(siehe Seite Plugins verwalten)
erwähnt, binden sich Seitenleisten-Plugins zur Ausgabe in den
Rahmenbereich Ihres Blogs ein. Ereignis-Plugins hingegen dienen der
funktionellen Erweiterung Ihres Blogs.

Auf den folgenden Seiten finden Sie eine Übersicht der am häufigsten
genutzten Plugins und aller mitgelieferten Plugins. Aus Platzmangel können
wir leider nicht auf jedes Plugin eingehen, verzeihen Sie also bitte,
falls Ihr Lieblings-Plugin nicht beschrieben wird.
Die meisten Plugins sind trotz kurzer Beschreibung leicht zu benutzen
und zu konfigurieren. Sollte es darüber hinaus Fragen zu der Benutzung
eines Plugins geben, wird man Ihnen im Serendipity-Forum [*] \cmd{http://board.s9y.org/} sicherlich helfen.

Einige Plugins bestehen aus einer Kombination von Seitenleisten-
und Ereignis-Plugins. Sie werden als Gekoppelte Plugins bezeichnet
und in einem eigenen Kapitel (ab Seite Gekoppelte Plugins) behandelt.

Plugins können häufig mehr als einmal installiert werden. Gerade bei
Seitenleisten-Plugins wie dem HTML-Klotz macht dies Sinn, damit man
beliebig viele Inhalte im Blog anzeigen kann. Wenn ein Plugin nicht
mehrfach installiert werden kann, erscheint es in der Plugin-Liste mit dem
Hinweis "bereits installiert". Bei Ereignis-Plugins ist es
hingegen seltener notwendig, mehr als eine Instanz des Plugins zu
installieren. Jedes mehrfach installierte Plugin kann individuell
konfiguriert werden, da jede Instanz unabhängig agiert.

Die Konfigurationsoptionen der jeweiligen Plugins sind hier auf die essentiellen
Parameter beschränkt und daher nicht vollständig aufgeführt. Im Buch nicht
beschriebene Optionen sind jedoch in der Konfigurationsoberfläche eines Plugins
aufgeführt und werden dort auch grob beschrieben oder sind meistens
selbsterklärend.

Leider sind nicht alle Plugins bisher ins Deutsche übersetzt, daher
wird bei einigen Beschreibungen und Plugin-Namen im Folgenden auf das
englische Original zurückgegriffen.

Damit Sie ein Seitenleisten-Plugin innerhalb der Verzeichnisstruktur besser
finden, geben wir in der Übersicht neben dessen Namen
auch den Klassennamen der Datei an.

 

5.1 - Standardmäßig aktivierte Plugins

Standardmäßig aktivierte Plugins

Seitenleisten-Plugins werden im Frontend Ihres Blogs angezeigt und können
dort beliebige Inhalte darstellen oder einbinden. Im Gegensatz zu Ereignis-Plugins
kann ein Seitenleisten-Plugin ausschließlich Ausgaben in der Seitenleiste vornehmen
und keine weitere Kernfunktionalität zur Verfügung stellen.
Die folgenden Seitenleisten-Plugins werden bei Serendipity mitgeliefert und sind
standardmäßig aktiviert. Einige besitzen keine eigene
Plugin-Datei im Unterverzeichnis plugins, sondern sind aus Performancegründen
in include/plugin_internal.inc.php zusammengefasst.

5.1.1 - Kalender: serendipity_calendar_plugin

Kalender
serendipity_calendar_plugin

Dieses Plugin wurde mit Serendipity 2.0+ aus der Liste aktiver Plugins gestrichen,
da der Kalender als Artikelnavigation heutzutage kaum noch genutzt wird und als mehr oder weniger als nicht mehr zeitgemäß betrachtet wird.

Der Kalender zeigt einen blätterbaren Kalender eines Monats in der
Seitenleiste an. Einzelne Tage des Kalenders können dabei hervorgehoben
werden und zeigen dem Besucher an, dass an diesem Tag ein Blog-Artikel
verfasst wurde. Der aktuelle Tag wird ebenfalls hervorgehoben.

In den Konfigurationsoptionen können Sie den Tag des Wochenanfangs
festlegen und die Anzeige von Artikeln zu einem Tag auf eine spezielle
Kategorie beschränken.

Die Option Plugin-Schnittstelle aktivieren können Sie aktivieren,
wenn Sie anderen Plugins erlauben wollen, Tage im Kalender
hervorzuheben. Das Plugin Mein Kalender kann diese Option
beispielsweise benutzen, um Ihre persönlichen Termine anzufügen.

Zuletzt können Sie einstellen, welche Kategorie als Ausgangspunkt
der im Kalender angezeigten Blog-Artikel verwendet wird. Standardmäßig werden
alle Kategorien dafür benutzt, Sie können aber auch eine spezielle Kategorie
auswählen. Wenn der Besucher die Blog-Artikel selbständig auf eine
spezielle Kategorie eingrenzt und das Plugin als Ausgangspunkt Alle
Kategorien
verwendet, so wird automatisch die aktuelle Kategorie als
Datenquelle zur Kalenderdarstellung eingesetzt.

Die Darstellung erfolgt mittels der Template-Datei
plugin_calendar.tpl, deren
Variablen auf Seite plugin-calendar-tpl erklärt werden.

5.1.2 - Suche: serendipity_quicksearch_plugin

Suche
serendipity_quicksearch_plugin

Das Plugin Suche ist ein simples Seitenleisten-Plugin, das eine
Sucheingabe-Box anzeigt. Dort können Besucher Suchwörter eintragen, um
Artikel zu durchsuchen. Weitere Hinweise zur Volltextsuche finden Sie auf
Seite Suche.

Dieses Plugin bietet keine Konfigurationsmöglichkeiten an.

5.1.3 - Archive: serendipity_archives_plugin

Archive
serendipity_archives_plugin

Das Plugin Archive zeigt eine Übersicht der letzten Monate an. Ein
Klick auf den jeweiligen Monat öffnet die Artikelübersicht für den
gewünschten Zeitraum.

In der Konfiguration des Plugins können Sie neben der Überschrift des
Plugins auch angeben, ob das Plugin Monate, Wochen oder Tage gliedern
soll. Die Anzahl der Einträge im Archiv gibt an, wie viele Ausgaben
im Plugin erfolgen sollen.

Wenn Sie die Option Anzahl der Einträge pro Kategorie anzeigen
aktivieren, wird hinter jeder Ausgabe des Plugins in der Seitenleiste die
Anzahl von Einträgen eingeblendet, die Sie in diesem Zeitraum erstellt
haben. Achten Sie beim Aktivieren dieser Option darauf, dass diese die
Geschwindigkeit des Plugins stark verringert. Das Auslesen der Anzahl
aller Artikel pro Zeitraum ist eine komplexe Datenbankabfrage.

Wenn Sie die Option Hide archives link when no entries were made in that
timespan (requires counting entries)
aktivieren, können in der Ausgabe der
Monatsarchive diejenigen Monate übergangen werden, in denen Sie keine
Blog-Artikel geschrieben haben. Damit dies klappt, müssen Sie die Option
Anzahl der Einträge pro Kategorie anzeigen ebenfalls aktivieren.

5.1.4 - Kategorien: serendipity_categories_plugin

Kategorien
serendipity_categories_plugin

Dieses Plugin blendet die im Blog verfügbaren Kategorien ein. Wenn Sie
Ihr Blog als eine Art CMS betreiben, wird dieses Seitenleisten-Plugin daher
oft als Menü benutzt, um auf die jeweiligen Unterbereiche zu gelangen.

Ein Klick auf die im Plugin dargestellte Kategorie ruft dabei jeweils die
Artikelübersicht dieser Kategorie auf.

Konfigurationsoptionen sind:

Quelle der Kategorien Wie im Kapitel kategorie-leserechte auf Seite
kategorie-leserechte erwähnt, können für Kategorien besondere
Leserechte gelten, so dass nur eingeloggte Mitglieder einer Benutzergruppe
Einträge dieser Kategorie lesen können.
Standardmäßig stellt das Kategorien-Plugin alle Kategorien dar, die im
Blog angelegt sind - ganz gleich, ob dafür besondere Leserechte gelten,
oder nicht. Wenn ein Besucher auf eine solche Kategorie klickt, kann es
daher sein, dass er darin keine Artikel angezeigt bekommt. Deshalb ist es
möglicherweise wünschenswert, wenn einem Leser auch nur die Kategorien
angezeigt werden, zu denen er auch Leserechte besitzt.
Dafür ist das Auswahlfeld Quelle der Kategorien vorgesehen. Dort
wählen Sie eine Benutzergruppe aus, so dass nur Kategorien angezeigt
werden, die für die gewählte Benutzergruppe sichtbar sind. Standardmäßig
steht diese Option auf Alle Autoren. Sie müssen die Sonderoption
Derzeitiger Autor wählen, wenn die Kategorieliste sich nach den
Rechten des aktuell eingeloggten Besuchers richten soll.

Zeige nur Kategorien unterhalb... Da Kategorien in Serendipity schachtelbar sind, kann es recht komplexe
Kategorie- bzw. Menüstrukturen abbilden. Möglicherweise soll in der
Seitenleiste aber nur ein Teil dieser Struktur angezeigt werden. Daher
können Sie im Auswahlfeld Zeige nur Kategorien unterhalb...
festlegen, ab welcher Oberkategorie die Unterrubriken angezeigt werden.

Die gewählte Oberkategorie verstecken Wenn Sie im obigen Konfigurationsfeld eine Kategorie ausgewählt haben,
bestimmt die Option Die gewählte Oberkategorie verstecken, ob der
Name dieser Oberkategorie angezeigt (Nein) oder versteckt
(Ja) wird.

XML-Button Für die Artikel jeder einzelnen Kategorie kann ein RSS-Feed abonniert
werden. Dazu wird neben jedem Kategorienamen ein kleines Bild
eingeblendet, auf das ein Benutzer klicken kann, um den RSS-Feed der
Kategorie zu abonnieren.
Dieses Bild stellt üblicherweise ein universelles RSS-Icon dar, das von
zahlreichen Blogsystemen und Browsern einheitlich benutzt wird. Sie
können aber gerne in dem Konfigurationsfeld XML-Button ein
abweichendes Bild eintragen. Dazu müssen Sie den vollständigen HTTP-Pfad
(alles hinter http://www.example.com/) eingeben.
Wenn Sie kein Bild einbinden wollen, tragen Sie hier none ein.

Sortierung Zwei Auswahlfelder untereinander werden bei der Konfigurationsoption
Sortierung dargestellt. Das obere Auswahlfeld bestimmt, nach
welchem Kriterium die Liste der Kategorien sortiert werden soll.
Da Kategorien innerhalb Serendipity noch nicht beliebig sortiert werden
können, entscheidet also ausschließlich diese Sortierungsreihenfolge die
Reihenfolge der Darstellung in der Seitenleiste. Standardmäßig werden die
Kategorien nach dem Namen der Kategorie alphabetisch sortiert. Weitere
Möglichkeiten sind eine Sortierung nach Beschreibung oder der ID einer
Kategorie. Auch kann eine Sortierung nach keinem Kriterium
ausgewählt werden, in diesem Fall werden die Kategorien nach
Erstellungszeit in der Datenbank sortiert.
Das zweite Auswahlfeld gibt dabei an, ob die Kategorien absteigend (also
von A bis Z oder 0 bis 9) oder aufsteigend (von Z bis A bzw. 9 bis 0)
sortiert werden sollen.
Wenn Sie eine ganz individuelle Auflistung von Kategorien haben möchten,
gibt es zwei Möglichkeiten. Die erste Möglichkeit wäre, einfach eine
manuelle HTML-Liste der Kategorien zu erstellen und als HTML-Klotz
Seitenleisten-Plugin
(Seite htmlnugget) einzufügen. Dadurch
verlieren Sie natürlich die anderen dynamischen Möglichkeiten des Plugins.
Die zweite Möglichkeit wäre, das Feld Beschreibung einer
Kategorie zu missbrauchen, indem Sie nicht einen Text, sondern eine Zahl darin
aufschreiben. Durch die Eingabe einer Zahl für die Reihenfolge der
Kategorien können Sie in der Sortierung die Reihenfolge beeinflussen. Das
bedeutet jedoch auch, dass Sie dann keine normale textliche Beschreibung
der Kategorie mehr nutzen können. Da diese Beschreibung sonst aber nur
für Redakteure gilt, ist dies möglicherweise zu verkraften.

Besuchern erlauben, mehrere Kategorien gleichzeitig darzustellen? Wenn ein Besucher in der Darstellung des Plugins auf eine einzelne
Kategorie klickt, sieht er alle Einträge dieser Kategorie. In manchen
Fällen möchte ein Besucher aber gerne Inhalte mehrerer Kategorien auf
einmal ansehen.
Wenn Sie die Option Besuchern erlauben, mehrere Kategorien
gleichzeitig darzustellen
aktivieren, wird neben jeder Kategorie ein
Ankreuzfeld angezeigt. Der Besucher kann alle gewünschten Kategorien
markieren und danach auf den Button Los klicken, um die Auswahl zu
setzen.
Ist die Option deaktiviert, wird diese Auswahlbox nicht mehr angezeigt. Dennoch
kann ein Besucher spezielle URLs aufrufen, in denen er mehrere Kategorien auf
einmal ansehen kann (siehe Seite Permalinks-Kategorien). Die
Deaktivierung der Option nimmt dem Benutzer also höchstens die komfortable
Möglichkeit zu einer solchen Übersicht und beeinflusst die Darstellungsweise des
Plugins.

Kategorien verstecken, die nicht Teil des vom Besucher gewählten Kategoriebaums sind Wenn Sie eine verschachtelte Kategoriestruktur eingerichtet haben, stellt
diese eine Baumstruktur dar. Dabei sind jeweils einer Oberkategorie eine
oder mehrere Unterkategorien zugeordnet.
Wenn Sie Serendipity als eine Art CMS einsetzen, bei dem die Kategorien
Menüpunkten entsprechen, wünschen Sie sich möglicherweise, dass bei einem
Klick auf eine Unterkategorie die anderen "parallelen" Menüpunkte nicht
mehr angezeigt werden.
Stellen Sie sich folgenden Kategorienbaum vor: Oberkategorien A, B und C.
Jede Kategorie besitzt zwei Unterkategorien: A1 und A2, B1 und B2 sowie
C1 und C2. Wenn der Besucher nun auf die Unterkategorie A1 klickt, würden
Sie gerne nur die Kategorien A und A2 anzeigen. Die Kategorien und
Unterkategorien von B und C sollen verschwinden. Genau zu diesem Zweck
dient die Option Kategorien verstecken... Wenn diese Option
aktiviert ist, werden die nicht zum gewählten Kategoriebaum passenden
restlichen Kategorien nicht mehr in der Ausgabe des Plugins angezeigt.
Sie müssten dann zuerst wieder auf die Startseite zurück (oder auf andere
Menüpunkte klicken), um die ausgeblendeten Kategorien wieder zu sehen.

Anzahl der Einträge pro Kategorie anzeigen Wenn Sie möchten, dass die Anzahl der Artikel in einer Kategorie in der
Ausgabe des Plugins neben dem Kategorienamen angezeigt wird, können Sie
die Option Anzahl der Einträge pro Kategorie anzeigen aktivieren.
Beachten Sie auch hier, dass die Aktivierung die Geschwindigkeit des
Plugins stark beeinflusst, da das Zählen aller Artikel der Datenbank
einige Zeit beansprucht.
Wenn Sie Einträge zu mehr als einer Kategorie zuweisen, wird dieses
Plugin (leider) für jede zugewiesene Kategorie den Artikel erneut zählen.
Daher kann es passieren, dass die angezeigte Artikelzahl höher ist als
die in Wirklichkeit vorhandenen Artikel.

Smarty-Templating aktivieren Damit Sie dieses Plugin möglichst komfortabel anpassen können, gibt es
die Template-Datei
plugin_categories.tpl. Nur wenige Seitenleisten-Plugins verfügen
über ein eigenes Smarty-Template, da meistens Änderungen per CSS bereits
vollkommen ausreichen. Aus Performancegründen wird diese Template-Datei
daher auch standardmäßig nicht benutzt. Wenn Sie also ein eigenes Template
für das Aussehen der Kategorie-Auflistung benutzen wollen, müssen Sie die
Konfigurationsoption Smarty-Templating aktivieren auf Ja setzen.
Die eingesetzten Variablen dieser Datei werden auf Seite
plugin-categories-tpl erklärt.

5.1.5 - Blog abonnieren: serendipity_syndication_plugin

Blog abonnieren
serendipity_syndication_plugin

Das Plugin stellt die verschiedenen Optionen zum Abonnieren Ihres
Blogs mittels RSS-Feed dar. Dabei wird in der Seitenleiste für jedes
gewünschte Format ein Link eingebunden, den Ihre Besucher in ihr
RSS-Programm übernehmen können.

Neben dem Titel des Plugins in der Seitenleiste sowie der Aktivierung der
zahlreichen Feed-Formate bietet das Plugin folgende
Konfigurationsoptionen:

Volle Einträge mit erweitertem Text im RSS-Feed einbinden Ein RSS-Feed enthält üblicherweise nur den Text eines Artikels, den Sie
im Feld Eintrag erfasst haben. Der Erweiterte Eintrag ist
nicht Bestandteil der RSS-Feeds, und somit muss ein Benutzer Ihr Blog
besuchen, um den vollständigen Artikel lesen zu können. Dies ist häufig
gewünscht, um mehr Besucher auf die Webseite zu "locken". Um Ihren
Besuchern mehr Komfort zu bieten, können Sie aber auch den vollständigen
Artikel im RSS-Feed eintragen.
Mit dieser Konfigurationsoption können Sie dieses Verhalten beeinflussen.
Wenn Sie die Option Client aktivieren, kann, wie im Abschnitt
FullFeed auf Seite FullFeed erwähnt, der Leser selbst
bestimmen, ob er einen vollständigen RSS-Feed haben will oder nicht. Dazu
muss er Ihren RSS-Feed über die Datei rss.php?fullFeed=true
abonnieren. Dies ist natürlich relativ versteckt, so dass Sie Ihre Besucher
über diese mögliche Variante informieren müssten.

FeedBurner Feed Der Webservice http://www.feedburner.com/ ist ein Angebot von
Google, das Statistiken über die Auslieferung Ihres
RSS-Feeds und einige weitere Möglichkeiten
der Einbettung bietet. Bei einem FeedBurner-Feed kann der Aufruf des
RSS-Feeds im Browser direkt hübsch formatiert sein, statt
als für den Besucher merkwürdiger XML-Datensatz zu erscheinen. FeedBurner
ermöglicht auch die Einbindung von Werbung und verwandten Tags.
Bei FeedBurner müssen Sie sich separat anmelden und dem Service die URL
Ihres RSS-Feeds mitteilen. FeedBurner wird dann regelmäßig diese URL
aufrufen, Ihren RSS-Feed einlesen, ihn konvertieren und danach unter
einer eigenen FeedBurner-URL (die Sie konfigurieren können) anbieten.
Damit die Statistikzählung aktiviert wird, müssen Ihre Besucher künftig
diesen FeedBurner-Feed abonnieren und nicht den üblichen
Serendipity-Feed. Dazu dient die Einstellung Feedburner Feed im
Plugin. Wenn diese Variable auf Ja steht, wird der Link zum
Feedburner-Feed in Ihrer Seitenleiste angezeigt. In diesem Fall sollten
Sie alle anderen Feed-Formate deaktivieren, da die Besucher ja nur noch
den FeedBurner-Feed aufrufen sollen.
Wenn Sie die FeedBurner-Option lediglich auf Ja gestellt haben,
bleiben die URLs zu Ihren alten RSS-Feeds weiterhin intakt, sie werden
lediglich versteckt. Wenn Sie Ihre Besucher aber in Zukunft auch von
diesen verstecken URLs fernhalten wollen, stellen Sie die
FeedBurner-Option auf Erzwingen. Dadurch wird jeder Aufruf des
Serendipity-RSS-Feeds automatisch auf die FeedBurner-Feeds umgeleitet.
Zu welchem FeedBurner-Feed Serendipity verweist, stellen Sie am Ende der
Konfigurationsoptionen ein.

E-Mail-Adresse einbinden? Standardmäßig muss ein RSS-Feed zu jedem Autor eine E-Mail-Adresse
anzeigen. Dies wird leider gegenwärtig häufig von SPAM-Robotern
missbraucht, um E-Mail-Adressen im Internet zu sammeln. Daher können Sie
über die Option E-Mail-Adresse einbinden einstellen, ob Ihre
echte E-Mail-Adresse oder eine vorgetäuschte E-Mail-Adresse ([email protected])
eingebunden wird.
Beachten Sie, dass, wenn Sie im Anti-Spam-Plugin (Seite spamblock)
die gleichnamige Option aktiviert haben, diese ebenfalls die Darstellung der
E-Mail-Adressen beeinflusst.
In abgegrenzten Blogs (im Intranet zum Beispiel) macht die Aktivierung
dieser Option noch Sinn, beim Einsatz im Internet ist es jedoch
empfehlenswert, die Option auf Nein zu setzen.

Feld "managingEditor" Der RSS 2.0-Feed ermöglicht die Einbindung eines optionalen Feldes, das
die E-Mail-Adresse des leitenden Redakteurs eines Blogs enthalten kann.
Abonnenten des RSS-Feeds können sich so leicht an den inhaltlich
Verantwortlichen wenden. Auch hier gelten die obigen Bedenken,
dass enthaltene E-Mail-Adressen oft Spammern zum Opfer fallen könnten.

Feld "webMaster" Analog zu einem inhaltlich Verantwortlichen kann diese Option eine
E-Mail-Adresse des technisch Verantwortlichen enthalten.

Feld "ttl" (time-to-live) RSS-Feeds müssen von RSS-Readern regelmäßig abgerufen werden, damit neue
Artikel gefunden werden können. Üblicherweise wird ein solcher RSS-Reader
alle 30 oder 60 Minuten (je nach Einstellung Ihrer Besucher) Ihre
RSS-Feeds abrufen. Sie können über das Feld ttl (Gültigkeitsdauer) innerhalb des RSS-Feeds für RSS-Reader vorschlagen,
wie lange Ihr Feed üblicherweise gültig ist. Diesen eingestellten Wert
können RSS-Programme dann als Richtlinie für die
Aktualisierungshäufigkeit benutzen.
Der ttl-Wert wird in Minuten angegeben, wenn Sie also
üblicherweise nur einen Artikel pro Tag online stellen, können Sie ihn auf 1440
stellen (entspricht 24 Stunden). Damit können Sie dann möglicherweise einiges an
Traffic auf Ihrem Webserver sparen, wenn sich die RSS-Reader daran
halten.

Feld "pubDate" Ein RSS-Feed kann ein optionales pubDate-Feld enthalten, das
Auskunft über den Erstellungszeitpunkt des letzten Artikels gibt. Dieser
Wert wird von vielen RSS-Readern benutzt, um Aktualisierungen
festzustellen, daher raten wir von der Deaktivierung dieser Option ab.

XML-Button Neben jedem RSS-Feed wird in der Seitenleiste eine kleine Grafik
angezeigt, die standardmäßig dem Standardsymbol für RSS-Feeds
entspricht. Wenn Sie eine eigene Grafik benutzen wollen, können Sie den
Pfad zu der Grafik in dem Feld XML-Button eintragen. Die Grafik
muss sich dabei in Ihrem Template-Verzeichnis befinden, und der hier
eingetragene Pfad muss relativ zu Ihrem Template-Verzeichnis sein. Wenn
die Datei also in
/var/www/example.com/serendipity/templates/meinTemplate/bilder/MeinRSS.gif
liegt, tragen Sie im Konfigurationsfeld bilder/MeinRSS.gif ein.

Bild für den RSS-Feed Das RSS 2.0-Format ermöglicht es, ein eigenes Logo für den Feed
einzutragen. Diese Grafik kann dann von RSS-Readern in der Titelzeile
oder an anderen Stellen angezeigt werden. Wenn Sie hier nichts eintragen,
wird standardmäßig das Serendipity-Logo eingebunden.
Tragen Sie in diesem Feld die vollständige URL zu einem Bild ein, also
etwa http://www.example.com/MeinLogo.jpg. Diese Grafikdatei darf
maximal 144 Pixel breit und 400 Pixel hoch sein. Die genauen Maße
des Bildes müssen Sie in den beiden darunterliegenden Feldern
Breite des Bildes und Höhe des Bildes eintragen.

FeedBurner-ID, Titel, Bildunterschrift und Bild Die letzten vier Konfigurationsoptionen betreffen Sie nur, wenn Sie den
oben erwähnten FeedBurner-Service benutzen. Als ID müssen Sie die
im FeedBurner dargestellte ID Ihres Feeds eintragen, sie entspricht dem
Namen, den Sie in der URL http://feeds.feedburner.com/ID
sehen.
Wenn Sie den Feedburner-Feed aktiviert haben, wird ein Link dorthin im
Seitenleisten-Plugin angezeigt. Dieser Link wird begleitet von einem Bild
und einem Linktitel. Im Feld FeedBurner Titel können Sie
diesen Titel vergeben, der neben der Grafik dargestellt wird. Die Grafikdatei
müssen Sie mit einer vollständigen URL wie
http://www.example.com/feedburner.jpg eintragen. Wenn Sie dieses
Feld leer lassen, sehen Sie eine Standardgrafik, die den Besucherzähler
darstellt. Im Feld FeedBurner Bild-Unterschrift können Sie einen
Text hinterlegen, der angezeigt wird, wenn Sie mit der Maus über die
FeedBurner-Grafik fahren. Dort können Sie beispielsweise eine kurze
Beschreibung eintragen, warum Sie FeedBurner benutzen.

5.1.6 - Verwaltung des Blogs: serendipity_superuser_plugin

Verwaltung des Blogs
serendipity_superuser_plugin

Mit dem Plugin Verwaltung des Blogs binden Sie einen einfachen
Link im Frontend ein, auf den Sie als Redakteur klicken können, um ins
Backend zu gelangen. Das Plugin erkennt dabei automatisch, ob Sie schon
eingeloggt sind, und gibt dementsprechend entweder einen Link zum Login oder direkt
zum Backend aus.

Die einzige Konfigurationsoption des Plugins gibt an, ob Sie
das HTTPS zum Login benutzen möchten. Ihr Server muss HTTPS (siehe
Terminologie auf Seite https) unterstützen und ein gültiges Zertifikat
für den Server besitzen, auf dem Serendipity installiert ist. Nur bei der
Benutzung von HTTPS ist gewährleistet, dass Ihr Benutzername und Passwort
nicht im Klartext (sondern verschlüsselt) an den Server übertragen werden
und niemand Ihre Logindaten abfangen kann.

5.1.7 - Powered by: serendipity_plug_plugin

Powered by
serendipity_plug_plugin

Ein ebenfalls recht simples Plugin ist Powered by. Es gibt das
Logo von Serendipity mit einem Link zur Webseite
http://www.s9y.org/ aus und erlaubt es Ihren Besuchern, zu sehen,
welche großartige Software hinter Ihrem Blog steckt.

Die Konfigurationsoptionen des Plugins ermöglichen eine Feineinstellung,
ob man nur das Logo oder nur den Text anzeigen möchte.

5.2 - Weitere mitgelieferte Plugins

Weitere mitgelieferte Plugins

Neben den standardmäßig aktivierten Plugins können Sie natürlich auch
weitere Seitenleisten-Plugins installieren. Es folgt eine Liste der
Seitenleisten-Plugins, die bei Serendipity standardmäßig mitgeliefert
werden.

 

5.2.1 - Fremder RSS/OPML-Blogroll Feed: serendipity_plugin_remoterss

Fremder RSS/OPML-Blogroll Feed
serendipity_plugin_remoterss

Dieses leicht kryptisch klingende Plugin bietet eine recht einfache
Möglichkeit, die RSS-Feeds fremder Seiten einzubinden.

So können Sie in Ihrer Seitenleiste beispielsweise RSS-Feeds von
Newstickern einbinden oder auch die RSS-Feeds von diversen Webservices
wie del.icio.us oder last.fm einbinden, die Daten von diesem Webserver
anzeigen können.

Das Plugin lässt sich auch mehrfach installieren, so dass Sie beliebig
viele RSS-Feeds einbinden können.

Abgesehen von RSS-Feeds sind auch sogenannte OPML-Blogrolls möglich.
OPML-Dateien werden von vielen RSS-Readern erstellt und können Linklisten
enthalten, welche Blogs Sie lesen. Wenn diese OPML-Datei dann in Ihrer
Seitenleiste eingebunden wird, können Sie so relativ leicht automatisch
Ihre Lieblingsblogs auflisten.

Das RSS-Seitenleisten-Plugin agiert grundsätzlich wie ein eigenständiger
RSS-Reader: Ihr Blog wird in einem definierten Zeitraum die RSS-Feeds
selbständig abholen, einbinden und für einen gewissen Zeitraum
zwischenspeichern, um Bandbreite zu sparen. Damit das Plugin
funktionieren kann, gelten dieselben Rahmenbedingungen wie für Spartacus
(siehe Seite Spartacus): Ihr Server darf nicht von einer Firewall
für ausgehende Verbindungen blockiert werden.

Pro installiertem RSS-Feed-Plugin kann eine Vielzahl an Optionen
eingestellt werden:

Feed-Titel Im Feld Feed-Titel stellen Sie ein, wie die Überschrift des
RSS-Feeds innerhalb der Seitenleiste lauten soll.

Typ des Feeds In diesem Auswahlfeld legen Sie das Format des fremden Feeds fest. Sie
können zwischen RSS und OPML wählen, wobei für RSS-Feeds alle Versionen
von 0.91 bis 2.0 unterstützt werden, und von OPML die (einzig
existierende) Version 1.0.

RSS/OPML-URI Die Quell-URL des RSS-Feeds (oder des OPML-Feeds) müssen Sie in das Feld
RSS-OPML-URI eintragen. Geben Sie dort eine vollständige URL an,
also beispielsweise http://www.example.com/serendipity/rss.php?version=2.0.

RSS-Zielelement In einem RSS-Feed stehen mehrere Felder zur Verfügung, die das
Seitenleisten-Plugin darstellen kann. Im Feld title wird
beispielsweise der Titel eingebunden, das Feld content enthält den
Artikelinhalt. Manchmal kann es jedoch sein, dass die Felder für den
Inhalt content:encoded oder body lauten.
Damit das Seitenleisten-Plugin flexibel eingesetzt werden kann, müssen Sie den
Namen des Feldes angeben, das Serendipity in der Seitenleiste darstellen
soll. Die Liste der verfügbaren Felder können Sie in der Spezifikation
des jeweiligen RSS-Formats nachlesen [*] \cmd{http://www.rssboard.org/rss-2-0} für RSS 2.0; weitere Links finden
Sie auf http://de.wikipedia.org/wiki/RSS
. Sie können beliebig
viele Feldinhalte anzeigen lassen, indem Sie mehrere Felder mittels
, voneinander trennen.
Damit nicht zu viel Platz verschwendet wird, gibt Serendipity
üblicherweise nur den Titel (title) eines RSS-Feeds an.

Smarty-Templating aktivieren Die Darstellung des Feeds in der Seitenleiste kann über die
Smarty-Template-Datei
plugin_remoterss.tpl gesteuert werden, wenn die Option
Smarty-Templating aktivieren gewählt wurde. Andernfalls
benutzt das Plugin für seine Ausgaben die integrierte HTML-Darstellung.
Ein Beispiel für eine Template-Datei liegt im Verzeichnis
plugins/serendipity_plugin_remoterss/plugin_remoterss.tpl. Die dort
verfügbaren Variablen sind auf Seite plugin-remoterss.tpl
dokumentiert.
Grundsätzlich sollten Sie die Templating-Option nur dann benutzen, wenn Sie an
der Standardausgabe Anpassungen vornehmen wollen, die Sie nicht bereits mittels
CSS-Anpassung oder Konfiguration des Plugins beeinflussen können.

Anzahl der Einträge Standardmäßig zeigt das Seitenleisten-Plugin alle Einträge/Artikel eines
RSS-Feeds. Wenn Sie aber die Anzahl auf eine gewisse Zahl begrenzen
möchten, können Sie diese hier eintragen.

RSS-Link verwenden Jeder Artikel eines RSS-Feeds besitzt üblicherweise einen Link, der zu
der Quellseite des Artikels im Original-Blog (oder Webservice) führt.
Falls die Option RSS-Link verwenden aktiviert ist, wird dieser
Link in der Ausgabe des Plugins dargestellt.

HTML-Ausgabe escapen Es ist möglich (und erlaubt), dass ein Artikel eines (fremden) RSS-Feeds
HTML-Code enthält. Dies ermöglicht zB. Fettungen und eigene HTML-Links
in den dargestellten Artikeln.
Bei der Darstellung fremder RSS-Feeds könnte dies jedoch zu
Sicherheitsproblemen führen, denn immerhin kann so auch möglicherweise
bösartiges JavaScript in Ihrem Blog ausgeführt werden, das bei Ihren
Besuchern Logindaten oder anderes ausspäht (dies nennt man
XSS-Angriff).
Bei RSS-Feeds, deren Quelle Sie nicht absolut vertrauen, sollten Sie die
Option HTML-Ausgabe escapen unbedingt aktivieren. Wenn Sie jedoch
RSS-Feeds von vertrauenswürdigen Webservices einbinden (wie etwa Ihre
Bilderliste von Flickr), dann werden Sie diese Option deaktivieren
müssen, weil sonst keine Bilder angezeigt würden.

Display Date, Datumsformat Jeder Artikel eines RSS-Feeds besitzt üblicherweise ein
Veröffentlichungsdatum. Wenn Sie dieses zusätzlich unterhalb des
RSS-Artikels anzeigen wollen, stellen Sie die Option Display Date
auf Ja.
Die Option Datumsformat bezieht sich auf die Formatierung des
Veröffentlichungsdatums. Die Variablen, die Sie hier benutzen können,
sind auf http://php.net/manual/de/function.strftime.php zusammengefasst.

Zeichensatz Jeder RSS-Feed enthält Artikel in einem speziellen Zeichensatz. Ein
Großteil der RSS-Feeds ist im UTF-8-Zeichensatz verfasst, aber
einige Feeds (gerade deutsche) enthalten die Artikel im
ISO-8859-1-Zeichensatz.
Damit Serendipity fremde Artikel später im Blog mit korrekten
Sonderzeichen darstellen kann, müssen Sie Serendipity über die Option
Zeichensatz mitteilen, welchen Zeichensatz der RSS/OPML-Feed
benutzt. Sie können dies manuell relativ leicht herausfinden, indem Sie die fremde
URL aufrufen und in der XML-Ausgabe nach einer Angabe mit dem Titel
charset in der ersten Zeile der Datei suchen.
Leider benutzt Serendipity eine ältere RSS-Bibliothek zum Einlesen der
RSS-Feeds, daher wird Ihnen diese Aufgabe derzeit noch nicht vom System
abgenommen.

Link-Target Wenn Sie bei einem Artikel Hyperlinks zulassen (Option RSS-Link
verwenden
), wird ein Link standardmäßig im selben Browser-Fenster wie
Ihr Blog geöffnet. Über das HTML-Attribut namens target kann man
jedoch auch ein neues Browser-Fenster öffnen, wenn man bei der Option
Link-Target ein _blank einträgt.
Bitte beachten Sie, dass ein solches target=_blank dazu
führt, dass ein Besucher einen Link nicht so einfach nicht in einem neuen
Fenster öffnen kann und dass ihn dies möglicherweise stört. Neue
XHTML-Standards empfehlen daher, auf die Benutzung von target im
Optimalfall zu verzichten und dem Besucher die volle Kontrolle zu
überlassen, wie er einen Link in seinem Browser öffnen möchte.

Wann wird der Feed aktualisiert Theoretisch würde bei jedem Besuch Ihres Blogs der fremde RSS-Feed neu
aufgerufen und angezeigt. Da dies viel Bandbreite und auch viel Zeit
kosten würde, speichert das Plugin die Ausgaben des fremden Feeds für
einen gewissen Zeitraum. Diesen Zeitraum können Sie über die
Option Wann wird der Feed aktualisiert selber vorgeben, indem Sie
hier eine Dauer (in Sekunden) eintragen. Standardmäßig wird ein Feed für
drei Stunden gecached, bevor ein neuer Besucher Ihrer Webseite ihn neu
erzeugt.
Bei besonders häufig aktualisierenden RSS-Feeds können Sie dieses Limit
natürlich heruntersetzen.

Bullet Image Falls Sie gerne die einzelnen Artikel eines fremden RSS-Feeds voneinander
trennen wollen, können Sie in dem Feld Bullet Image eine beliebige
vollständige URL einer Grafikdatei eintragen. Diese Grafik wird dann nach
jedem Artikel angezeigt.

Textformatierung(en) durchführen Wenn die Option Textformatierung(en) durchführen aktiviert ist,
wird die Ausgabe des RSS-Feeds an alle bei Ihnen installierten
Textformatierungs-Plugins weitergereicht (siehe Seite
Textformatierungs-Plugins). Diese können beliebige Umwandlungen
vornehmen, die dann auch die Darstellung des RSS-Feeds beeinflussen.

5.2.2 - Event-Ausgabe Wrapper: serendipity_plugin_eventwrapper

Event-Ausgabe Wrapper
serendipity_plugin_eventwrapper

Das Plugin Event-Ausgabe Wrapper ist ein recht spezielles Plugin,
da es die Grenze zwischen Seitenleisten-Plugin und Ereignis-Plugin etwas
aufweicht.

Eigentlich ist es ausschließlich Seitenleisten-Plugins möglich, eine
Ausgabe in der Seitenleiste vorzunehmen. Ereignis-Plugins können nur auf
andere Bereiche und Funktionalitäten Serendipitys Einfluss nehmen, was
wiederum Seitenleisten-Plugins nicht erlaubt ist.

Seltene Fälle von Ereignis-Plugins bieten jedoch auch
die Möglichkeit an, eine spezielle Ausgabe in der Seitenleiste vorzunehmen. Diese Möglichkeit
wurde eher in frühen Versionen Serendipitys benutzt (zB. vom Plugin
"Link List" oder "Worte ersetzen"). Inzwischen nutzen fast alle
Plugins die einfachere Möglichkeit, ein zugehöriges Seitenleisten-Plugin
(siehe Gekoppelte Plugins ab Seite Gekoppelte Plugins) zu
bestimmen und dieses konzeptionelle Problem für Sie als Benutzer
einfacher zu lösen.

Wenn dieses Ausgabe-Wrapper-Plugin von einem anderen benötigt wird, finden Sie
einen Hinweis dazu in dem jeweiligen Plugin.

In der Konfiguration dieses Plugins können Sie das
Quell-Ereignis-Plugin, das eingebunden werden soll, über ein
Auswahlfeld bestimmen. Den Titel des Plugins in der Seitenleiste können
Sie ebenfalls in einem Eingabefeld eintragen.

Wenn Sie im Frontend keine Ausgaben zu dem gewählten Ereignis-Plugin
auffinden, bedeutet das lediglich, dass das gewählte Plugin keine
Ausgaben anbietet. Sie können also zB. zwar das Plugin
Textformatierung: Smilies auswählen, da dieses aber den
Event-Ausgabe Wrapper nicht unterstützt, werden Sie keine Ausgabe
sehen.

Für Techniker ist erwähnenswert, dass alles, was dieses Plugin tut, darin
besteht, die generate_content()-Methode eines Ereignis-Plugins
aufzurufen und die Ausgaben dieser Funktion an die für
Seitenleisten-Plugins übliche (gleichbenannte) Methode
generate_content() weiterzureichen. Aus Performance-Gründen (und
Separierungsgründen) gibt es keinen Event-Hook, um ein
Seitenleisten-Plugin zu emulieren.

5.2.3 - Aktuelle Einträge: serendipity_plugin_recententries

Aktuelle Einträge
serendipity_plugin_recententries

Das Plugin Aktuelle Einträge zeigt in der Seitenleiste eine kurze
Übersicht der neuesten Artikel in Ihrem Blog an. Dies ermöglicht eine
konzentrierte Übersicht der Artikel an zentraler Stelle, die ein Besucher
auch dann sieht, wenn er gerade die Detailseite eines Artikels anschaut.

Neben dem üblichen Seitenleisten-Titel und der Anzahl
an Artikeln, die eingebettet werden sollen, bietet das Plugin folgende besonderen
Optionen:

Angezeigte Einträge überspringen Wenn Sie die Option Angezeigte Einträge überspringen auf
Alle Anzeigen stellen, zeigt die Seitenleiste stets die letzten
aktuellen Einträge. Dies kann jedoch zu einer Dopplung führen, da Sie ja
auf der Startseite des Frontends bereits die letzten 15 Artikel anzeigen.
Wenn Sie also nur die aktuellsten Artikel anzeigen wollen und dabei die
auf der Startseite bereits angezeigten Einträge überspringen wollen,
wählen Sie die Option Einträge auf der Hauptseite überspringen.

Datumsformat Zu jedem Artikel wird das Erstellungsdatum angezeigt. Wie dieses
formatiert wird, tragen Sie im Feld Datumsformat ein. Die zur
Verfügung stehenden Variablen finden Sie auf
http://php.net/manual/de/function.strftime.php.

Kategorie Standardmäßig zeigt das Plugin die Artikel aller Kategorien chronologisch
sortiert an. Wenn Sie jedoch in der Seitenleiste nur die letzten Einträge
in einer speziellen Kategorie darstellen wollen, können Sie diese
spezielle Kategorie in dem Mehrfach-Auswahlfeld angeben. Mehrere
Kategorien können Sie hier auch wählen, indem Sie mit gedrückter
(Strg/Apfel)-Taste auf die Kategorien klicken.
Die Sonderoption Übergeordnete Kategorie bedeutet, dass als Quelle für
die Liste der aktuellen Einträge die Kategorie verwendet wird, die der Besucher
im Blog gerade aufgerufen hat.

Show Random Articles Wenn Sie eine zufällige Auswahl von Artikeln darstellen wollen, können Sie
die Option Show Random Articles aktivieren. Bei jedem Seitenaufruf
werden dann zufällig andere Artikel in der Seitenleiste angezeigt.

5.2.4 - Autoren: serendipity_authors_plugin

Autoren
serendipity_authors_plugin

Das Plugin Autoren stellt in der Seitenleiste eine Liste aller im
Blog eingetragenen Redakteure dar. Ein Klick auf einen Autor führt dann
zu der Übersicht der von ihm geschriebenen Artikel.

Die Konfigurationsoptionen des Plugins sind:

XML-Button Für jeden Autor steht ein eigener RSS-Feed-Link zur Verfügung, über den
Einträge dieses Autors abonniert werden können. Die Grafik muss sich
dabei in Ihrem Template-Verzeichnis befinden, und der hier eingetragene
Pfad muss relativ zu Ihrem Template-Verzeichnis sein. Wenn die Datei also
in /var/www/example.com/serendipity/templates/meinTemplate/bilder/MeinRSS.gif
liegt, tragen Sie im Konfigurationsfeld bilder/MeinRSS.gif ein.

Ermöglicht Besuchern, Einträge mehrerer Autoren gleichzeitig darzustellen Ähnlich wie bei der Liste aller Kategorien, kann in der Liste aller
Autoren vom Besucher eine Auswahl getroffen werden, welche Artikel er
dargestellt sehen will. Üblicherweise kann er mit dem Klick auf den Link
eines Redakteurs nur die Einträge eines einzelnen Redakteurs sehen.
Ist die Option Ermöglicht Besuchern, Einträge mehrerer Autoren
gleichzeitig darzustellen
aktiviert, wird neben jedem Redakteur ein
Ankreuzfeld angezeigt, das der Besucher für alle gewünschten Redakteure
markieren kann, um so die Übersicht der Artikel dieser Redakteursgruppe
lesen zu können.

Anzahl der Artikel neben dem Autor-Namen anzeigen Wenn Sie diese Option aktivieren, wird in Klammern hinter dem
Redakteursnamen die Anzahl der von ihm verfassten Artikel angezeigt.
Bitte beachten Sie, dass die Aktivierung dieser Zählung relativ
datenbankintensive Abfragen durchführen muss und daher möglicherweise zu
Geschwindigkeitseinbußen führen kann.

Nur Autoren mit mindestens X Beiträgen anzeigen Möglicherweise möchten Sie nur aktive Redakteure des Blogs aufführen.
Daher können Sie in dem Eingabefeld eine Mindestzahl an Beiträgen eintragen, die ein
Redakteur geschrieben haben muss, um in der Seitenleiste angezeigt zu
werden. Für diese Option gelten dieselben Performance-Bedenken wie bei
der vorherigen. Sollten Sie eine von beiden aktivieren, wird die
Aktivierung der anderen Option jedoch darüber hinaus keine
weiteren Einbußen zur Folge haben.

5.2.5 - HTML-Klotz: serendipity_html_nugget_plugin

HTML-Klotz
serendipity_html_nugget_plugin

Das Plugin namens HTML-Klotz ist wohl das meistunterschätzte
Plugin - sobald man es einmal einzusetzen weiß, ist es aus einem
Blog nicht mehr wegzudenken. Denn mit diesem Plugin können Sie
beliebiges HTML und beliebiges JavaScript in Ihre Seitenleiste einfügen.

Dieses Plugin lässt sich beliebig oft installieren und kann daher
flexibel positioniert werden. Der Einsatz eines HTML-Klotzes macht zudem
Dateiänderungen auf dem Server unnötig, denn alles kann über die
Plugin-Verwaltung eingestellt werden.

Pro HTML-Klotz gelten folgende Konfigurationsoptionen:

Titel Die Überschrift des HTML-Klotzes, die in der Seitenleiste angezeigt wird.
Wenn Sie den Titel leer lassen, wird kein Titel angezeigt. Dies ist
besonders dann hilfreich, wenn Sie ein JavaScript einfügen wollen, das
keine Ausgabe besitzt und sonst nur zur Anzeige eines leeren Klotzes
führen würde.
Der Titel eines Plugins wird zusätzlich in der Plugin-Verwaltung mit
ausgegeben, damit Sie mehrere HTML-Klötze voneinander unterscheiden
können.

Zusätzlicher Informationstext, der auf der Plugin-Oberfläche dargestellt wird In diesem Eingabefeld können Sie eine kleine Beschreibung angeben, die in
der Plugin-Verwaltung neben jedem HTML-Klotz angezeigt wird. Dies ist
besonders hilfreich in Fällen, bei denen ein HTML-Klotz ohne Titel
angelegt wurde.

Inhalt In diesem großen Eingabefeld tragen Sie den HTML-Code oder das JavaScript
ein, das Sie in der Seitenleiste darstellen wollen. Wenn Sie den
WYSIWYG-Editor in den Eigenen Einstellungen aktiviert haben, wird
hier die vom Eintrags-Editor bekannte Oberfläche angezeigt.
Beachten Sie, dass der WYSIWYG-Editor intern bereits HTML-Code speichert.
Würden Sie in ein WYSIWYG-Editor-Fenster HTML-Code eintragen, würde dies
später im Frontend "gedoppelt" angezeigt werden. Für eigenes HTML oder
JavaScript gilt daher, entweder den WYSIWYG-Editor vorübergehend zu
deaktivieren oder im Quelltext-Modus des Editors zu arbeiten.

Textformatierung(en) durchführen Die Ausgabe des Seitenleisten-Plugins wird auch stark von der Option
Textformatierung(en) durchführen beeinflusst. Ist diese Option
aktiviert, wird alles, was Sie im HTML-Klotz eingetragen haben, mit
denselben Textformatierungs-Plugins (siehe Seite
Textformatierungs-Plugins) verarbeitet, wie Sie es von ihren Artikeln kennen.
Besonders wenn Sie JavaScript oder eigenen HTML-Code in einem HTML-Klotz
einbinden wollen, müssen Sie unbedingt darauf achten, diese Option auf
Nein zu setzen. Andernfalls könnten destruktive Textformatierungen
auf Ihren Code angewendet werden, was dann zu einer Fehldarstellung
führen würde.

Wo soll dieses Plugin angezeigt werden Mit diesem Auswahlfeld legen Sie fest, an welcher Stelle ein HTML-Klotz
angezeigt werden soll: Überall, Nur Artikelübersicht oder
Nur Artikel-Detailansicht.
Speziellere Möglichkeiten, ein Seitenleisten-Plugin vor bestimmten
Benutzern zu verstecken, bietet das Plugin Seitenleisten
verstecken
(siehe Seite sidebarhider).

5.2.6 - Kommentare: serendipity_plugin_comments

Kommentare
serendipity_plugin_comments

Wenn Ihre Besucher Kommentare zu einem Beitrag hinterlassen, können Sie
als Redakteur diese relativ leicht über den Backend-Menüpunkt
Kommentare einsehen oder werden sogar per E-Mail darüber
benachrichtigt. Normale Besucher haben diese Möglichkeit nicht und
können daher entweder den RSS-Feed der letzten Kommentare abonnieren oder
müssten jeden Blog-Artikel individuell aufrufen, um sich über neue
Kommentare zu informieren.

Daher bietet das Seitenleisten-Plugin Kommentare eine einfache
Möglichkeit, die letzten Kommentare aller Artikel anzuzeigen und so für
den Besucher übersichtlich einzubinden.

Folgende Konfigurationsoptionen bietet das Plugin, abgesehen vom
Seitenleisten-typischen Titel:

Zeilenumbruch In der Seitenleiste steht meist nur begrenzt Platz zur Darstellung von
Text zur Verfügung. Gerade Kommentare können jedoch die zur Verfügung
stehende Breite übermäßig strapazieren. Daher bietet die Option
Zeilenumbruch die Möglichkeit, den Platzbedarf einzuschränken,
indem nach einer festgelegten Anzahl von Buchstaben ein harter Zeilenumbruch
eingefügt wird.
Der Zeilenumbruch wird dabei auch Wörter mittendrin trennen, um das Limit
nicht zu überschreiten. Dies ist notwendig, damit überlange Wörter
Ihrer Besucher (wie zB. "Coooooooooooooooooooool!") nicht das
Layout Ihrer Seite sprengen.
Leider bereitet der Zeilenumbruch gerade dann Probleme, wenn Besucher
lange Links posten, die dann auseinandergebrochen werden. Sollte dies bei
Ihnen häufig vorkommen, können Sie die Buchstabenanzahl des Zeilenumbruchs
auf eine hohe Zahl wie 999 setzen und dann den Zeilenumbruch dem Browser
überlassen. Dabei empfiehlt es sich dann, mittels CSS mögliche
Layoutprobleme zu verhindern. Fügen Sie dazu die Zeile
.plugin_comment_body { overflow: scroll } am Ende der Datei style.css Ihres gewählten Templates hinzu (siehe Kapitel
template-css). Dies wird den Browser dazu anweisen, überlange Wörter
durch Scrollbalken innerhalb der Seitenleiste anzuzeigen und nicht die ganze
Seitenleiste an die Wortbreite anzupassen.

Zeichen pro Kommentar Um nicht zu viel Platz zu beanspruchen, werden immer nur die ersten 120
Zeichen eines Kommentars in der Seitenleiste angezeigt. Dies reicht
meistens, um sich als Besucher einen Überblick zu verschaffen und bei
Interesse den vollständigen Kommentar in der Artikel-Detailseite zu
lesen. Im Eingabefeld Zeichen pro Kommentar können Sie diese
Zeichenanzahl vorgeben.

Anzahl an Kommentaren Üblicherweise zeigt das Plugin die letzten 15 Kommentare. Diese Anzahl
können Sie mit dem Eingabefeld Anzahl an Kommentaren verändern.

Datumsformat Zu jedem Kommentar wird das Erstellungsdatum mit angezeigt. Wie dieses
formatiert wird, tragen Sie im Feld Datumsformat ein. Die zur
Verfügung stehenden Variablen finden Sie auf
http://php.net/manual/de/function.strftime.php.

Typ Das Seitenleisten-Plugin kann sowohl Kommentare als auch Trackbacks
anzeigen. Über das Auswahlfeld Typ bestimmen Sie diese Art der
Anzeige. So können Sie beispielsweise auch zwei
Kommentar-Seitenleisten-Plugins installieren: eines, das die Trackbacks
anzeigt, und eines, das die Kommentare anzeigt.

Kommentatoren URL anzeigen bei... Über dieses Auswahlfeld können Sie bestimmen, ob die Homepage der Person, die
den Kommentar hinterlassen hat, in der Seitenleiste angezeigt werden soll. Sie
können wählen, ob die Homepage niemals, nur bei Kommentaren, nur bei Trackbacks
oder bei beidem angezeigt wird.

5.2.7 - Top Exits: serendipity_topexits_plugin

Top Exits
serendipity_topexits_plugin

Mittels des Ereignis-Plugins Links verfolgen (siehe Seite
trackexits) können Sie dafür sorgen, dass alle Links in Beiträgen
speziell maskiert werden. Wenn ein Besucher dann auf einen solchen Link klickt,
kann Serendipity dies statistisch erfassen.

Einen Link, der auf eine fremde Seite führt und damit das Blog verlässt,
nennt man Exit-Link. Diese formatiert
Serendipity dann wie
http://www.example.com/serendipity/exit.php?url_id=17&entry_id=18.

Anhand der Statistik können Sie also leicht herausfinden,
welche Links besonders beliebt bei Ihren Besuchern sind. Eben diese Statistik der
beliebtesten Links kann das Seitenleisten-Plugin Top Exits
anzeigen.

Bitte beachten Sie, dass, falls Sie das oben genannte Ereignis-Plugin
nicht installiert haben, Serendipity keine Statistik führt und
daher das Plugin auch keine Daten anzeigen kann.

Die Konfigurationsoptionen sind:

Wie viele Elemente sollen angezeigt werden Üblicherweise werden nur die zehn beliebtesten Links in der Seitenleiste
angezeigt. Mit dieser Option können Sie die Vorgabe verändern.

Top Exits/Referrers als Link anzeigen Wenn Sie diese Option auf Ja setzen, werden die beliebtesten Links
in der Seitenleiste so angezeigt, dass die Besucher direkt darauf klicken
können, um zu der jeweiligen genannten Seite zu gelangen. Ist die Option
auf Nein gestellt, werden die Seiten nur textlich aufgeführt, und
ein Besucher müsste die URL manuell eingeben.
Auch in der globalen Serendipity-Konfiguration (siehe Seite
trackreferrer) können Sie dieses Verhalten beeinflussen - wenn diese
Vorauswahl genutzt werden soll, müssen Sie Standard als Option einstellen.
Diese Option ist sehr hilfreich, weil Top-Exits seltener von
Spammern genutzt werden können - denn schließlich sind die hinterlegten
Links meist nur von Redakteuren in das System eingetragen. Trickreiche
Spammer können jedoch die Statistik-Routine von Serendipity
missbrauchen, so dass ihre Seiten auch in die Statistik aufgenommen werden, ohne dass Sie in einem Ihrer Artikel darauf verweisen.

Kalenderintervall Meist macht die Statistik der beliebtesten Links nur Sinn, wenn sie sich
auf einen gewissen Zeitraum beschränkt. Besucher interessiert womöglich
nicht, welche Seiten seit Eröffnung Ihres Blogs am häufigsten besucht
wurden, sondern eher, welche Links der letzten Zeit interessant waren.
Dafür dient die Option Kalenderintervall. Hier tragen Sie den
Zeitraum (in Tagen) ein, der vom aktuellen Besuchsdatum aus gerechnet für
die Datenbasis der Links herangezogen wird.

5.2.8 - Top Referrer: serendipity_topreferrers_plugin

Top Referrer
serendipity_topreferrers_plugin

Ähnlich wie das Top Exits-Plugin zeigt Ihnen das Top
Referrer
-Plugin eine Liste an URLs an. Diesmal sind es jedoch nicht die
Links, die Ihre Besucher angeklickt haben, sondern die Webseiten, von
denen aus Besucher zu Ihrem Blog gekommen sind.

Um dies auszuwerten, bietet jeder Browser die Möglichkeit, die
zuletzt besuchte Seite im Webseitenaufruf mit zu übertragen. Manche Browser oder
auch Proxies Ihrer Besucher verschleiern oder entfernen diese Angabe aus
Datenschutzgründen. Genauso ist es für Spammer möglich, beliebige URLs
als Quellseite vorzutäuschen, daher hat in heutigen Zeiten diese
Statistik oft nur noch ideellen Wert.

Für die Darstellung der Referrer gelten dieselben Optionen wie für das
Top-Exits-Plugin, beziehen sich dabei jedoch auf die Ausgabe der
verweisenden URLs und nicht der beliebtesten Links.

5.2.9 - Shoutbox: serendipity_plugin_shoutbox

Shoutbox
serendipity_plugin_shoutbox

Besucher können zu Artikeln Ihres Blogs relativ leicht kommentieren. Wenn
sie aber eher abstrakt und Artikel-ungebunden ihre Meinung über Ihr Blog
äußern wollen, ist dies meist nur über ein Kontaktformular oder
Gästebuch möglich.

Eine einfache Alternative dazu bietet das
Shoutbox [*] Eine Shoutbox ist die
sprichwörtliche Seifenkiste, auf die man sich gerne einmal stellt, wenn man seine Meinung in die
Welt hinausposaunen möchte.
-Seitenleisten-Plugin. Es zeigt in der Seitenleiste
eine Eingabebox an, in der Besucher direkt Text eingeben können, der danach
unterhalb der Shoutbox für alle Besucher angezeigt wird.

Als Administrator können Sie direkt im Frontend unpassende Kommentare
löschen. Die Shoutbox zeigt kein Archiv von vergangenen Einträgen an,
sondern immer nur eine konfigurierbare Anzahl von Kommentaren Ihrer
Benutzer. Daher kann dies auch oft als eine Art Echtzeit-Chatbox
zweckentfremdet werden.

Beachten Sie, dass dieses Plugin keinen besonderen Schutz gegen Spam
bietet.

Für die Konfigurationsoptionen gelten dieselben Möglichkeiten wie bei
dem Kommentar-Plugin (Seite Plugin-Kommentare).

Das Plugin erstellt die Datenbanktabelle serendipity_shoutbox mit den
Feldern id (fortlaufender Primärschlüssel), timestamp (Datum des
Kommentars), ip (IP des Kommentators) und body (Text).

5.2.10 - Links des Artikels: serendipity_plugin_entrylinks

Links des Artikels
serendipity_plugin_entrylinks

Das Plugin Links des Artikels wird nur auf Artikel-Detailseiten
angezeigt und bleibt in der Übersichtsseite unsichtbar. Ruft man eine
Detailseite auf, wird in dieser Box eine Übersicht aller im Artikel
enthaltenen Links angezeigt.

Die relevanten Konfigurationsoptionen sind:

Top Exits Ist diese Option aktiviert, werden in dem Seitenleisten-Plugin alle Links
des Beitrags angezeigt.

Top Referrer Wenn Sie diese Option aktivieren, werden alle auf die Artikel-Detailseite
verweisenden Webseiten aufgeführt.

Anzahl eingehender Links Mit dieser Option bestimmen Sie, wie viele Links der beiden
Darstellungsmöglichkeiten (Exits, Referrer) jeweils angezeigt werden sollen.

Reihenfolge eingehender Links Die verwendeten Links (Exits, Referrer) können entweder nach
Häufigkeit oder Datum sortiert werden. Dies zeigt also
entweder die neuesten oder die populärsten Links am Anfang.

5.2.11 - Geschichte: serendipity_plugin_history

Geschichte
serendipity_plugin_history

Mit dem Seitenleisten-Plugin Geschichte können Sie im Frontend auf
ältere Artikel Ihres Blogs hinweisen, indem Sie eine (von mehreren
Optionen abhängige) Liste darstellen.

Intro, Outro Sie können vor (Intro, Einführung) und nach (Outro,
Nachwort) der Auflistung der älteren Artikel einen beliebigen Text in die
Ausgabe des Seitenleisten-Plugins aufnehmen, um Ihren Besuchern zu
erklären, warum Sie eine Liste älterer Einträge aufführen. So könnten Sie
als Intro zB. den Text "In einer Galaxie, weit weit entfernt ..."
den Artikeln voranstellen. Obwohl hierfür nur eine kleine
Eingabezeile vorgesehen ist, können Sie hier beliebig langen Text (auch
mit HTML-Formatierung) eintragen.

Überschriftenlänge Wenn Ihre Artikel öfter besonders lange Überschriften enthalten, würden diese
den Rahmen möglicherweise sprengen. Für diesen Fall können Sie die
Zeichenlänge eines Artikeltitels einschränken.

Vorgefertigter Zeitrahmen Standardmäßig zeigt das Plugin Einträge an, die genau vor einem Jahr
geschrieben wurden. Ist kein solcher Artikel vorhanden, zeigt das Plugin
keinen Artikel an.
Wenn Sie einen anderen Zeitraum wünschen, können Sie das Auswahlfeld
Vorgefertigter Zeitrahmen auf Anderer stellen und die
darunterliegenden Optionsfelder anpassen.

Mindestalter Wenn Sie einen eigenen vorgefertigten Zeitrahmen eingestellt haben,
tragen Sie in dieses Feld ein, wie alt ein Artikel mindestens sein muss
(in Tagen gemessen), um in der Ausgabe des Plugins berücksichtigt zu
werden.

Höchstalter Analog zu dem Mindestalter eines Artikels können Sie hier das maximale
Alter eines Eintrages angeben.
Wenn Sie als Mindestalter beispielsweise 12 eintragen und als
Höchstalter 20, würden Sie am 30.06.2007 alle Artikel sehen, die
zwischen dem 18.06.2007 und dem 10.06.2007 verfasst wurden.

Anzahl Beschränkt die Anzahl der Einträge, die in der Seitenleiste angegeben
werden. Wenn Sie mehr als die hier festgelegte Anzahl an Einträgen im
definierten Zeitraum erstellt haben, werden also nur die ersten Artikel
davon angezeigt.

Ganze Einträge Standardmäßig zeigt das Plugin nur die Überschriften der Artikel des
gewählten Zeitraums an. Wenn Sie diese Option auf true stellen,
wird auch der Beitragstext mit angezeigt.

Datum anzeigen Wenn Sie diese Option auf true stellen, wird auch das Datum eines
Artikels angezeigt.

Show author's name Den Autorennamen eines Artikels können Sie anzeigen, indem Sie die
Option Show author's name auf true stellen.

Datumsformat Sofern Sie die Option Datum anzeigen aktiviert haben, können Sie
hier das Datumsformat einstellen. Die zur Verfügung stehenden Variablen
finden Sie auf http://php.net/manual/de/function.strftime.php.

5.3 - Auswahl externer Plugins

Auswahl externer Plugins

Über die mitgelieferten Plugins hinaus finden Sie auch eine große Auswahl
an Plugins über http://spartacus.s9y.org/. Eine Auswahl an häufig
genutzten Seitenleisten-Plugins finden Sie auf den folgenden Seiten.

 

5.3.1 - Externe PHP-Anwendung: serendipity_plugin_externalphp

Externe PHP-Anwendung
serendipity_plugin_externalphp

Oft kann es vorkommen, dass Sie eine bestehende kleine PHP-Anwendung in
Ihrer Seitenleiste einbinden wollen, also beispielsweise einen
Shoutbox-Ersatz, ein Zufallszitat oder auch eigenen Counter-Code.

Grundsätzlich ist es empfehlenswert, solche Anwendungen mit einem eigenen
Seitenleisten-Plugin einzubinden (siehe Seite pluginapi ff.).

Für Fälle, in denen Ihnen das zu kompliziert erscheint, können Sie das
Plugin Externe PHP-Anwendung installieren. Dieses ermöglicht
Ihnen, mit einem PHP-include-Befehl ein anderes PHP-Script auf
Ihrem Server aufzurufen.

Bitte beachten Sie, dass dieses Plugin ein großes Sicherheitsrisiko
darstellt. Daher dürfen nur Administratoren (entsprechend dem
Benutzerrang eines Redakteurs) ein derartiges Plugin einbinden und
konfigurieren.

Eine Einbindung mittels dieses Plugins muss nicht unbedingt bei jedem
beliebigen PHP-Script funktionieren. Wenn das fremde PHP-Script zB.
Datenbankverbindungen kappt, globale Namensräume überschreibt oder mit
von Serendipity genutzten Funktionsnamen kollidiert, kann es zu Problemen
kommen. In einem solchen Fall müssen Sie sich leider an den Autor des
fremden Scripts wenden.

Für Programmierer gilt: Das Plugin setzt den include-Befehl
innerhalb einer Klassenmethode (generate_content()) ein. Globale
Variablen können daher nicht auf die übliche Weise angesprochen werden,
sondern müssen entweder vorher mittels global $variable in den
Namensraum importiert oder zentral via $GLOBALS['variable']
angesprochen werden.

In der Konfiguration des Plugins tragen Sie den vollständigen Pfad zu
einer Datei ein. Benutzen Sie dafür die Verzeichnisstruktur der Datei auf
dem Server, also beispielsweise
/var/www/example.com/andereScripts/meinScript.php. Wenn Ihr Server
die PHP-Option allow_url_fopen aktiviert hat, können Sie anstelle
eines Dateisystem-Pfades auch eine URL eintragen. Wenn Sie eine
URL einbinden, wird lediglich die Ausgabe dieser URL im Plugin
dargestellt - das Script muss also für eine derartige Verwendung
vorgesehen sein.

Die Konfigurationsoption Textformatierung(en) durchführen gibt an,
ob die Ausgabe des fremden PHP-Scripts an Textformatierungs-Plugins von
Serendipity weitergereicht werden soll, um die Ausgabe genauso zu
formatieren wie einen redaktionellen Artikel. Die Textformatierungen
richten sich dabei nach den von Ihnen installierten Plugins, also zB.
der Umwandlung von Smiley-Zeichen in echte Grafiken und weitere (siehe
Seite Textformatierungs-Plugins).

5.3.2 - Flickr badge: serendipity_plugin_flickrbadge,
FLICKR Sidebar-Plugin: serendipity_plugin_flickr

Flickr badge, FLICKR Sidebar-Plugin
serendipity_plugin_flickrbadge, serendipity_plugin_flickr

Der Webservice http://www.flickr.com/ ermöglicht es seinen
Benutzern, eigene Bildergalerien komfortabel zu verwalten. Zudem bietet
Flickr dabei zahlreiche Einbindungsmöglichkeiten über eine Schnittstelle
an.

Serendipity besitzt zwei Seitenleisten-Plugins, mit denen man seine
eigenen Bilder bei Flickr in der Seitenleiste anzeigen kann. Dafür muss
Ihr Webserver natürlich ausgehende Verbindungen zum Flickr-Webserver
erlauben, darf also nicht durch eine Firewall blockiert werden.

Flickr badge ist ein aktuelleres Plugin, das PHP5 auf Ihrem
Webserver benötigt und sonst keine weiteren Voraussetzungen besitzt.

Das FLICKR Sidebar-Plugin ist auch auf PHP4-Webservern benutzbar,
dafür müssen Sie aber selbständig eine fremde Bibliothek herunterladen.
Diese Bibliothek nennt sich PEAR::Flickr_API [*] \cmd{http://code.iamcal.com/php/flickr/readme.htm}. Laden
Sie sich das ZIP-Paket der Bibliothek herunter, entpacken Sie die Datei
API.php aus dem Unterverzeichnis pear/Flickr/ und laden Sie sie in
Ihr Serendipity-Verzeichnis bundled-libs hoch. Danach muss sich
also auf Ihrem Server eine Datei bundled-libs/Flickr/API.php in
Ihrem Serendipity-Stammverzeichnis befinden. Diese wird dann von Ihrem
Plugin später eingebunden und verwendet, um mit Flickr zusammenzuarbeiten.
Wenn Ihnen diese Datei fehlt oder Sie sie in ein falsches Verzeichnis
hochgeladen haben, erhalten Sie eine Fehlermeldung in der Seitenleiste,
und das Plugin wird nicht funktionieren.

In den Konfigurationsoptionen beider Plugins müssen Sie den
Flickr-API-Schlüssel eintragen. Wenn Sie bei Flickr eingeloggt sind,
können Sie diesen unter http://www.flickr.com/services/api/keys/
einfach beantragen und später in der Konfigurationsoberfläche eintragen.

Das Flickr badge-Plugin ermöglicht weiterhin, die Anzahl der
Bilder insgesamt und die Anzahl der dargestellten Bilder pro Zeile
festzulegen.
Dabei werden die chronologisch aktuellsten Bilder
ausgewählt. Das Plugin erstellt selbständig einen Zwischenspeicher
(Cache) der letzten Bilder, der stündlich aktualisiert wird.

Im FLICKR Sidebar-Plugin können Sie einige weiterreichende
Optionen einstellen, die die Größe und das Format der Vorschaubilder
regeln sowie die Möglichkeit geben, die Dauer der Zwischenspeicherung selbst zu
bestimmen.

Welches Plugin Sie wählen, ist hauptsächlich von den Rahmenbedingungen
Ihres Webservers abhängig: Wer über PHP5 verfügt und keine externen
Bibliotheken herunterladen möchte, sollte das Flickr badge-Plugin
verwenden. Wer etwas mehr Flexibilität bei der Bildgröße benötigt, über
kein PHP5 verfügt oder den höheren Installationsaufwand nicht scheut, dem
sei das FLICKR Sidebar-Plugin ans Herz gelegt.

Zuletzt bietet Flickr aber auch noch einen RSS-Feed oder einen
JavaScript-Schnipsel an, die Sie auch mittels des Plugins Fremder
RSS/OPML-Blogroll Feed
(Seite remoterss) oder des HTML-Klotzes
(Seite htmlnugget) anzeigen können. Weitere Hinweise zu den
Einbindungsmöglichkeiten finden Sie auf der Flickr-Seite unter
http://www.flickr.com/services/feeds/.

5.3.3 - Social Bookmarks-Plugin: serendipity_plugin_socialbookmarks

Social Bookmarks-Plugin
serendipity_plugin_socialbookmarks

Das Social Bookmarks-Plugin ermöglicht es Ihnen, Ihre bei externen
Anbietern geführten Lesezeichen in Ihrem Blog darzustellen. Es gibt zahlreiche
Webservices (del.icio.us, ma.gnolia, furl.net, linkroll, Mister Wong),
bei denen eine Community untereinander ihre
Lieblings-Internetseiten oder Neuigkeiten tauschen und veröffentlichen
kann. Häufig gibt es für Ihren Browser eigenständige Symbolleisten oder
Extensions, mit denen Sie komfortabel einen Link zu Ihrem Profil bei einem
derartigen Dienstleister hinzufügen können. Der Vorteil (abgesehen von der
Community) dabei ist, dass Sie Ihre Lesezeichen so einfach von einem
beliebigen Rechner im Internet aufrufen können.

Wenn Sie die Lesezeichen in Ihrem Blog einbinden, können Sie Ihre
Besucher darüber informieren, welche Seiten Sie gerade interessant
finden.

Die meisten Webservices bieten eigenständige JavaScripts an, die Sie auf
Ihrer Webseite einbinden können. Da dies bei der Benutzung mehrerer
Services leicht unübersichtlich werden kann, nimmt Ihnen das
Serendipity-Plugin einiges an Arbeit ab.

Das Plugin können Sie beliebig oft installieren, und es muss jeweils immer
für einen gewünschten Webservice konfiguriert werden. Damit das Plugin
die Daten der Webservices per RSS-Feed einlesen kann, darf Ihr Webserver
nicht von einer Firewall bei ausgehenden Verbindungen blockiert werden.

Folgende Konfigurationsoptionen stehen zur Auswahl:

Service In dem Auswahlfeld Service müssen Sie auswählen, welchen
Webservice Sie ansprechen wollen. Vom gewählten Service sind einige der
weiteren Konfigurationsoptionen abhängig.

Benutzername Bei jedem der verfügbaren Webservices haben Sie einen eindeutigen
Benutzernamen ausgewählt oder zugewiesen bekommen. Diesen müssen Sie im
Feld Benutzername eintragen, um die Links des gewählten Benutzers
anzuzeigen.
Selbstverständlich müssen Sie hier nicht unbedingt Ihren eigenen Benutzernamen
eintragen. Wenn Sie die Links einer anderen Person besonders wertvoll
finden, können Sie auch deren Lesezeichen anzeigen.

Anzahl der darzustellenden Links Das Plugin kann höchstens die Anzahl der Lesezeichen einbinden, die im
RSS-Feed des jeweiligen Benutzers vorhanden sind. Abhängig vom Service
sind dies meist die letzten 30 Links. Im Feld Anzahl der
darzustellenden Links
können Sie die Anzahl der ausgegebenen Links daher
weiter einschränken. Ein höherer Wert ist prinzipiell nutzlos und kann nicht
mehr Links als die verfügbare Anzahl anzeigen.

Wann soll der Feed aktualisiert werden Damit das Plugin nicht bei jedem Seitenaufruf des Besuchers neu
ausgeführt werden muss, können die Ausgaben zwischengespeichert werden.
Im Feld Wann soll der Feed aktualisiert werden tragen Sie die
Anzahl der Stunden ein, für die ein Feed zwischengespeichert werden kann.
Erst nach Ablauf dieser Zeit wird der Webservice erneut angefragt.

Zeig "mehr"-Verknüpfung Da der RSS-Feed meistens nicht alle verfügbaren Links beinhaltet, können
Sie Ihren Besuchern einen Link zu den weiteren Lesezeichen des
dargestellten Profils anbieten. Wenn Sie diese Option aktivieren, wird
dieser "mehr"-Link eingebettet.

Tags anzeigen Jedem Lesezeichen können Sie bei der Erfassung auf den Seiten des
Webservices eine Liste von Stichwörtern zuweisen, die das Lesezeichen
identifizieren. Mit Hilfe dieser Tags ist es leicht
möglich, andere Lesezeichen weiterer Benutzer anzuzeigen, die ähnliche
Stichwörter benutzt haben.
Wenn Sie die Option Tags anzeigen aktivieren, werden Ihnen die
zugewiesenen Schlüsselwörter jedes Lesezeichens mit angezeigt.
Andernfalls würden Sie nur den Link selbst sehen.

Feed-Einstellungen Üblicherweise wertet das Plugin den RSS-Feed aus, der die aktuellsten
Lesezeichen enthält. Sie können aber auch eine andere Quelle
benutzen. Neueste Lesezeichen aller Benutzer zeigt die aktuellsten
Lesezeichen des Webservices an, die unabhängig vom Benutzer gerade
erfasst werden. Bei fast allen Webservices werden mehrere hundert
Lesezeichen pro Minute erfasst, daher hat diese Option eher wenig
Informationswert.
Populärste Lesezeichen der letzten 24 Stunden ist daher meist
sinnvoller, wenn Sie neue, beliebte Lesezeichen aller
Benutzer des Webservices anzeigen wollen.
Speziell für den del.icio.us-Webservice gibt es die Option Meine
Tagcloud
. Dabei wird anstelle der Liste der Lesezeichen nur eine Liste
aller vergebenen Schlagwörter angezeigt. Die Schlagwörter sind dabei in
ihrer Schriftgröße proportional zur Häufigkeit, mit der Sie sie
eingesetzt haben. Besonders groß formatierte Schlagwörter
vergeben Sie also sehr häufig, die sehr klein geschriebenen Schlagwörter
nur selten.

Vorschaugrafiken anzeigen (ma.gnolia) Der Webservice ma.gnolia bietet eine kleine Vorschaugrafik der Webseite
an, die Sie als Lesezeichen gespeichert haben. Wenn Sie die Option
Vorschaugrafiken anzeigen aktivieren, wird diese Grafik anstelle
des Lesezeichen-Texts angezeigt, um dem Besucher bereits einen optischen
Vorgeschmack auf die Seite geben zu können.

Zusätzliche Parameter für die Einstellung "Meine Tagcloud" Wenn Sie für die Feed-Einstellungen die Option Meine
Tagcloud
gewählt haben, können Sie einige Parameter für die Formatierung
der Schlagwortliste vornehmen. Eine Auflistung aller verfügbaren
Parameter finden Sie unter http://del.icio.us/help/tagrolls.

5.3.4 - AdSense: serendipity_plugin_google_adsense

AdSense
serendipity_plugin_google_adsense

Google AdSense [*] \cmd{http://www.google.com/adsense} ist ein
Angebot von Google, mit dem Sie Werbeanzeigen von Googles Werbepartnern
auf Ihrer eigenen Seite einbinden können.

Dabei ruft der Besucher (also NICHT Ihr Server selbst!) ein JavaScript
auf, das eine Liste von Werbeanzeigen (meist abhängig vom Inhalt Ihres
Blogs) darstellt.

Für jeden Klick Ihrer Besucher auf eine solche Werbung erhalten Sie von
Google etwas Geld, das Ihnen ab Erreichen eines Mindestbetrags
überwiesen wird.

Google wählt dabei die Anzeigen der Werbepartner nach meist seriösen
Kriterien aus. Sie sollten sich jedoch gut überlegen, ob Sie auf Ihrem
Blog tatsächlich Werbung einbinden wollen. Bei deutschen Blogs führt dies
zum einen oft dazu, dass Ihr Blog dadurch als kommerzielles
Angebot
eingestuft wird und Sie unter diesem Gesichtspunkt für die
Inhalte Ihres Blogs verantwortlich sind. Etwaige Verstöße gegen das
Urheberrecht werden bei kommerziellen Angeboten weitaus härter geahndet,
als es bei privaten Blogs der Fall ist.

Wenn Ihr Blog tatsächlich kommerzieller Natur ist, ist auch hier der
Einsatz von Werbung mit Vorsicht zu genießen. Da Sie nur eingeschränkte Kontrolle
über die angezeigte Werbung haben, könnte es leicht passieren, dass
Werbung der Konkurrenz auf Ihren Seiten eingebunden wird.

Für die Einbindung von Werbung spricht natürlich die finanzielle
Verdienstmöglichkeit - wägen Sie jedoch stets die Nachteile ab und
informieren Sie sich am besten vorher ausführlich über Google AdSense.

Um das JavaScript von Google AdSense einzubinden, bietet Google selbst
bereits ein Tool zur Erzeugung des Codes an. Diesen Code könnten Sie dann
per Kopieren & Einfügen in einen HTML-Klotz (siehe Seite
htmlnugget) übernehmen. Der Vorteil des Google-Tools ist, dass
Sie dort die Farbe und andere Optionen zum Aussehen der Werbung
einstellen können.

Das Google AdSense-Seitenleisten-Plugin vereinfacht die Einbindung
etwas, indem Sie keinen Code selbst einfügen müssen. Stattdessen tragen
Sie bei der Konfiguration des Plugins lediglich Ihre AdSense-ID ein und
wählen das grobe Anzeigenformat sowie die Anzahl der gewünschten
Werbeanzeigen. Leider ist es aufgrund der Lizenzbedingungen von Google
nicht erlaubt, dass das Plugin Ihnen dieselben Formatierungsmöglichkeiten
wie das Google-Tool anbietet.

Auch vom Google AdSense-Plugin können Sie mehrere verschiedenartig
konfigurierte Plugins installieren und frei in der Seitenleiste
verteilen. Bei der Verwendung mehrerer Werbeblöcke können Sie die
Konfigurationsoption Kanal (Channel) dafür benutzen,
unterschiedlich bei Google konfigurierte Werbe-Themenkanäle anzuzeigen.
So könnten Sie in der linken Seitenleiste nur Werbung zu
Lifestyle-Produkten anzeigen und in der rechten Seitenleiste ein anders
konfiguriertes Plugin nur mit Technikprodukten. Gehen Sie jedoch sparsam
mit Werbeblöcken um, da Sie sonst Ihre Besucher vergraulen.

5.3.5 - Show Entries in sidebar: serendipity_plugin_showentries

Show Entries in sidebar
serendipity_plugin_showentries

Bereits mittels der Plugins Geschichte (Seite
serendipity-plugin-history) und Aktuelle Einträge (Seite
serendipity-plugin-recententries) können Sie in der
Seitenleiste auf ältere Artikel verweisen.

Mit beiden Plugins ist es jedoch nicht möglich, individuelle
Formatierungen durchzuführen oder die Artikel komplett anzuzeigen. Hier
schafft das Plugin Show Entries in sidebar Abhilfe.

Es ist besonders dann sinnvoll, wenn Sie eine Artikelliste nach eigenen
Vorgaben gestalten wollen oder wenn Sie kurze Einträge einer speziellen
Kategorie anzeigen wollen. Stellen Sie sich vor, Sie schreiben Artikel in
der Kategorie Meine Einkäufe und fassen dort in kurzen Sätzen
zusammen, welche Lebensmittel Sie heute gekauft haben. In der normalen
Artikelübersicht würden solche Einträge womöglich ziemlich leicht
übersehen werden, daher möchten Sie diese Einkäufe in der Seitenleiste
einbinden.

Ein weiterer Einsatzzweck des Plugins wird in der Plugin-Beschreibung
erwähnt: Good for Sidebar Moblogging. Moblogging bezeichnet dabei
die Möglichkeit, einen Blog-Artikel via E-Mail zu verfassen und
unterwegs an das eigene Blog zu schicken. Das Blog kann dann mittels
Popfetcher-Plugin (siehe Seite serendipity-event-popfetcher) die E-Mails von
einem Server abrufen und automatisch importieren und erspart es Ihnen dadurch,
einen Artikel mittels eines Browsers erstellen zu müssen. Derart erstellte
Artikel könnten Sie mit dem hier beschriebenen Plugin Show Entries in sidebar
komfortabel und abgesetzt in der Seitenleiste anzeigen.

Auch dieses Plugin ist beliebig oft installierbar und kann daher
für mehrere Seitenleisten-Positionen eingebunden werden.

Das Plugin formatiert die Ausgabe mittels Smarty-Template-Datei plugin_showentries.tpl.
In dieser Datei können Sie auf alle Eintrags-Variablen
(array $entriesarray $entry.*) zugreifen und so mit
HTML beliebige Layouts umsetzen. Details zu Smarty-Templates finden Sie
ab Seite Smarty-Templates.

Das Plugin bietet folgende Konfigurationsoptionen:

Show how many entries Diese Einstellung legt fest, wie viele Artikel in der Seitenleiste
angezeigt werden sollen.

Hide entries already displayed on frontpage Je nachdem, welche Einträge das Plugin darstellt, kann es passieren, dass
diese Einträge auch bereits in der Artikel-Übersichtsseite aufgeführt
sind.
Wenn Sie die Option Hide entries already displayed on frontpage
aktivieren, werden solche Einträge nicht nochmal in der Seitenleiste
angezeigt.

Enter category ID to show Im Gegensatz zu vielen anderen Plugins können Sie die Quellkategorie für
die darzustellenden Einträge nicht aus einem Auswahlfeld wählen, sondern
müssen die ID/Nummer einer Kategorie manuell in ein Feld eingeben. Für
das Plugin ist diese Eingabemethode um einiges flexibler, da Sie mehrere
Kategorie-IDs einfach mittels Semikolon trennen können, um so die
Einträge mehrerer Kategorien einzubinden.
Die ID einer Kategorie können Sie über die Administrationsoberfläche
Kategorien ermitteln (siehe Seite
Kategorie-ID ermitteln).

Show entry title, Show extended entry Mit diesen beiden Optionen stellen Sie ein, ob der Titel und/oder der
erweiterte Eintrag eines Artikels in der Seitenleiste angezeigt werden
sollen. Das Smarty-Template plugin_showentries.tpl wertet diese
Optionen (bool $showext, bool $showtitle) aus, daher können
Sie eine Einstellung auch direkt in der Smarty-Template-Datei vornehmen.

5.3.6 - Unified Sidebar Image Display: serendipity_plugin_imagesidebar

Unified Sidebar Image Display
serendipity_plugin_imagesidebar

Zahlreiche Plugins im Serendipity-Plugin-Archiv ermöglichen die Einbindung
von Bildern in der Seitenleiste.

Das Plugin Unified Sidebar Image Display versucht diese
verschiedenen Plugins unter einem Dach zu vereinen. Anstatt für jede
einzelne Galerie-Software ein eigenständiges Plugin zu installieren,
können Sie mit diesem Plugin direkt mehrere mögliche Bildquellen
auswählen: Menalto Gallery [*] \cmd{http://gallery.menalto.com},
Coppermine Gallery [*] \cmd{http://coppermine-gallery.net},
Zooomr [*] \cmd{http://www.zooomr.com}, aber auch die integrierte
Serendipity-Mediendatenbank.

Bitte beachten Sie, dass für die gerade genannten Galerie-Anwendungen
auch, wie erwähnt, eigenständige Plugins bestehen. Diese sind jedoch älter
und nur noch aus historischen Gründen in der Plugin-Datenbank. Ein
Umstieg auf das einheitliche Unified Sidebar Image Display-Plugin
ist daher immer zu empfehlen.

Nachdem das Plugin installiert wurde, müssen Sie in der Konfiguration
erst festlegen, welche Software als Quelle für Ihre Bilder herangezogen
werden soll. Abhängig von der gewählten Option werden dann weitere
Konfigurationsmöglichkeiten angezeigt, sobald Sie auf den Button
Speichern klicken.

Menalto Gallery Url

Die Menalto Gallery bietet in ihrer Installation bereits ein
kleines PHP-Script namens block-random.php an, mit dem Sie ein Bild
der Galerie anzeigen können. Je nach Version der Menalto Gallery (1.x
oder 2.x) heißt dieses Script anders, daher müssen Sie vor allem darauf
achten, dem Serendipity-Plugin die richtige Gallery-Version mitzuteilen.

Wenn Sie die Menalto Gallery in ein Unterverzeichnis von Serendipity
installiert haben, kann es möglicherweise zu Problemen mit der
URL-Umformung von Serendipity kommen. Wenn Sie die Option
mod_rewrite in der Serendipity-Konfiguration gewählt haben,
sollten Sie eine .htaccess-Datei im Gallery-Unterverzeichnis
erstellen. Diese sollte den Inhalt


    RewriteEngine Off

haben. Mit
einer solchen Datei können Sie Serendipity dazu bringen, seine eigene
URL-Formung im Gallery-Unterverzeichnis nicht anzuwenden. Sicherlich
sinnvoller ist in den meisten Fällen jedoch, wenn Sie Gallery in ein
eigenständiges Verzeichnis oberhalb des Serendipity-Verzeichnisses
installieren.

URL oder Pfad zur Gallery-Installation Hier müssen Sie die vollständige URL eintragen, die zu Ihrer
Gallery-Installation führt. Das Plugin fügt hier standardmäßig eine URL
zum Blog ein, die Ihnen aber nur als Anhaltspunkt dienen soll.

Anzahl der Zufallsfotos Mit der Option Anzahl der Zufallsfotos legen Sie fest, wie viele
Bilder Ihrer Galerie angezeigt werden sollen. Die Bilder werden dabei vom
Gallery-Script zufällig ausgewählt.

Rotate image time Jede Darstellung eines Zufallsbildes aus der Galerie wird für einen
gewissen Zeitraum zwischengespeichert, damit in diesem Zeitraum alle
Besucher dasselbe Zufallsbild angezeigt bekommen. Wie lange dieser
Zeitraum (in Minuten) ist, stellen Sie über die Option Rotate
image time
ein. Die Zahl 30 würde also bewirken, dass jeweils eine
halbe Stunde lang dasselbe Zufallsbild angezeigt wird.

Welche Version der Gallery-Software benutzen Sie? In diesem Auswahlfeld müssen Sie die Versionsnummer der installierten
Gallery-Anwendung eintragen, da sich die Art der Einbindung danach
richtet.
Wenn Sie über eine Version höher als 2.0 verfügen, können Sie die
folgenden Konfigurationsoptionen nutzen:

Picture to display Gallery 2.x ermöglicht es Ihnen, nicht nur ein Zufallsbild anzuzeigen,
sondern auch ein Bild der zuletzt hochgeladenen Dateien (Recent),
der meistangesehenen Bilder (Most viewed) oder auch eines
gezielten Bildes (Specific).

Album ID to show Standardmäßig zeigt das Plugin die Bilder egal welcher Unteralben an.
Wenn Sie in dieses Eingabefeld die ID eines Albums eintragen, wird nur
dieses Unteralbum berücksichtigt. Die ID eines Albums können Sie in der
Gallery-Oberfläche herausfinden.

Maximum Width of Image Das Plugin zeigt das gewünschte Bild als Vorschaugrafik direkt so an, wie
es die Gallery-Software ausgibt. Wenn Sie eine andere Bildgröße
benötigen, können Sie die maximale Breite dieses Bildes im Feld
Maximum Width of Image eintragen. Dies bewirkt, dass das jeweilige
Bild von Ihrem Browser auf diese Größe umgerechnet wird. Der Browser lädt
dabei das große Bild herunter, daher kann diese Option dazu führen, dass
das Bild zum einen vom Browser qualitativ minderwertig verkleinert wird
und zum anderen auch mehr Bandbreite verbraucht.
Kurzum: Sie sollten lieber mit der Standardgröße der
Gallery-Vorschaubilder vorlieb nehmen.

Link Target Ein Klick auf das dargestellte Bild führt direkt in die Gallery-Anwendung
und öffnet sie im gleichen Browser-Fenster wie Ihr Blog. Wenn Sie dafür
gerne ein neues Browser-Fenster öffnen wollen, können Sie im Feld
Link Target das Schlüsselwort _blank eintragen.

Which details should be displayed Zu jedem dargestellten Bild kann Gallery von sich aus Meta-Informationen
anzeigen. Welche dieser Felder dargestellt werden, können Sie über das
Eingabefeld Which details should be displayed regeln. Tragen Sie
dort eine Liste aller gewünschten Schlüsselwörter ein, mit einem Komma
voneinander getrennt. Alle verfügbaren Felder werden neben dem
Eingabefeld erwähnt: title (Bildtitel), date
(Veröffentlichungsdatum), views (Anzahl der Besucher des Bildes),
owner (Eigentümer des Bildes), heading (Bildüberschrift).

Coppermine Database

Wenn Sie als Image Source die Quelle Coppermine Database
auswählen, kann das Plugin direkt auf die MySQL-Datenbank der
Coppermine-Gallery zugreifen und deren Bilder anzeigen.

Die Konfigurationsoptionen sind:

Server, Prefix, Database, Username, Password Diese Optionen müssen die Datenbank-Zugangsdaten zu der
Coppermine-Datenbank enthalten.

URL In der Variable URL müssen Sie die volle URL zu Ihrer
Coppermine-Installation eintragen.

Gallery Name Das Seitenleisten-Plugin bindet einen Link zu Ihrer
Coppermine-Installation ein. Die Beschreibung dieses Links geben Sie über
die Option Gallery Name ein.

Usergroup Die Coppermine-Galerie kann Zugriffsrechte zu Bildern abhängig von
Benutzergruppen setzen. So können Sie private und öffentliche Bilder
voneinander abgrenzen.
Das Coppermine-Plugin muss sich also einer bestehenden
Coppermine-Benutzergruppe zuordnen, damit es weiß, welche Bilder es
darstellen darf. Wenn Sie im Feld Usergroup den Namen einer
Gruppe eintragen, die Sie bei Coppermine für Mitglieder Ihrer Familie
vergeben haben, dann könnte das Plugin auch solche Bilder anzeigen. Wenn
Sie dem Plugin den Namen einer Gastgruppe mitgeben, würden diese Bilder
fehlen.
Standardmäßig gibt das Plugin einfach alle Bilder aus, daher ist die
Benutzergruppe Everybody voreingestellt.

Size Die Konfigurationsoption Size legt fest, wie groß das Vorschaubild
(in Pixel, egal ob Höhe oder Breite) sein soll, das vom Plugin in der
Seitenleiste angezeigt wird.

Thumbnails Diese Option gibt an, wie viele Bilder angezeigt werden sollen.

Type Standardmäßig zeigt das Plugin die aktuellsten Bilder (Most
Recent
). Über die Auswahlfelder der Konfigurationsoption Type
können Sie jedoch auch die beliebtesten Bilder (Most Viewed) oder
zufällige Bilder (Random Images) anzeigen.

Album Link Wenn Sie diese Option aktivieren, wird unter jedem Bild ein Link zur
Coppermine-Galerie eingebunden.

Gallery Link URL Am Ende der Bilderübersicht können Sie einen Link einfügen, den Sie mit
diesem Parameter angeben. Der Link zeigt üblicherweise direkt zu Ihrer
Galerie, jedoch können Sie auch zu anderen Stellen verweisen.

Resolve Non-Images Coppermine ermöglicht es Ihnen, auch Videos oder andere Dateien anstelle
von Bildern zu verwalten. Wenn Sie die Option Resolve Non-Images
aktiviert haben, versucht das Plugin solche Dateien ebenfalls in der
Seitenleiste anzuzeigen.

Zooomr Plugin

Im Gegensatz zu den beiden eingangs erwähnten Mediendatenbanken werden
die Bilder bei dieser Datenquelle nicht von Ihrem eigenen Server bezogen,
sondern vom zentralen Zooomr-Server aus eingebunden.

Zooomr stellt dabei einen RSS-Feed zur Verfügung, der Ihre aktuellen
Bilder enthält. Diesem RSS-Feed können Sie eine Reihe von Optionen
mitgeben, die Sie auf der Zooomr-Homepage erfahren können.

In den Konfigurationsoptionen dieses Plugin-Bereichs können Sie ebenfalls
die Größe der Vorschaubilder, die Anzahl der gezeigten Bilder und die
Verlinkungs-Art verändern.

Media Library (Serendipity)

Natürlich ist es auch möglich, Bilder Ihrer
Serendipity-Mediendatenbank in der Seitenleiste anzuzeigen. Hierfür dient
die Option Media Library in den Einstellungen des Plugins.
Folgende Konfigurationsoptionen sind dabei möglich:

Limit output to only hotlinked images Wenn Sie diese Option aktivieren, werden nur die Bilder der
Mediendatenbank angezeigt, die von fremden Servern stammen.
Zur Erinnerung: Serendipity kann Dateien auf Ihren Server
hochladen, aber auch auf Dateien fremder Server verweisen und diese
Grafiken oder Dateien trotzdem in der Datenbank vorhalten (Hotlinking).

Hotlink limiting keyword Wenn Sie die Option Limit output to only hotlinked images
aktivieren, können Sie über das Eingabefeld Hotlink limiting
keyword
ein spezielles Schlüsselwort vergeben. Daraufhin zeigt das
Plugin nur die Bilder, bei denen das Schlüsselwort in der URL der
Datei vorkommt.
Wenn Sie also einen Hotlink auf die Dateien
http://google.com/logo.jpg und http://yahoo.com/logo.jpg in
der Mediendatenbank gespeichert haben und als Schlüsselwort
google.com eintragen, werden nur Bilder vom Google.com-Server
angezeigt. Würden Sie stattdessen logo.jpg eintragen, könnten Sie beide
Bilder sehen.

Pick a default directory Mit diesem Auswahlfeld können Sie ein Stammverzeichnis der
Mediendatenbank auswählen, von dem Sie Bilder darstellen wollen.

Output images strictly Wenn Sie diese Option aktivieren, zeigt das Plugin nur die Bilder an, die
in dem oben konfigurierten Verzeichnis abgespeichert worden sind. Nur
wenn Sie die Option Output images strictly deaktiviert haben, werden
auch die Bilder in möglichen Unterverzeichnissen des gewählten
Verzeichnisses dargestellt.

Rotate image time Jede Darstellung eines Zufallsbildes aus der Mediendatenkbank wird für
einen gewissen Zeitraum zwischengespeichert, damit in diesem Zeitraum
alle Besucher dasselbe Zufallsbild angezeigt bekommen. Über die Option
Rotate image time stellen Sie diesen Zeitraum (in Minuten) ein.
Die Zahl 30 würde also bewirken, dass jeweils eine halbe Stunde
lang dasselbe Zufallsbild angezeigt wird.

Number of images to display Hiermit steuern Sie die Anzahl der angezeigten Bilder.

Image width Serendipity erzeugt Vorschaubilder in der konfigurierten Breite/Höhe
(siehe Serendipity-Konfiguration auf Seite Thumbnailgroesse). Daher
zeigt auch das Seitenleisten-Plugin standardmäßig die Bilder in genau dieser Breite an.
Wenn Sie größere Vorschaubilder in der Seitenleiste sehen wollen, können
Sie den Browser anweisen, die Bilder selbständig zu vergrößern (oder zu
verkleinern). Dies führt jedoch immer zu einem Qualitätsverlust, da die
Datei nicht aufgrund der Originalgröße reduziert wird, sondern immer nur
das Vorschaubild gestaucht oder gestreckt werden kann. Wenn Sie hier die
Zahl 0 eintragen, zeigt das Plugin ein Bild mit der vollen zur
Verfügung stehenden Breite in der Seitenleiste an.

Behavior of image link Mit der Option Behavior of image link könenn Sie einstellen, was
bei einem Klick des Besuchers auf ein Bild passieren soll. Entweder kann
dann das große Bild auf derselben Seite angezeigt werden (In Page),
oder das Bild kann in einem Popup-Fenster erscheinen (Pop Up).
Eine weitere Möglichkeit ist, bei einem Klick auf ein Bild eine fest
vorgegebene URL aufzurufen (die beispielsweise zu einer statischen Seite
oder anderem führt). Wenn Sie die Option URL auswählen, müssen Sie
erst die Plugin-Konfiguration speichern (über den Button Speichern)
und können dann im Eingabefeld unter diesem Auswahlfeld die URL
eintragen.
Eine besondere Option stellt die Variante Try to link to related
entry
dar. Wenn Sie diese Variante wählen, versucht das Plugin, zu jedem
Bild einen Blog-Artikel zu finden, in dem das Bild eingesetzt wurde. Wenn
ein Blog-Artikel gefunden wird, führt der Link dann zu diesem Beitrag.
Eine weitere Option namens User-Galerie steht hier zur Verfügung,
wenn Sie das Serendipity-Plugin serendipity_event_usergallery (siehe
Seite usergallery) installiert haben. Bei der Auswahl dieser Variante
können Sie nach dem Speichern des Plugins den Permalink der User-Galerie eintragen.

Enter any text (or html) you would like placed before/after the picture Am Ende der Konfigurationsoptionen finden Sie zwei große
Texteingabebereiche. Hier können Sie einen Text eintragen, der vor und
nach der Bilderübersicht in der Seitenleiste angezeigt wird.

5.3.7 - Category Tree Menu: serendipity_plugin_category_dhtml_menu

Category Tree Menu
serendipity_plugin_category_dhtml_menu

Das Standard-Seitenleisten-Plugin zur Darstellung von Kategorien zeigt
diese einfach untereinander aufgelistet an.
Da vielfach die Kategorie-Übersicht als eine Art Menüstruktur des Blogs
benutzt wird, ist diese Darstellung möglicherweise nicht immer die beste.

Das Plugin Category Tree Menu bietet daher eine dynamische
Kategorieansicht an. Auf oberster Ebene werden nur alle Hauptkategorien
angezeigt, alle Unterkategorien werden ausgeblendet und nur durch Klick
auf eine Hauptkategorie wieder angezeigt. So kann man, wie von
Dateimanagern gewohnt, Kategorien platzsparend ein- und ausklappen.

Dieses Plugin benötigt die externe PEAR::HTML_TreeMenu-Bibliothek.
Diese müssen Sie entweder als zentrale PEAR-Bibliothek über
den Server-Provider installieren oder manuell installieren. Dazu
müssen Sie das PEAR-Paket herunterladen [*] \cmd{http://pear.php.net/package/HTML_TreeMenu} und
entpacken. Laden Sie die Datei HTML_TreeMenu-1.2.0/TreeMenu.php
anschließend ins Serendipity-Verzeichnis bundled-libs/HTML/ hoch.
Kopieren Sie dann noch die Datei TreeMenu.js und das ganze
Verzeichnis images in Ihr Plugin-Verzeichnis
plugins/serendipity_plugin_category_dhtml_menu.

In den Konfigurationsoptionen des Plugins müssen Sie nun den
vollständigen Pfad zu TreeMenu.js wie auch zum
images-Unterverzeichnis eintragen. Bei der Standardkonfiguration im Beispiel
dieses Buches wäre das also


    /serendipity/plugins/serendipity_plugin_dategory_dhtml_menu/images/

und


    /serendipity/plugins/serendipity_plugin_dategory_dhtml_menu/TreeMenu.js

Nur wenn diese beiden Pfade korrekt eingetragen sind, werden Sie später
im Frontend eine Darstellung der Kategorien sehen. Bei einer
Fehlkonfiguration ist das Seitenleisten-Plugin leer, und Ihr Browser zeigt
möglicherweise eine JavaScript-Fehlermeldung an.

Die Verwendung des Category Tree Menu hat einen großen Nachteil
gegenüber dem vorhandenen Kategorien-Plugin: Es zeigt immer pauschal alle
Kategorien und Unterkategorien an und kann auch keine Leserechte zu
einer Kategorie auswerten. Auch die Darstellung mehrerer Kategorien ist
mit dem Plugin nicht möglich. Daher müssen Sie sich entscheiden, ob diese
Möglichkeiten für Sie kritisch sind. Vielleicht findet sich in zukünftigen
Versionen dieses Plugins ein Entwickler, der beide Plugins miteinander kombiniert?

Kapitel 6: Ereignis-Plugins

Ereignis-Plugins dienen der Erweiterung von Funktionen im Frontend wie auch im Backend.
Serendipity setzt innerhalb seines Quellcodes an zahlreichen strategisch
wichtigen Stellen sogenannte Event-Callbacks bzw. Event-Hooks. An
dieser Stelle des Codes führt Serendipity also nacheinander alle installierten Ereignis-Plugins aus,
so dass jedes Plugin an dieser Stelle die Möglichkeit erhält, seine
eigenen Funktionen auszuführen. Die Reihenfolge, in der die Ereignis-Plugins in
der Plugin-Verwaltung aufgeführt sind, bestimmt dabei auch die
Ausführungsreihenfolge.

Bei den Textformatierungs-Plugins ist die
Ausführungsreihenfolge besonders wichtig. Ein Textformatierungs-Plugin
kann bei Artikeltexten und auch Kommentartexten dazu benutzt werden,
Text- oder Formatierungsänderungen durchzuführen. Daher reichen solche
Plugins von einfachen Wortersetzungen (s9y könnte zB.
überall durch Serendipity ersetzt werden) über
Smiley-Ersetzungen (:-) wird zu einem grinsenden Gesicht) bis
zu speziellen Plugins, die Quelltexte in beliebigen Programmiersprachen
korrekt einrücken und darstellen.

Stellen Sie sich ein Textformatierungs-Plugin vor (Plugin A), das
das Wort *doof* in eine besondere Grafik verwandelt. Ein
zweites Plugin B kümmert sich darum, dass alle Wörter, die von
Sternchen (*) umgeben sind, im Artikel später fett geschrieben
werden. Wenn Plugin A vor Plugin B platziert wird, sehen
Sie nach der Umwandlung des Wortes *doof* wie gewünscht eine
schöne Grafik. Wäre Plugin B jedoch das zuerst ausgeführte Plugin,
würden Sie in der Ausgabe nur ein fettes Wort doof sehen. Denn
nachdem Plugin B alle Wörter mit umgebenden Sternchen umgewandelt hat,
kann das Smiley-Plugin das Wort *doof* nicht mehr
finden.

Die Plugin-Reihenfolge ergibt sich also meist abhängig von Ihrem
persönlichen Einsatz des Plugins, daher können keine allgemeinen
Aussagen getroffen werden, welches Plugin an welcher Stelle stehen muss.

Textformatierungs-Plugins werden also immer erst bei der Ausgabe
angewendet und bieten Ihnen den Komfort der einfacheren Eingabe. Wer
möchte schon jedesmal den kompletten HTML-Code für eine Smiley-Grafik
einfügen?

Ihre Eingaben werden ganz unabhängig von der späteren Formatierung in der
Datenbank gespeichert - wenn Sie also einen Artikel später überarbeiten, werden
sämtliche Formatierungsänderungen dort noch nicht angezeigt, da sie nur bei der
Anzeige angewendet werden und nicht beim Speichern der Rohdaten. Das bedeutet
auch, dass sämtliche von einem Textformatierungs-Plugin vorgenommenen Änderungen
nicht mehr ausgeführt werden, wenn Sie dieses Plugin löschen. Seien Sie also
vorsichtig beim Löschen von Plugins und prüfen Sie, ob dadurch möglicherweise
alte Artikel nicht mehr so dargestellt werden, wie Sie es erwarten.

Eine weitere Besonderheit von Textformatierungs-Plugins ist, dass alle diese
Plugins eine Konfigurationsoption anbieten, um einzustellen, auf welche
Ausgabefelder eine Formatierung angewendet wird. So können Sie einstellen, ob
eine Formatierung nur auf normale Artikeltexte, erweiterte Artikeltexte,
Kommentare von Besuchern oder HTML-Klötze (siehe Seite
htmlnugget) angewendet wird. Im Eingabefeld für Kommentare von
Besuchern kann jedes Textformatierungs-Plugin eigene Hinweise einblenden,
wie deren Syntax zu benutzen ist.

Mehrere Ereignis-Plugins bieten die Möglichkeit, beliebige Inhalte
innerhalb Ihres Blogs einzubinden: eigenständige HTML-Seiten (statische
Seiten), Gästebücher, Kontaktformulare und weitere. Alle diese Plugins
haben einen Satz an Konfigurationsoptionen gemeinsam, auf die Sie immer
wieder stoßen werden. Damit diese nicht immer für jedes Plugin wiederholt
werden müssen, werden Sie hier erklärt:

Permalink In das Feld Permalink tragen Sie die URL ein, unter der Sie später
die Ausgaben des jeweiligen Plugins wollen. Hier müssen Sie den
vollständigen HTTP-Pfad eintragen, der zu dieser URL führt. Standardmäßig
wird das Feld vorausgefüllt mit
/serendipity/pages/pluginname.html, was Ihrem Pfadnamen und einem
virtuellen Pfad entspricht. Im virtuellen Pfadnamen können Sie eine
beliebige Struktur einsetzen. Dabei müssen Sie lediglich darauf achten,
dass die URL mit .html endet, keine Sonderzeichen enthält und
keinem bereits vorhandenen Permalink entspricht. Wichtig ist, dass
diese Variable immer nur eine Pfadangabe enthalten darf, niemals eine
vollständige URL wie http://www.example.com/.... Auch muss
der Stammpfad zum Serendipity-Blog beibehalten bleiben, eine Eingabe wie
/anderes_blog/pages/pluginname.html wäre ungültig.[*] Eine
derartige URL wäre ungültig, da der Aufruf dieser URL außerhalb der
Serendipity-Installation läge. Serendipity kann nur virtuelle
Verzeichnisse unterhalb seiner eigenen Verzeichnisstruktur verwalten.
Wenn Sie in Ihrem Blog einmal die URL-Umformung (siehe Seite
urlformung) (de-)aktivieren oder Ihr Blog in ein Unterverzeichnis
verschieben, kann es sein, dass Sie die konfigurierten Permalinks aller Plugins
ebenfalls anpassen müssen. Bei deaktivierter URL-Umformung muss ein Permalink
einen Wert wie /serendipity/index.php?/pages/pluginname.html enthalten.
Erst bei der Pfadangabe hinter index.php? dürfen Sie eine beliebige URL
eintragen, der Pfad davor muss der Konfiguration Ihres Servers entsprechen.

URL-Titel der Seite, Seitentitel, Pagetitle oder URL shorthand name Alternativ zu der Konfiguration eines Permalinks bieten alle Plugins auch
einen URL-Titel der Seite oder URL shorthand name an.
Mithilfe dieser Variable kann man die Ausgaben eines Plugins auch ohne
Permalink ansehen, indem man
http://www.example.com/serendipity/index.php?serendipity[subpage]=Seitentitel aufruft. Dies ist wichtig, da in manchen Webserver-Konfigurationen ein Permalink
nicht mit Formulardaten beschickt werden kann.[*] Konkret ist dies
bei der Nutzung der URL-Umformungsmethode Apache ErrorHandling
nicht möglich. Eine URL wie
/serendipity/pages/seite.html?variable=inhalt würde keine
GET-Variable $_GET['variable'] erzeugen, die die Plugins
teilweise jedoch benötigen, um abhängig von der Anfrage des Besuchers
bestimmte Inhalte anzuzeigen.
Tragen Sie für den URL-Titel einer Seite ausschließlich Namen ohne
Sonderzeichen, Umlaute und Leerzeichen ein. Beinahe alle Plugins weisen
den Wert der serendipity[subpage]-Variable der Smarty-Variablen
$staticpage_pagetitle zu. Über diese Variable kann man
individuell in den Templates bei speziellen Plugins unterschiedliche
Template-Ausgaben erreichen (siehe Seite Smarty-Templates).

Als Artikel formatieren Wenn Sie die Option Als Artikel formatieren aktivieren, wird
Serendipity die Ausgabe eines Plugins so darstellen, als sei dies ein
normaler Blog-Artikel. Um die Ausgabe herum wird also das übliche
HTML-Konstrukt erzeugt, das Serendipity standardmäßig ausgibt (mit
Seitenüberschrift und Datum).
Wenn Sie diese Option deaktivieren, werden die Ausgaben 1:1
weitergereicht und in den Inhaltsbereich von Serendipity eingefügt. Das
heißt, dass Serendipity sich in jedem Fall um die Ausgabe des HTML-Kopf-
und -Fußkonstruktes sowie der Seitenleisten-Plugins kümmert, aber sonstige
Überschriften nicht ausgibt.

 

6.1 Standardmäßig aktivierte Plugins

Standardmäßig aktivierte Plugins

Die im Folgenden behandelten Ereignis-Plugins werden bei Serendipity mitgeliefert und sind
standardmäßig aktiviert.

 

6.1.1 - Spamschutz: serendipity_event_spamblock

Spamschutz
serendipity_event_spamblock

Das Plugin, das den Rekord für die höchste Anzahl von
Konfigurationsoptionen hält, ist sicherlich das Spamschutz-Plugin.
Erschrecken Sie nicht davor, sondern gehen Sie die Möglichkeiten ruhig
nacheinander durch. Die Voreinstellungen des Plugins sind für gewöhnliche
Zwecke bereits recht gut geeignet.

Anhand der Fülle verschiedener Optionen wird eines recht deutlich: Der
Kampf gegen Spam (unerwünschte Werbung) ist extrem müßig und mit viel
"Wenn" und "Aber" verbunden. Einen optimalen Schutz gegen Spam
kann Ihnen auch dieses Buch leider nicht geben, dafür ändern sich die
Techniken der Spammer zu häufig.

Als probates Mittel hat sich die Verwendung des Akismet-Services
erwiesen. Dieser zentrale Server führt schwarze Listen von
Kommentarspam-Fällen und kann von vielen Blogsystemen genutzt werden,
darunter Serendipity, WordPress und MoveableType. Auch die Aktivierung
von Captchas reduziert Kommentarspam sehr deutlich, bringt aber
auch Usability-Einschränkungen mit sich.

Dafür ermöglichen es Ihnen aber viele der aufgeführten Optionen, flexibel
auf neue Gegebenheiten eingehen zu können. Daher sollten Sie das
Folgende aufmerksam durchlesen, um im Bedarfsfall schnell auf Spam
reagieren zu können.

Das Spamschutz-Plugin wird jeweils aufgerufen, wenn in Ihrem Blog jemand
einen Kommentar oder ein Trackback hinterlässt. Das Plugin prüft
daraufhin, was der Benutzer übermittelt hat, und führt nacheinander
mehrere Tests aus. Sobald einer der aktivierten Tests einen Kommentar als
Spam markiert, wird der Artikel speziell vorgemerkt. Das Plugin merkt
sich daraufhin, aufgrund welcher Maßnahme ein Artikel als Spam
identifiziert wurde. Denn wie bei der Spam-Filterung bei E-Mails kann es
leicht vorkommen, dass auch gültige Nachrichten aufgrund einer
Filterregel als Spam klassifiziert worden sind. Daher ist es wichtig,
die Filter von vornherein nicht zu "scharf" einzustellen und
ab und zu die Logdateien nach falsch eingestuftem Spam durchzugehen.

Wenn ein Kommentar als Spam identizifiert ist, können zwei Dinge
geschehen: Entweder er wird komplett verworfen, oder er wird moderiert.
Moderierte Kommentare müssen erst von einem Redakteur freigeschaltet
werden. Komplett verworfene Kommentare werden erst gar nicht in der
Datenbank gespeichert, und der Redakteur wird von einem solchen Kommentar
nie etwas erfahren. Nur auf zu moderierende Kommentare wird ein
Redakteur möglicherweise per E-Mail hingewiesen (abhängig von den
Einstellungen des Redakteurs bezüglich E-Mail-Benachrichtigungen, siehe
Seite einstellungen-commentnotify).

Bei vielen Anti-Spam-Optionen können Sie einstellen, ob beim Zutreffen
einer einzelnen Regel die Nachricht verworfen oder moderiert werden soll.
Sobald die erste Regel zutrifft, die eine Nachricht verwirft, ist die
Ausführung des Anti-Spam-Plugins beendet. Daher ist es durchaus möglich,
dass ein Kommentar von einer Regel erst als "moderiert"
eingestuft wird, dann aber eine Folge-Filterregel den Kommentar doch
"abweist". Das Abweisen hat also Priorität vor der Moderation.

Wenn Sie einen Artikel bereits mit aktivierter Option Kommentare
und Trackbacks dieses Eintrags werden moderiert
erstellt haben, kann das
Anti-Spam-Plugin dennoch Kommentare abweisen. Ein Kommentar kann dann
jedoch niemals ohne Moderation veröffentlicht werden. Wenn Sie die Option
Kommentare für diesen Eintrag zulassen bei einem Artikel
deaktiviert haben, ist das Anti-Spam-Plugin für diesen Artikel
irrelevant, da sämtliche Kommentare abgewiesen werden.

Notfall-Blockade von Kommentaren Wenn gerade eine Spam-Welle über Sie hereinbricht, können Sie diese
Option aktivieren, um im Blog keinerlei Kommentare oder Trackbacks
anzunehmen. Weitergehende Blockademaßnahmen können Sie auf Seite
commentphp nachlesen.
Empfohlene Einstellung: Nein

Spamblock für Autoren deaktivieren Häufig können Sie den angemeldeten Autoren des Blogs vertrauen, dass sie
keine Spam-Einträge in Ihrem Blog vornehmen. Daher können Sie mit der
Einstellung Spamblock für Autoren deaktivieren dafür sorgen, dass
alle eingeloggten Redakteure bei Kommentaren von keinerlei
Anti-Spam-Maßnahmen betroffen sind (Einstellung Alle Autoren).
Eingeloggte Autoren sehen also keine Captcha-Grafiken und werden nicht
anderweitig von Filterungen behelligt. Wenn Sie das Auswahlfeld auf
keine stellen, unterscheidet das Plugin nicht zwischen anonymen
und eingeloggten Besuchern.
Ansonsten können Sie in diesem Feld gezielt Benutzergruppen auswählen.
Wenn Sie das Plugin Freie Benutzer-Registrierung benutzen, ist
dies besonders sinnvoll, um "anonyme" Redakteure dennoch von den
"echten", manuell erzeugten Redakteuren unterscheiden zu können. Achten
Sie dann einfach darauf, dass die Benutzergruppe der Redakteure, die über das
Registrierungs-Plugin hinzugefügt werden, nicht im Auswahlfeld markiert
ist.
Empfohlene Einstellung: Alle Autoren

Trackback IP Validierung Wenn Sie von einem fremden Blog ein Trackback erhalten (siehe Seite
trackback), dann wird dieses Trackback von einem bestimmten Server aus
gesendet. In einem Trackback selbst ist die URL des fremden Blogs enthalten.
Im üblichen Fall entspricht die IP-Adresse des Servers, der das
Trackback sendet, genau der IP-Adresse der URL, die im Trackback enthalten
ist.
Bei Spam sieht dies anders aus: Die Trackbacks werden von infizierten
Computersystemen aus verschickt, und die beworbene URL entspricht meist
der von Spam-Seiten und liegt auf einem völlig anderen Server.
Das Antispam-Plugin kann solche Trackbacks automatisch abweisen, wenn die
IPs des sendenden Servers und des beworbenen Servers nicht
übereinstimmen.
Die Aktivierung dieser Option ist sehr empfehlenswert, da es im täglichen
Einsatz de facto nicht zu einer fehlenden Übereinstimmung bei echten
Trackbacks kommen kann. Lediglich in Randfällen wie Servern, die
Trackbacks über Proxy-Server verschicken müssen, kann dies gültige
Trackbacks verwerfen. Wägt man den positiven Nutzen des Schutzes vor
ungültigem Spam dagegen ab, ist dieser Nachteil jedoch leicht zu
verschmerzen.
Empfohlene Einstellung: abweisen

Keine doppelten Kommentare erlauben Üblicherweise sollte es in einem Blog nie dazu kommen, dass identische
Kommentare mehrfach vorkommen. Daher können Sie Kommentare sperren, die
bereits in der Datenbank vorhanden sind, wenn Sie die Option Keine
doppelten Kommentare erlauben
auf Ja stellen.
Viele Spammer variieren ihre Inhalte durch zufällig erzeugte Buchstaben
und sind daher von dieser Einstellung nicht betroffen. Dennoch kann diese
Anti-Spam-Maßnahme auch helfen, doppelte profane Kommentare wie
"super!" zu unterbinden.
Empfohlene Einstellung: Ja

Kommentare abweisen, die als Text nur den Artikeltitel enthalten Eine beliebte Form des Kommentar-Spams stellte einmal die Methode dar, bei
einem Kommentar einfach den Titel Ihrer eigenen Artikel zu übernehmen.
Anstelle eines Links zu einem fremden Artikel erhielten Spammer ihren
Nutzen dadurch, dass deren Benutzername oder Homepage auf eine fremde URL
verwies.
Wenn Sie diese Option aktivieren, werden solche Kommentare verboten.
In der freien Wildbahn treten derartige Spam-Kommentare kaum noch auf,
daher ist es empfehlenswert, die Option aus Geschwindigkeitsgründen
besser zu deaktivieren.
Empfohlene Einstellung: Nein

IP-Block Intervall Jeder Besucher des Blogs besitzt eine eigene IP, die den Benutzer im
Internet identifiziert. Üblicherweise hat somit jeder Besucher der
Webseite eine eindeutige IP, die sich jedoch bei jeder neuen Einwahl des
Benutzers ins Internet unterscheiden wird. Mit einer so gewonnenen
IP-Adresse kann man versuchen, Kommentare von dort nach gewissen
Kriterien zu unterbinden.
IP-Adressen sind jedoch leider keine verlässliche Maßnahme. Wenn ein
Besucher einen sogenannten Proxy [*] Ein Proxy ist eine
Art Webserver, der die Inhalte fremder Webseiten zwischenspeichern kann, um so
Traffic zu reduzieren oder Inhalte leichter zu filtern.
benutzt,
werden seine Zugriffe über die IP-Adresse dieses Servers durchgeführt.
Der Proxy verschleiert also die wahre Identität des Besuchers. Da große
Unternehmen wie T-Online und auch AOL für ihre Benutzer zentrale
Proxy-Server benutzen, könnte man also beim Blocken einer solchen IP
nicht nur den Zugriff für eine einzelne Person verhindern, sondern für
alle Besucher, die diesen Proxy verwenden.
Kurzum, Sie sollten der IP-Adresse kein absolutes Vertrauen schenken.
Dennoch kann es helfen, Missbrauch auf gewisse Weise einzudämmen. Die
Option IP-Block Intervall ermöglicht es, dass eine eindeutige IP
nur einmal einen Kommentar eintragen darf, und dann erst wieder nach Ablauf
des konfigurierten Zeitraums. Somit ist es nicht mehr möglich, mehrere
hundert Kommentare pro Sekunde abzusetzen.
In Blogs passiert es selten, dass Benutzer (auch die Benutzer eines Proxies)
im Minutentakt gewünschte Kommentare hinterlassen. Daher ist ein
Zeitraum von einer Minute hier durchaus empfehlenswert.
Die Abweisung eines Kommentars mittels dieser Option erfolgt erst bei
der Abarbeitung eines bereits übermittelten Kommentars. Das heißt, der
eigentliche Zugriff auf das Blog wird anhand dieser Option nicht
eingeschränkt.
Empfohlene Einstellung: 60.

CSRF-Schutz aktivieren? Die meisten Spam-Kommentare erfolgen, indem ein Spam-Roboter automatisch
Ihre URLs aufruft und einen Kommentar überträgt. Meist macht sich der
Roboter nicht die Mühe, vorher (wie ein normaler Blog-Besucher) die
eigentliche Webseite aufzurufen. Dieses Vorgehen kann man sich zur Abwehr
zunutze machen: Man speichert auf der Seite, von der aus das
Kommentarformular eingebunden wird, einen Zufallswert. Nur wenn dieser
Zufallswert gültig mit dem Kommentar vom Browser des Besuchers
übermittelt wird, kann man davon ausgehen, dass ein menschlicher Besucher
auch vorher den Artikel aufgerufen hat und dass nicht einfach etwas automatisiert
übertragen wird.
Die Aktivierung dieser Option hat leider einen gravierenden Nachteil.
Denn damit der eingegebene Zufallswert auf dem Server zur Prüfung
zwischengespeichert werden kann, muss eine Session (siehe Terminologie,
Seite sessioncookies) für den Besucher angelegt werden. Eine Session
ist jedoch von Serendipity nur nutzbar, wenn der Browser des Besuchers Cookies annimmt
(siehe Hinweis Seite Cookie).
Weiterhin bringt diese Option einen Schutz vor
CSRF [*] \emph{Cross Site Request Forgery} nennt man den
Versuch eines fremden Benutzers, Ihren Browser fernzusteuern und damit
Aktionen auszulösen, die Sie selbst gar nicht
ausführen möchten.
. Dies führt zu Angriffen, bei denen ein böswilliger Benutzer
Sie dazu bringen könnte, ungewollt Kommentare zu verfassen oder sogar
freizuschalten.
Empfohlene Einstellung: Ja.

Captchas aktivieren Captchas (siehe Seite Captcha) sind kleine Grafiken mit schwer
zu lesenden Zeichenkombinationen. Damit ein Besucher einen Kommentar
schreiben darf, muss er die dargestellten Zeichen in eine Box abtippen,
um sich dem System gegenüber als "Mensch" auszuweisen.
Captcha-Grafiken müssen eine gewisse Komplexität aufweisen, damit sie
tatsächlich nicht von Computern überlistet werden können. Dies kann dazu
führen, dass es auch den Besuchern immer schwerer fällt, die Captchas
zu entziffern. Dennoch bietet diese Maßnahme eine der effektivsten
Möglichkeiten, automatisierten Spam zu unterbinden.
Mit der Option Stärkere Captchas können Sie die Komplexität der
Grafiken noch weiter erhöhen, indem weitere Zufallsmuster eingefügt
werden. Diese Option ist mehr für den "Spam der Zukunft" vorgesehen
und sollte derzeit glücklicherweise noch nicht erforderlich sein.
Um Captchas anzeigen zu können, sollte Ihr Server die PHP gdlib
anbieten. Andernfalls werden die Zeichenfolgen mit Grafikdateien
zusammengebaut, was von Spam-Robotern um einiges einfacher zu umgehen
ist. Damit Ihre Besucher Captchas ausfüllen können, müssen sie
in ihrem Browser Cookies annehmen. Wie Sie die Captcha-Grafiken anpassen
können, ist auf Seite Captcha-anpassen ausgeführt.
Empfohlene Einstellung: Ja.

Captchas nach wie vielen Tagen erzwingen Da Captchas gerade für sehbehinderte Menschen große Probleme schaffen,
möchte man diese Grafiken so selten wie möglich erforderlich machen.
Da Spammer mit Vorliebe alte Artikel in Ihrem Blog als Ziel nehmen (da
diese Artikel bei Suchmaschinen bereits besser vertreten sind), sind
häufig neue Artikel des Blogs nicht betroffen.
Dies können Sie ausnutzen, indem Sie Captchas nur dann einblenden, wenn
ein Artikel ein gewisses Alter erreicht hat. Das Mindestalter tragen Sie
in Tagen ein. Wenn Sie 0 eintragen, werden Captchas auch bei
aktuellen Artikeln direkt eingebunden.
Empfohlene Einstellung: 14.

Hintergrundfarbe des Captchas Die Captcha-Grafik wird unterhalb des Eingabeformulars für einen Kommentar
eingebunden. Je nach Design Ihres Blogs möchten Sie die Hintergrundfarbe
dieser automatisch erzeugten Grafiken sicher anpassen. Daher können Sie bei
dieser Option eine Farbe im RGB-Format eintragen. Drei Zahlen repräsentieren hier,
von einem Komma voneinander getrennt, den Farbwert von Rot, Grün und Blau.
Wer sich an die Farbenlehre erinnern kann, weiß, dass man mit diesen drei
Primärfarben jede andere vom Monitor darstellbare Farbe abbilden kann. Um
diese Farbwerte leicht herauszufinden, können Sie kleine Tools wie etwa den Colorpicker [*] \cmd{http://www.pagetutor.com/colorpicker/index.html} benutzen.
Empfohlene Einstellung: 255,255,255 (Weiß)

Kommentarmoderation nach wievielen Tagen erzwingen Bei besonders alten Artikeln ist es sehr selten, dass Besucher noch
gewünschte Kommentare hinterlassen. Blogs sind meistens so tagesaktuell,
dass ältere Artikel schnell an "Kommentarwert" verlieren. Dies können
Sie also ausnutzen, um Kommentare zu alten Artikeln von vornherein
auszusortieren.
Wenn Sie hier die Zahl 0 eintragen, wird diese Möglichkeit der
automatischen Moderation deaktiviert. Eine Zahl wie 60 bewirkt,
dass Artikel älter als zwei Monate nicht ohne Ihre Zustimmung kommentiert
werden können.
Empfohlene Einstellung: 60

Was soll mit auto-moderierten Kommentaren passieren? Üblicherweise werden Kommentare zu Artikeln, die Sie mit der Option
Kommentarmoderation nach wievielen Tagen erzwingen gefiltert
haben, in der Datenbank gespeichert, aber nicht freigeschaltet.
Über die Option Was soll mit auto-moderierten Kommentaren
passieren
können Sie mit solchen Kommentaren auch noch härter verfahren
und Kommentare vollständig abweisen.
Empfohlene Einstellung: moderieren

Trackbackmoderation nach wievielen Tagen erzwingen Ähnlich der Einstellung für Kommentare können auch Trackbacks nach einem
gewissen Zeitraum automatisch moderiert werden.
Empfohlene Einstellung: 60

Was soll mit auto-moderierten Trackbacks passieren? Ähnlich der Einstellung für Kommentare können die durch automatische
Moderation erfassten Trackbacks entweder moderiert oder verworfen werden.
Empfohlene Einstellung: moderieren

Behandlung von per API übermittelten Kommentaren Es gibt bei Serendipity grundsätzlich zwei Möglichkeiten, als Benutzer
eine Mitteilung zu einem Blog-Artikel zu hinterlassen. Zum einen sind das
Kommentare, die direkt im Blog eingetragen werden. Hierbei ist also eine
Interaktion des Benutzers notwendig, Captchas und andere Anti-Spam-Maßnahmen
können in den Prozess eingebunden werden.
Anders ist dies bei Trackbacks. Derartige "Kommentare" werden von einem
automatischen System verschickt und empfangen, daher können dort keine
Captchas zwischengeschaltet werden. Solche automatische Methoden
bezeichnet man daher als API (siehe Terminologie auf Seite API).
Sie können derartige Kommentare, die immer von Computern übermittelt
werden, gezielt behandeln: Entweder werden solche Kommentare
abgewiesen, oder sie müssen von Ihnen moderiert werden.
Wenn Sie automatisch übermittelte Kommentare gleichrangig wie via
Formular eingetragene Kommentare behandeln wollen, können Sie die Option
keine wählen.
Da das Aktivieren der automatischen Moderation meist eine große E-Mail-Flut von
Benachrichtigungen mit sich bringt und man gültige von ungültigen Trackbacks
schwer trennen kann, macht eine pauschale Moderation von Trackbacks selten
Sinn. Nur wenn Sie auf Trackbacks vollständig verzichten wollen, sollten Sie die
Option auf abweisen stellen.
Empfohlene Einstellung: keine

Trackback-URLS prüfen Der Sinn eines Trackbacks ist, dass ein fremdes Blog Sie darauf hinweisen
kann, dass es sich auf einen Ihrer Artikel bezieht. Daher muss ein
Trackback immer die URL des fremden Blogs enthalten, auf dem sich jemand
zu Ihrem Artikel äußert.
Bei Spam ist das meistens nicht der Fall - die URL, die das Trackback
bewirbt, enthält meistens nur besondere Angebote zum preiswerten Bezug
von Viagra oder tolle Vorschläge, wie man reich werden kann. Für die
Spammer wäre es ein hoher Aufwand, sich dort tatsächlich auf Ihren
Blog-Artikel zu beziehen.
Diese Nachlässigkeit der Spammer können Sie ausnutzen und mit der Option
Trackback-URLs prüfen einstellen, ob alle Trackback-URLs daraufhin
geprüft werden sollen, ob sie die URL Ihres Artikels enthalten.
Die Aktivierung dieser Option birgt jedoch zwei Gefahren: Wenn ein
Spammer eine ungültige URL oder eine URL mit besonders
vielen Daten hinterlässt, dann wird Ihr Webserver diese Seite gnadenlos trotzdem
aufrufen und viel Traffic verursachen. Da die URL-Prüfung ausgeführt
wird, während das Trackback gespeichert wird, kann dies die Dauer der
Prüfung sehr in die Länge ziehen und Ihren Server stark auslasten.
Zusätzlich darf bei der Aktivierung dieser Option der Webserver nicht von
einer Firewall blockiert werden, damit fremde URLs überhaupt aufgerufen
werden können.
Die zweite Gefahr ist, dass Sie möglicherweise Trackbacks abweisen, die
eigentlich gültig wären. Manche Blogsysteme senden ein Trackback an Ihr
Blog nämlich bereits, bevor der eigene Artikel veröffentlicht wurde. Das
Blogsystem würde also erst dann seinen Artikel mit dem Link zu Ihnen
online stellen, wenn das Trackback an Sie abgearbeitet wurde. Da Sie aber
bereits bei der Annahme des Trackbacks die Existenz der fremden URL
voraussetzen, würde das Trackback fehlschlagen.
Empfohlene Einstellung: Nein

Erforderliche Anzahl an Links für Moderation Viele Spammer nennen in ihren Kommentaren einfach zahlreiche Links und
hoffen, dass Ihre Besucher diese Links anklicken. Es ist
üblicherweise ungewöhnlich, dass Kommentatoren Ihrer Artikel dutzende von
Links an Sie schicken, daher können Sie in diesem Optionsfeld eine Anzahl
von Links angeben, bei deren Erreichen ein Kommentar automatisch
moderiert werden soll.
Empfohlene Einstellung: 7

Erforderliche Anzahl an Links für Abweisung Die Anzahl der erforderlichen Links im oberen Eingabefeld dient nur der
Moderation eines Kommentars. Wenn Sie ab einer gewissen Anzahl von Links
aber einen Kommentar direkt abweisen wollen, können Sie dies im Feld
Erforderliche Anzahl an Links für Abweisung eintragen.
Empfohlene Einstellung: 13

Wortfilter aktivieren In den folgenden großen Eingabefeldern können Sie Zeichenketten
eintragen. Sobald eine dieser Zeichenketten in einem Kommentar vorkommt
("Blacklisting"), kann ein Kommentar speziell behandelt werden.
Wie diese Behandlung ausfallen soll, stellen Sie über die Option
Wortfilter aktivieren ein. Ob Sie diese auf
moderieren oder
abweisen stellen, hängt davon ab, wie "scharf" Sie Ihre
Wortfilter einstellen. Wenn Sie beispielsweise das Wort arsch
filtern, dann ist das erstmal ein guter Gedanke. Vielleicht denken Sie
aber nicht daran, dass ja diese Zeichenkette auch bei dem Wort
"marschieren" vorkommen könnte und in diesem Fall keineswegs
filterungswürdig wäre. Hätten Sie den Wortfilter hier auf abweisen
gestellt, wäre ein Kommentar mit diesem Wort vollständig verloren, und
der Besucher wundert sich womöglich, warum sein Kommentar nicht
angenommen wurde.
Daher ist es ganz wichtig, dass Sie die folgenden Wortfilter so eng
wie möglich fassen, um gültige Buchstabenkonstellationen nicht auch zu
verhindern. Für obiges Beispiel wäre daher der Einsatz von
" arsch " (ohne Quotes!) eher
zu empfehlen. Durch die zusätzlichen Leerzeichen würde der Filter nur
noch dann aktiv werden, wenn das Wort isoliert vorkommt.
Empfohlene Einstellung: abweisen

Wortfilter für URLs, Autorennamen, Inhalt und E-Mail-Adressen Auf jedes Feld, das ein Kommentator ausfüllt, können Sie einen
Wortfilter anwenden.
Die zu filternden Wörter müssen mit dem Semikolon (;) getrennt
werden. Wenn Sie am Zeilenende angelangt sind, können Sie vor oder nach
diesem Semikolon auch gerne einen Zeilenumbruch (Return)-Taste
zur besseren Lesbarkeit einfügen.
Jedes eingetragene Wort wird dabei einzeln auf das Vorhandensein im
Kommentar geprüft. Trifft eines der Wörter zu, wird der Kommentar
entsprechend der Wortfilter-Einstellung entweder moderiert oder
abgewiesen.
Sämtliche Wortfilter werden als "reguläre
Ausdrücke" [*] \cmd{http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck} interpretiert. Dies ist eine spezielle Syntax, in der Sie auch
Platzhalter verwenden können. Reguläre Ausdrücke sind ein Thema
für sich, aber hier ein Beispiel für einen Wortfilter-Ausdruck:
\@[^\s]+\.jp\s   Dieser Ausdruck würde einen Kommentar dann sperren, wenn jemand eine
E-Mail-Adresse angibt, die zu einer japanischen Domain führt. Ein Kommentar wie
"Mail me at [email protected]" würde also blockiert werden.
Aufgrund des Einsatzes von regulären Ausdrücken gibt es bei den
Wortfiltern Besonderheiten für Zeichen, die bei regulären Ausdrücken
besonders genutzt werden. Solche Zeichen muss man, wenn sie im Wort
vorkommen sollen, escapen. Dazu stellt man einfach den Backslash
(\) vor eines der folgenden Sonderzeichen:
@ [ ] ( ) { } . ? * ^ $ | + - Wenn Sie also die große Flexibilität von regulären Ausdrücken nicht
nutzen wollen, können Sie die Wortfilter auch ganz einfach als
Wortliste verwenden. Einzig beim Auftreten eines Sonderzeichens müssen
Sie daran denken, den Backslash voranzustellen.
Wenn Sie ungültige reguläre Ausdrücke eingeben, kann dies zu PHP-Fehlermeldungen bei der
Kommentarabgabe führen oder sogar dazu, dass keinerlei Kommentare mehr
gespeichert werden können. In diesem Fall sollten Sie versuchen, alle
Wortfilter zu löschen. Wenn es danach wieder klappt, können Sie nach und
nach die ursprünglichen Zeichenketten wieder einfügen und so
herausfinden, welche Regel falsch war.
Empfohlene Einstellung: Keine Empfehlung möglich

URL-Filterung anhand der blogg.de Blacklist aktivieren Der Blog-Provider blogg.de hat in der Vergangenheit eine Liste von URLs
geführt, die von Spammern benutzt wurden. Serendipity kann einen
Kommentar mit dieser schwarzen Liste abgleichen und bei einem Treffer
nach Wunsch moderieren oder abweisen.
Aufgrund des hohen Pflegeaufwands ist die Blacklist dieses Providers
seit längerer Zeit nicht mehr aktiv, daher ist die Aktivierung dieser
Option zum jetzigen Zeitpunkt zwecklos. Möglicherweise wird die Blacklist
irgendwann wieder aktiviert, daher wird diese Option weiterhin angeboten.
Empfohlene Einstellung: keine

Akismet API Key Akismet ist ein zentraler Web-Service, der eine Schnittstelle für
Blogsysteme wie WordPress, Serendipity und MoveableType anbietet. Ein
Kommentar wird vollständig an den Service übermittelt, der Service
überprüft den Kommentar und sieht nach, ob er Spam-Kriterien aufweist.
Da sehr viele Systeme Spam an diesen Service melden und die Datenbank
bereits sehr groß ist und aktiv gepflegt wird, kann Akismet relativ
verlässlich entscheiden, ob ein Kommentar Spam darstellt oder nicht.
Wenn Sie den Akismet-Dienst benutzen wollen, benötigen Sie einen
sogenannten API-Key, den Sie mit der Anmeldung [*] \cmd{http://akismet.com} erhalten. Sie müssen ihn dann im
Spamschutz-Plugin im Konfigurationsfeld Akismet API Key eintragen.
Die Abfrage des Akismet-Servers kann nur klappen, wenn Ihr Webserver
nicht von einer Firewall am Verbindungsaufbau gehindert wird.
Beachten Sie bei der Benutzung von Akismet, dass es auch hier zu
falsch erkanntem Spam kommen kann und dass in besonders geschützten
Intranet-Blogs Kommentare so an einen zentralen Server übertragen werden,
über den Sie keine Kontrolle haben. Blogs, bei denen Sie schützenswerte
Inhalte hinterlegen, sollten Sie daher nicht mit Akismet betreiben.
Empfohlene Einstellung: Akismet-Schlüssel beantragen!

Behandlung von Akismet-Spam Mit dieser Option legen Sie fest, wie von Akismet erkannter Spam
behandelt werden soll. Sie können derartigen Spam entweder
moderieren oder abweisen.
Der große Komfort von Akismet und die relativ geringe Fehlerquote
ermöglichen es, diese Option auf abweisen einzustellen. So
erhalten Sie wirklich nur noch Moderationshinweise von Kommentaren, bei
denen die Einstufung als Spam aufgrund anderer Spamschutz-Kriterien nicht
eindeutig war.
Empfohlene Einstellung: abweisen

E-Mail-Adressen bei Kommentatoren verstecken Wird ein Kommentar bei einem Blog-Artikel angezeigt, sehen Sie auch
die Informationen zu demjenigen, der den Kommentar verfasst hat. Dabei
kann (je nach Template) auch die E-Mail-Adresse angezeigt werden, die
wiederum Spam-Roboter in Ihrem Blog sammeln könnten, um den
Kommentatoren mit Werbenachrichten zu belästigen.
Um dies zu verhindern, können Sie die E-Mail-Adresse Ihrer Besucher mit der
Option E-Mail-Adressen bei Kommentatoren verstecken stets
ausblenden, bzw. automatisch mit der Dummy-Adresse [email protected]
ersetzen.
Als Administrator können Sie die echte E-Mail-Adresse nach wie vor in der
Backend-Kommentar-Oberfläche einsehen.
Empfohlene Einstellung: Ja

Auf ungültige E-Mail-Adressen prüfen? Grundsätzlich ist es möglich, dass Kommentatoren in Ihrem Blog eine ungültige E-Mail-Adresse eintragen. Gerade
Spammer können dies benutzen, um statt einer E-Mail-Adresse einfach eine
Homepage zu übertragen.
Das Spamschutz-Plugin kann dies in gewissem Maße einschränken und eine
(grobe) Prüfung durchführen, ob eine E-Mail-Adresse ein gültiges Muster
besitzt (also [email protected]).
Wenn Sie diese Option aktivieren, kann Serendipity jedoch nicht prüfen,
ob die E-Mail-Adresse auch tatsächlich existiert. Fantasie-Adressen mit
gültigem Muster können also so nicht abgefangen werden.
Empfohlene Einstellung: Ja

Pflichtfelder Wenn ein Kommentator die Formularfelder ausfüllt, um einen Kommentar zu
hinterlassen, gibt es eine Reihe von optionalen Feldern. Serendipity
lässt Kommentare zu, bei denen lediglich der Kommentartext ausgefüllt
wird und ansonsten alle Angaben anonym sind.
Wenn Sie dies verhindern wollen, können Sie Pflichtfelder im
Kommentarformular definieren. Alle Pflichtfelder tragen Sie dabei in dem
Eingabefeld ein. Folgende Felder stehen zur Verfügung: name (Name
des Kommentators), email (E-Mail-Adresse), url (Homepage),
comment (Kommentartext). Ein weiteres Feld ist replyTo, das
angibt, auf welchen vorausgehenden Kommentar sich ein Benutzer bezieht.
Dieses Feld als Pflichtfeld zu bestimmen macht meistens keinen Sinn, weil
man einen Besucher dadurch zwingt, sich auf einen existierenden Kommentar
zu beziehen.
Wenn Sie Pflichtfelder definieren, müssen Sie Ihre Besucher auch darüber
in Kenntnis setzen. Schlagen Sie dazu im Kapitel commenttemplates auf
Seite commenttemplates nach, wie Sie Anpassungen am Kommentarformular
vornehmen können.
Empfohlene Einstellung: comment

Block bad IPs via HTaccess? Eine sehr experimentelle Option stellt Block bad IPs via HTaccess
dar. Innerhalb einer .htaccess-Datei können Sie bei
Apache-Webservern Regeln definieren, um Besucher mit einer bestimmten
IP-Adresse abzulehnen.
Diese Besucher können dann das gesamte Blog nicht mehr aufrufen und
belasten dabei glücklicherweise auch das System nur noch minimal - denn
Serendipity kommt selbst gar nicht mehr zum Zuge, um den Aufruf dieses
Besuchers zu bearbeiten, da der Webserver ihn bereits zuvor abgewiesen
hat.
Derartige Verbote können mittels des Befehls Deny From
IP-Adresse
vorgenommen werden. Dieses Kommando stellt eine
Blacklist von ein oder mehreren IP-Adressen dar und könnte auch manuell
in der .htaccess-Datei eingestellt werden.
Das Spamschutz-Plugin ermöglicht jedoch eine interessantere Art der
Einbindung. Jedesmal, wenn beim Prüfen eines Kommentars dieser
abgewiesen wird, merkt sich das Spamblock-Plugin die IP der Person, die
diesen Kommentar hinterlassen hat. So entsteht eine Liste, mit der
man herausfinden kann, von welchen IPs in letzter Zeit Spam geschickt
wurde. Sobald dieser Tabelle eine IP hinzugefügt wird, aktualisiert das
Plugin die .htaccess-Datei und sperrt den Zugriff für alle IPs, die
in den letzten zwei Tagen dort eingetragen worden sind.
Daher kann ein Besucher mit einer "verdächtigen" IP-Adresse frühestens nach zwei
Tagen erneut probieren, einen Kommentar zu hinterlassen.
Der große Vorteil dieser Sperrungsart ist, dass Spammern so schnell die
Server-Ressourcen entzogen werden können. Die Nachteile sind jedoch, dass
zum einen nur Apache-Webserver mit dieser Option arbeiten können und man
zum anderen möglicherweise einen zu großen Benutzerkreis blockiert (siehe
Anmerkungen zur Option IP-Block Intervall auf Seite
ipblock). Benutzen Sie die Option daher nur, wenn Sie wissen,
was sie bewirkt.
Empfohlene Einstellung: Nein

Protokollierung von fehlgeschlagenen Kommentaren Wenn ein Kommentar oder Trackback moderiert oder abgewiesen
wird, bemerken Sie dies als Redakteur möglicherweise gar nicht. Daher
ermöglicht das Spamschutz-Plugin, solche Meldungen entweder in der
Datenbank oder in einer Datei zu speichern.
Dieses Protokoll können Sie dann von Zeit zu Zeit prüfen, um
herauszufinden, ob Ihre Anti-Spam-Einstellungen in der Gesamtheit noch
Wirkung haben.
Wenn Sie das Protokoll in einer Einfachen Datei speichern, müssen
Sie einen Speicherplatz angeben. Sie können diese Datei dann von Zeit zu
Zeit herunterladen und auf dem Server wieder löschen, damit sie
nicht zu groß wird.
Für die Auswertung von Protokollen ist die Speicherung in einer Datenbank sicher
empfehlenswerter. Die Datenbanktabelle serendipity_spamblocklog können Sie
mit einem Programm wie phpMyAdmin komfortabel ansehen und nach bestimmten
Kriterien filtern. Fortgeschrittene Benutzer können die Datenbanktabelle nutzen,
um sich kleine Scripte zu schreiben, die täglich oder wöchentlich Statusberichte
per E-Mail verschicken oder auch im Blog anzeigen. Auch diese Datenbanktabelle
sollten Sie von Zeit zu Zeit leeren, um nicht zu viele alte Daten vorzuhalten.

Speicherplatz für das Logfile Wenn Sie die Protokollierung in eine einfache Datei aktiviert haben,
müssen Sie hier den vollständigen Dateisystem-Pfad auf dem Server
eintragen, wo das Logfile gespeichert werden soll. Der Webserver muss
Schreibrechte zu diesem Verzeichnis haben, daher können Sie zB. auch Ihr
uploads-Verzeichnis dafür verwenden.

 

Unterhalb der Konfigurationsoptionen bindet das Plugin noch eine kleine
Vorschaugrafik der Captchas ein. Dort können Sie sehen, wie ein Captcha
für einen Besucher aussieht, und gegebenenfalls Änderungen der
Hintergrundfarbe vornehmen.

Die Art der Captcha-Grafiken richtet sich danach, ob Ihr Webserver
das PHP-Modul gdlib unterstützt. Ohne gdlib gibt das
Spamblock-Plugin PNG-Grafiken im Verzeichnis
plugins/serendipity_event_spamblock direkt aus. Für jeden
Buchstaben gibt es eine eigene captcha_zeichen.png-Datei,
die Sie mit einem Bildbearbeitungsprogramm anpassen können.

Wenn gdlib vorhanden ist, gilt:
Die verwendeten Schriftarten der Captchas können Sie nur mit
etwas Aufwand verändern. Das Plugin kann mit beliebigen TTF-Schriftdateien, wie
sie Windows mitliefert, umgehen. Diese Dateien liegen im Verzeichnis
plugins/serendipity_event_spamblock und sind standardmäßig auf
die vier Schriftarten Vera, VeraSE, Chumbly und 36daysago beschränkt. Das
Auswahlkriterium der Schriftarten war, dass diese möglichst nicht
maschinenlesbar sein sollen. Wenn Sie lieber eine eigene, besser lesbare
Schriftart benutzen wollen, können Sie die vorhandenen TTF-Dateien
mit anderen ersetzen und müssen dabei die Dateien lediglich umbenennen.

Das Plugin wählt zufällig eine der vier verfügbaren Schriftarten aus.
Wenn Sie mehr als vier Schriftdateien benutzen wollen, müssen Sie die
Plugin-Datei
plugins/serendipity_event_spamblock/serendipity_event_spamblock.php
öffnen und bearbeiten. Suchen Sie nach der Zeile


    $fontfiles = array('Vera.ttf', 'VeraSe.ttf', 'chumbly.ttf', '36daysago.ttf');

Dort müssen Sie (jeweils in Anführungszeichen) den Namen der Schriftdatei
kommasepariert eintragen.

Etwas oberhalb dieser Codezeile findet sich auch die Angabe, wie groß die
Captcha-Grafik ist:


    $width = 120;
$height = 40;

Mit den beiden Zahlen 120 (Breite) und 40 (Höhe) können
Sie die Bildgröße anpassen.

Die Schriftgröße müssen Sie über eine weitere Variable anpassen, die
ebenfalls in der Nähe der obigen Stellen erscheint:


    $size  = mt_rand(15, 21);

Diese Zeile bewirkt, dass das Plugin zufällig eine Schriftgröße zwischen
15 und 21 für jeden einzelnen Buchstaben benutzt. Sie können diese beiden
Zahlen auf den gewünschten Wert erhöhen (zB. 21 und 26), um größere
Schriften anzuzeigen.

Das Plugin verzichtet bei der Ausgabe der Schriften auf einige Zeichen,
die häufig missverständlich aussehen. Die Zahlen 1, 5, 6 und 8 sowie die
Buchstaben I, O und S werden daher ausgelassen. Wenn Sie weitere
Buchstaben ausschließen wollen, können Sie auch diese in der
Spamschutz-Datei ändern. Suchen Sie dafür folgende Code-Stelle und passen
Sie sie an:


6.1.2 - Browser-Kompatibilität: serendipity_event_spartacus

Browser-Kompatibilität
serendipity_event_spartacus

Mit Serendipity 2.0 wurde das Spartacus-Plugin in die Liste der aktiven Plugins gesetzt,
da inzwischen die Jahre eine Verbesserung der Lage auf den verwendeten Webservern erbrachte,
so dass dieses wertvolle Plugin als gesetzt gegeben werden konnte.
Bitte lesen Sie dazu unter dem Label Spartacus die ausführliche Pluginbeschreibung.

6.1.2 - Browser-Kompatibilität serendipity_event_browsercompatibility

Browser-Kompatibilität serendipity_event_browsercompatibility

Eines der simpelsten Ereignis-Plugins ist das
Plugin namens Browser-Kompatibilität. Es wurde damals erstellt, um ein
gravierendes Problem des Microsoft Internet Explorer 6 zu beheben. Dieser
Browser konnte standardmäßig keine Grafiken mit mehrstufiger
transparenter Hintergrundfarbe anzeigen, während alle anderen am Markt
verfügbaren Browser damit kein Problem hatten.

Leider war (und ist) dieser Browser stark verbreitet, aber Serendipity
sollte dennoch in der Lage sein, Icons mit transparentem Hintergrund in
der Oberfläche anzuzeigen. So sind beispielsweise die Grafiken des Uhr-Symbols
oder des Hammers transparente Grafiken, die bei jeder
Hintergrundfarbe eingebunden werden können.

Mit Hilfe dieses Plugins konnte eine einfache Regel in die Ausgabe von
Serendipity aufgenommen werden, so dass die Grafiken dargestellt werden
können. Ursprünglich war geplant, auch weitere Browser-Unterschiede mit
diesem Plugin auszubügeln. Dies war jedoch seither nie wieder
nötig.

Wenn in Zukunft Version 7 des Internet Explorers noch größere Verbreitung
hat, wird dieses Plugin also nicht mehr erforderlich sein. Auch
heutzutage ist es eigentlich nur dann notwendig, wenn Sie die
Administrationsoberfläche mit Internet Explorer 6 ohne merkwürdige
Hintergrundfarben einsetzen wollen.

Einen gravierenden Nachteil hat dieses Plugin jedoch. Das Plugin sorgt
dafür, dass der Browser eine PNG-Grafik intern als Hintergrundbild
interpretiert und eine unsichtbare GIF-Grafikdatei darüberlegt. Das
klappt nur dann einwandfrei, wenn ein Bild im HTML-Code so eingebunden
ist, dass die width- und height-Angaben des
<img>-Tags vorhanden sind. Fehlt diese Angabe, wird die PNG-Grafik
womöglich gestaucht oder in die Länge gestreckt. Wenn Sie also
später PNG-Grafiken in Ihrem Blog hinzufügen, achten Sie immer darauf,
dass die width/height-Angaben vorhanden sind. Oder benutzen Sie
alternativ das GIF- oder JPEG-Grafikformat, wenn die Transparenz nicht
wichtig ist. Eine weitere Möglichkeit bestünde natürlich darin, das
Plugin Browser-Kompatibilität zu entfernen und darüber hinwegzusehen,
dass Besucher mit dem alten Internet Explorer 6 möglicherweise
eine pinke Hintergrundfarbe statt Transparenz sehen.

Das Plugin besitzt keine Konfigurationsoptionen.

6.1.3 - Textformatierung: Serendipity: serendipity_event_s9ymarkup

Textformatierung: Serendipity
serendipity_event_s9ymarkup

Das Textformatierungs-Plugin Serendipity bietet einige ganz
einfache Umwandlungen für Ihre Artikeltexte an. Diese Umwandlungen sind
an alte Mailbox-Hervorhebungsmöglichkeiten angelehnt und stammen noch aus
einer Zeit, in der Formatierung via HTML gänzlich unbekannt war. Daher
haben sich viele alte Hasen an derlei Formatierung gewöhnt und können
damit leichter umgehen als mit HTML-Code:

  • *Wort* formatiert ein Wort fett.
  • _Wort_ unterstreicht ein Wort.
  • ^Wort^ setzt ein Wort hochgestellt.
  • @Wort@ setzt ein Wort tiefgestellt.

Aufgrund dieser besonderen Konventionen kann das
Serendipity-Textformatierungs-Plugin besonders bei Artikeln mit
Quellcode-Inhalten Probleme verursachen. Wenn Sie in einem Artikel
PHP-Code zitieren, könnten die oben aufgeführten Sonderzeichen ungewollte
HTML-Formatierungen auslösen.

Sie können dieses Problem meist beheben, indem Sie das Plugin im
Bedarfsfall für einen einzelnen Beitrag deaktivieren (über die
zusätzlichen Artikeloptionen des Plugins Erweiterte Eigenschaften
für Artikel
, siehe Seite entryproperties) oder indem Sie es
vollständig deinstallieren. Wenn Sie das Plugin in Zusammenhang mit anderen
Quellcode-Hervorhebungs-Plugins benutzen, achten Sie möglichst darauf,
dass das Serendipity-Textformatierungs-Plugin als letztes
Textformatierungs-Plugin in der Plugin-Liste aufgeführt wird.

6.1.4 - Textformatierung: Smilies: serendipity_event_emoticate

Textformatierung: Smilies
serendipity_event_emoticate

Das wohl gebräuchlichste Textformatierungs-Plugin nennt
sich Smilies. Es ersetzt typische Smiley-Zeichenketten wie :-) durch
einen grafischen Smiley.

Wenn Sie die Konfigurationsoptionen des Plugins aufrufen, sehen Sie eine
Liste aller verfügbaren Smiley-Umwandlungen. Auch Besucher können, falls
gewünscht, in ihren Kommentaren auf die Smiley-Grafiken zurückgreifen.

Vielfach wird den Serendipity-Smileys vorgeworfen, dass sie ziemlich
hässlich aussähen. Zum einen ist das natürlich Geschmackssache, aber zum
Teil kann man das auch nicht ganz von der Hand weisen. Da Serendipity
so freizügig wie möglich lizensiert wurde, können nur Smiley-Grafiken mit
Serendipity ausgeliefert werden, die derselben Lizens unterliegen. Die
meisten Smileys, die im Internet zu haben sind, sind jedoch entweder nur
kommerziell oder inkompatibel lizensiert oder von den Seiten ohne
Befugnis eingebaut. Da die Smiley-Grafiken auch mit einem
Serendipity-Template zusammen gebündelt werden können, gibt es auch
einige (wenige) Templates mit eigenen Grafikdateien: GreenMile,
kamouflage und truth.

Als Betreiber des Blogs können Sie aber glücklicherweise die Grafiken
einfach ersetzen. Das Plugin versucht Ihnen das so einfach wie möglich
zu machen, daher gibt es mehrere Möglichkeiten, eigene Smileys
einzubinden.

Variante 1: Grafikdateien ersetzen Die einfachste Methode ist, die Smiley-Grafikdateien von
Serendipity durch eigene zu ersetzen. Diese Dateien befinden sich
standardmäßig im Verzeichnis templates/default/emoticons/. Die
Dateien haben eine .png-Dateiendung, Sie können aber auch die
Smiley-üblichen .gif-Dateien hochladen, wenn Sie in der
Konfiguration des Smilie-Plugins danach als Dateiendung für
Smileys auch .gif eintragen.
Sie können die eigenen Smiley-Dateien entweder direkt in das genannte
Verzeichnis hochladen oder auch in ein gleichnamiges Unterverzeichnis
eines eigenen Templates. Wenn Sie die Dateien in ein eigenes
Template-Verzeichnis hochladen, werden die Grafiken automatisch von dort
eingebunden und Sie haben den Vorteil, später die Grafiken
zusammenhängend mit Ihrem Template archivieren oder verteilen zu können.

Variante 2: Smileys erweitern Beim Ersetzen von Smileys können Sie natürlich keine neuartigen Smileys
hinzufügen, sondern nur die bestehenden überarbeiten.
Um eigene zu erstellen, kann das Plugin eine Datei
emoticons.inc.php auswerten. Diese Datei muss ein Array enthalten,
in dem Smileys beschrieben und einer Grafik zugewiesen werden.
Standardmäßig würde eine Datei so aussehen: Pro Zeile sehen Sie jeweils den Text, der durch eine Grafik ersetzt
werden soll, und danach auf der rechten Seite einen Aufruf, der auf die
entsprechende Grafikdatei verweist.
Wenn Sie sich mit regulären Ausdrücken (siehe Seite regexp)
auskennen, können Sie auch Smileys mit solchen Ausdrücken definieren.
Damit ist es leichter, diverse Plugin-Alternativen zu beschreiben, zB.
dass sowohl :-) als auch :) zur selben Grafik umgewandelt werden. Damit
das Array $serendipity['custom_emoticons'] diese regulären
Ausdrücke nutzen kann, müssen Sie eine weitere Variable
$serendipity['custom_emoticons_regexp'] = true; innerhalb der emoticons.inc.php definieren.

6.1.5 - Textformatierung: NL2BR: serendipity_event_nl2br

Textformatierung: NL2BR
serendipity_event_nl2br

Das Plugin NL2BR ist ein ebenfalls recht simples
Textformatierungs-Plugin. Es sorgt einfach dafür, dass von Ihnen
eingegebene Zeilenumbrüche in einem Beitrag später in einen korrekten
HTML-Zeilenumbruch (<br />) umgewandelt werden.

Das ist notwendig, weil der HTML-Standard normale Zeilenumbrüche nicht
als solche erkennt. Auch mehrere hintereinander eingetragene
Leerzeichen werden von HTML als ein einziges Leerzeichen
zusammengefasst.

Wenn Sie also ohne dieses Plugin Beiträge schreiben, müssten Sie selber
die korrekten HTML-Absätze (entweder mittels <p>...</p> oder
<br />) einfügen. Je nachdem, ob Sie einen WYSIWYG-Editor einsetzen,
tut dies der Editor auch bereits selbständig.

Wenn Sie also bei selbständiger Eingabe überflüssige Zeilenumbrüche in
Ihren Artikeln haben, sollten Sie das NL2BR-Plugin deinstallieren.

Abhängig vom eingesetzten Template kann es sein, dass das Template die
Abstände zwischen Absätzen (den <p>-Tags) mittels
CSS-Formatierungen deaktiviert. Die eigentlich zu erwartenden Leerzeilen
zwischen zwei Absätzen würden somit also unterdrückt werden. In älteren
Templates wurde dies hauptsächlich deshalb eingefügt, um doppelte
Zeilenumbrüche in Verbindung mit dem NL2BR-Plugin zu vermeiden.
Wenn Sie ein derartiges Template einsetzen, können Sie eine einfache
CSS-Formatierung am Ende der style.css-Datei im entsprechenden
templates-Unterverzeichnis einfügen:


    .serendipity_entry p {
  margin: 1em;
}

Dadurch wird der Abstand (margin) zwischen Paragraphen auf eine
relative Einheit gesetzt, die dem üblichen Absatzabstand entspricht.

Ein weiteres Problem kann auftreten, wenn Sie in einem
Beitrag JavaScript oder anderweitigen Sourcecode platzieren möchten. Denn
auch hier würde das Plugin relativ stur sämtliche Leerzeichen durch
<br /> umwandeln und dadurch JavaScript ungültig machen oder Ihre
spezielle Sourcecode-Formatierung in einem
<blockquote>-HTML-Konstrukt mit überflüssigen HTML-Zeilenumbrüchen
stören. Es gibt mehrere
Möglichkeiten (abgesehen vom Deinstallieren des NL2BR-Plugins), dieses Problem zu beheben:

  • NL2BR-Plugin fallweise für einen einzelnen Artikel
    deaktivieren. Dies können Sie beim Erstellen eines Artikels im
    Abschnitt Erweiterte Optionen erledigen, wenn Sie das
    Ereignis-Plugin Erweiterte Eigenschaften von Artikeln
    installiert haben.
  • In der Konfiguration des NL2BR-Plugins die Liste von
    geschützten HTML-Tags so ändern, dass keine Zeilenumbrüche
    zwischen ungewünschten Tags eingefügt werden. So können Sie zB.
    script mit in die kommaseparierte Tagliste aufnehmen, damit
    das NL2BR-Plugin keine Zeilenumbrüche in JavaScript-Containern
    einfügt.
  • Bei der Reihenfolge der Textformatierungs-Plugins darauf achten,
    dass das NL2BR-Plugin als letztes ausgeführt wird. Dadurch wird
    verhindert, dass die Zeilenumbrüche zu früh eingefügt werden und
    möglicherweise andere Textformatierungs-Plugins durcheinanderbringen.
6.1.6 - Erweiterte Eigenschaften von Artikeln: serendipity_event_entryproperties

Erweiterte Eigenschaften von Artikeln
serendipity_event_entryproperties

Mit Serendipity 2.0 wurde das entryproperties-Plugin in die Liste der aktiven Plugins gesetzt,
da inzwischen die Jahre eine Verbesserung der Lage auf den verwendeten Webservern erbrachte,
so dass dieses mächtige Plugin als gesetzt gegeben werden konnte.
Bitte lesen Sie dazu unter dem Label entryproperties die ausführliche Pluginbeschreibung.

6.2 - Weitere mitgelieferte Plugins

Weitere mitgelieferte Plugins

Über die bereits vorinstallierten Ereignis-Plugins hinaus liefert
Serendipity noch einige weitere Ereignis-Plugins mit, die Sie direkt über
die Plugin-Verwaltung installieren können.

Beachten Sie, dass bei Textformatierungs-Plugins die Reihenfolge der
Plugins für die endgültige Formatierung maßgeblich sein kann (siehe Seite
Textformatierungs-Plugins).

6.2.1 - Textformatierung: BBCode: serendipity_event_bbcode

Textformatierung: BBCode
serendipity_event_bbcode

BBCode ist eine sehr weit verbreitete Möglichkeit, um einfachste
Formatierungen (fett, kursiv, Hyperlinks) durchzuführen. Grundsätzlich
könnte man sich natürlich auch die nicht viel komplizierteren HTML-Tags
aneignen, aber aus mehreren Gründen sollte man darauf verzichten.

BBCode wird seltener von den Redakteuren selbst
genutzt, sondern meist von Besuchern, die ihre Kommentare im Blog mittels
BBCode formatieren können. HTML stellt ein grundlegendes
Sicherheitsrisiko dar, wenn beliebige Besucher derartige Formatierungen auf
die Webseite setzen können. Denn in HTML kann man JavaScript einbinden,
das ungewünschte, sicherheitsrelevante Funktionen
auslösen kann - so könnten möglicherweise Logindaten ausgespäht werden,
oder der Inhalt der Seite könnte von gewitzten Benutzern vollständig abgeändert
werden. Kurzum, als Betreiber eines Blogs sollte man es vermeiden,
HTML-Kommentare zuzulassen. Serendipity verhindert dies aus
Sicherheitsgründen vollständig, daher ist die einzige Möglichkeit zur
Formatierung von Kommentaren die Benutzung von Standards wie BBCode. Denn
diese Formatierungen können problemlos und sicher in HTML umgesetzt
werden. BBCode ist aufgrund seiner hohen Verbreitung so allgegenwärtig,
dass die Kommentatoren meist Kenntnis davon haben. Nicht nur Blogs,
sondern auch Internetforen oder auch E-Mail-Programme "sprechen" oft
BBCode.

Auch bei der Artikelerstellung kann BBCode hilfreich sein - die Syntax,
um eine HTML-Auflistung zu erstellen, ist wesentlich unkomplizierter als
entsprechender HTML-Code.[*] Eine Auflistung von BBCodes gibt
\cmd{http://de.wikipedia.org/wiki/BBcode}.
BBCodes sind immer von eckigen
(statt bei HTML spitzen) Klammern umgeben. Um ein Wort zu fetten, würde man
[b]Wort[/b] verwenden, Bilder kann man mittels
[img]http://www.example.com/bild.jpg[/img] einbinden und Hyperlinks
via [url]http://www.example.com[/url]. Die erwähnten Auflistungen
kann man mittels [list] [*]Punkt [*]Punkt ... [/list] formatieren.

In den Konfigurationsoptionen des Plugins können Sie zudem einstellen, ob
von BBCode formatierte Links standardmäßig in einem neuen Fenster
geöffnet werden sollen.

6.2.2 - Textformatierung: Textile: serendipity_event_textile

Textformatierung: Textile
serendipity_event_textile

Textile ist in Grundzügen ähnlich zu BBCode, benutzt jedoch eine leicht
andersartige (Wiki-ähnliche) Syntax, die manche Personen bevorzugen. Auf
eckige Klammern wird zugunsten von Formatierungen wie
"Mein Blog":{http://www.example.com/serendipity/} verzichtet.
Darüber hinaus bietet Textile eine weitaus höhere Abstraktion als BBCode. Während
BBCode so einfach wie möglich gehalten ist, bietet Textile eine
Flexibilität, mit der man fast ganz auf HTML verzichten kann.[*] Unter
\cmd{http://thresholdstate.com/articles/4312/the-textile-reference-manual} finden Sie die vollständige Textile-Syntax.

Textile ist eine relativ komplexe Bibliothek, die auch mehr Ressourcen
verbraucht als das BBCode-Plugin. Daher wird sie meist eher von
Redakteuren benutzt als von Kommentatoren.

Da Textile auch weitaus mehr Formatierungsmöglichkeiten für beliebiges
HTML enthält, sollten Sie sich gut überlegen, ob Sie diese Flexibilität
auch den Kommentatoren anbieten wollen, die so möglicherweise das Layout
innerhalb der Kommentare durcheinanderbringen könnten.

In den Konfigurationsoptionen des Plugins können Sie einstellen, ob die
Textile-Bibliothek in Version 1.0 oder 2.0 oder 3.0 genutzt werden soll.

6.2.3 - Textformatierung: Wiki: serendipity_event_textwiki

Textformatierung: Wiki
serendipity_event_textwiki

[...Hoffnungslos veraltet, unmaintained und nicht zu empfehlen...! (Sig)]
Dieses Plugin wurde nach Spartacus verschoben und aus dem Release Zip entfernt.

Eine sehr verbreitete und beliebte Form der Textauszeichnung stellt das
sogenannte Wiki markup dar. Diese Formatierungsart hat aufgrund
des Wikipedia-Booms hohe Verbreitung gefunden. Da Wikis erschaffen wurden,
um auch Leuten ohne HTML-Kenntnisse die Möglichkeit zu bieten,
gemeinsam formatierte Texte zu erfassen, ist die Syntax dieses Plugins
ebenfalls einfach gehalten.

Serendipity benutzt hierfür das mitgelieferte PEAR Text::Wiki-Paket,
um die Wiki-Syntax in HTML umzuformen. Dieses PEAR-Paket hat eine gewaltige
Anzahl an Konfigurationsoptionen, mit denen Sie die möglichen Eingaben und
Ausgaben des Plugins kontrollieren können. Alle Optionen entsprechen
dabei den Optionen, die das PEAR-Paket bereitstellt.

Die vollständige Dokumentation der Syntax und der verfügbaren Optionen
befindet sich auf
http://web.archive.org/web/20070208170023/wiki.ciaweb.net/yawiki/index.php?area=Text_Wiki.

Bei der Verwendung des Wiki-Plugins gilt es zu beachten, dass dieses Plugin
sämtliche HTML-Formatierungen eines Artikels umwandelt. So können Sie als
Redakteur keinerlei manuelles HTML mehr einfügen. Dieses Verhalten können
Sie jedoch in der Konfiguration des Plugins abstellen (Html: Ja).
Weiterhin können Sie über die Plugin-Optionen auch alle anderen
Umwandlungsvarianten flexibel ein- oder ausschalten.

6.2.4 - Textformatierung: Externe Links zählen: serendipity_event_trackexits

Textformatierung: Externe Links zählen
serendipity_event_trackexits

Serendipity kann für Statistiken zählen, wie oft Ihre Besucher auf
externe Links in Ihrem Blog geklickt haben. So ist es für Sie als
Betreiber möglich, herauszufinden, welche von Ihnen genannten URLs für
Ihre Besucher besonders interessant sind.

Sobald ein Besucher eine externe URL klickt, verlässt er Ihr Blog.
Das bedeutet, dass Serendipity üblicherweise gar nicht herausfinden kann,
wenn ein Besucher Ihr Blog verlässt, denn dann findet kein Aufruf der
Seiten auf Ihrem Server mehr statt.

Um dies zu umgehen, müssen also fremde URLs so verändert werden, dass ein
Klick darauf erst Ihrem Blog die angeklickte Seite mitteilt und dann
erst die gewünschte Seite aufgerufen wird. So ein Mechanismus nennt sich
Link Tracking. Eine externe URL wie http://www.google.de/
wird dazu speziell aufbereitet, so dass in Ihrem Artikel ein Link wie
http://www.example.com/serendipity/exit.php?entry_id=1&url_id=1
erscheint.

Die Datei exit.php erkennt aufgrund der URL-Variablen, welche Seite
angefordert wurde. So kann in einer Datenbanktabelle die Anzahl der
Klicks zu der gewünschten URL mitgezählt und dann der Browser des
Besuchers zu der gewünschten Seite weitergeleitet werden.

Diese Methode ist die einzige Möglichkeit, externe Links
nachzuverfolgen. Die automatische Umformung von Links in das notwendige
Format nimmt das Plugin Externe Links zählen vor. Ist dieses
aktiviert, wird jeder HTML-Code wie <a
href='http://www.example.com'>Google</a>
erfasst und umgeschrieben.

Dieses Umschreiben hat für Sie Vorteile in der Statistik, für den Benutzer
jedoch mehrere Nachteile. Zum einen kann ein Besucher so eine URL nicht
mehr eindeutig identifizieren. Ob er nach einem Klick darauf wirklich auf
der Seite von Google landet, weiß er vorher noch nicht. Daher werden
viele Besucher (zu Recht) misstrauisch, wenn sie auf derart merkwürdig
formatierte Links stoßen. Den Besuchern wird dadurch auch sofort klar,
dass sie statistisch "ausgespäht" werden - und letztlich kann ein
Besucher auch nicht einfach per Kopieren und Einfügen den Link
übernehmen, sondern er muss ihn erst aufrufen, um herauszufinden, auf welcher
URL er landet.

Überlegen Sie sich also beim Einsatz dieses Plugins gut, ob der
statistische Nutzen für Sie ausschlaggebend ist. In älteren Versionen
Serendipitys war dieses Plugin noch ein Standard-Plugin, wurde aber
aufgrund der Kritik von Blog-Besuchern aus der Standardinstallation
entfernt.

Wenn ein Besucher bei einem Kommentar seine Homepage angibt, kann auch diese
Homepage umgeformt und in der Statistik nachverfolgt werden. Dies hat den
Vorteil, dass potenzielle Spammer die angegebene Homepage nicht mit dem
Suchmaschinenrang Ihres Blogs aufwerten können. In der Konfiguration des Plugins
können Sie dieses Verhalten einstellen: Sie können die Nachverfolgung von
Kommentatoren-Homepages entweder ausstellen (keine), Sie können das
angebotene Link Tracking aktivieren (Serendipity Exit-Tracking Routine)
oder auch auf eine Maskierung von Google (Google PageRank Deflector)
zurückgreifen. Diese Methode ist ein ähnliches Vorgehen, wie von der
NoFollow-Initiative [*] \cmd{http://de.wikipedia.org/wiki/Nofollow} gefordert --
man verbietet so den Kommentatoren, vom Suchmaschinen-Wert (dem Google PageRank)
zu profitieren. Die berechtigte Kritik an diesem Vorgehen ist jedoch, dass man
aufrichtige Kommentatoren ruhig durch die Verlinkung auf ihre Seiten belohnen
soll. Ohne derartige Verlinkungen, die von Suchmaschinen berücksichtigt werden,
wären die Blogs von heute bei weitem nicht so verbreitet und weniger relevant bei
Suchergebnissen.

6.2.5 - Übliche XHTML-Fehler beseitigen: serendipity_event_xhtmlcleanup

Übliche XHTML-Fehler beseitigen
serendipity_event_xhtmlcleanup

Da XHTML an XML angelehnt ist, besteht wenig Fehlertoleranz gegenüber
Syntaxfehlern. Sollte ein Redakteur also versehentlich ungültiges XHTML
produzieren, kann dies dazu führen, dass trotz barrierefreier Templates
die Seite nicht mehr validiert.

Abgesehen von logischen Fehlern (HTML-Tags öffnen und sie nicht wieder
schließen oder bei verschachtelten HTML-Tags die Reihenfolge
vertauschen), kann das Serendipity-Plugin Übliche XHTML-Fehler
beseitigen
dabei helfen, einige gängige Fehlerquellen auszuräumen:

  • Das Sonderzeichen & darf bei XHTML nur dann benutzt werden, wenn daraufhin ein HTML-Sonderzeichen folgt, also beispielsweise &gt; (>), &euro; (Euro-Symbol) oder andere. Wenn Sie jedoch das Zeichen & auch so in einem Artikel anzeigen wollen, müssen Sie &amp; benutzen. Normalerweise geben Redakteure selten HTML-Sonderzeichen ein und wissen nicht von der Regel, das &-Zeichen nicht alleine zu setzen. Das Plugin kann sich daher darum kümmern, dass ein allein stehendes & immer zu &amp; umgewandelt wird.
  • Alle XHTML-Tags müssen immer ein schließendes Element verwenden. Ein <p> ist daher nur gültig, wenn auch ein schließendes </p> folgt. Das früher verbreitete HTML-Tag <br> musste, da es kein schließendes Element voraussetzt, zu <br /> verändert werden. In den häufigsten Fällen wird das />-Zeichen bei den Tags <img>, <hr> und eben jenem <br> vergessen. Das Plugin kann bei diesen Tags das fehlende / nachreichen.
  • XHTML-Bilder-Tags (<img>) benötigen stets ein alt-Attribut, das sehbehinderten Benutzern beschreibt, was ein Bild darstellt. Dieses ALT-Tag wird aufgrund des höheren Aufwands von vielen Redakteuren jedoch vernachlässigt oder vergessen. Das Plugin kann sicherstellen, dass zumindest immer ein leeres alt-Attribut gesetzt wird. Wenn Sie die Option Encode XML-parsed data aktivieren, wird zudem sichergestellt, dass innerhalb eines Bild-Links keine ungültigen Sonderzeichen erscheinen können.
  • Bei Webseiten im UTF-8-Format sind HTML-Sonderzeichen wie &auml; (ä) nicht erlaubt. Das Plugin kann solche Sonderzeichen in die korrekten UTF-8-Sonderzeichen umwandeln, wenn Sie die Option Cleanup UTF-8 entities aktivieren.

Wenn Sie Wert darauf legen, dass Ihre Seite dem XHTML-Standard
entspricht, sollten Sie dieses Plugin installieren.

6.2.6 - Wort-Ersetzer: serendipity_event_contentrewrite

Wort-Ersetzer
serendipity_event_contentrewrite

Das Plugin Wort-Ersetzer ist ein sehr komplexes Plugin, das es
Ihnen ermöglicht, beliebige Wörter von Kommentaren oder Blog-Artikeln
umzuwandeln. Sehr beliebt ist das Plugin daher bei schreibfaulen
Redakteuren oder Personen, die gerne mit Akronymen um sich werfen.

Jedes Mal, wenn Sie in einem Artikel beispielsweise die Zeichenfolge
s9y verwenden, kann das Plugin dafür sorgen, dass dies
umgewandelt wird zu <a href="http://www.s9y.org/"
title="s9y">s9y</a>
. Man sieht also bereits, welches
Einsparungspotenzial das Plugin bietet, solange Sie das zu Grunde
liegende Wörterbuch gut pflegen.

Die Eingabemaske für diese Wörterbücher erreichen Sie über die
Konfiguration des Plugins. In dieser Oberfläche können Sie beliebig viele
Wörter erfassen, die jeweils eine Quelle und ein Ziel
darstellen, die anhand der konfigurierten Umformungsmaske speziell
umgeschrieben werden.

Jedes Mal, wenn Sie einen neuen Titel und eine neue
Beschreibung eintragen und das Plugin speichern, wird dem Wörterbuch
ein neues Wort hinzugefügt. Um ein Wort aus dem Wörterbuch zu entfernen,
können Sie es in der Konfigurationsmaske einfach aus dem Eingabefeld
löschen.

Bevor Sie jedoch eine Quelle und ein Ziel für die
Wortersetzung eintragen, müssen Sie global festlegen, wie die beiden
Eingaben behandelt werden sollen. Die Quelle legt das
Wort fest, das Sie selbst in einem Artikel eintragen. Das Ziel ist
später das Wort, das anstelle Ihrer Eingabe erscheinen oder ergänzt
werden soll.

Mittels der Umformungsmaske legen Sie fest, wie die Wortquelle und
das Wortziel später umformatiert werden sollen. Dies ist weitaus
komfortabler, als jedes Mal den vollständigen Zieltext festzulegen.
Stellen Sie sich vor, Sie würden analog zur Umformung des Wortes
s9y auch das Wort PHP so umwandeln, dass ein Link darauf
gesetzt wird. Als Umformungsmaske würde man hier Folgendes festlegen:
<a href="ziel" title="quelle">quelle</a>

Tragen Sie nun als Neuer Titel das Wort s9y ein, als
Neue Beschreibung geben Sie http://www.s9y.org/ ein.
Speichern Sie das Plugin, und Sie können das nächste Wörterpaar
PHP und http://www.php.net eintragen.

Die Umformungsmaske wird also in Zukunft bei jedem Vorkommen der
eingetragenen Quelle das entsprechende Ziel heraussuchen und
im Inhalt einsetzen.

Für jedes Plugin kann nur eine Umformungsmaske eingetragen werden. Sie
können daher mehrere Wort-Ersetzer-Plugins installieren. So wäre
es also auch denkbar, als Umformungsmaske nur ziel
einzutragen, damit Sie zB. das Wort gh (als Quelle) immer
einfach nur mit Garvin Hicking (als Ziel) ersetzen.

Das Rewrite-Zeichen hat eine besondere Bedeutung. Wenn Sie im
Wörterbuch des Plugins eine Quelle eintragen, die in gewöhnlichem
Text vorkommen kann, dann möchten Sie nicht immer, dass das Wort ersetzt
wird. Mit dem hier konfigurierten Sonderzeichen können Sie erreichen,
dass ein Wort nur dann ersetzt wird, wenn am Ende das hinterlegte
Sonderzeichen auftaucht. Wenn Sie also * als Rewrite-Zeichen
eintragen, würde im obigen Beispiel nur PHP* und
s9y* ersetzt werden. Eine Nennung ohne das Rewrite-Zeichen würde
das Wort unangetastet lassen.

Das Wort-Ersetzer-Plugin können Sie vom Ausgabe-Wrapper-Plugin
(siehe Seite ausgabewrapper) in der Seitenleiste ausgeben lassen. Es
zeigt Ihnen dann das Wörterbuch der eingetragenen Quellen und
Ziele. Dieses Wörterbuch wird auch in der Konfigurationsmaske des Plugins
am Ende der Seite eingebunden.

Während dieses Plugin relativ abstrakt gehandhabt wird, gibt es zwei
besondere Plugins, die die Thematik der Wortersetzung anders handhaben:
zum einen das Glossary-Plugin (serendipity_event_glossary),
mit dem Sie eine einfache Wortliste hinterlegen können, die beim
Auftauchen in einem Text hervorgehoben wird. Zum anderen das Plugin
Markup: RegexpMarkup, mit dem Sie komplexe reguläre Ausdrücke zum
Ersetzen von Wörtern definieren können. Letztgenanntes Plugin bietet so
die Möglichkeit, automatisch Links mit vorangestelltem http://
anklickbar zu machen oder auch alle Wörter mittels spezieller
Formatierung (zB. [(Bismarck)]) so umzuformen, dass ein Klick
darauf den entsprechenden Eintrag in der Wikipedia öffnet.

6.2.7 - Erweiterte Eigenschaften von Artikeln: serendipity_event_entryproperties

Erweiterte Eigenschaften von Artikeln
serendipity_event_entryproperties

Das Plugin Erweiterte Eigenschaften von Artikeln ist ein sehr
mächtiges Ereignis-Plugin, das Ihnen eine große Vielfalt an Möglichkeiten
eröffnet.
Zum einen bietet dieses Plugin mehrere Optionen bei der Erstellung von
Einträgen an, und zum anderen kann es dafür sorgen, Artikel zu cachen und
somit schneller darzustellen.

Die Konfigurationsoptionen des Plugins sind:

Artikel cachen? Wenn Sie mehrere Textformatierungs-Plugins benutzen, werden diese
nacheinander bei jeder Darstellung eines Artikels erneut durchgeführt.
Meistens verschwendet Serendipity bei dieser erneuten Ausführung einiges
an Ressourcen, die Sie aber mit diesem Plugin einsparen können.
Wenn Sie die Caching-Option aktivieren, wird das Plugin beim Speichern
eines Artikels die Ausgabe aller Textformatierungs-Plugins auswerten und
speichern. Bei der Anzeige eines Artikels wird dann nur diese Version
geholt - alle Textformatierungs-Plugins werden übersprungen. Wenn Sie einen
Artikel überarbeiten, wird der Cache automatisch neu gefüllt.
Jedoch kann das Aktivieren des Cachings auch Probleme mit sich bringen.
Wenn Sie den Inhalt eines Artikels direkt über die Datenbank bearbeiten
oder einmal ein neues Textformatierungs-Plugin installieren, kann der Cache
vom aktuellen Stand abweichen. Daher können Sie den Cache über
den Menüpunkt Einträge → Cachen aller Artikel neu aufbauen
lassen. Dies sollten Sie immer dann tun, wenn Sie ein
Textformatierungs-Plugin entfernen oder hinzufügen.
Auch für das Caching ist die Reihenfolge der Ereignis-Plugins von
entscheidender Bedeutung. Das Plugin kann nur die Ausgaben der
Textformatierungs-Plugins cachen, die in der Reihenfolge vor diesem Plugin
stehen. Alle danach aufgeführten Plugins werden weiterhin ausgeführt und
nicht gecached.
Diese Tatsache können Sie ausnutzen, um Textformatierungs-Plugins hinter
diesem Plugin zu positionieren, wenn sie ohne Caching ausgeführt werden
sollen. Derartige Textformatierungs-Plugins gibt es jedoch wenige. Als
Faustregel gilt, dass man ein Plugin nicht cachen sollte, wenn es die
Ausgabe eines Artikels abhängig von anderen Daten macht. Wenn ein Plugin
also beispielsweise die Farbe eines Links abhängig von der aktuellen
Tageszeit verändert, wäre ein Caching denkbar ungeeignet.
Denken Sie also vor allem bei der Erstellung eines eigenen Plugins an
diese Caching-Option, falls dessen Ausgaben Ihnen nicht korrekt
vorkommen.

Leserechte auf Gruppen/Benutzer beschränken Bevor Serendipity es ermöglichte, Leserechte auf Kategorie-Ebene zu
vergeben, konnte man mit diesem Plugin pro Eintrag bestimmen, von wem er
gelesen werden darf.
Diese besonders flexible Leserecht-Setzung bietet das Plugin nach wie
vor an, wenn Sie die Option Leserechte auf Gruppen beschränken
und/oder Leserechte auf Benutzer beschränken auswählen. Der
Ressourcenbedarf bei der Datenbankabfrage ist relativ hoch, daher sollten
Sie diese Optionen nur aktivieren, wenn Sie individuelle Leserechte
tatsächlich benötigen.

Standard: Artikel können gelesen werden von Wenn Sie die Beschränkung der Leserechte aktivieren, können Sie mit der
Option Standard: Artikel können gelesen werden von festlegen,
welche Leserechte ein neu erstellter Artikel standardmäßig besitzt.
Co-Autoren bedeutet, dass jeder eingeloggte Besucher einen Artikel
lesen darf.

Freie Felder Die sogenannten Freien Felder (oder Custom Fields) bieten
eine sehr praktische Möglichkeit, um beliebige weitere Eingabefelder zu
einem Artikel auszufüllen.
In das große Eingabefeld Freie Felder können Sie eine Liste von
kommaseparierten Feldnamen eintragen. Die Groß- und Kleinschreibung
dieser Feldnamen ist später von Bedeutung, außerdem sollten Sie bei einem
Feldnamen auf Leer- und Sonderzeichen verzichten.
Für jedes hier eingetragene Feld wird später beim Erstellen eines
Artikels ein eigenständiges Eingabefeld eingebunden. Dort können Sie dann
genauso wie beim Artikeltext oder Erweiterten Eintrag
beliebigen Text eintragen.
Später können Sie die eingetragenen Felder an beliebigen Stellen in
der Artikelausgabe des Frontends einbinden, indem Sie die Template-Datei
entries.tpl bearbeiten. Weitere Informationen zum Einbau von Freien
Feldern können Sie auf Seite entryproperties-customprop nachschlagen.
Um Artikel mit bestimmten Eigenschaften innerhalb eines Templates darzustellen,
können Sie den Parameter entryprops der Smarty-Funktion
serendipity_fetchPrintEntries nutzen, wie auf Seite
entryproperties-customprop-fetch beschrieben.

 

Wenn das Plugin konfiguriert und aktiviert ist, können Sie im Bereich
Erweiterte Optionen beim Erstellen oder Bearbeiten eines
Blog-Artikels einige Einstellungen tätigen:

Dauerhafte Artikel Wenn ein Artikel als Dauerhafter Artikel (Sticky) markiert
ist, wird er im Frontend immer als erster Artikel angezeigt. Ein
Blog-Beitrag kann durch diese Markierung hervorgehoben werden und
erscheint so außerhalb der üblichen chronologischen Übersicht. Oft wird dies
für besonders wichtige Artikel verwendet, oder als eine Art Einführung zum Blog.

Nicht in Artikelübersicht zeigen Die Aktivierung dieser Option bewirkt, dass ein Artikel nicht in der
Artikelübersicht dargestellt wird. Er kann dann von einem Besucher nur
gefunden werden, wenn er sich in der Ansicht der zugehörigen Kategorie
des Eintrages befindet oder nach einem Artikel sucht.

Eintragsinhalt im RSS-Feed verstecken Wenn Sie nicht wollen, dass ein Blog-Beitrag mit im RSS-Feed ausgeliefert
werden soll, können Sie diese Option aktivieren.

Artikel können gelesen werden von: Mit diesem Auswahlfeld können Sie festlegen, ob ein Artikel nur von
eingeloggten Benutzern gelesen werden kann, nur von Ihnen selbst oder von
allen Besuchern. Diese Option wird nur dann angezeigt, wenn Sie in den
Optionen des Plugins die Beschränkung der Leserechte aktiviert haben.

Passwort Sie können einen Artikel vor unbefugten Lesern schützen, indem Sie ein
Passwort für einen Artikel vergeben. Der Besucher kann dann in der
Artikelübersicht zwar den normalen Artikeltext wie gewöhnlich lesen, aber
der Erweiterte Eintrag und die Detailansicht des Artikels können nur
aufgerufen werden, wenn der Besucher das richtige Passwort in einer
dargestellten Box einträgt.

Autor Wenn ein Redakteur einen Beitrag erstellt, wird er als der Eigentümer
des Artikels festgelegt. Der Artikel kann danach nur noch vom
Eigentümer oder berechtigten Benutzergruppen gelesen werden.
In manchen Fällen möchten Sie den Eigentümer eines Artikels gerne ändern.
Das können Sie mithilfe dieses Plugins tun. Nur Chefredakteure bzw.
Administratoren haben (abgesehen vom derzeit eingetragenen Besitzer) die
Befugnis, den Autoren zu verändern.
Der hier eingestellte Autor ist auch derjenige, der in der
Artikelübersicht als Autor aufgeführt wird.

Disable Markup plugins for this entry Standardmäßig werden alle installierten Textformatierungs-Plugins auf
einen Artikel angewendet. In manchen Fällen kann es jedoch erforderlich
sein, dass gewisse Textformatierungen nicht ausgeführt werden,
beispielsweise wenn Sie HTML-Quellcode oder JavaScript in einem Beitrag
verwenden wollen und es durch ein möglicherweise installiertes
Wiki-Formatierungs-Plugin zu Veränderungen darin käme.
Über das Auswahlfeld können Sie bestimmen, welche Textformatierungen auf
den aktuellen Artikel nicht angewendet werden sollen. Alle nicht
ausgewählten Plugins werden weiterhin ausgeführt.

Freie Felder Abschließend folgt eine Liste aller in der Plugin-Konfiguration
eingerichteten Freien Felder. Für jedes festgelegte Feld können
Sie hier einen beliebigen Inhalt hinterlegen: HTML-Text, kurze Sätze --
die Einsatzzwecke sind nur durch Ihre Fantasie begrenzt. Auch ist es
möglich, einen Verweis auf eine Datei in der Mediendatenbank einzutragen
-- so könnten Sie beispielsweise einfach eine MP3-Datei mit einem Artikel
verketten. Um eine Mediendatei leicht einzufügen, befindet sich hinter
jedem freien Feld direkt ein Link zum Aufruf der Mediendatenbank. In
diesem Popup können Sie wie beim Artikeltext gewohnt eine Datei zum
Einfügen auswählen.

6.2.8 - Spartacus: serendipity_event_spartacus

Spartacus
serendipity_event_spartacus

Im Kapitel spartacus auf Seite spartacus wird das
Plugin-System Spartacus beschrieben. Dies ist ein online
verfügbares Archiv, in dem zahlreiche Plugins und Templates für
Serendipity angeboten werden.

Damit Sie von Ihrem Blog aus leicht solche Plugins und Templates
installieren können, müssen Sie das Ereignis-Plugin Spartacus
installieren.

Das Plugin bindet sich in Serendipity an allen Stellen ein, wo Plugins
(und Templates) zur Installation angeboten werden. Sobald das Plugin installiert
ist, werden zusätzliche Funktionen aktiviert und die Inhalte des
Plugin-Archivs eingebunden.

Da beim Betrieb von Spartacus einige Voraussetzungen erfüllt werden
müssen (siehe erwähntes Kapitel), ist das Plugin standardmäßig nicht
installiert.

Technisch funktioniert das Plugin so, dass es eine Paketdatei im
XML-Format von einem festgelegten Internet-Server (Mirror) abruft.
Diese Paketdatei (package_event_de.xml für Ereignis-Plugins mit
deutscher Beschreibung, package_sidebar_de.xml für
Seitenleisten-Plugins) wird auf Ihren eigenen Server heruntergeladen und
im Verzeichnis templates_c gespeichert. Bei der Installation von
Plugins wertet Spartacus diese XML-Daten aus und stellt sie für Sie dar.
Sobald Sie nun ein Plugin installieren wollen, wird Spartacus vom
konfigurierten Internet-Server die Dateien einzeln herunterladen und im
plugins-Verzeichnis abspeichern.

Damit Spartacus die XML-Datei nicht jedesmal aufs Neue herunterladen und
auslesen muss, wird die XML-Datei für einen bestimmten Zeitraum
zwischengespeichert, und alle Informationen daraus werden in einer Datenbank
hinterlegt.

Folgende Konfigurationsoptionen bietet Spartacus:

Enable the use of Spartacus for fetching plugins Damit Spartacus sich in die Plugin-Verwaltung einbindet, muss diese Option
aktiviert sein. Wenn Sie Spartacus also beispielsweise nur für die
Verwaltung von Templates aktivieren möchten, können Sie dies gezielt
einstellen.

Enable the use of Spartacus for fetching themes Ähnlich wie für die Einbindung in die Plugin-Verwaltung müssen Sie Spartacus
auch für das Herunterladen von Templates aktivieren, wenn Sie dies
wünschen.

Enable remote plugin version information, Secret key to Remote plugin version information Spartacus verfügt über eine Art Fernwartungszugriff. Unter einer
speziellen URL können Sie eine Liste aller installierten Plugins einsehen und
prüfen, ob für diese Plugins neue Versionen vorliegen. Diese Datei ist in einem
sehr einfachen Format abgelegt und kann so leicht von Ihnen geparst oder
regelmäßig zB. via cronjob ausgelesen und per E-Mail versendet werden.
Diese Option ist nur für erfahrene Administratoren vorgesehen. Da die Ausgabe
etwaigen böswilligen Besuchern des Blogs detaillierte Informationen über Ihr Blog
geben kann, ist die Option standardmäßig deaktiviert.
Wenn Sie die Fernwartung aktivieren, sollten Sie den Namen der URL unbedingt
ändern, so dass fremde Besucher den Namen zum Aufruf nicht raten können.

Datei/Mirror Speicherort (XML-Metadaten) In diesem Auswahlfeld legen Sie fest, von welchem Internet-Server das
Plugin Paketinformationen beziehen kann. Nur Netmirror.org
ist derzeit in Betrieb. Für die Zukunft ist der Eintrag s9y.org
vorgesehen, der jedoch noch brach liegt.

Datei/Mirror Speicherort (Downloads) Die eigentlichen Plugin- und Template-Dateien bezieht das Plugin von dem
hier ausgewählten Server. Hier haben Sie neben Netmirror.org auch
noch die Alternative, den SourceForge.net-Server zu wählen. Der
SourceForge-Server hat in der Vergangenheit jedoch öfter Ausfälle gehabt, daher
sollten Sie möglichst Netmirror.org voreingestellt lassen.
Die beiden Server s9y.org und berliOS.de sind ebenfalls für
zukünftige Erweiterungen vorgesehen und lassen sich derzeit nicht
benutzen.

Eigentümer der heruntergeladenen Dateien, Zugriffsrechte der heruntergeladenen Dateien/Verzeichnisse Spartacus läuft auf Ihrem Webserver als ein normaler PHP-Prozess. Alle
Daten, die das Plugin auf die Festplatte Ihres Servers schreibt,
gehören somit standardmäßig dem PHP-Benutzer, meist nobody
oder wwwrun. Weitere Informationen zur Einrichtung von
Benutzerrechten lesen Sie in Kapitel Zugriffsrechte ab Seite
Zugriffsrechte.
Je nach Konfiguration des Providers könnte es passieren, dass aufgrund
dieser Eigentumsrechte eine von Spartacus heruntergeladene Datei für Sie
mit FTP-Zugriffsrechten nicht mehr zu bearbeiten ist. Oft ist es jedoch
gewünscht, per FTP die Dateien eines Plugins anzupassen/zu bearbeiten.
Daher bietet das Spartacus-Plugin die Möglichkeit, dass Sie hier den
Namen Ihres FTP-Benutzers eintragen. Spartacus versucht dann, eine
heruntergeladene Datei diesem Benutzer zu übertragen. Nicht alle Provider
unterstützen diese chown-Kommandos!
Abgesehen von den Informationen über den Eigentümer eines Plugins können Sie auch
gezielt Zugriffsrechte einer Datei und eines Verzeichnisses für andere Benutzer
festlegen. Wenn Sie also auf Ihrem System die Dateien von Spartacus später nicht
mehr verändern dürfen, können Sie über die hier festgelegten Zugriffsrechte
Anpassungen vornehmen. Zugriffsrechte wie 0777 würden dafür sorgen, dass
jeder Benutzer auf dem Server die Dateien lesen und schreiben darf.
Wenn Sie die Zugriffsrechte oder Eigentümer an dieser Stelle ändern, gilt
dies nur für Dateien, die Spartacus in Zukunft herunterladen wird.
Bereits auf dem Server befindliche Dateien werden nachträglich nicht
verändert. Diese müssten Sie manuell zB. mittels des
fixperm-Scripts (siehe Seite fixperm) beheben.

FTP server address, username, password, serendipity directory Seit Serendipity 1.3 bietet Spartacus die Möglichkeit, Dateien nicht
nur intern direkt per PHP-Befehl auf dem Server zu speichern, sondern auch per
FTP.
Dieser FTP-Upload umgeht das Problem, dass auf einigen Servern der PHP
SafeMode aktiviert ist. Der SafeMode sorgt dafür, dass Dateien in
Ihrem Stammverzeichnis des Webservers nur durch den FTP-Besitzer verändert
werden dürfen. PHP selbst besitzt in diesem Fall häufig keinen Schreibzugriff.
Daher kann das Spartacus-Plugin, das über den PHP-Benutzer ausgeführt wird, auf
derartigen Servern nicht korrekt ausgeführt werden, da es die heruntergeladenen
Plugins nicht speichern kann. Durch Verwendung des FTP-Zugangs, den Sie auch zum
Hochladen Ihrer Dateien verwenden, kann das Plugin die Dateien jedoch über
diesen Umweg speichern.
In den Konfigurationsfeldern müssen Sie die Zugangsdaten Ihres
FTP-Benutzers eintragen. Das Serendipity directory entspricht dabei dem
relativen Verzeichnis von Serendipity. Bei einer FTP-Verbindung werden Sie
standardmäßig in das Stammverzeichnis Ihres Webauftritts geleitet, zum Beispiel
/var/www/example.com/. Wenn Serendipity im Unterverzeichnis blog
installiert wird, müssen Sie diesen Pfad auch in der Konfiguration eintragen.
Andernfalls würde das Spartacus-Plugin die heruntergeladenen Dateien in einem
falschen Unterverzeichnis speichern.

6.2.9 - Artikel mailen: serendipity_event_mailer

Artikel mailen
serendipity_event_mailer

Das Plugin Artikel mailen ermöglicht es, einen neuen Artikel nach
der Veröffentlichung via E-Mail an einen (oder mehrere) Empfänger zu
verschicken.

Grundsätzlich stellen die RSS-Feeds (siehe Seite RSS)
eine wesentlich einfachere Möglichkeit dar, Besucher über neue
Einträge zu informieren. Im Gegensatz zu E-Mails können
RSS-Feeds auf Wunsch und Initiative des Besuchers empfangen werden, daher
spricht man hier von einem Pull-Dienst. Newsletter und E-Mails
zählen zu den Push-Diensten, das bedeutet, dass Inhalte zu
beliebigen Zeitpunkten an den Benutzer geliefert werden, und nicht etwa
dann, wenn der Besucher dies auslöst.

Der Vorteil von RSS-Feeds liegt daher darin, dass ein Besucher sich aktiv
über Ihren Blog informieren möchte, während eine eingehende
Benachrichtigungs-E-Mail bei ihm möglicherweise gerade unpassend ankommt.

Andererseits kann man natürlich auch argumentieren, dass ein
E-Mail-Hinweis komfortabel ist, um Besucher an Ihre Webseite zu erinnern, so
dass sich der Benutzer "berieseln" lassen kann, anstatt selber
Initiative zu zeigen.

Wie immer man also zu RSS-Feeds vs. E-Mails steht, das Plugin ermöglicht
genau diesen Mail-Versand. Standardmäßig wird eine E-Mail jedoch nur an eine
zentrale Empfängeradresse versendet. Wenn Sie stattdessen mehrere
Benutzer informieren wollen, können Sie mehrere Empfängeradressen,
natürlich mit Kommas getrennt, auflisten. Sinnvoller wäre es in diesem Fall
aber, potenziell interessierte Besucher in einer Liste zusammenzufassen.
Eine neue Benachrichtigungsmail geht dann an eine zentrale Liste, und
diese Liste wiederum leitet die E-Mail an alle eingetragenen Empfänger
weiter. Dieses Konzept nennt man Mailingliste oder auch
Newsletter.

Der Versand von Massen-E-Mails mittels einer PHP-Anwendung (wie
Serendipity) ist aus Ressourcengründen nicht zu empfehlen. Daher bietet
dieses Plugin keine konfigurierbare Mailingliste an, sondern Sie müssen
sich selbst um die Einrichtung einer solchen kümmern. Das ist jedoch kein
Problem, da zahlreiche kostenlose Anbieter am Markt so etwas komfortabel
umsetzen: Google Groups (http://groups.google.de) und Yahoo Groups
(http://de.groups.yahoo.com) sind die bekanntesten Vertreter. Dort
können Sie schnell eine eigene Mailingliste erstellen. Die Dienstleister
bieten auch kleine Code-Schnipsel an, die Sie in Ihrem Blog einbinden
können, damit sich Besucher leicht in die Mailingliste eintragen können.
Sie tragen dann lediglich die E-Mail-Adresse der Mailingliste in der
Konfiguration des Plugins ein, und Yahoo bzw. Google erledigt den Rest
für Sie. Natürlich können Sie auch eigene Mailinglisten-Software
wie ezmlm (http://www.ezmlm.org/) oder Mailman
(http://www.gnu.org/software/mailman/mailman.html) einsetzen, wenn
Sie dies auf Ihrem Server nutzen können.

Bei der Erstellung eines Blog-Artikels sehen Sie im Bereich Erweiterte
Optionen
eine Oberfläche, in der standardmäßig die E-Mail-Adressen aufgeführt
sind, an die der Artikel verschickt wird. Zudem können Sie die Auswahlbox
An alle Redakteure schicken markieren, damit der Blog-Artikel an alle
Redakteure des Blogs geht. Sobald Sie einen Artikel veröffentlichen,
gibt das Plugin aus, an welche E-Mail-Adressen eine E-Mail geschickt wurde.

Die weiteren Konfigurationsoptionen des Plugins sind:

Inhalt Mit diesem Auswahlfeld können Sie festlegen, ob die E-Mails den
vollständigen Artikeltext (bestehend aus Eintrag und
Erweitertem Eintrag) enthalten sollen oder eine beliebige
Kombination aus beidem. Wenn Sie bei einem ausführlichen Artikel also den
erweiterten Eintrag weglassen wollen, geben Sie so Ihren Besuchern einen
Anreiz, trotzdem Ihr Blog zu besuchen.

Mail-Empfänger In dieses Feld tragen Sie den eingangs erwähnten E-Mail-Empfänger ein,
oder die Adresse einer Mailingliste.

An alle Redakteure schicken Legt die Standardeinstellung für die Auswahlbox An alle Redakteure
schicken
bei der Erstellung eines Blog-Artikels fest.

URL des Artikels mailen Wenn Sie diese Option aktivieren, wird die URL Ihres Artikels mit in die
E-Mail aufgenommen. Dies ist wichtig, damit die Leser einer E-Mail auch
leicht zu Ihrem Blog gelangen können.

HTML entfernen Artikeltexte können HTML-Formatierungen enthalten, die in einer E-Mail
nicht sinnvoll dargestellt werden. Wenn Sie die Option HTML
entfernen
aktivieren, stellt das Plugin sicher, dass sämtliche HTML-Tags
(mittels PHP strip_tags()-Befehl) aus der E-Mail entfernt werden.
Mögliche <a>- und <img>-Tags für Bilder und Hyperlinks werden
dabei so entfernt, dass die referenzierte URL trotzdem im Text bestehen
bleibt.

HTML-Paragraphen in Leerzeilen wandeln Wenn Sie die Option HTML entfernen aktiviert haben, kann dies dazu
führen, dass die Zeilenumbrüche verloren gehen, die bei der HTML-Ansicht
eines Artikels für die Gliederung sorgen. Daher können Sie die Option
HTML-Paragraphen in Leerzeilen wandeln aktivieren, damit nach
einem HTML-Absatz (</p>) ein gewöhnlicher E-Mail-Zeilenumbruch
eingefügt wird.

Kategorien Für jede im Blog erstellte Kategorie sehen Sie ein zusätzliches
Eingabefeld. Dort können Sie eine kategorieabhängige E-Mail-Adresse
eintragen, damit ein Artikel dieser Kategorie nur an die E-Mail-Adressen
geschickt wird, die für die Kategorie hinterlegt wurden.
E-Mails zu Artikeln, die keiner Kategorie zugeordnet sind, werden dann an
die Standardadresse verschickt.

6.2.10 - LiveSearch: serendipity_event_livesearch

LiveSearch
serendipity_event_livesearch

Das LiveSearch-Plugin ist eine Erweiterung des
Seitenleisten-Plugins für die Suche (siehe Seite quicksearch).

Sobald es installiert ist, wird ein kleines JavaScript in das
Suchformular eingebunden. Wenn Sie als Besucher einen Begriff in das
Suchformular eintragen, wird die LiveSuche alle zutreffenden Artikel in
einer Aufklappbox unter dem Suchformular anzeigen, und Sie können einfach
darauf klicken.

Diese Art der Suche erspart Ihnen bei aktiviertem JavaScript im
Browser also, erst eine lange Artikelübersicht durchforsten zu müssen, bevor
Sie den gewünschten Artikel finden.

6.2.11 - Hebe Suchwörter hervor: serendipity_event_searchhighlight

Hebe Suchwörter hervor
serendipity_event_searchhighlight

Wenn ein Besucher Ihr Blog mittels einer Suchmaschine gefunden hat und
aufruft, wird von den Suchmaschinen der Suchbegriff übermittelt. Diesen
Suchbegriff kann das Plugin ermitteln und in Ihren Beiträgen hervorheben.
So kann ein Besucher dann komfortabel sehen, wo der ursprünglich
benutzte Suchbegriff in Ihrem Artikel auftaucht.

Das Plugin kann Suchwörter folgender Suchmaschinen ermitteln und
hervorheben: Google, Yahoo, Lycos, MSN, Altavista, AOL.de und AOL.com.
Die Art der Hervorhebung können Sie mittels der CSS-Klasse
.serendipity_searchQuery beeinflussen (siehe Kapitel template-css
ab Seite template-css).

Das Plugin setzt die Smarty-Sondervariable
{$smarty.SESSION.search_referer}
auf die URL der Suchmaschine, von welcher der aktuelle Besucher kam. Wenn der
Besucher über eine Suchmaschine auf das Blog gelangte, ist weiterhin die Variable
{$smarty.SESSION.is_searchengine_visitor} auf true gesetzt. So
können Sie innerhalb Ihrer Template-Dateien individuelle Ausgaben darstellen,
falls der Besucher über eine Suchmaschine auf Ihre Seite gelangte. Für solche
Besucher sind zB. einleitende Worte zu Ihrem Blog und weiteren interessanten
Artikeln sehr hilfreich.

6.2.12 - Karma: serendipity_event_karma

Karma
serendipity_event_karma

Der Begriff Karma beschreibt ein spirituelles Konzept, wonach
jede gute oder schlechte Tat sich in guten oder schlechten Erfahrungen
niederschlagen wird. Gerade im Hinduismus oder bei
Religionsgemeinschaften, die an die Wiedergeburt glauben, ist diese
Vorstellung wichtig für die Handlungsweisen der Menschen.

Das Karma-Plugin wendet dieses Konzept auf Blog-Beiträge an: Ihre
Besucher können zu jedem Beitrag abstimmen, wie "gut" oder
"schlecht" sie diesen finden. Das kann Ihnen dann Aufschluss
darüber geben, wie gezielt Sie auf Ihre Besucher eingehen.

Das Plugin ermöglicht eine Bewertung in fünf Stufen: - (sehr
schlecht), - (schlecht), 0 (neutral), + (gut) und ++ (sehr gut). Die
Abstimmungen können nur bei aktiviertem JavaScript durchgeführt werden,
damit Suchmaschinen nicht auch abstimmen können.

Seit der neuen Version des Plugins mit Serendipity 1.3 können auch beliebige
Grafiken für die Abstimmung eingebunden werden.

Zusätzlich bietet das Karma-Plugin auch "statistische Fähigkeiten". Es
kann zählen, wie viele Besucher die Detailseiten eines Artikels angesehen
haben. Dafür legt das Plugin eine eigenständige Datenbanktabelle an, in
der die Abstimmungen und Statistiken gespeichert werden. Diese
Statistiken können direkt in der Artikelansicht dargestellt
werden und werden auch bei den Ausgaben des Statistik-Plugins
(siehe Seite statistics) berücksichtigt.

Die grafische Gestaltung der Abstimmungslinks kann via CSS und den
entsprechenden Plugin-CSS-Klassen vorgenommen werden (siehe auch Seite
template-css).

Das Plugin bietet die folgenden Konfigurationsoptionen, aufgeteilt in drei
Bereiche namens Globales, Darstellung und Texte:

Karmavoting aktivieren Wenn Sie den Besuchern die Abstimmungsmöglichkeit zu einem Artikel
anbieten wollen, müssen Sie diese Option aktivieren. Sie können sie
deaktivieren, wenn Sie beispielsweise nur die Aufrufstatistik erhalten
möchten.

Nur erweiterte Artikel Die Abstimmungsmöglichkeit kann vom Plugin sowohl in der
Artikelübersicht als auch in der Detailansicht eines Artikels angezeigt
werden. Wenn Sie die Option Nur erweiterte Artikel aktivieren,
kann ein Besucher nur in der Detailansicht eines Artikels abstimmen. Dies
kann möglicherweise hilfreich sein, um Ihre Artikelübersichten einfacher
zu strukturieren.

Maximaler Abstimmungszeitraum In diesem Eingabefeld legen sie fest, nach welchem Zeitraum seit der
Veröffentlichung eines Artikels keine Abstimmung mehr zugelassen
wird. Häufig interessiert Sie nur die Meinung Ihrer Besucher zu
aktuellen Beiträgen, daher ist standardmäßig die Abstimmung über
Artikel nur bis zu 7 Tage nach deren Veröffentlichung möglich.

Abstimmungszeitraum Mit der Option Abstimmungszeitraum legen Sie fest, wie lange die
"Zwangspause" eines Besuchers dauert, die er nach einer Bewertung eines
Beitrags abwarten muss, bis er über einen weiteren Artikel abstimmen
darf. Standardmäßig sind dies 5 Minuten.
Der Abstimmungszeitraum gilt nur für Artikel, die älter als das in der
Option Abstimmungszeitraum nach Veröffentlichung eines Artikels
festgelegte Alter sind.

Abstimmungszeitraum nach Veröffentlichung eines Artikels Wenn Sie das Karmavoting aktiviert haben, kann ein Besucher einen Artikel
bewerten. Nach jeder Bewertung erfolgt eine "Zwangspause" für den
Besucher, bis er einen neuen Artikel bewerten kann.
Diese Zwangspause gilt jedoch nicht für gerade erst veröffentlichte
Artikel. Stellen Sie sich vor, Sie veröffentlichen drei neue Artikel, und
ein Besucher müsste erst mehrere Minuten warten, bevor er alle drei neuen
Artikel nacheinander bewerten kann. Dies wäre keine besonders sinnvolle
Einschränkung. Dennoch macht eine Zwangspause später Sinn, damit ein
böswilliger Besucher nicht einfach alle Artikel Ihres Blogs nacheinander
schlecht bewertet.
In dem Eingabefeld Abstimmungszeitraum nach Veröffentlichung eines
Artikels
tragen Sie eine Zeitdauer in Minuten ein, die das Alter eines
Eintrages festlegt, bei dem ein Benutzer ohne Zwangspause abstimmen darf.
Standardmäßig sind dies 1440 Minuten, also ein Tag. Alle Artikel, die
jünger als ein Tag sind, können dann ohne Pause von jedem Besucher
nacheinander bewertet werden.

Minimale Anzahl an Stimmen für Darstellung Wenn Sie die Ergebnisse der Abstimmung erst ab einer gewissen Anzahl an Stimmen
anzeigen wollen, können Sie dies hier festlegen.

Aufrufstatistik aktivieren Wenn Sie möchten, dass das Plugin jeden Aufruf eines einzelnen Artikels
zählt, können Sie diese Option aktivieren. Wenn ein Artikel in einer
Übersicht dargestellt wird, zählt dies nicht als Aufruf.

Aufrufstatistik auch für eingeloggte Benutzer Falls diese Option deaktiviert wird, werden die Besuche eingeloggter Redakteure
in der Aufrufstatistik nicht mitgezählt.

Minimale Besucheranzahl Wenn Sie die Ergebnisse der Besucherzählung erst ab einer gewissen Anzahl an Besuchern
anzeigen wollen, können Sie dies hier festlegen.

Zeigt die Top-Exit-Links des Blogs Wenn Sie das Plugin Externe Links zählen installiert haben, kann
jeder Klick auf eine in Ihren Artikeln genannte Webseite gezählt werden.
Da diese Seitenaufrufe in der Datenbank gespeichert werden, können sie
nicht nur mittels des Plugins Top Exits in der Seitenleiste
eingebunden werden, sondern das Karma-Plugin kann auch auf diese Daten
zugreifen. Wenn Sie die Option Zeigt die Top-Exit-Links des Blogs
aktivieren, wird die Summe der Aufrufe aller in einem Beitrag genannten
Links am Ende des Artikels dargestellt. Sinnvoll ist diese Möglichkeit
vor allem bei Blogs, die pro Artikel immer nur einen oder zumindest
ähnliche Links aufführen, da durch die Summenbildung die Individualität
mehrerer Links verloren geht.

Protokollieren Jede Abstimmung über einen Beitrag kann in der Datenbanktabelle
serendipity_karmalog protokolliert werden, sofern diese Option
aktiviert ist. Die Datenbanktabelle können Sie dann manuell mittels
phpMyAdmin ansehen (und von Zeit zu Zeit löschen).

Konfigurationsbereich Darstellung In diesem Bereich können Sie über mehrere Konfigurationsoptionen bestimmen, ob
der Abstimmungsbereich durch Text- oder Grafikdarstellung eingebunden werden
soll und welchem grafischen Stil dieser entsprechen soll.

Konfigurationsbereich Texte Die einzelnen Texte für die Umfrage können von Ihnen frei eingetragen werden.

Datenbanktabellen

Die Datenbanktabelle serendipity_karma enthält die Abstimmungen zu jedem
Blog-Artikel. Zu jedem Blog-Artikel gibt es nur einen Eintrag, d.h. die Werte
der Abstimmung werden jeweils zu diesem Eintrag hinzuaddiert.

entryid enthält die ID des Blog-Artikels.
points enthält die aktuelle Punktzahl des Artikels.
votes enthält die Anzahl der abstimmenden Besucher.
lastvote enthält das Datum der letzten Abstimmung.
visits enthält die Anzahl an Besuchen des Artikels.

Damit alle Abstimmungen einzeln nachverfolgt werden können, wird bei aktivierter
Logging-Option des Plugins die Datenbanktabelle serendipity_karmalog
befüllt:

entryid enthält die ID des Blog-Artikels.
points enthält die abgegebene Punktzahl.
ip enthält die IP-Adresse des abstimmenden Besuchers.
user_agent enthält den verwendeten Browser des Besuchers.
votetime enthält das Datum, an dem diese Punktzahl abgegeben wurde.

6.2.13 - Einträge ankündigen: serendipity_event_weblogping

Einträge ankündigen
serendipity_event_weblogping

Nach der Veröffentlichung eines Artikels möchten
Sie natürlich auch, dass Ihre Besucher diesen lesen. Damit
Internet-Surfer auf neue Blog-Einträge aufmerksam werden (und auch
Suchmaschinen neue Beiträge direkt aufnehmen), kann das Plugin
Einträge ankündigen Verbindung zu Webservices aufnehmen.

Zur Benachrichtigung für neue Einträge existiert eine Standard-API, die
sich "Ping" nennt. Die API (weblogUpdates.ping und
weblogUpdates.extendedPing) wird mittels XML-RPC-Schnittstelle
aufgerufen. Damit Serendipity einen Artikel bei einem Webservice
ankündigen kann, muss der Webservice diese Schnittstelle auch
bereitstellen. Weiterhin muss Ihr Webserver in der Lage sein, ausgehende
HTTP-Verbindungen zu anderen Internet-Servern herzustellen. Eine Firewall
muss also entsprechend konfiguriert werden.

Sobald das Plugin installiert ist, sehen Sie in dem Abschnitt
Erweiterte Optionen beim Erstellen eines Artikels ein Feld, in dem
Sie auswählen können, zu welchen Webservices ein Ping gesendet werden
soll. Jeden gewünschten Webservice können Sie dort ankreuzen, die
Voreinstellungen können Sie über die Konfiguration des Plugins
beeinflussen.

Abhängig von der Sprache des Blogs werden unterschiedliche Webservices
angeboten. Für deutsche Blogs sind dies: Ping-o-matic, blo.gs,
blogrolling.com, technorati.com, weblogs.com, ge.bloggt.org, Yahoo! und
Google.

Jeder Dienst, den Sie über einen neuen Artikel informieren, wird beim
Veröffentlichen des Artikels etwas Zeit in Anspruch nehmen. Wenn das
Speichern eines Artikels sehr lange dauert oder zu Fehlern führt, kann
dies also am Plugin Einträge ankündigen liegen. In diesem Fall
sollten Sie die Anzahl der gepingten Services reduzieren oder das Plugin
vollständig deaktivieren. Einige Webservices dienen als "Weiterleitung"
von Pings, zB. der Dienst Ping-o-matic. Wenn Sie diesen benutzen, können
Sie sich das Pingen anderer Dienstleister sparen, allerdings ist
Ping-o-matic nicht immer vollständig funktionstüchtig [*] Siehe
\cmd{http://pingomatic.com/}
. Das Plugin wird automatisch die
Webservices in der Liste abwählen, die bereits von einem solchen Meta-Service
verwaltet werden.

In der Konfiguration des Plugins können Sie zusätzlich eigene Webservices
eintragen, zu denen Sie Pings setzen wollen. Tragen Sie diese mit einem
Komma voneinander getrennt in Selbstdefinierte
Ping-Services
ein. Da jeder Webservice unter einer speziellen URL
aufrufbar ist, müssen Sie diese im Format host.domain/pfad (also
zB. rpc.blogrolling.com/pinger/ für den Webservice von
BlogRolling.com) im Eingabefeld eintragen. Die XML-RPC-Spezifikation
ermöglicht entweder einen einfachen oder einen erweiterten
Ping. Beim erweiterten Ping wird die URL Ihres RSS-Feeds an den
Webservice übermittelt, der anhand des Feeds weitere Daten Ihres Blogs
einlesen kann. Wenn ein selbst definierter Webservice diese Option
unterstützt, können Sie ein * vor den Hostnamen setzen.

6.3 - Auswahl externer Plugins

Auswahl externer Plugins

Über die mitgelieferten Plugins hinaus finden Sie auch eine große Auswahl
an Plugins über http://spartacus.s9y.org/. Eine Auswahl an häufig
genutzten Ereignis-Plugins finden Sie auf den folgenden Seiten.

Die Funktionalitäten des vormals hier genannten serendipity_event_autosave-Plugins
wurden mit Serendipity 2.0+ in den Serendipity-Kern übernommen und sind in den
Persönlichen Einstellungen (Eigene Einstellungen) als einstellbare Option verfügbar.

6.3.1 - Serendpity Autoupdate: serendipity_event_autoupdate

Serendpity Autoupdate
serendipity_event_autoupdate

Bereits seit ein paar Jahren werkelt das Serendipity Autoupdate Plugin still und erfolgreich vor sich.
Es stellt in Verbindung mit dem (PRE-Serendipity-2.0) Dashboard-Plugin, sowohl als auch mit der neuen eingebauten
Backend Startseite (Dashboard) in Serendipity 2.0+ einen Upgrade Button für ein automatisches "EIN-Klick"
Serendipity Upgrade bereit, solange Sie es installiert haben und die generelle Konfigurationsoption "Update-Hinweis"
dafür eingestellt haben. Selber hat dieses Plugin keine eigenen Konfigurationsoptionen.
Es ist ein Beispiel für ein sogenanntes "stilles" Plugin.

Der Webserver benötigt Schreibrechte für alle Dateien!

6.3.1 - Einträge automatisch sichern: serendipity_event_autosave

Einträge automatisch sichern
serendipity_event_autosave

Bei der Benutzung einer Web-Anwendung in Ihrem Browser kann es öfter als
bei normalen Desktop-Anwendungen
passieren, dass Ihre mühsame Arbeit verloren geht. Der Browser stürzt ab,
möglicherweise weil Sie in einem anderen Fenster gerade eine
fehlerhafte Webseite besucht haben; oder Sie haben aus Versehen die
Taste oder den Button gedrückt, mit dem der Browser zurück zur vorherigen Seite
wandert. In beiden Fällen wäre der mühsam geschriebene Blog-Artikel
vermutlich verloren.

Das häufigste Problem bei Web-Anwendungen, in denen man lange Texte
schreibt, ist, dass man fleißig eine Stunde oder länger damit verbringt,
den Text perfekt zu formulieren. Während dieser Zeitspanne sendet Ihr
Browser keine Daten zum Server, daher ist die Zeit, die Sie mit einem
Artikel verbringen, für eine Web-Anwendung so, als würden Sie überhaupt
nichts tun.

Wenn Sie nach einer Stunde des "Nichtstuns" also plötzlich einen
Artikel veröffentlichen wollen, muss Serendipity Sie erst einmal wiedererkennen. Dies erfolgt üblicherweise anhand der Session-Cookies (siehe
Seite sessioncookies).

Session-Cookies sind jedoch nur für einen fest eingestellten Zeitraum
gültig. Ist die Haltbarkeit eines Cookies überschritten, löscht PHP
sämtliche Session-Daten. Für Serendipity bedeutet dies, dass Ihr Login
nicht mehr erkannt werden kann und Sie sich daher neu einloggen müssen.
Dies gilt natürlich nur, wenn Sie beim Login die Auswahlbox Daten
merken?
nicht aktiviert haben. Ist die Box aktiviert, kann
Serendipity Sie auch nach dem Überschreiten der Session-Haltbarkeit
automatisch neu einloggen.

Die Haltbarkeit einer PHP-Session wird in der PHP-Konfigurationsvariable
session.gc_maxlifetime in Sekunden
festgelegt. Per Default sind dies 1440 Sekunden, also 24 Minuten. Zwar kann man
diesen Wert verändern, aber da es einige Besonderheiten zu beachten gilt (siehe
http://php.net/manual/de/ref.session.php), sollte man dies nicht
unbedingt tun. Zumal die Standardeinstellung einen guten Mittelwert
zwischen normaler Inaktivität und Sicherheitserwägungen darstellt. Je länger eine
Session gilt, desto eher kann ein böswilliger Benutzer diese Daten möglicherweise
ausspähen und sich unberechtigten Zugang verschaffen.

Daher sollten Sie bei der Benutzung von Serendipity eher
entweder die Login-Option Daten merken? aktivieren oder bei
einem ungewollten Logout folgenden Trick anwenden: Wenn Sie eine Aktion
in Serendipity ausführen, sendet Ihr Browser die Daten (zB. den
Artikeltext) an den Server. Meldet Serendipity daraufhin, dass Sie sich
neu einloggen müssen, dann sind diese an den Server gesendeten Daten noch
im Zwischenspeicher des Browsers. Der Trick ist nun, dass Sie einfach ein
weiteres Browser-Fenster öffnen und sich dort in die
Serendipity-Administrationsoberfläche einloggen. Nun haben Sie ein
neues, gültiges Session-Cookie, mit dem Sie Serendipity wie gewohnt
bedienen können. Gehen Sie nun zurück in das Browser-Fenster, bei dem das
Speichern des Artikels fehlschlug, und laden die Seite erneut. Die meisten
Browser tun dies, wenn Sie die Taste (F5) drücken oder auf den
Neu laden-Menübutton klicken. Ihr Browser sollte Sie nun fragen,
ob die Formulardaten (die Daten Ihres Artikels) erneut geschickt werden
sollen. Bestätigen Sie dies, und Ihr ursprünglich übermittelter Artikel
wird nun mit einem gültigen Session-Cookie korrekt gespeichert.

Diesen Trick können Sie nur nutzen, wenn Sie sich im Browser-Fenster noch
nicht neu eingeloggt und das Ursprungsfenster noch nicht geschlossen
haben.

Ein grundsätzlicher Tipp ist jedoch, dass Sie besonders lange Artikel im
Entwurfsmodus speichern. Ab und zu klicken Sie dann einfach auf
den Button Speichern, um einen Zwischenstand des Artikels in der
Datenbank zu sichern. Wenn Ihr Browser abstürzt, können Sie so den
letzten Stand direkt über Serendipity wieder einsehen. Ein anderer Tipp
wäre, dass Sie besonders lange Artikel in einem Schreibprogramm wie
OpenOffice vorschreiben und erst später per Kopieren & Einfügen
in das Blog übernehmen. Wenn Sie das XML-RPC Plugin (siehe Seite
xmlrpc) benutzen, können Sie zudem Schreibprogramme verwenden, die
solche vorgeschriebenen Artikel automatisch zwischenspeichern und später an den
Server senden.

Neben den aufgeführten Möglichkeiten gibt es auch ein Plugin namens
Einträge automatisch sichern (Autosave), das Ihnen die
Arbeit des regelmäßigen Speicherns teilweise abnehmen kann.

Dabei verwendet das Plugin ein spezielles JavaScript (AJAX), das in
einem regelmäßigen Intervall den Artikel als Entwurf speichert. Wurde ein
Artikel derart gespeichert, zeigt das Plugin einen Hinweis darauf in der
Artikel-Erstellungsmaske an. Wenn Ihr Browser abstürzt, können
Sie einen so gespeicherten Artikel als Entwurf in Ihrer
Artikelübersicht fortsetzen.

Wenn Sie einen bereits veröffentlichten Artikel überarbeiten, wird eine
Sicherungskopie davon angelegt. Somit werden Änderungen, die Sie
ausführen, nicht automatisch am veröffentlichten Artikel dargestellt.
Derartige Sicherungskopien, die nicht den ursprünglichen Artikel
betreffen, nennt man Schattenkopien, da sie vor dem Benutzer
versteckt werden. Solche Schattenkopien markiert das Plugin mit dem
vorangestellten [AUTOSAVED] im Titel des Artikels. Die
Schattenkopie eines Artikels finden Sie wie einen gewöhnlichen Artikel in
der Übersicht, und sie wird beim Speichern des Originalbeitrags
automatisch wieder gelöscht.

Wenn Sie nach einem Browser-Absturz eine Schattenkopie wiederherstellen
wollen, bearbeiten Sie den Originalartikel (nicht die
Schattenkopie) und klicken oberhalb der Artikelerfassung auf den Button
Der Eintrag hat Sicherungsdaten, zur Wiederherstellung hier
klicken
. Dadurch wird die Schattenkopie in den Ursprungsartikel
eingefügt.

Das Plugin besitzt zwei Konfigurationsoptionen. Zum einen können Sie
einstellen, nach wie vielen Sekunden ein Artikel automatisch gespeichert
wird. Stellen Sie dieses Intervall nicht zu gering ein, da ansonsten
viel Redundanz und unnötige Serverlast entsteht.

Die zweite Option stellt den HTTP-Pfad zu dem Plugin ein. Da
Serendipity Plugins aus beliebig verschachtelten Unterverzeichnissen
laden kann, weicht Ihre Einstellung möglicherweise von dem
Standard-Plugin-Pfad ab. Wenn das Plugin im Unterverzeichnis
plugins/spartacus_plugins/serendipity_event_autosave gespeichert
wäre, würde der einzutragende Pfad
http://www.example.com/serendipity/plugins/spartacus_plugins/serendipity_event_autosave
lauten.

6.3.2 - Frei definierbare Permalinks zu Einträgen: serendipity_event_custom_permalinks

Frei definierbare Permalinks zu Einträgen
serendipity_event_custom_permalinks

Ein Blog-Artikel ist standardmäßig unter der URL
http://www.example.com/serendipity/archives/1-Mein-Blogartikel.html
verfügbar. Wie genau die Pfadkomponenten benannt sind und welche
zusätzlichen Komponenten (Datum des Artikels, mit oder ohne Artikeltitel
oder ID etc.) in einem solchen Detail-Link (Permalink)
erscheinen, können Sie in der Serendipity-Konfiguration im Bereich
Permalinks [*] Siehe Kapitel permalinkconfig ab Seite
permalinkconfig.
einstellen.

Für besonders interessante Artikel können Sie aber auch individuelle URLs
für einen Beitrag vergeben, die von dieser Konvention abweichen. Diese URL
kann dann zusätzlich zur "echten" URL benutzt werden, um zu dem
gewünschten Artikel zu führen. Diese Extra-URL bietet das Plugin
Frei definierbare Permalinks zu Einträgen bei der Erstellung eines
Artikels in einem Feld der Erweiterten Optionen an. Andere
Blogsysteme nennen einen derartigen Permalink auch slug.

Dort tragen Sie den vollständig gültigen Pfad zu einem Artikel ein.
Dieser Link wird später auch im Frontend anstelle der vordefinierten
Struktur angezeigt. Ein Standardpfad wird in dieser Box vorausgefüllt
dargestellt (zB. /serendipity/permalink/Mein-Blogartikel.html).
Wenn Sie den Pfad anpassen, dürfen Sie nur die Teile anpassen, die hinter
der Stamm-URL von Serendipity (in unserem Beispiel /serendipity/)
aufgeführt sind. Sie können beliebige gültige URL-Zeichen [*] Sonderzeichen und Leerzeichen müssen entsprechend
der RFC 1738 (\cmd{http://www.faqs.org/rfcs/rfc1738.html}) konvertiert werden.
Das URL-Sonderzeichen ; würde
daher als %3B umgeschrieben werden. Da dies eher unschön aussieht,
sollten Sie auf derartige Sonderzeichen in Permalinks besser verzichten.

als Permalink einsetzen. Die einzige Regel dabei ist, dass der Permalink
auf .htm oder .html endet, damit Serendipity ihn korrekt
erkennen kann. Auch dürfen Sie bereits bestehende interne Permalinks
(wie /serendipity/archives/1-Mein-Blogartikel.html) nicht
verwenden, da Serendipity dann eine URL nicht eindeutig einem Inhalt
zuweisen könnte. Die verwendeten Verzeichnisnamen werden nur virtuell
belegt, Sie müssen also keine entsprechende Verzeichnisstruktur auf Ihrem
Server anlegen.

Das Plugin wird gerne dann verwendet, wenn man besonders
lange Artikeltitel benutzt, die man in der URL aber lieber auf Stichworte
eingrenzen möchte. Oder im umgekehrten Fall, wenn man aus
Gründen der Suchmaschinenoptimierung einer URL mehr Stichworte mitgeben
möchte, als der Artikeltitel enthält.

6.3.3 - Sonderzeichen/Erweiterte Buttons für Non-WYSIWYG: serendipity_event_typesetbuttons

Sonderzeichen/Erweiterte Buttons für Non-WYSIWYG
serendipity_event_typesetbuttons

Wenn Sie als Redakteur nicht den WYSIWYG-Editor beim Verfassen von
Artikeln einsetzen, sind Sie gezwungen (oder eher in der glücklichen
Lage), HTML-Code selbständig einzugeben. Serendipity bietet zwar zum
Einfügen von Bildern/Links und für gängige Textformatierung (fett,
unterstrichen, kursiv) eigenständige Buttons an, aber dies ist Ihnen
möglicherweise noch nicht komfortabel genug.

Glücklicherweise erlaubt die Serendipity-Plugin-API, dass
Ereignis-Plugins eigenständig Buttons oberhalb der Artikelmaske einbinden
können. Das Plugin Sonderzeichen/Erweiterte Buttons für
Non-WYSIWYG
tut genau dies.

In der Plugin-Konfiguration können Sie einstellen, welche Buttons das
Plugin darstellen soll. Damit die Artikelmaske nicht überfrachtet wird,
sollten Sie hier nur die Buttons aktivieren, die Sie wirklich gerne (und
häufig) nutzen möchten.

Eine sehr wichtige Konfigurationsoption des Plugins ist, ob Sie für die
Sonderzeichen HTML oder XHTML benutzen wollen. Je nachdem, welchen dieser beiden
Standards Sie für Ihre Webseite benutzen wollen, müssen die Sonderzeichen
unterschiedlich eingebunden werden. Wenn Ihr Blog-Template das XHTML-Format
benutzt (was bei fast allen Serendipity-Templates der Fall ist), würde ein
HTML-Sonderzeichen unter Umständen dazu führen, dass Ihre Seite ungültigen Code
enthält, der bei manchen Browsern zu Fehldarstellungen der Seite führen könnte.

Da sich XHTML bereits etabliert hat und von allen Browsern unterstützt wird,
sollten Sie möglichst XHTML-Sonderzeichen einsetzen. Lediglich alte
Hasen
, die sich von ihren liebgewonnenen HTML-Tags einfach nicht trennen
können, interessieren sich womöglich für die HTML-Variante der Sonderzeichen.

Die einzelnen Konfigurationsoptionen des Plugins sind:

Center Button aktivieren Bindet einen Button ein, mit dem Sie ausgewählten Text im Artikel
zentrieren können. Dies geschicht mittels <center>-HTML-Tag oder
<div class="s9y_typeset_center">-XHTML-Tag.

Strike-through Button aktivieren Hiermit können Sie Texte als durchgestrichen auszeichnen, um zB. eine
Änderung in Ihren Artikeln hervorzuheben (<del> für HTML, <s>
für XHTML).

Leerzeichen-Button aktivieren Bei (X)HTML werden mehrere Leerzeichen immer zu einem einzelnen
Leerzeichen zusammengefasst. Um mehrere Leerzeichen hintereinander in
einem Artikel einzubinden, müssen Sie sogenannte geschützte
Leerzeichen verwenden. Dieses wird durch das HTML-Sonderzeichen
&#160; repräsentiert.

Kaufmännisches-Und-Button aktivieren Das Kaufmännische Und (&) ist bei HTML ein Zeichen, das eine
Formatierung für ein Sonderzeichen einleitet. Daher kann man ein
&-Zeichen nicht einfach alleinstehend einsetzen, sondern muss es
speziell maskieren. Der Button bindet dafür das Sonderzeichen
&#38; ein.

Gedankenstrich-Button aktivieren Der lange Gedankenstrich wird durch das Sonderzeichen &#8212;
repräsentiert. Wenn Sie die Option Use Named Entities aktivieren,
wird stattdessen das (gleichwertige) Sonderzeichen &mdash;
eingebunden, das man sich zugegebenermaßen für eine manuelle Eingabe
besser merken kann.

Kurzer Gedankenstrich-Button aktivieren Analog zum langen Gedankenstrich gibt es auch einen kurzen
Gedankenstrich, der &#8211; bzw. &ndash; entspricht.

Aufzählungszeichen-Button aktivieren Das Aufzählungszeichen (ein mittig ausgerichteter Kreis) wird durch das
Sonderzeichen &#8226; bzw. &bull; eingebunden.

Doppelte Anführungszeichen-Button aktivieren Ein Wort kann in typografischen Anführungszeichen eingebunden werden,
wenn Sie diesen Button aktivieren. Welche Anführungszeichen Sie verwenden
möchten, können Sie mit der darunterstehenden Option festlegen. Abhängig
von der Option Use Named Entities werden später auch für diese
Anführungszeichen entweder numerische Codes oder die Namen der
Sonderzeichen (&laquo;, &raquo; etc.) eingefügt.

Choose the type of double quote to use Hier können Sie einen gewünschten Anführungszeichen-Typ (1 bis 8)
auswählen. Welche Anführungszeichen möglich sind, wird anhand von
Beispielen dargestellt.

Einfache Anführungszeichen-Botton aktivieren Analog zu doppelten Anführungszeichen können Sie ein Wort auch in
einfachen Anführungszeichen einschließen.

Choose the type of single quote to use Wie bei den doppelten Anführungszeichen wählen Sie mit dieser Option den
gewünschten Typ (1 bis 8) aus.

Apostroph-Button aktivieren, Use real apostrophe
Der Apostroph (') ist wohl das im deutschen Sprachraum am häufigsten
falsch eingesetzte Sonderzeichen. Oft sieht man stattdessen die
gedrehte Variante (`). Auch im HTML-Standard gibt es mehrere
Möglichkeiten.
Das Plugin verwendet entweder &#39;, &#8217; oder
&rsquo;.
&#39; wird benutzt, wenn Sie die Option Use real
apostrophe
aktivieren. Dies ist der "einzig wahre" Apostroph.
&#8217; wird eingesetzt, wenn Sie die beiden Optionen Use
real apostrophe
und Use Named Entities nicht aktiviert haben. Das
daraus resultierende Sonderzeichen ist eigentlich ein einfaches
Anführungszeichen, das wie ein hochgestelltes Komma aussieht.
&rsquo; wird bei deaktiviertem Use real apostrophe und
aktiviertem Use Named Entities angezeigt und sieht
genauso wie &#8217; aus.

Akzent-Button aktivieren Das häufig als Apostroph missbrauchte Zeichen kann über diesen Button
eingebunden werden (&#x0301;).

Schräger-Akzent-Button aktivieren Der umgekehrte Akzent wird über diesen Button als &#x0300;
eingebunden.

XHTML-1.1-Standard verwenden Mit dieser Option bestimmen Sie, ob die Tags für Center und
Strike-Through anhand des HTML- oder des XHTML-Standards eingefügt werden
sollen.

Use Named Entities Wenn Sie diese Option aktivieren, werden anstelle der Namen einiger
Sonderzeichen die Zahlencodes verwendet. Wenn Sie sich die Sonderzeichen
nicht einprägen wollen, ist es empfehlenswert, diese Option zu
deaktivieren. Die Zahlenwerte (wie &#8211;) können
systemübergreifend besser von Browsern interpretiert werden als die
benannten Sonderzeichen (wie &ndash;).

Custom HTML-Tags Eine sehr flexible Option zum Hinzufügen von beliebigen Buttons in Ihre
Eintragsmaske stellt die Option Custom HTML-Tags dar. Dort können
Sie eine Liste von HTML-Codes einfügen, die durch Klick auf den
entsprechenden Button einen gewählten Text mit dem gewünschten HTML-Code
umgeben.
Ein klassisches Einsatzgebiet hierfür ist die Bereitstellung eigener
Formatierungsvorlagen. Wenn Sie Ihren Redakteuren spezielle
HTML-DIV-Container in der zentralen Stylesheet-Datei (siehe Kapitel
template-css ab template-css)
angelegt haben, den Redakteuren aber nicht zumuten wollen, eigenes
HTML zu schreiben, können Sie für die vorhandenen Container jeweils einen
eigenen Button hinzufügen. Wenn Sie beispielsweise Zitate durch den
HTML-Code
<div class="MyQuote">
 Errare humanum est
</div>
auszeichnen wollen, können Sie dieses <div>-Konstrukt als
Button oberhalb der Texteingabemaske einbinden. Der Redakteur muss sein
Zitat dann nur markieren, klickt auf den Button, und daraufhin wird der
gewählte Text in das aufgeführte HTML-Konstrukt überführt.
Welche HTML-Tags Sie einbinden, ist völlig Ihren Wünschen
überlassen. So könnten Sie dort auch einen Button für das Einfügen von
JavaScript einbinden.
Die Liste der HTML-Tags tragen Sie in dem Konfigurationsfeld Custom
HTML-Tags
ein. Diese Liste muss in einem ganz speziellen Format
vorliegen
Zum einen werden mehrere Buttons mit dem Zeichen | (das
Pipe-Symbol) voneinander getrennt. Der Übersichtlichkeit halber
können Sie nach jedem | auch gerne einen Zeilenumbruch einfügen.
Jeder einzelne Button muss daraufhin drei Attribute besitzen: Wie der
Button benannt wird, welches HTML-Tag bei einem Klick vor einem
ausgewählten Text eingefügt wird und welches HTML-Tag nach der
Textauswahl eingefügt wird. Diese drei Attribute werden von dem
@-Zeichen voneinander getrennt.
Demnach wäre obiges Beispiel durch folgende Syntax umzusetzen: Zitat@<div class="MyQuote">@</div> Der Button wird also mit dem Text Zitat in der Symbolleiste
oberhalb des Eintrags eingebunden. Bei einem Klick auf diesen Button wird
dem Text, den Sie ausgewählt haben, ein <div...>
vorangestellt und ein </div> angefügt.

6.3.4 - Trackbacks kontrollieren: serendipity_event_trackback

Trackbacks kontrollieren
serendipity_event_trackback

Wenn Serendipity Ihren Artikel speichert, durchsucht es den Eintrag nach
allen Links. Dabei werden Trackbacks an automatisch erkannte Blogs
verschickt (siehe Seite trackback).

Manche Blogs binden jedoch leider ihre Trackback-URL in einem
Artikel nicht standardkonform so ein, dass Serendipity sich dorthin automatisch
verbinden kann. In einem solchen Fall benötigen Sie das Plugin Trackbacks
kontrollieren
, denn dieses Plugin ermöglicht es Ihnen, manuelle
Trackback-URLs zu einem Eintrag hinzuzufügen.

Zusätzlich bietet das Plugin Ihnen die Möglichkeit, ausgehende Trackbacks
global in Ihrem Blog zu deaktivieren. Dann sendet Serendipity beim
Speichern Ihrer Artikel keinerlei Trackbacks, dies empfiehlt sich also
besonders bei versteckten Blogs oder Intranet-Blogs, die mit der
Außenwelt nicht in Kontakt treten sollen. Abgesehen von diesem Plugin
regelt auch die Variable $serendipity['noautodiscovery'] der Datei
serendipity_config_local.inc.php die globale Deaktivierung von
Trackbacks, wie auf Seite noautodiscovery beschrieben.

Ein weiteres praktisches Feature des Plugins ist, dass Sie in der Konfiguration
einen Web-Proxy eintragen können. Ein Proxy ist ein Server, der als Bindeglied
zwischen Webserver und dem Internet steht. Oft ist es einem Webserver aus
Sicherheitsgründen nicht erlaubt, direkt auf andere Server zuzugreifen. Dies ist
auch der häufigste Grund dafür, dass das Spartacus-Plugin (siehe Seite
Spartacus) nicht funktioniert. Wenn der Webserver jedoch auf
einen Proxy-Server zugreifen darf, können die Zugriffe auf fremde Server über
den Proxy geleitet werden.

Auch wenn Serendipity Trackbacks verschickt, muss es direkt auf einen
Server zugreifen können. Damit Sie einen Proxy dazwischensetzen können,
bietet das Trackback-Plugin die Möglichkeit, einen solchen Server
einzutragen. Serendipity wird dann nicht nur beim Senden von Trackbacks,
sondern schon beim Zugriff auf Spartacus diesen Proxy-Server
benutzen, da fast alle URL-Aufrufe von Serendipity über denselben
Mechanismus (die PEAR HTTP::Request-Bibliothek) ausgeführt werden.

Abgesehen von der Proxy-Konfiguration bietet das Plugin die Option
Disable the global use of trackbacks, die bei Aktivierung dafür
sorgt, dass keine Trackbacks verschickt werden. Da Serendipity
üblicherweise auch Trackbacks zu Ihren eigenen Artikeln schickt, können
Sie dies ebenfalls im Plugin über die Option Send trackbacks to
your own blog
deaktivieren.

Wenn Sie das Trackback-Plugin installiert haben und Trackbacks nicht
global deaktiviert sind, sehen Sie in den Erweiterten Optionen beim
Erstellen eines Artikels eine neue Eingabemaske. Dort werden bereits im
Eintrag erkannte Links aufgeführt, und zusätzlich können Sie hier weitere
URLs eintragen, zu denen Serendipity ein Trackback schicken soll. Mehrere
Links werden durch ein Leerzeichen oder einen Zeilenumbruch getrennt.

Mitttels dreier Optionsfelder können Sie bestimmen, wie Trackbacks für den
jeweiligen Eintrag gesendet werden sollen:

Trackbacks an erkannte Links im Eintrag senden Diese Option bewirkt, dass Serendipity automatisch alle im Eintrag eingetragenen
URLs auf Trackbacks prüft. Etwaige weitere, manuell eingefügte Links in der Box
Weitere Links für Trackbacks werden zusätzlich geprüft.

Ausgehende Trackbacks deaktivieren Ist diese Option ausgewählt, prüft Serendipity weder automatisch die Links
innerhalb Ihres Beitrags, noch sendet es Trackbacks an die Liste weiterer,
manuell eingefügter URLs.

Trackbacks nur an unten aufgeführte URLs schicken Wenn Sie Trackbacks ausschließlich an die manuell eingetragenen Trackback-URLs
senden wollen, wählen Sie diese Option. Dadurch wird die automatische Erkennung
von Links in Ihrem Artikel deaktiviert.

 

Bitte achten Sie darauf, dass Serendipity bei jedem Speichern eines
veröffentlichten Eintrags Trackbacks prüft. Wenn Sie also später mal
einen Artikel überarbeiten, bei dem Sie ursprünglich die Option zum
Versenden von Trackbacks deaktiviert hatten, müssen Sie daran denken,
auch beim neuen Speichern diese Option zu deaktivieren.

Stellen wir uns also konkret folgendes Beispiel vor: Sie schreiben einen
Artikel zu einem fremden Blog-Beitrag auf http://example.com/wp/?p=15.
Dafür würden Sie folgenden HTML-Code in Ihrem Beitrag verwenden:


    Hanni und Nanni <a href="http://example.com/wp/?p=15">berichten in ihrem
Blog</a> darüber, wie man von WordPress auf Serendipity umsteigen kann
und damit höchste Glückseligkeit erreicht. Sehr spannender Artikel, ich
habe es direkt ausprobiert und lasse gerade mein Shakra richtig entspannt
herumbaumeln.

Wenn Sie diesen Artikel speichern, greift Serendipity auf die genannte
URL http://example.com/wp/?p=15 zu. Wäre in dem Beitrag die
Trackback-URL korrekt enthalten, würde Serendipity das Trackback direkt
abschicken. In unserem Beispiel gehen wir aber davon aus, dass die
automatische Erkennung fehlschlägt, da Hanni und Nanni leider ein
Blog-Template benutzen, das die Trackback-URL nicht korrekt über
RDF-Metadaten einbindet (siehe Trackback-Kapitel ab Seite trackback).

Daher müssen wir uns nun auf die Jagd nach der Trackback-URL machen. Dazu
rufen wir das Blog selber im Browser auf, und meist stößt man auf eine Angabe
des Blogs zu einer manuellen Trackback-URL. Auch Serendipity gibt eine derartige URL
auf den Artikel-Detailseiten für fremde Blogsysteme an. In unserem Fall
wäre die gewünschte URL
http://example.com/wp/wp-trackback.php?id=15. Diese URL notieren
Sie sich und fügen sie in die Eingabebox Weitere Links für
Trackbacks
ein, speichern den Artikel dann erneut ab - und Serendipity
wird nun das Trackback an diese genannte URL schicken, da es die
automatische Erkennung nicht mehr benötigt.

Bei dem Beispiel ist es extrem wichtig, dass Sie die manuelle
Trackback-URL nicht im Artikel erwähnen! Wenn Sie dies machen,
würde Serendipity weiterhin denken, es müsste bei dieser URL einen
automatischen Trackback erkennen, der zwangsweise scheitern wird. Wie
man in so einem Fall Trackbacks erneut vollständig ausführen kann,
entnehmen Sie ebenfalls Kapitel trackback ab Seite trackbacks-resend.

6.3.5 - Display RSS-Feed in Backend Overview: serendipity_event_backendrss

Display RSS-Feed in Backend Overview
serendipity_event_backendrss

Wenn Sie sich ins Backend einloggen, sehen Sie üblicherweise eine ziemlich
leere Seite. Diesen Platz können Sie ausnutzen, um etwas gehaltvollere
Informationen darzustellen, wie beispielsweise einen RSS-Feed.

Ähnlich wie das Plugin Fremder RSS/OPML-Blogroll Feed (siehe Seite
remoterss) bietet das Plugin Display RSS-Feed in Backend
Overview
die Möglichkeit, beliebige RSS-Feeds einzubinden. Die
Konfigurationsoptionen sind dabei ähnlich gestaltet:

Anzahl der Einträge Bestimmt, wie viele Einträge aus dem RSS-Feed angezeigt werden sollen. Die
Zahl 0 entspricht allen Einträgen des Feeds. Sie können immer nur
maximal so viele Einträge darstellen, wie der Feed enthält.

Feed-Titel Hiermit legen Sie die Überschrift des RSS-Feeds fest. Da Sie mehrere
RSS-Feeds im Backend darstellen können, sollten Sie die Überschriften zur
Abgrenzung eindeutig vergeben.

RSS/OPML-URI In diesem Eingabefeld tragen Sie die vollständige URL des RSS-Feeds ein,
den Sie darstellen möchten.

Zeichensatz Die Option Zeichensatz legt fest, in welchem Zeichensatz der
fremde RSS-Feed formatiert ist. Bei den meisten RSS-Feeds ist dies
UTF-8.

Link-Target Der RSS-Feed zeigt nur die Überschriften der Beiträge an, ein Klick auf
den jeweiligen Beitrag öffnet diesen standardmäßig in einem neuen Fenster
(_blank). Wenn Sie stattdessen den Beitrag gerne im selben
Browser-Fenster lesen möchten, können Sie hier ein anderes Ziel (zB.
_self oder leer) eintragen.

Wann wird der Feed aktualisiert Der RSS-Feed wird vom Plugin gecached, damit nicht bei jedem Aufruf des
Backends der fremde Webserver kontaktiert wird. Tragen Sie in diesem
Feld ein, wie lange ein Feed zwischengespeichert werden soll.
Standardmäßig sind dies 3 Tage (10800 Sekunden).

 

Sie können diesen RSS-Feed in der Admin-Oberfläche gut dazu benutzen,
den RSS-Feed vom offiziellen
Serendipity-Blog [*] \cmd{http://blog.s9y.org/rss.php} zu
abonnieren. So können Sie direkt beim Login in Ihr Blog erkennen, ob
es möglicherweise neue Versionen der Software gibt, in der zB.
Sicherheitslücken behoben worden sind.

6.3.6 - HTML-Code für den head-Bereich
(HTML-Kopf-Klotz) und HTML Nugget on Page:
serendipity_event_head_nugget, serendipity_event_page_nugget

HTML-Code für den head-Bereich
(HTML-Kopf-Klotz) und HTML Nugget on Page
serendipity_event_head_nugget, serendipity_event_page_nugget

Ähnlich wie der berühmte HTML-Klotz (siehe Seite htmlnugget)
ermöglicht es das Plugin HTML-Code für den head-Bereich, beliebigen HTML-Code (oder
JavaScript) in Ihr Blog einzubinden. Dieser HTML-Code wird dann im
HTML-<head>-Bereich eingebunden. In diesem Bereich findet man
üblicherweise Meta-Tags und seitenübergreifende JavaScripts. Google
Analytics beispielsweise muss in diesen Kopf-Bereich eingefügt werden.

Grundsätzlich können Sie derartigen Code natürlich auch in die
Template-Datei index.tpl einfügen. Der Nachteil dieser Methode wäre
allerdings, dass Sie ihn bei jedem neuen Template neu einfügen müssen
und nicht einfach das Template wechseln können. Auch müssen Sie zum
Einfügen extra das FTP-Programm und einen Editor bemühen, während der
HTML-Kopf-Klotz eine einfachere Eingabe über ein zentrales Plugin
ermöglicht.

Zugleich ist dieses Plugin wohl das kleinste existierende
Serendipity-Plugin, und daher sehr geeignet, um einmal in die
Programmierweise von Plugins hineinzuschnuppern.

Komplexere Möglichkeiten zum Einfügen von Klötzen bietet das
Plugin namens HTML Nugget on Page (serendipity_event_page_nugget).
Dort kann man einen Klotz beliebig im Kopf-Bereich oder im Inhaltsbereich
(Header, Footer, Seitenende) platzieren. Dieses Plugin ermöglicht auch
die Benutzung der verfügbaren Textformatierungs-Plugins und lässt sich
analog zum HTML-Klotz auch so konfigurieren, dass es nur auf
Artikel-Detailseiten oder nur auf Artikel-Übersichtsseiten angezeigt
wird.

6.3.7 - Versioning of entries: serendipity_event_versioning

Versioning of entries
serendipity_event_versioning

Jedesmal wenn Sie einen Blog-Artikel neu speichern, wird die vorige
Version überschrieben. Wenn Sie einen Beitrag versehentlich durch ein
einziges Wort ersetzen und speichern, ist also sämtlicher voriger Text
unwiderruflich verloren.[*] Es sei denn, Sie haben vorausschauend
regelmäßig Backups angelegt.

Um dieses Problem zu umgehen, gibt es das Plugin Versioning of
entries
. Wie der englische Titel suggeriert, kümmert sich das Plugin um
eine Versionskontrolle von Artikeln. Jedes Speichern eines Artikels mit
unterschiedlichem Text führt dazu, dass das Plugin den Artikeltext
(Eintrag und Erweiterter Eintrag) in einer zweiten
Datenbanktabelle (serendipity_versioning) speichert. Diese
Datensatzkopie wird mit dem aktuellen Datum und Autor verknüpft.

In der Konfiguration des Plugins können Sie einstellen, ob mehrere
Versionen eines Artikels auch für Ihre Besucher im Frontend dargestellt
werden sollen. Ein Besucher kann dann eine beliebige vorige Version
aufrufen und so nachlesen, was sich zwischen den einzelnen
Bearbeitungszuständen verändert hat.

Ein Redakteur hat im Abschnitt Erweiterte Optionen beim Erstellen
oder Bearbeiten eines Artikels die Möglichkeit, eine beliebige
vorhergehende Version wiederherzustellen und neu abzuspeichern. Die
Zwischenversionen bleiben dabei intakt, da die Übernahme einer alten
Version lediglich eine neue, aktuelle Version einführt.

Bitte beachten Sie, dass das Plugin außer dem Artikeltext keine anderen
Veränderungen [*] Beispielsweise an Erweiterten Optionen, der
Kategoriezuweisung oder auch dem Artikeltitel.
speichern und auch
in der jetzigen Version keinen Vergleich innerhalb der Versionen
durchführen kann.

Datenbanktabelle

Die Datenbanktabelle serendipity_versioning enthält alle gespeicherten
Versionen eines Artikels:

id enthält die fortlaufende Versionsnummer.
entry_id enthält die Artikel-ID der jeweiligen Version.
version enthält eine numerisch erhöhte Versionsnummer.
body enthält den Artikeltext dieser Version.
extended enthält den erweiterten Artikeltext dieser Version.
version_date enthält das Datum, an dem diese Revision angelegt wurde.
version_author enthält die ID des Redakteurs, der diese Revision erstellt hat.

6.3.8 - Cronjob scheduler: serendipity_event_cronjob

Cronjob scheduler
serendipity_event_cronjob

Der Begriff Cronjob ist die Kurzform für eine wiederkehrende
(chronologische) Aufgabe und stammt ursprünglich von
Unix-Betriebssystemen. Bei derartigen Betriebssystemen kann in beliebigen
Zeit-Intervallen automatisch ein Programm oder eine Aktion ausgeführt werden.

Solche regelmäßigen Cronjobs sind auch im Blog-Umfeld von Interesse.
Beispielsweise bietet Serendipity Plugins an, die regelmäßig RSS-Feeds
importieren (Aggregator, siehe Seite aggregator) oder regelmäßig E-Mails als
Blog-Artikel abrufen (Popfetcher, siehe Seite
serendipity-event-popfetcher).

Eine solch regelmäßige Aktion kann Ihr PHP-Webserver üblicherweise nicht selbst
ausführen. Serendipity ist keine Anwendung, die wie ein Betriebssystem
ständig im Hintergrund läuft, sondern man muss sich das System eher wie einen Bären im
Winterschlaf vorstellen. Der Bär ist nur dann wach, wenn gerade ein Besucher
seine Höhle aufsucht und ihn mit großem Lärm aufweckt. Wenn der ungebetene Gast
vom Bären versorgt wurde, kehrt wieder Ruhe ein und der Bär schläft
weiter. Für unser Blog bedeutet das: Wenn kein Besucher oder Redakteur gerade das
Blog aufruft, ist Serendipity inaktiv und kann keine Aktionen ausführen.

Daher kann Serendipity von sich aus nicht einfach einen Vorgang
auslösen, sondern ist abhängig von Ihren Aktionen. Bei der Benutzung
der genannten Plugins müssen Sie selber dafür sorgen, dass eine spezielle URL
aufgerufen wird, die wiederum die eigentliche Funktionalität aufruft. Wenn Sie
einen eigenen Webserver administrieren, könnten Sie diese URL in die Liste der Cronjobs
(die Crontab) aufnehmen und automatisch aufrufen.

Jedoch ist diese Möglichkeit für viele Benutzer keine Option. Hier kommt
das Plugin Cronjob scheduler ins Spiel. Das Plugin ermöglicht es
Ihnen, unterstützte Plugins in einem gewünschten Intervall aufzurufen.

Dabei bedient sich das Plugin eines kleinen Tricks. Es bindet im Frontend
eine unsichtbare Datei ein, die von jedem Besucher aufgerufen
wird, ohne dass dieser das merkt. Die Datei prüft, wann der
letzte automatische Aufruf stattfand, und startet gegebenenfalls die
notwendigen Aktionen. Andernfalls tut das Plugin nichts und
wartet auf den nächsten Aufruf.

Dieser Aufruf durch einen Besucher hat natürlich den Nachteil, dass man
niemals exakt voraussagen kann, ob auch wirklich zum benötigten Zeitpunkt
jemand das Blog besucht. Wenn ein Job alle fünf Minuten ausgeführt
werden soll, aber statistisch nur alle zwei Stunden ein Besucher
vorbeikommt, dann wird dieser Job faktisch auch nur alle zwei Stunden
ausgeführt. In den meisten Fällen ist das kein Problem, da, wenn es früher
keine Besucher gibt, die neu importierten Daten des Jobs sowieso nicht
benötigt werden. Das Cronjob-Plugin wird zentral über die URL
http://www.example.com/serendipity/index.php?serendipity[cronjob]=true
aufgerufen. Dies ist die erwähnte unsichtbare Datei, die ein
Besucher aufruft. Natürlich können Sie diese URL auch von einer Crontab
aus alle fünf Minuten aufrufen, anstatt dies Ihren Besuchern zu überlassen.
In so einem Fall können Sie das Plugin über die Konfigurationsoptionen so
einstellen, dass die visitor-based cronjobs deaktiviert werden.

Welche Aktionen der Cronjob ausführt, stellen Sie nicht innerhalb des
Cronjob-Plugins ein, sondern in dem jeweiligen Plugin. Bei jedem
unterstützten Plugin können Sie in den Konfigurationsoptionen
einstellen, in welchem Zeitraum (alle fünf Minuten, 30 Minuten,
stündlich, halbtäglich, täglich, wöchentlich, monatlich) die Aktion
ausgeführt wird. In der Konfiguration des Cronjob-Plugins sehen Sie eine
Liste aller eingerichteten Cronjobs, und wann diese zuletzt ausgeführt
worden sind.

Bei jedem Aufruf schreibt das
Plugin einen kleinen Logfile-Eintrag in die Datenbanktabelle
serendipity_cronjoblog. Diese können Sie jederzeit leeren (nicht löschen),
wenn Sie Speicherplatz sparen wollen. Die Spalte timestamp enthält das
Datum der Cronjob-Ausführung, type die Cronjob-Art und reason einen
Informationstext zur Ausführung.

6.3.9 - QuickNotes: serendipity_event_adminnotes

QuickNotes
serendipity_event_adminnotes

Die Kommunikation unter Redakteuren läuft in einem Blog meist
informell ab: Man spricht sich persönlich, via Telefon oder
E-Mail ab - und Gerüchten zufolge ist es vielen Bloggern auch egal, was
ihre Co-Autoren so treiben.

Das Plugin QuickNotes nimmt sich des Kommunikationsproblems an und
verwandelt die Startseite des Backends in ein Nachrichtenzentrum. Dort
können Chefredakteure Anweisungen an die Benutzer weiterreichen,
Administratoren können über etwaige neue Plugins berichten und einfache
Redakteure über ihre Artikel informieren.

Die Nachrichten arbeiten grundsätzlich gruppenorientiert. Eine Nachricht
wird immer für eine festgelegte Autorengruppe eingeblendet, das heißt,
dass Mitglieder anderer Gruppen die Nachricht nicht sehen können. Notizen
können zudem nur an die Gruppen geschrieben werden, in denen man Mitglied
ist. Daher ist es unter Umständen für dieses Plugin notwendig, dass Sie
als Administrator auch anderen Benutzergruppen beitreten (siehe
Seite verboteneplugins), um Nachrichten an diese zu verfassen.

In der Übersicht werden QuickNotes wie in folgender Abbildung dargestellt:

Abbildung 6.1: Beispiel für QuickNotes

Nachrichten, die Sie noch nicht gelesen haben, werden speziell
hervorgehoben, bereits gelesene Nachrichten werden normal dargestellt. In
jedem Kasten befindet sich der Titel einer Notiz, die Angabe des
Herausgebers der Information und das dazugehörige Datum. Besonders
lange Hinweise können nach einer gewissen Textmenge abgeschnitten werden,
ein Klick auf den Button Alle Optionen ein/ausblenden zeigt
den vollständigen Text an. Alle QuickNotes werden chronologisch
sortiert, ihre Anzahl richtet sich nach der Konfiguration des Plugins.

Sie können eine neue Notiz anlegen, indem Sie auf den Menüpunkt
Einträge → QuickNotes klicken. Dort sehen Sie eine Liste aller Notizen, chronologisch
sortiert. Mittels der Buttons Bearbeiten
und Löschen können Sie eine bestehende Notiz verändern, der Button
Neuer Eintrag legt eine neue Notiz an.

Beim Anlegen einer neuen Notiz tragen Sie den Titel und den
Text in den vorhergesehenen Feldern ein. In dem
Mehrfach-Auswahlfeld Gruppenzugehörigkeit markieren Sie alle Gruppen,
für die die Nachricht bestimmt ist.

Die Konfigurationsoptionen des Plugins ermöglichen Ihnen weitere
Einstellungen zu Menge und Darstellung der Notizen:

Sollen Autoren eigene Hinweise anlegen dürfen Wenn Sie diese Option nicht aktivieren, können nur Chefredakteure und
Administratoren [*] Die Identifikation erfolgt anhand des
Benutzerrangs, nicht der Zugehörigkeit zu den gleichnamigen
Benutzergruppen.
QuickNotes anlegen. Bei aktivierter Option können auch
normale Autoren Nachrichten an die Mitglieder ihrer Benutzergruppen
senden.

Wie viele Elemente sollen angezeigt werden Tragen Sie in dieses Feld die Anzahl der QuickNotes ein, die auf der
Startseite angezeigt werden sollen.

HTML-Formatierung erlauben Standardmäßig dürfen die QuickNotes (aus Sicherheitsgründen) nur normalen
Text enthalten und keinen HTML-Code. So können Sie verhindern, dass
böswillige Redakteure möglicherweise JavaScript einschleusen.
Mit dieser Option können Sie gezielt HTML-Formatierungen auch nur
für Benutzer mit Administrator-Rang zugänglich machen.

Textformatierung(en) durchführen Der Text einer QuickNote kann, wie auch bei Blog-Artikeln üblich, mit den
installierten Textformatierungs-Plugins behandelt werden. Standardmäßig
ist dies aktiviert. Wenn Sie jedoch den Text ohne weitere Umformatierung
darstellen wollen, können Sie diese Option deaktivieren.

Nachrichten nach X Bytes kürzen Lange Notizen werden in der Übersicht nach einer festgelegten Anzahl an
Zeichen gekürzt. Längere Notizen müssen dann erst durch einen Klick auf
den Button Alle Optionen ein/ausblenden gezielt geöffnet werden
und belegen so keinen wertvollen Bildschirmplatz.

 

Das Aussehen der Admin-Notes können Sie über das Admin-Stylesheet (siehe Seite
template-css) beeinflussen, indem Sie die CSS-Klassen
.serendipity_note und .note_new der Plugin-Datei
plugins/serendipity_event_adminnotes/notes.css entweder anpassen oder in
die admin/style.css-Template-Datei übernehmen. Weitere HTML-Klassen bei der
Ausgabe der Notizen sind verfügbar, diese können Sie im Bedarfsfall anhand des
HTML-Quelltextes in Ihrem Browser einsehen und dann dem Stylesheet hinzufügen.

Datenbanktabellen

QuickNotes werden in der Datenbanktabelle serendipity_adminnotes
gespeichert:

noteid enthält die fortlaufende ID einer QuickNote.
authorid enthält die ID des Redakteurs, der die QuickNote erstellt hat.
notetime enthält die Erstellungszeit der QuickNote.
subject enthält den Betreff der QuickNote.
body enthält den Inhalt der QuickNote.
notetype gibt die Art der QuickNote an (derzeit nur note unterstützt).

serendipity_adminnotes_to_groups ist eine
1:n-Zuordnungstabelle, die erstellte QuickNotes den Empfänger-Benutzergruppen
zuordnet. In Spalte noteid wird die ID der QuickNote gespeichert,
groupid enthält die ID der jeweiligen Benutzergruppe.

6.3.10 - Benutzerprofile: serendipity_event_userprofiles

Benutzerprofile
serendipity_event_userprofiles

Bei Blogs, in denen mehrere Redakteure schreiben, ist es für den Besucher
oft interessant, Details über einzelne Redakteure zu erfahren. Redakteure
wiederum möchten möglicherweise gerne auch etwas mehr Informationen über
sich preisgeben.

Viele Blogs regeln dies durch Einführungsartikel, in denen sich ein
Redakteur vorstellt. Solche Artikel sind aber später
möglicherweise nicht immer im Blickfeld eines Besuchers.

Deshalb bietet das Plugin Benutzerprofile eine Möglichkeit, mit der
jeder Redakteur Details zu seiner Person in vorausgefüllte Felder (wie
Wohnort, Land, Hobbies, Homepage etc.) eintragen kann. Diese Felder
können Besucher des Blogs dann einsehen, wenn sie im Frontend auf den
Namen eines Redakteurs klicken. Oberhalb der Übersicht der von dem jeweiligen Redakteur
geschriebenen Artikel sehen sie dann eine Box mit den
eingetragenen Profildaten.

Die Benutzerprofile verwaltet das Plugin, indem es sich in den
Admin-Bereich Eigene Einstellungen einklinkt. Unterhalb der
bekannten Einstellungen sehen Sie einen neuen Bereich, in dem die
verfügbaren Redakteure aufgelistet sind, wobei Ihr Name standardmäßig
hervorgehoben ist. Direkt darunter befinden sich die jeweiligen
Profilfelder wie Voller Name, Homepage, Hobbies und
so weiter. Dort kann der jeweilige Redakteur sämtliche Felder seiner Datei
ausfüllen und auf Speichern klicken. Bitte beachten Sie, dass
aus technischen Gründen Geburtstage vor dem 01.01.1970 [*] Dieses Datum markiert Sekunde 1 der Unix-Zeitrechnung. Alle
Unix-Server arbeiten intern mit sogenannten Timestamps, daher werden auch
in vielen Datenbanken Timestamps zur Formatierung von Zeitpunkten
verwendet, da damit leichter zu rechnen ist und sie sich einfacher in
beliebige Zeitzonen umrechnen lassen.
von dem Plugin leider nicht
korrekt ausgewertet werden können.

Zusätzlich bindet das Plugin dieselbe Oberfläche auch unter dem
eigenständigen Menüpunkt Administration → Benutzerprofile ein.

In dem Ausklappfeld der Benutzerprofile können Sie auch die Daten anderer
Redakteure bequem einsehen. Als höherrangiger Chefredakteur oder
Administrator können Sie außerdem alle Profildaten der niederrangigeren
Redakteure bearbeiten. Profildaten von Redakteuren des gleichen
Benutzerranges können Sie nur ansehen, aber nicht bearbeiten.

Wenn Sie auf den Button Erweiterte Optionen klicken, können Sie
dort einstellen, welche Ihrer eingetragenen Profildaten für Besucher des
Blogs angezeigt werden sollen. Alle anderen Daten sind nur für
eingeloggte Redakteure über die Benutzerprofilauswahl im Backend zu
sehen. So können Sie bestimmte Daten, wie Ihre Telefonnummer, nur den
Redakteuren zugänglich machen. Auch werden im Frontend nur dann wirklich
aktivierte Datensätze angezeigt, wenn Sie sie auch ausgefüllt haben. Wenn
Sie also keine Hobbies eingetragen haben, wird das leere Feld einfach
übersprungen. Standardmäßig sind alle Profilfelder deaktiviert, damit ein
Redakteur nur auf seinen ausdrücklichen Wunsch seine Informationen
veröffentlichen kann.

Bearbeiten Sie einen Datensatz, erscheint neben dem Ausklappfeld der
Benutzerprofile ein weiterer Button VCard-Datei erstellen. Wenn
Sie darauf klicken, wird eine VCard-Datei in der Mediendatenbank erstellt
(uploads/Benutzername.vcf). Diese Datei können Sie dann
herunterladen
(http://www.example.com/serendipity/uploads/Benutzername.vcf)
bzw. später in Blog-Einträgen einbinden. Eine VCard-Datei ist ein
standardisiertes Format für eine Visitenkarte und enthält die
Profildaten des Redakteurs. VCards können zum Beispiel in E-Mail-Programme
eingebunden werden.

Abgesehen von den Benutzerprofilen bietet das Plugin auch noch weitere
Funktionalität an. Zum einen ist dies, dass für jeden Redakteur ein
eigenes Bild für dessen Einträge eingebunden werden kann. Ein Besucher
muss so nicht erst nach einem Autorennamen suchen, sondern kann anhand des
Bildes leichter unterschiedliche Redakteure zuordnen.

Das jeweilige Bild muss dazu zuerst in der
Konfiguration des Plugins mit der Option Bild des Autoren im
Eintrag zeigen
aktiviert werden. Die Bilder, die das Plugin einbindet,
müssen sich in einem Unterverzeichnis img Ihres jeweiligen
Template-Verzeichnisses befinden. Der Dateiname richtet sich nach dem
vollständigen Namen des Redakteurs sowie der im Plugin konfigurierten
Dateiendung (standardmäßig jpg). Damit der Redakteursname in einen
gültigen Dateinamen umgewandelt werden kann, müssen Sie für den
Dateinamen alle Sonderzeichen, Umlaute und Leerzeichen mit einem
Unterstrich (_) ersetzen. Für den Redakteur John Doe
müssen Sie also eine Datei wie templates/default/img/John_Doe.jpg
erstellen. Beachten Sie dabei die Groß- und Kleinschreibung des
Redakteursnamens!

Da diese Art der Bildereinbindung relativ komplex ist und ein Redakteur
ohne FTP-Zugriff zum Blog keine Bilder einstellen kann, bietet das Plugin
auch eine andere Möglichkeit für individuelle Redakteursbilder. Diese
können nämlich alternativ über den Webservice
http://www.gravatar.com eingebunden werden. Der Gravatar-Dienst
ermöglicht es Ihnen, eine beliebige Grafikdatei hochzuladen, die mit
einer E-Mail-Adresse verbunden wird. Die E-Mail-Adresse eines Redakteurs
wird bei der Darstellung seiner Artikel ausgewertet und somit das Bild
vom Gravatar-Server eingebunden. Das heißt, jeder Redakteur kann für
seine E-Mail-Adresse einen Gravatar registrieren, und dieser wird dann
ohne weiteres Zutun dargestellt. Damit dies klappt, muss in der
Plugin-Konfiguration die Option Gravatar-Bild bevorzugen aktiviert
werden. Einige weitere Optionen regeln zudem, welche Standard-Bilddatei
bei Redakteuren angezeigt wird, die keinen Gravatar besitzen, und welche
Größe die Bilder haben sollen.

Für weitere Möglichkeiten der Gravatar-Unterstützung bietet sich das Plugin
Avatar Plugin an, das über Spartacus erhältlich ist. Dies bindet
Gravatare auch für Besucher des Blogs ein.

Die Option Anzahl der Kommentare zeigen des Plugins stellt eine
besondere Möglichkeit dar, mit der bei jedem Kommentar eines Benutzers
angezeigt wird, wie viele Kommentare dieser insgesamt bereits im Blog
hinterlassen hat. Diese Option ist besonders dann interessant, wenn Sie
ein geschlossenes Blog führen, in dem Kommentare nur für registrierte
Benutzer möglich sind. Solche Benutzer besitzen meist keine
Redakteursrechte, sondern kommentieren lediglich Artikel. Mit der
Aktivierung der genannten Option kann man als Besucher des Blogs so
leicht nachverfolgen, welche Benutzer oft kommentieren. In dem
Auswahlfeld dieser Option haben Sie die Wahl zwischen mehreren
Optionen.

keine Diese Option deaktiviert die Einbindung von Kommentarzählern.

An Kommentartext anhängen Bei dieser Option wird die Anzahl der Kommentare in Klammern hinter dem
jeweiligen Kommentar angezeigt. Wenn ein Benutzer also den Kommentar
"Das war sehr interessant!" schreibt, dann wird dahinter
"Kommentare (42)" eingefügt. Der Kommentartext wird innerhalb
eines HTML-Containers mit der Klasse .serendipity_commentcount
eingebunden, den Sie in der CSS-Datei Ihres Templates beliebig
formatieren können. Standardmäßig ist dieser Kommentarblock rechtsbündig
gesetzt.

Vor Kommentartext setzen Diese Option ist identisch zur vorangehenden, setzt den Kommentarzähler
aber an den Anfang.

Eigenes Smarty Template Statt den Kommentartext zu modifizieren, können Sie die Anzahl der
Kommentare auch an einer speziellen Position innerhalb der
Kommentardarstellung einbinden. Kommentare werden mit der
Smarty-Template-Datei comments.tpl dargestellt, dort können Sie die
Variable
$comment.plugin_commentcount an beliebiger Stelle setzen.

 

Das Benutzerprofile-Plugin ermöglicht es Besuchern des Blogs, eine
Übersicht aller Benutzergruppen des Blogs einzusehen. Gerade bei
Gruppenblogs ist die Aufteilung in Benutzergruppen von großem Interesse,
wie man es auch von Foren her kennt.
Über
http://www.example.com/serendipity/index.php?serendipity[subpage]=userprofiles
kann der Besucher diese Liste einsehen. Er kann über ein Auswahlfeld die
jeweilige Benutzergruppe aussuchen und mit einem Klick auf Los
alle Mitglieder der Gruppe anzeigen lassen. Standardmäßig werden der
Benutzername, die Anzahl der Artikel des Redakteurs, der echte Name des
Redakteurs und seine E-Mail-Adresse angezeigt.

Zusätzlich bietet das Benutzerprofile-Plugin zwei kleine
Seitenleisten-Plugins an. Zum einen das gleichnamige Plugin
Benutzerprofile, welches eine Liste aller verfügbaren Benutzer und
Benutzergruppen anzeigen kann, und zum anderen das Plugin namens
Geburtstage von Redakteuren, mit dem Sie die zukünftigen
Geburtstage darstellen können.

Das Layout und die dargestellten Datensätze der Benutzerliste können Sie
über die Smarty-Template-Datei
plugin_groupmembers.tpl anpassen. Es gibt dort folgende Variablen,
die für Smarty-Kenner wichtig sind:

{$userprofile_groups}: Array (id, name) Enthält eine Liste aller