Fehler
  • JX_Invalid_Token
355 Bewertungen

Quelle (in Englisch): Andrew Eddie auf developper.joomla.org
Übersetzung: Joomla! Schweiz


Modul Layout Overrides

Module wie auch Komponenten, haben eine identische Verzeichnisstruktur.

/modules
  /mod_latest_news
   /tmpl
     default.php   (das Layout)
   helper.php   (eine Hilfe Datei welche die Daten Logik beinhaltet)
   mod_latest_news.php   (die Modul Haupt Datei)
   mod_latest_news.xml   (die Installations XML Datei)

Ähnlich wie bei den Komponenten, im Modul-Hauptverzeichnis (in unserem Besipiel, mod_latest_news) finden Sie ein /tmpl/-Verzeichnis. Normalerweise finden Sie hier nur eine Layout-Datei. Doch je nach dem wer das Modul geschrieben hat und wie, können hier auch mehrere Dateien sein.

Wie auch schon bei den Komponenten, müssen die Layout Override für die Module in einer bestimmten Weise gemacht werden. Benutzen Sie Beez als Beispiel und Sie sehen die folgende Struktur:

/templates
  /beez
   /html
     /mod_latest_news.php   (Dieses Verzeichnis entspricht dem Modul Verzeichnis Namen)
      default.php   (Diese Datei entspricht dem Layout Datei Namen)

Die Struktur für Modul-Overrides ist auch hier ganz einfach: /html/mod_module_name/layout_datei_name.php


Kopieren oder erstellen von Layout Dateien

Das rhuk_milkyway-Template hat auch für Module keine Override-Dateien. Wenn Sie nun also das Modul Latest News "overriden" wollen, um beim Beispiel zu bleiben, müssen Sie die folgende Datei kopieren:

/modules/mod_latest_news/default.php

Erstellen Sie im entsprechenden Template-Verzeichnis auch das entsprechende Verzeichnis für die Ansicht:

/templates/rhuk_milkyway/html/mod_latest_news/defaul.php

Beim Overriding eines Modul-Layouts müssen Sie allerdings ein bisschen vorsichtig sein. Es gibt verschiedene Möglichkeiten wie ein Modul erstellt werden kann. Sie müssen alles auf die jeweiligen Module individuell anpassen und ausprobieren.

Modul Chrome

Joomla! 1.0 hatte eine Anzahl von festen Styles, welche eine Liste von Modulen in unterschiedlichen Positionen anzeigen konnte. Diese wurden mit Nummern repräsentiert:

  • 0 (das Standart) Zeigte Module in einer Vertikalen Tabelle an
  • 1 zeigte sie in einer horizontalen Tabelle
  • -1 zeigte die unbearbeitete Ausgabe an
  • -2 zeigte die Module in einem XHTML-kompatiblen Format und einem h3-Titel-Tag an
  • -3 zeigte Module in einem Set von verschachtelten DIVs an, dieses ermöglichte die Technik mit den gerundeten Ecken

Es war ein grossartiges System, mit Ausnahme von zwei Dingen:

  1. Niemand konnte sich die Nummern merken und was welche bewirkt
  2. Die Styles konnten nicht expandiert werden.

Nun, in Joomla! 1.5 sind die Nummern noch immer präsent, doch zur Vereinfachung haben die Styles nun ein Wort anstatt der Nummer. Auch wurde die Syntax um Module anzuzeigen geändert. Als Beispiel, der Code-Schnippsel zeigt jedes Modul in der linken Positioen in einem XHTML-Style:

<jdoc:include type="modules" name="left" style="xhtml" />
Die eingebauten Styles die verfügbar sind wären da:
  • Table (war die 0 und ist Standart)
  • horz (war die 1)
  • none (war die -1)
  • xhtml (war die -2)
  • rounded (war die -3)
  • outline (ist neu und wird verwendet für die Modul Positionen Vorschau - s. Bild oben)

Im Quellcode werden diese Styles auch als "Chrome" refenziert. Das Standard-Chrome finden Sie im System-Template welches in der Standard-Joomla!-Installation enthalten ist:

/templates/system/html/modules.php

