7.2 Mambots
 
Neben dem Editor erfüllen die mitgelieferten Mambots vor allem Aufgaben im Inhaltsbereich. So werden Bilder eingebunden und E-Mail-Adressen verschlüsselt, Codefragmente werden formatiert und Seitenumbrüche erzeugt.
7.2.1 Mambot-Manager
 
Die Verwaltung der Mambots geschieht wie in Joomla! üblich über einen Manager. Diesen können Sie mit dem Menüpunkt Mambots · Site Mambots aufrufen (Abbildung 7.4).
Joomla! 1.1: Gemäß der Namensänderung heißt die Verwaltungsseite Plugin Manager. Sie kann im Menü unter Plugins · Site Plugins aufgerufen werden.
|
Hier finden Sie alle installierten Mambots und deren Status. Neben den üblichen Listeninformationen gibt es die folgenden Spalten:
Tabelle 7.14 Informationen zu Mambots
Detail
|
Bedeutung
|
Order
|
Die Reihenfolge der Mambots hat keine Auswirkung auf das Frontend. Es wird lediglich bestimmt, wie Mambots gleichen Typs im Backend und der Liste angezeigt werden und in welcher Reihenfolge sie intern verarbeitet werden.
|
Access
|
Hier wird bestimmt, wer den Mambot verwenden kann. Hat ein User nicht die nötigen Rechte, so wird das Programm bei der Anzeige nicht ausgeführt. Dies kann zu unschönen Nebeneffekten führen. So wird bei Bildern statt des Bilds selbst einfach {mosimage} ausgegeben, wenn man hier Access auf »Registered« einstellt.
|
Type
|
Der Typ eines Mambots bestimmt, wo das Programm tätig wird. Es gibt vier verschiedene Typen von Mambots:
E content. Wirkt direkt im ausgegebenen Inhalt. Beispiel: Ausgabe von Bildern.
E editors. Wird ausgegeben, wenn ein Inhaltselement bearbeitet wird. Beispiel: der WYSIWYG-Editor.
E editors-xtd. Erweitert den Editor. Beispiel: der Button zum Einfügen von Bildern.
E search. Ermöglicht die Suche in bestimmten Elementen. Beispiel: Suche in den Kontakten.
|
File
|
Name der Datei, die den Programmcode des Mambots enthält.
|
Joomla! 1.1: Zusätzlich zu den vier Plugin-Typen kommen noch »authentication« für die Useranmeldung, »syndicate« für Newsfeeds, »system« für allgemeine Aufgaben und »xmlrpc« für Aufrufe von Joomla!-Funktionen aus anderen Programmen hinzu.
|
Wenn Sie auf den Namen eines Mambots klicken, dann gelangen Sie zu dessen Einstellungsseite. Diese ist immer in zwei Bereiche unterteilt: Mambot Details und Parameters. Die erste Sektion ist für alle Mambots gleich und beinhaltet die Einstellungen, die Sie auch auf der Übersichtsseite finden können. Zudem gibt es ein Feld Description, in dem Sie eine kurze Zusammenfassung darüber finden können, was der Mambot bewirkt.
Viele der Mambots können direkt von Ihnen in ein Inhaltselement eingebunden werden. Dazu fügen Sie an der Stelle, an der die Erweiterung aktiv werden soll, den Namen des Mambots in geschweiften Klammern ein. Innerhalb dieser Klammern können Sie gegebenenfalls auch noch zusätzliche Parameter angeben. Der Name des Mambots entspricht dem Eintrag Filename im Mambot-Manager.
Achtung: Achten Sie darauf, dass zwischen den geschweiften Klammern und dem Mambot-Befehl kein Leerzeichen steht.
|
Mit dem Joomla!-Paket werden schon einige Mambots mitgeliefert, die wir uns im Folgenden genauer ansehen werden.
7.2.2 MOS Image
 
Der MOS Image-Mambot stellt einen Befehl zur Verfügung, mit dessen Hilfe Sie Bilder in ein Content-Element einfügen können. Wie das geht, haben Sie bereits in Abschnitt 3.6, Bilder einbinden, erfahren. In den Text des Inhalts schreiben Sie einfach:
{mosimage}
Nun werden die Bilder aus dem Reiter Images der Reihe nach eingebunden, d. h., das erste Bild anstelle des ersten Image-Mambots, das zweite Bild anstelle des zweiten etc. Um die Bilder wird jeweils ein hellgrauer Rand gezogen.
Tabelle 7.15 MOS Image-Einstellungen
Detail
|
Bedeutung
|
Margin
|
Bestimmt den Abstand des Bildrandes vom Text in Pixel.
|
Padding
|
Bestimmt den Abstand des Bildes vom Bildrand in Pixel.
|
7.2.3 Legacy Mambot Includer
 
