Inhaltsverzeichnis
Welcompose bietet zur Texteingabe bei Inhaltsseiten oder Blog Postings die Möglichkeit, entweder nacktes HTML oder einen sogenannten Textkonverter zu verwenden. Dieser Textkonverter stellt in der Regel eine Markup-Sprache zur Verfügung, mit deren Hilfe gewisse einfache Formatierungsanweisungen gegeben werden können, die später in HTML verwandelt werden – ohne, dass man selber HTML tippen muss.
Ein bekanntes Beispiel ist die Markup-Sprache BBCode,
die in vielen Diskussionsforen verwendet wird. Umschliesst
man einen URL beispielsweise mit dem BBCode-Befehl
[url], wird der URL in einen klickbaren Link
verwandelt:
[url]http://www.example.com/[/url]
Sobald der Anwender dies in das Eingabefeld eingegeben und abgesendet hat, macht die Software im Hintergrund daraus je nach Implementierung beispielsweise:
<a href="http://www.example.com/">www.example.com</a>
Nach dem gleichen Prinzip funktionieren die Textkonverter in Welcompose. Welcompose bringt mit Markdown und Textile zwei populäre Textkonverter mit und ermöglicht mit Hilfe eines Plug-ins auch die Einbindung eigener Textkonverter.
Die Textkonverter werden überall im Webinterface angeboten, wo sich Inhalte für die jeweiligen Seiten eingeben lassen. Sie können pro Seite, Blog Posting oder Box über eine Auswahlliste ausgewählt werden.
Es ist nur die Nutzung eines Textkonverters auf einmal möglich. Sollte der Wunsch danach bestehen, zwei Textkonverter zu kombinieren, muss dies über ein Plug-in und einen separaten Textkonverter realisiert werden (siehe Abschnitt 8.1.4, „Eigene Textkonverter integrieren“). Dies wird zum jetzigen Zeitpunkt nicht empfohlen.
|
Anmerkung |
|---|---|
|
Für die Blog-Kommentare, kann der Textkonverter nur global für alle Blog-Kommentare gesetzt werden. |
Hilftsfunktionen von Welcompose, beispielsweise zum Setzen interner Links oder zum Einfügen eines Bildes berücksichtigen automatisch den jeweils gewählten Textkonverter. Das heisst, dass je nach Textkonverter automatisch die richtige Syntax zum Integrieren von Bildern oder Links gewählt wird. Sollte ein Textkonverter ein bestimmtes Element nicht unterstützen, wird automatisch der passende (X)HTML-Code eingefügt.
|
Anmerkung |
|---|---|
|
Wird der Textkonverter während oder nach dem Editieren gewechselt, muss beachtet werden, dass die Syntax nicht automatisch gewechselt wird, sondern die alte beibehalten wird. Wer den Textkonverter wechselt, muss die Syntax also von Hand anpassen oder den Textkonverter vor dem Erstellen des Texts ändern. |
Welcompose bringt von Haus aus drei verschiedene Textkonverter mit:
XHTML
Markdown
Textile
Der Textkonverter XHTML ist kein eigentlicher Textkonverter, da er eigentlich nichts tut. Er speichert den eingegebenen Text unverändert ab. Sein Einsatz empfiehlt sich dann, wenn man HTML-Code eingeben möchte.
Er ist der Standard-Textkonverter und darf nicht aus dem System entfernt werden, da es sonst passieren kann, dass beispielsweise der Mediamanager oder die Hilfsfunktionen zum Integrieren von Links oder Boxen nicht funktionieren. Dies, da er die Standardfunktionalität dazu bereitstellt, auf die andere Textkonverter zurückgreifen können, wenn sie selber über keine Methoden zum Einfügen eines Elements verfügen.
Der Textkonverter Markdown[13] ist eine Entwicklung von John Gruber und in Form von PHP Markdown Extra[14] von Michel Fortin integriert.
Markdown bietet eine einfache und klare Syntax, die sich zur einfachen Strukturierung von Texten eignet.
Textile[15] ist eine Entwicklung von Dean Allen und ursprünglich für die Weblog-Software Textpattern entwickelt worden.
Textile eignet sich vor allem für kompliziertere Formatierungen, bei denen Elementen beispielsweise IDs oder CSS-Klassen zugewiesen werden sollen.
|
Warnung |
|---|---|
|
Die API für Textkonverter befindet sich noch unter starker Entwicklung und kann sich von Version zu Version drastisch ändern. |
|
Anmerkung |
|---|---|
|
Wer einen Textkonverter integrieren möchte, sollte mit den Grundlagen objektorientierter Programmierung in PHP 5 vertraut sein. |
Die Integration eines eigenen Textkonverters besteht aus zwei Schritten:
Die Erstellung eines Textkonverter-Plug-ins.
Der Registrierung des Textkonverter-Plug-ins.
Um ein Textkonverter-Plug-in zu erstellen, werden zwei Dinge benötigt:
Ein Textkonverter.
Das eigentliche Plug-in, das für Welcompose eine einheitliche API zum Zugriff auf den Textkonverter bietet.
Wie der Textkonverter aussieht oder was er für Aufgaben erledigt, spielt bei der Integration keine Rolle. Er muss einzig eine Zeichenkette übernehmen, die der Eingabe des Anwenders entspricht, und diese (transformiert) wieder retournieren. Ein funktionsloser Prototyp könnte beispielsweise so aussehen:
class Mein_TextKonverter
{
public function process ($input)
{
return $input;
}
}
Selbstverständlich ist auch eine prozedurale Variante möglich:
function mein_textkonverter ($input)
{
return $input;
}
Wo der Textkonverter abgespeichert wird, spielt ebenfalls
keine Rolle. Praktisch ist vielleicht ein separates
Verzeichnis unterhalb von core/,
damit man nicht unabsichtlich – beispielsweise
bei einem Update – den eigenen Textkonverter
überschreibt.
|
Anmerkung |
|---|---|
|
Die Textkonverter Markdown und Textile, die Welcompose
mitbringt, sind im Verzeichnis
|
Mehr Konventionen gilt es dagegen bei den Plug-ins einzuhalten:
Die Plug-ins müssen im Verzeichnis
core/plugins/textconverters/
abgelegt werden.
Sie müssen der Benennung
wcom_plugin_textconverter_name.php
folgen, wobei name eine
Zeichenkette sein muss, die nur aus kleinen
Buchstaben, Zahlen und Unterstrichen
(_) bestehen darf.
name wird auch für die
Benennung der Plug-in-Klasse benötigt. Heisst die
Plug-in-Klasse
TextConverter_MeinTextKonverter,
muss man MeinTextKonverter
für den Plug-in-Dateinamen wählen, was zum Resultat
wcom_plugin_textconverter_meintextkonverter.php
führt.
Die Plug-ins selber werden als abgeleitete Klassen
des XHTML-Textkonverters TextConverter_XHTML
realisiert. Dabei gilt es, die Methoden neu zu
implementieren, deren Funktionalität man mit dem neuen
Textkonverter nutzen möchte.
Bietet der neue Textkonverter keine passende Funktionalität für eine Methode, lässt man diese einfach weg. Dann wird automatisch die Implementierung des XHTML-Textkonverters genutzt.
Die Methode, die man wohl bei jedem Textkonverter neu
implementiert, dürfte apply() sein. Sie
dient dazu, einen Textkonverter auf die vom Benutzer
eingegeben Text anzuwenden. Wenn man den leeren
Textkonverter-Prototypen von oben benutzen möchte,
könnte das Plug-in beispielsweise so aussehen:
require_once('wcom_plugin_textconverter_xhtml.php');
require_once('/pfad/zu/meinem/textkonverter.php');
class TextConverter_MeinTextKonverter extends TextConverter_XHTML
{
public function apply ($input)
{
$tk = new Mein_TextKonverter();
return $tk->process($input);
}
}
Nun wird der Textkonverter Mein_TextKonverter
zur Transformation des Texts verwendet.
Die weiteren Methoden dienen unter anderem dazu, die richtige Sytnax für Hilfsfunktionen wie das Einfügen eines Links oder eines Bildes aus dem Mediamanager bereitzustellen, damit Bilder oder eben Links vorformatiert für die Anwender in die Inhalte eingefügt werden können.
Fügt Bilder aus dem Mediamanager ein.
Fügt Dokumente aus dem Mediamanger ein.
Fügt Flashfilme aus dem Mediamanager ein.
Fügt Links zu anderen Welcompose-Seiten ein.
Fügt Bilder aus dem Mediamanager ein, die vom Photo-Sharing-Service Flickr stammen.
Als protected oder private
deklarierte Methoden können ignoriert werden.
Während die Funktionssignaturen in den abgeleiteten Klassen beibehalten werden müssen, ist es nicht nötig, auch wirklich alle übergebenen Variablen zu benutzen. Sie können verworfen werden, wenn die Syntax des Textkonverters ihre Anwendung nicht vorsieht.
Wie ein fertiges Textkonverter-Plug-in aussieht, zeigen die mitgelieferten Plug-ins für Markdown und Textile.
Bevor man das Textkonverter-Plug-in nutzen kann, muss es noch in Welcompose registriert werden (siehe Abschnitt 8.1.4.2, „Plug-in registrieren“).
Um einen neu hinzugefügten Textkonverter im Administrationsbereich nutzen zu können, muss er vorab registriert werden. Dies geschieht im Bereich im Unterpunkt . Wenn Sie dort auf den Link klicken, gelangen Sie zum Formular zum Anlegen eines neuen Textkonverters.
Der Name des Textkonverters, der jeweils in den Auswahllisten unterhalb der Inhaltsbereiche gezeigt wird. Er kann frei gewählt werden.
Interner Name des Textkonverters. Bei einer
Plug-in-Klasse mit dem Namen
TextConverter_MeinTextKonverter
muss MeinTextKonverter
eingegeben werden.
Wenn aktiv, wird dieser Textkonverter beim Anlegen neuer Seiten als Standard gesetzt.
Sobald das Formular ausgefüllt und abgesendet wurde, kann der Textkonverter innerhalb des Administrationsbereichs genutzt werden.
WYSIWYG- respektive sogenannte Rich-Text-Editoren wie TinyMCE oder FCKEditor können mit Welcompose nicht genutzt werden.
Wer trotzdem nicht auf einen WYSIWYG-Editor verzichten will, sollte über den Browser Firefox mit Hilfe von Erweiterungen mindenstens beschränkte WYSIWYG-Funktionalität erhalten, ohne den Quellcode von Welcompose modifizieren zu müssen:
Achten Sie bei der Nutzung einer derartigen Extension einfach darauf, dass Sie den Textkonverter XHTML verwenden.
|
Warnung |
|---|---|
|
Die Nutzung dieser oder anderer WYSIWYG-Editoren wird nicht empfohlen und nicht unterstützt. Der Mediamanager wie andere Hilfsfunktionen können durch die WYSIWYG-Editoren in ihrer Funktionalität eingeschränkt werden oder mit den Editoren nicht kompatibel sein. |
Eine weitere Erleichterung zum Verfassen von Texten können externe Editoren sein, die beispielsweise Syntax-Highlighting bieten. Konsultieren Sie dazu Abschnitt 7.3.3.5, „Editor zur Vorlagen-Verwaltung verwenden“.