Wer auf der Suche nach einer “straight-forward” Einführung in Joomla und die möglichen Anpassungen ist, ohne dauernd darauf hingewiesen zu werden, dass “schon ein paar HTML-Kenntnisse notwendig sind” und nicht für jede Kopier-Aktion einen Screenshot braucht, ist hier richtig. Der Artikel gibt einen schnellen aber dennoch umfassenden Einstieg in die Anpassungenmöglichkeiten von Joomla.

Templates

Eigenes Template erstellen

Eine gute Grundlage für diesen Abschnitt gibt z.B. www.dosonaro.com/joomla-temlate-erstellen/. Im Schnelldurchgang:

  1. <joomlaroot>/templates/rhuk_milkyway kopieren und unter <joomlaroot>/templates/myTemplate (= templateDir) einfügen
  2. Datei <templateDir>/templateDetails.xml öffnen
  3. Inhalte der Nodes anpassen (ersten Nodes ist Inhalt offensichtlich ;-) )
  4. Node <files>: Enthält eine Liste mit Dateien, die bei der Installation berücksichtigt werden sollen. Wenn also weitere Dateien hinzugefügt werden, diese hier erwähnen
  5. Node <positions>: Wie weiter unten noch deutlich wird, ist der Name “positions” etwas irreführend. Es müsste vielmehr “moduleContainerNames” heißen. Hier eine Liste mit den Namen aller Bereiche auf der Website angeben, die ein Modul bzw. eine Modulsammlung beinhalten können. Beispielsweise wäre mainNavigation, metaNavigation, newsArticle, loginBox und searchBox eine sinnvolle Liste (Bindung an die Semantik) oder aber leftColumn und rightColumn (an die Position im Template). Wie diese Werte verwendet werden steht im folgenden Abschnitt
  6. Bilddateien usw. sind (aufgrund des Dateinamens) selbsterklärend

Template anpassen

Um ein Template anzupassen, ist die Datei <templateDir>/index.php zu bearbeiten. Hier kann das HTML wie gewohnt bearbeitet werden.

Neben den HTML-Anpassungen möchte man natürlich auch dynamische Inhalte bzw. Joomla-Funktionalitäten in das Template einbinden. Joomla stellt dafür unter dem eigenen Namensraum jdoc einige Operationen zur Verfügung. Dabei ist die wichtigste Operation wohl das “include”:

Diese Zeile bindet ein Modul bzw. mehrere Module ein (Warum das Attribut “name” heißt, ist wahrscheinlich historisch begründet). Hier kommt die oben erstelle Liste mit positions ins Spiel (jetzt wird auch die Inkonsistenz in der Namensvergabe deutlich): in das Attribut “name” kann man einen der oben definierten Werte angeben. Es werden dann alle Module angezeigt, die diesem Namen bzw. Position bzw. “moduleContainerName” zugewiesen sind.

Die folgende Grafik verdeutlicht den Zusammenhang der Werte:

Ein Modul kann also genau einer gegebenen Position zugewiesen werden. Diese Position kann man wiederum beim include im HTML über das Attribut “name” referenzieren. An der referenzierten Stelle im HTML wird dann das Modul bzw. die Module, die dieser Position zugeordnet sind, angezeigt.

Sind mehrere Module einer Position angezeigt, kann man die Module innerhalb einer Position sortieren. Dies geschieht entweder beim Bearbeiten eines Moduls (Feld “Order”) oder in der Übersicht der Module.

Erweiterungen

Namensunterscheidung

Module und hilfreiche Erweiterungen

Menüs

Joomla verfolgt auch bei den Menüs einen eigenen Ansatz, der erst auf den zweiten Blick richtig gut wird: Die Menüstruktur und Inhalte sind bei Joomla getrennt. Dabei geht man nach folgendem Schema vor:

  1. Anlegen eines Beitrags (Inhalt – Beiträge), z.B. mit Titel “Meine Seite”
  2. [Wenn noch kein Menü angelegt ist, ein Menü anlegen]
  3. Das gewünschte Menü (Menü  - Name des Menüs) auswählen
  4. Hier über den Button “Neu” einen neuen Eintrag im Menü erstellen
  5. Nun kann man eine Vielzahl von verschiedenen Aktionen wählen, die bei einem Klick auf das Menü passieren können. Es soll ein Beitrag angezeigt werden, also  ”Beiträge” – “Beitrag” – “Layout: Beitrag (Joomla!-Standard)” auswählen
  6. Nun kann man im linken Bereich den Eintrag im Menü definieren (auch die Beschriftung) und im rechten Bereich unter “Beitrag wählen” den zu verknüpfenden Beitrag raussuchen

Es ist also möglich, einen Beitrag in mehreren Menüs unter verschiedenen Titeln zu verwenden!

Tricks und Probleme

Titel von Modulen wird nicht angezeigt

Obwohl in der Administrationsoberfläche “Show Title” aktiviert ist, wird dieser nicht angezeigt. Dies kann dadurch behoben werden, dass man im HTML-Template den jdoc-include-Tag um eine Angabe erweitert:

<jdoc:include type="modules" name="infoBoxes" style="xhtml" />

Durch das zusätzliche Attribut style=”xhtml” wird der Titel des Moduls angezeigt. Warum das so ist: weiß ich auch nicht :-)

Nach dem Löschen der Menüs wird die Startseite nicht angezeigt

Wenn man alle Menüs der Standard-Installation gelöscht hat, beispielsweise um Ordnung zu schaffen, erhält man beim Aufruf der Startseite einen 404. Dies kann man beheben, in dem man in irgendeinem Menü irgendeiner Seite (meistens also im Meta-Menü oder Main-Menü) bei einer Seite das Häckchen für “Startseite” setzt (Menues – Gewünschtes Menü anklicken – Vor Eintrag Checkbox aktivieren – oben rechts auf “Standard”).

Suchmaschinenfreundliche URLs + mod_rewrite führt zu einem 404 Response

Die .htaccess-Datei muss die Rechte 755 haben. Außerdem ist zu beachten, dass bei manchen Hostern die Angabe BaseDir angegeben sein muss. Hier darauf achten, ob Joomla in einem Unterverzeichnis läuft und dieses dort ggf. angeben.

Share |