Diese Erweiterung dient der Kompatibilität mit Mambots, die für die älteren Mambo-Versionen vor 4.5 geschrieben wurden. Wenn Sie so einen Mambot einsetzen und feststellen, dass er nicht richtig funktioniert, kann das Aktivieren des Legacy Mambot Includers eine Lösung sein.
7.2.4 Code support
 
Mit Hilfe dieser Erweiterung können Sie in einen Text Programmcode oder HTML-Text einfügen. Normalerweise wird dieser vom Browser interpretiert. So werden beispielsweise alle Tags zwischen spitzen Klammern in Formatierungen umgesetzt oder zumindest nicht angezeigt. Um dies zu verhindern, bereitet der Mambot diesen Text so auf, dass er auch wirklich samt allen Sonderzeichen dargestellt wird. Dies geschieht, indem diese speziellen Zeichen durch so genannte HTML-Entities ersetzt werden. Versuchen Sie mal, folgenden Text einzugeben:
Das <br>-Tag dient dazu, einen Zeilenumbruch zu erzeugen.
Wenn Sie sich das Ergebnis im Frontend ansehen, so erscheint in etwa diese Ausgabe:
Das
-Tag dient dazu, einen Zeilenumbruch zu erzeugen.
Nun fügen Sie den Befehl {moscode} vor und {/moscode} nach dem Text ein. Jetzt sollte das Tag wie erwünscht ausgegeben werden.
Hinweis: Denken Sie daran, dass der Code support erst im Mambot-Manager publiziert werden muss, bevor er wirksam wird.
|
7.2.5 Suchmaschinenfreundliche URLs (SEF)
 
Internet-Adressen, wie sie von vielen dynamischen Webseiten erzeugt werden, enthalten die anzuzeigende Seite meistens als Parameter, d. h. in dem Teil der URL, der dem ? folgt. Suchmaschinen wiederum nehmen diesen Teil der Adresse nicht in ihren Index auf, was dazu führt, dass diese Seiten nicht mit Suchmaschinen gefunden werden können. Eine Lösung für dieses Problem ist, die Parameter als Teil des URL-Pfads zu tarnen, d. h., mit / anzugeben. Genau das macht der SEF-Mambot, wenn er aktiviert ist. Damit das auch funktioniert, ist allerdings die Hilfe des Apache-Servers nötig, da dieser wissen muss, wo in der Adresse die Parameter beginnen. Glücklicherweise sind die entsprechenden Anweisungen schon im Joomla!-Paket mitgeliefert. Sie müssen lediglich die Datei htaccess.txt in .htaccess umbenennen.
Hinweis: Unter Windows kann es sein, dass der Windows-Explorer diese Umbenennung verweigert. Öffnen Sie in diesem Fall die DOS-Box (geben Sie dazu im Dialog Start Ausführen »cmd« ein, und drücken Sie Enter). Wechseln Sie mit
cd apachefriends/xampp/htdocs/joomla
ins Joomla!-Verzeichnis, und geben Sie den Befehl
ren htaccess.txt .htaccess
ein. Um die Aktion im Notfall rückgängig zu machen, verwenden Sie statt des letzten Befehls:
ren .htaccess htaccess.txt
|
Für diejenigen unter Ihnen, die gern selbst Hand anlegen oder schon eine .htaccess-Datei für andere Zwecke erstellt haben, hier noch der Code, der eingefügt werden muss:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php
Zuletzt müssen Sie noch eine Einstellung in der Global Configuration vornehmen. Stellen Sie die Option Search Engine Friendly URLs im Reiter SEO auf Yes. Nun sollte im Frontend beispielsweise die URL des Home-Menüpunkts so aussehen:
http://localhost/joomla/component/option,com_frontpage/Itemid,1/
Für den Fall, dass Sie die Rewrite-Engine von Apache nicht verwenden können oder wollen, haben die Joomla!-Entwickler vorgesorgt. In diesem Fall müssen Sie eine kleine Änderung im Quellcode der Datei joomla\includes\sef.php vornehmen. Machen Sie dazu zuvor eine Sicherheitskopie. Am Ende der Datei (Zeile 348) finden Sie folgende Zeile:
return $mosConfig_live_site.'/'.$string;
Kommentieren Sie diese Zeile aus, indem Sie // an den Zeilenanfang setzen. Damit wird der Befehl unwirksam. Ein paar Zeilen weiter unten (Zeile 354) finden Sie die Zeile:
// return $mosConfig_live_site.'/index.php/'.$string;
Entfernen Sie hier die beiden Schrägstriche am Zeilenanfang, um den Befehl zu aktivieren. Jetzt sollte die Ersetzung auch ohne mod_rewrite funktionieren. Vergessen Sie auch hier nicht, die globale Aktivierung vorzunehmen.
7.2.6 MOS Rating
 
