Artikel mit Tag tipps
Reihenfolge der Index-Datei per .htaccess bestimmen
Oft will man kurz eine Seite vor die eigentliche Homepage zwischenschalten, um die Seite beispielsweise temporär offline zu stellen. Also eine start.html vor der index.html oder index.php anzeigen.
Das ist recht einfach per .htaccess möglich:
DirectoryIndex start.html index.html index.php
Die Anweisung DirectoryIndex steuert also die Reihenfolge, in der nach der Startseite gesucht wird.
Suchmaschinenfreundliche Urls mit mod_rewrite Problem
Also irgendwie verkommt das hier ja schon fast zu einem reinen Joomla-Blog...
Egal ![]()
Hab gestern ein Joomla auf einen 1und1 Webspace installiert und irgendwie haben die Suchmaschinenfreundlichen URLS mit mod_rewrite nicht funktioniert und der Server hat mir die ganze Zeit den Status "500 -Internal server error" zurückgegeben. Die Lösung des Problems liegt in der .htaccess-Datei. Warum ist mir ein Rätsel (wie so circa alles, was sich in einer htaccess befindet).
Es müssen einfach zwei Zeilen geändert werden:
- Die Zeile "Options +FollowSymLinks" muß auskommentiert werden, sprich einfach in "#Options +FollowSymLinks" ändern.
- Bei der Zeile "#RewriteBase / " soll der Kommentar (das "#") entfernt werden, also in "RewriteBase / " ändern. Falls Joomla in einem Unterverzeichnis relativ zum Document Root installiert wird (beispielsweise "http://domain.com/cms/" muss die Zeile dementsprechend in "RewriteBase /cms/ " geändert werden.
Lösung gefunden auf joomlaportal.de (wie so oft)
Your Design Sucks
Unbedingt sehenswert!
Your design sucks! from Paul Boag on Vimeo
Via praegnanz.de
Interner Link im Joomla-Template
Manchmal kann es notwendig sein, einen internen Link direkt ins Joomla Template einzufügen. Die naheliegendste Möglichkeit ist wohl, auf die entsprechende Seite im Browser zu gehen, die URL zu kopieren und im Template einzufügen. Allerdings kann sich der Name der Seite (und damit unter Umständen der Alias) ändern und das ergibt dann ungültige Links auf der Seite. Diese gilt es zu vermeiden.
Nun, die Lösung ist eigentlich ganz einfach und heißt JHTML::link(). Das ist die Funktion, die aus einer URL mit GET-Parametern eine schöne Joomla-URL macht.
Also, zuerst müssen wir den Link zusammenbauen:
Einen Artikel verlinken
Im Joomla-Backend auf die Beitragsübersicht gehen um die ID des Artikels herauszufinden (in der ganz rechten Spalte):

Die ID wird dann an den folgenden Link statt xyz angehängt.
index.php?option=com_content&view=article&id=xyz
Oft will man aber nicht auf den Beitrag, sondern auf einen bestimmten
Menüpunkt verlinken
Dazu geht man im Backend auf ein Menü, und wählt den entsprechenden Menüeintrag aus. In der Detailansicht sieht man dann die ID des Menüeintrags (Menü-Item), die man benötigt:

Auch hier wird die ID (in diesem Fall 54) an den Link angehängt:
index.php?Itemid=xyz
Ins Template einfügen
Nun muß der Link nur noch an der gewünschten Stelle ins Template eingefügt werden:
<?
echo JHTML::link('index.php?Itemid=xyz','Linktitel', $attribute);
?>Mögliche HTML Attribute des Link-Tags können über das assoziative Array $attribute übergeben werden, z.B.:
<?
$attribute = array('class'=>'menulink', 'title'=>'Zum Menü');
echo JHTML::link('index.php?Itemid=xyz','Linktitel', $attribute);
?>
Joomla Tipps #3
Größe des Email-Popups ändern für Joomla 1.5
Das Ändern der Größe des mailto-Popups von Joomla ist eigentlich sehr einfach, wenn sich auch die Frage stellt, warum es dazu nicht einfach ein kleines Konfigurations-Tool im Backend gibt...
Die Einzige Voraussetzung ist eigentlich, dass man Zugriff auf das Dateisystem des Servers, auf dem Joomla installiert ist, hat. Man sucht die Datei "<Wurzelverzeichnis>/components/com_content/helpers/icon.php", öffnet diese und sucht die Funktion email() - bei mir in Zeile 64. In dieser Funktion findet man die Zeile
$status = 'width=400,height=300,menubar=yes,resizable=yes';
Einfach nach "width=" die gewünschte Breite und nach "height=" die Höhe in Pixel eintragen, speichern und die Datei wieder hochladen.
So einfach kanns sein...
Syntaxhighlighter für Serendipity
Sodala, endlich hab ichs geschafft, der Syntaxhighlighter ist installiert. Wie immer, eigentlich ist es ja ganz einfach...
Installation
Hier die Schritte:
- Das Plugin dp.SyntaxHighlighter von der Serendipity-Homepage downloaden.
- Das Zip-File entpacken und ins Plugin-Verzeichnis am Server hochladen.
- In der S9y-Verwaltungsoberfläche den Menüpunkt "Plugins verwalten" auswählen, dann bei Ereignis-Plugins auf "Hier klicken, um Ereignis-Plugin zu installieren" klicken und das Plugin dp.Syntaxhighlighter installieren (Disketten-Symbol rechts).
- Die Datei index.tpl des aktuellen Templates im Texteditor des Vertrauens öffnen. In den <head>-Tag die Zeile "{serendipity_hookPlugin hook="frontend_header"}" und am Ende des <body>-Tags die Zeile "{serendipity_hookPlugin hook="frontend_footer"}" einfügen.
- Falls das Plugin NL2BR installiert ist, dessen Konfiguration öffnen und in das Eingabefeld "code,pre,textarea" schreiben.
Anwendung
Um auch wirklich eingefärbten Quellcode in einem Eintrag anzeigen zu können, sind ein paar Dinge notwendig:
- Die Quelltexte müssen von <pre>-Tags eingeschlossen sein.
- Die Tags müssen als name-Attribut "code" und als class-Attribut ein Kürzel der jeweilige Programmiersprache haben, etwa so: <pre name="code" class="php">. Welche Kürzel für welche Programmiersprache verwendet werden können, verrät euch Google

- Den eigentlichen Quelltext kopiert ihr am besten vorformatiert aus eurer Programmierumgebung in die Zwischenablage und fügt ihn in der HML-Ansicht des Editors zwischen die <pre>-Tags ein.
- Optionalerweise sollte der Quelltext (der dann gefärbt werden soll) keine Sonderzeichen, sondern stattdessen HTML-Entities enthalten. Eine Möglichkeit, diese automatisch zu ersetzen bietet die PHP-Funktion htmlentities().
- Speichern und fertig

Also das ist ein ziemliches Gewurschtel, falls es eine schönere oder bessere Möglichkeit mit Serendipity gibt, bitte posten...
Joomla-Tipps #2
User-ID herausfinden
Für alle möglichen Zwecke kann es bei der Komponenten- und Modulentwicklung nützlich die User-Id herauszufinden.
Das geht ganz einfach mittels der JFactory-Klasse, die das User-Objekt des aktuellen Users zurückgibt:
$user =& JFactory::getUser();
$userid = $user->get('id');
Auf die Datenbank zugreifen
Auch auf das Datenbank-Objekt kann man über die JFactory zugreifen:
$db =& JFactory::getDBO();
In einigen Klassen kann auch einfach über
$db =& $this->getDBO();
zugegriffen werden. Das sind (zumindest, die, die mir bekannt sind) die Klassen JModel und JTable, bzw. deren Unterklassen.
Joomla-Tipps
Sprache Herausfinden
Oft ist es interessant, die Sprache des aktuellen Users festzustellen, etwa wenn man aus mehreren Sprachen auswählen kann. Das geht ganz einfach mittels:
$language = JFactory::getLanguage();
Nun bekommt man ein JLanguage-Objekt, durch den Aufruf der Methode 'getTag()' erhält man das Sprachkürzel in der Form 'de-DE':
$tag = $language->getTag();
Layout im Menü-Maager verstecken / Layout (um)benennen
Bei der Entwicklung von Komponenten ist es oft wichtig, im Menümanager des Backends ein Layout einer View zu verstecken, oder dem Layout einen ansprechenderen Namen zu geben.
Dazu legt man in dem 'tmpl'-Ordner der View ein neues XML-File an. Den Namen der Datei bestimmt der Name des Layouts. Ist das Layout-File beispielsweise 'show_item.php', muss die XML-Datei 'show_item.xml' heißen. Um das Layout zu verstecken muss die XML-Datei nun folgenden Aufbau haben:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<layout hidden="true" />
</metadata>
Um dem Layout einen ansprechenden Namen zu geben, muss sie folgenden Inhalt haben:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<layout title="Alle Items anzeigen"></layout>
</metadata>
Komponenten für Joomla entwickeln
Es gibt eigentlich 2 gute Quellen bzw. Tutorials für die Entwicklung von Komponenten für Joomla 1.5: Das Online-Buch von Hagen Graf und die Joomla Tutorials (Englisch).