Diese Datei wird vom Projekt selber gewartet und sollte deshalb nicht direkt bearbeitet werden. Andernfalls riskieren Sie, dass die Änderungen bei einem Update Ihrer Joomla!-Installation verloren gehen.

Um Ihren eigenen Chrome- oder Modul-Style erstellen zu können, müssen Sie lediglich diese Datei modules.php unter dem Template /html/-Verzeichnis bearbeiten (Das selbe Verzeichnis welche schon mit den Komponenten- / Modul-Overrides besprochen wurde).

Das rhuk_milkyway-Template bietet Ihnen ein paar extra Chrome als Beispiel (es bietet ein neues Beispiel-Style genannt "slider"). Sie können dieses in der folgenden Datei sehen:

/templates/rhuk_milkyway/html/modules.php

Es ist sehr einfach, Ihren eigenen Chrome zu erstellen. Schauen Sie sich das fiktive Beispiel an, welches ein Modul in einer definierten Liste anzeigt (ein Set aus DL's, DT's und DD's).

Fügen Sie den folgenden Code in die /html/modules.php-Datei in Ihrem Standard-Template-Verzeichnis ein (sollte das nicht vorhanden sein müssen Sie dieses selbst erstellen):

/*
 * Module Chrome that wraps the module in a definition list
 */
function modChrome_dlist($module, &$params, &$attribs)
{?>
   <dl class="<?php echo $params->get('moduleclass_sfx'); ?>">
   <?php if ($module->showtitle !=0) : ?>
      <dt>
         <?php echo $module-title; ?>
      </dt>
   <?php endif; ?>
      <dd>
         ?php echo $module->content; ?>
      </dd>
   </dl>
   <?php>
}

Nennen wir diesen Style "dlist", so müsste nun der Funktionsname modChrome_dlist sein. Diese muss die drei Argumente wie gezeigt für das Modul-Objekt nehmen, die Modul-Parameter und zuletzt noch die $attribs in einer Linie mit den Attributen aus dem jdoc XML Tag.

Es sind drei Haupt-Eigenschaften in dem Modul-Objekt welche beteiligt sind:

  • showtitle sagt Ihnen, ob der Titel angezeigt werden soll oder nicht
  • title ist der Modul-Titel
  • content ist die Modul-Ausgabe (aus der Layouts-Liste)

Dies ist ein einfacher Fall, selbstverständlich können Sie komplexere Styles erstellen indem Sie benutzerdefinierte Attribute im XML Tag benutzen.

Seitenumbruch Link Overrides

Bei der letzten Override-Anweisung handelt es sich über die Seitenumbruch-Links. Das Override kann die Anzeige der Objekte per Seite und die Seitenumbruch-Links, welche in der Informationsliste sind Kontrollieren, sehen Sie auch nebenstehenden Screenshot.

Das rhuk_milkyway-Template bietet auch hier ein kommentiertes Besipiel für den Override. Die Datei befindet sich unter:

/templates/rhuk_milkyway/html/pagination.php

Wenn die Seitenumbruchs-Liste benötigt wird, schaut Joomla! zuerst nach dieser Datei im Standard-Template. Wenn diese gefunden wird, wird sie auch mit den Funktionen welche sie beinhaltet geladen und benutzt.

Es sind vier Funktionen welche benutzt werden können:

pagination_list_footer

Diese Funktion ist verantwortlich für die gewählte Liste für die Anzahl Objekte für die Anzeige auf der Seite.

Pagination_list_render

Diese Funktion ist verantwortlich für die Seitennummer-Links wie auch die Optionen: Start, Ende, nächste, zuletzt.

Pagination_item_active

Diese Funktion zeigt die momentan verwendete Seitennummer an, anderes als "aktuelle" Seite.

pagination_item_active

Diese Funktion zeigt die aktuelle Seitenzahl normalerweise als nicht verlinkt an.


"Mogelei-Blatt" (Cheat Sheet)

Komponenten-Ausgabe übersicht

Modul-Ausgabe übersicht

Neue Modul-Styles hinzufügen

Seiten Umbruch Link anpassen


 

0 Kommentare

Kommentar schreiben