Ist dieser Mambot aktiviert, so wird für jedes Content-Element ein zusätzliches Formular ausgegeben, in dem die Besucher den Inhalt auf einer Skala von eins bis fünf bewerten können. Das Ergebnis aller Bewertungen wird in einer kleinen Grafik ausgegeben. Die Zahl am Ende zeigt an, wie viele Bewertungen bisher abgegeben wurden.
Hinweis: Damit die Ausgaben, die MOS Rating erzeugt, auch angezeigt werden, müssen Sie zuerst in der globalen Konfiguration (siehe Abschnitt 8.2.3, Suchmaschinenoptimierung, Metainformation und Statistik) im Reiter Content die Option Item Rating/Voting auf Show setzen.
|
Idealerweise (so weit das feststellbar ist) kann ein User nur einmal abstimmen. Versucht er es ein zweites Mal, so wird eine Meldung ausgegeben, der ihn darauf hinweist, und die Bewertung wird nicht gezählt.
7.2.7 Email Cloaking
 
Spam ist ein weit verbreitetes Problem unserer Zeit. Besonders gefährlich ist es, seine E-Mail-Adresse unverschlüsselt im Netz zu veröffentlichen, da diese sehr leicht von automatisierten Suchrobotern gefunden und für unerwünschte Werbung missbraucht werden kann. Nun ist es aber oft sehr nützlich und manchmal auch notwendig, die Öffentlichkeit über diese Adresse zu informieren. In diesem Fall greift man zu einem Trick: Die Adresse wird nicht direkt in den HTML-Text geschrieben, sondern kodiert und über ein JavaScript eingefügt. Daran beißen sich die meisten Roboter (noch) die Zähne aus. Genau diese Kodierung stellt der Email Cloaking-Mambot zur Verfügung. E-Mail-Adressen der Form
benutzer@domain.tld
<a href="mailto:benutzer@domain.tld">irgendein Text</a>
werden vom Mambot erkannt und in kodierte Adressen umgewandelt. Sehen Sie sich den Quelltext ruhig einmal an, die JavaScripts sind genau dort eingefügt, wo die Adressen später stehen sollen.
In Mambo-Versionen vor 4.5.3 wird die zweite Variante nur erkannt, wenn anstelle von »irgendein Text« noch einmal die E-Mail-Adresse steht.
|
Auf der Einstellungsseite des Mambots finden Sie einen Parameter Mode. Hier können Sie festlegen, ob die E-Mail-Adressen als reiner Text (Nonlinkable Text) ausgegeben oder verlinkt werden sollen (As linkable mailto address). Im zweiten Fall wird das E-Mail-Programm des Users gestartet, wenn auf die Adresse geklickt wird.
7.2.8 GeSHi
 
Ähnlich wie bei Code support geht es hier um die Darstellung von Programmcode. In diesem Fall wird der Code nicht nur vollständig dargestellt, sondern auch farblich hervorgehoben. Programmierer kennen diese Funktion unter dem Begriff »Syntax Highlighting«. Wenn Sie GeSHi aktiviert haben, so können Sie den gewünschten Programmcode einfach in <pre>-Tags einschließen. Zusätzlich sollten Sie noch die Sprache angeben, in der der folgende Code geschrieben ist, damit der Highlighter die richtigen Farben auswählt. Für ein Stück php-Code sieht das folgendermaßen aus:
<pre lang="php">
echo 'Hallo Welt';
</pre>
Hinweis: Beachten Sie, dass Sie diesen Code im HTML-Modus eingeben müssen, falls Sie den WYSIWYG-Editor verwenden.
|
Standardmäßig unterstützt GeSHi die folgenden Sprachen mit den aufgeführten Kürzeln:
Tabelle 7.16 Von GeSHi unterstützte Sprachen
Sprache
|
Code
|
CSS
|
lang="css"
|
HTML
|
lang="html4strict"
|
JavaScript
|
lang="javascript"
|
PHP
|
lang="php"
|
PHP Brief
|
lang="php-brief"
(wie PHP, nur weniger detailliertes Highlighting)
|
SQL
|
lang="sql"
|
XML
|
lang="xml"
|
Wenn Sie mehr Sprachen benötigen, können Sie sich das gesamte GeSHi-Paket unter der URL qbnz.com/highlighter herunterladen. In diesem Fall kopieren Sie die Datei sprache.php in das Verzeichnis mambots/content/geshi/geshi. Die neue Sprache kann dann mit lang="sprache" aktiviert werden.
7.2.9 Load Module Positions
 
Dieser Mambot erlaubt es Ihnen, auch innerhalb eines Content-Elements Module zu laden. Dazu fügen Sie an der gewünschten Position den Befehl
{mosloadposition name}
ein. Wenn diese Position definiert ist, werden alle Module geladen, die im Module Manager hier zugeordnet wurden. Der Parameter Style bestimmt dabei, auf welche Weise der Output aufbereitet wird.
Tabelle 7.17 Modulausrichtung
Parameter
|
Funktion
|
Wrapped by Table – Column
|
Die einzelnen Module an dieser Position werden untereinander angeordnet. Dazu wird eine Tabelle verwendet.
|
Wrapped by Table – Horizontal
|
Die einzelnen Module an dieser Position werden nebeneinander angeordnet. Dazu wird eine Tabelle verwendet.
|
Wrapped by Divs
|
Die einzelnen Module werden in <div>-Tags mit der Klasse »moduletable« verpackt.
|
Wrapped by Multiple Divs
|
Die einzelnen Module werden in <div>-Tags mit der Klasse »module« verpackt und dann noch in drei Unterebenen von <div>s verpackt. Das kann eine Lösung für browserspezifische Probleme sein, die bei der CSS-Formatierung mit Blöcken entstehen.
|
No wrapping – raw output
|
Der HTML-Text der Module wird ohne Veränderung so eingefügt, wie er erzeugt wird.
|
7.2.10 MOS Pagination
 
Damit die Seiten bei umfangreichen Texten nicht zu lang werden, besteht die Möglichkeit, diese Texte mit dem MOS Pagination-Mambot in kleinere Einheiten aufzubrechen. Fügen Sie dazu an den Bruchstellen diesen Befehl ein:
{mospagebreak title=Seitentitel&heading=Erste Seite}
Wenn Sie diesen Befehl verwenden, wird auf der Seite nur der Inhalt bis zum ersten Vorkommen des Befehls ausgegeben. Zusätzlich werden ein Inhaltsverzeichnis und ein Navigationsbereich erzeugt, mit dem Sie die anderen Bereiche der Seite erreichen können.
Die beiden Parameter sind optional. Sie bestimmen, was im Inhaltsverzeichnis angezeigt wird. Mit title legen Sie die Bezeichnung des aktuellen Bereichs fest. Wenn Sie diesen Parameter nicht angeben, werden die Bereiche mit »Seite x« durchgezählt. Mit heading bestimmen Sie den Eintrag für die erste Seite. Wenn Sie in mehreren Bereichen headings angeben, so zählt nur der erste Bereich.
Auf der Einstellungsseite des Mambots können Sie noch festlegen, ob der Titel der Unterseite mit in den Seitentitel aufgenommen wird, der in der Titelleiste des Browserfensters angezeigt wird.
Tipp: Beachten Sie, dass die Verwendung von Umlauten hier problematisch ist. Abhilfe können Sie durch einen kleinen Eingriff in den Quellcode schaffen. Ersetzen Sie in der Datei joomla/mambots/content/mospaging.php die Zeile 189
. $args2['title'] .
durch
. str_replace("title=", "", $bot[2]) .
Beachten Sie dabei jeweils die Punkte am Anfang und Ende der Zeile.
|
7.2.11 No WYSIWYG Editor
 
Dies ist nur ein Dummy-Eintrag, der in der Liste der auswählbaren Editoren erscheint und festlegt, dass kein WYSIWYG-Editor verwendet werden soll. Das ist dann sinnvoll, wenn Sie gute HTML-Kenntnisse haben oder sich gern über technische Dinge wie Programmiersprachen austauschen und es nicht schätzen, wenn Ihnen der Editor die Formatierungen durcheinander wirft.
7.2.12 TinyMCE WYSIWYG Editor
 
Wie Sie mit dem Editor arbeiten, wurde schon in Abschnitt 3.3, Der TinyMCE im Detail, ausführlich dargestellt. An dieser Stelle können Sie den mitgelieferten WYSIWYG-Editor Ihren Wünschen entsprechend konfigurieren.
Tabelle 7.18 TinyMCE konfigurieren
Parameter
|
Funktion
|
Functionality
|
Legen Sie hier fest, ob der Editor seine gesamte Button-Leiste anzeigen soll. Wenn Sie auf »Simple« umschalten, wird nur eine Reihe mit den allerwichtigsten Standardfunktionen eingeblendet.
|
Code Cleanup
|
Standardmäßig wird der eingegebene HTML-Code vom Editor »aufgeräumt«. Das heißt, es werden sicherheitsgefährdende Tags wie <script> und nicht XHTML-konforme Tags wie <center> vor dem Speichern entfernt. Wenn Sie das nicht wollen, deaktivieren Sie diese Option.
|
Compressed Version
|
Wird die Option aktiviert, so wird der Editor in einem komprimierten Code-Format ausgeführt. Das führt dazu, dass sich die Ladezeiten verkürzen. Dieser Modus kann allerdings bei einigen Browsern zu Problemen führen und ist daher standardmäßig abgeschaltet.
|
Text Direction
|
Wird bisher noch nicht unterstützt.
|
Prohibited Elements
|
Es ist möglich, die Verwendung bestimmter Tags zu unterbinden. Schreiben Sie die unerwünschten Elemente einfach mit Kommas getrennt in dieses Feld. Sie werden vom Editor beim Speichern aus dem Text entfernt.
|
Template CSS Classes
|
Zwingt den Editor, die CSS-Styles des Templates in das Auswahlfeld für Styles zu laden.
|
Custom CSS Classes
|
Hier können Sie den Editor dazu veranlassen, die Stile einer bestimmten CSS-Datei im Styles-Auswahlfeld angeben zu lassen. Der Pfad muss dabei relativ zum Joomla!-Verzeichnis sein.
|
Newlines
|
Sollte festlegen, wie Zeilenumbrüche umgesetzt werden. Funktioniert nicht in allen Versionen.
|
Toolbar
|
Hier können Sie festlegen, ob die Symbolleiste am oberen (Top) oder am unteren (Bottom) Rand des Editorbereichs angezeigt wird.
|
Smilies, Table, Flash, Horizontal Rule, Fullscreen, Preview, Search & Replace, Insert Date, Insert Time
|
Bestimmen Sie jeweils, ob die genannten Buttons (Smilies, Tabelle, Flash, Linie, Vollbild und Vorschau, Suchen und Ersetzen, Datum einfügen, Zeit einfügen) in der Toolbar angezeigt werden sollen. Einige dieser Buttons werden ohnehin nur angezeigt, wenn Functionality auf Advanced gesetzt wurde.
|
HTML Height, Width, Preview Height, Width
|
Hier können Sie die Höhe und Breite des HTML-Direkteingabefensters bzw. des Vorschaufensters bestimmen.
|
Date Format
|
Geben Sie hier an, in welchem Format ein Datum eingefügt werden soll. Sie können dazu jedes beliebige Zeichen und Platzhalter für die Datumsangaben verwenden. Die Platzhalter sind:
E %d. Tag
E %m. Monat
E %Y. Jahr
Das Format für eine deutsche Datumsangabe ist also:
%d.$m.%Y
|
Time Format
|
Ebenso wie bei Date Format können Sie hier die Zeitausgabe formatieren. Die Platzhalter sind:
E %H. Stunden
E %M. Minuten
E %S. Sekunden
Somit ergibt sich als Zeit-Formatierung:
%H:%M:%S
|
 7.2.13 MOS Image Editor Button und MOS Pagebreak Editor Button
 
Diese beiden Mambots stellen die beiden Spezial-Buttons zum Einfügen von Bildern und Seitenwechseln zur Verfügung. Sie sind also Erweiterungen des Editors.
7.2.14 Search
 
Die Such-Mambots sind für das Durchsuchen der jeweiligen im Titel angegebenen Komponente verantwortlich, also durchsucht z. B. »Search Newsfeeds« die Newsfeeds. Wenn Sie nicht wollen, dass eine bestimmte Komponente durchsucht werden kann, deaktivieren Sie den entsprechenden Mambot einfach. Der Parameter Search Limit legt dabei fest, wie viele Ergebnisse maximal ausgegeben werden sollen.
Joomla! 1.1: Es wurden zwei weitere Plugins von Typ »authentication« hinzugefügt. Hinter dem Joomla Authentication Plugin verbirgt sich der bisherige Mechanismus der Usererkennung. Zusätzlich gibt es das LDAP Authentication Plugin, mit dem man eine Verbindung zu einem LDAP-Server herstellen kann, der die Anmeldung übernimmt.
|
|