Posted in
Joomla! Specials -
Legacy entfernen
Quelle (Artikel von Andrew Eddie, in Englisch): www.theartofjoomla.com
Übersetzung: Joomla! Schweiz
Joomla! 1.5.x hat in Bezug zu den Datenstrukturen viel gemeinsam mit Joomla! 1.0.x, aber auch viele Unterschiede. In diesem Artikel gehen wir einige der grössten Unterschiede durch, auf recht anspruchsvoller Ebene.
| Wenn man Joomla! entpackt hat, sehen die ersten Verzeichnisse etwa so aus: /administrator /cache /components /images /includes /installation /language /libraries /logs /media /modules /plugins /templates /tmp /xmlrpc |
Hier gibt es folgendes zu beachten:
- Das Verzeichnis /mambots/ wurde umbenannt in /plugins/ (dies ist eine der grössten Änderungen in der Terminologie von Joomla! 1.5). Die Unterverzeichnisse bleiben jedoch gleich, wo Plugins gruppiert werden nach content, system, etc.
- Es gibt ein neues Verzeichnis /libraries/. Das beherbergt viele der API und Fremd-Libraries (3rd-Party), welche vorher unter /includes/ zu finden waren.
- Das neue Verzeichnis /media/ enthält benutzerbezogene Daten wie Bilder, Javascript-Libraries, Flash-Dateien, etc.
- Das Verzeichnis /help/ wurde in den Administrator verschoben.
- Das Verzeichniss legacy /editor/ wurde entfernt
- Es gibt ein neues Verzeichniss /xmlrpc/ zur Unterstützung von Web-Services via XML-RPC-Protokol.
Eines der interessantesten Verzeichnisse ein paar Ebenen tiefer ist /library/. Sie werden viele bekannte Namen von Drittanbieter-Skripts sehen wie /phpgacl/, /phpmailer/, /geshi/ und andere. Ebenfalls sehen Sie neue Skripts wie /simplepie/ sowie ein interessantes Verzeichnis mit dem Namen /joomla/.
Eigentlich wurden alle Core-Joomla!-API verschoben aus verschiedenen Verzeichnissen (insbesondere /includes/joomla.php und andere) in das Verzeichniss /libraries/joomla/. Dies ist nun das Rückgrat von Joomla! Fast alle Klassen sind nun in eigenen Verzeichnissen mit logischer Hierarchie. Zum Beispiel der Datenbank-Treiber für mysql.php befindet sich nun in /libraries/joomla/database/database/mysql.php. Wenn Sie nun die verschiedenen Verzeichnisse durchgehen werden Sie viele unbekannte Namen finden. Aber keine Angst, wir kommen dazu in zukünftigen Artikeln.
Wir wollen nun zwei weitere wichtige Änderungen behandeln, welche den grössten Einfluss haben für Entwickler und Gestalter.
| Die grösste Restrukturierung sind die Frontend-Komponenten in das Format MVC. Die Verzeichnisstruktur ist generell etwa so:/com_content /helpers /models /views /article /tmpl |
Darin enthalten sind wiederum einige Verzeichnisse, aber dazu kommen wir später. Wichtig ist im Moment die Beziehung der Verzeichnisse zum Joomla!-Menusystem und zum Templatesystem zu verstehen. Es könnte auch ein Verzeichnis /controllers/ geben, je nach Komplexität der Komponenten (... und persönlichen Ideen der Entwickler – mehr dazu in der MVC Terminologie).
Jedes Verzeichnis unter /views/ kann generell über die URL aufgerufen werden. Zum Beispiel index.php?option=com_content&view=article&id=1
Wir nehmen an die Komponente weiss was mit der ID zu tun ist. Im Verzeichnis /views/article/ werden die Informationen entnommen wie die Seite dargestellt werden soll. Wenn man einen neuen Menupunkt im Administrator macht, sieht man eine Liste von Komponenten. Wenn man eine anklickt, sieht man eine Liste aller Ansichten (views). Die werden automatisch vom Menumanager erstellt. Ein grosser Fortschritt gegenüber Joomla! 1.0, wo es schwierig war diese Optionen zu ändern. In vielen Fällen sehen Sie auch weitere Optionen zum auswählen, sie werden „layouts“ genannt. Layouts befinden sich im Verzeichniss /views/view_name/tmpl/ und dies ist (meistens) der einzige Ort wo HTML ist.
Und dies bringt uns zum zweiten wichtigen Punkt. Joomla! 1.0.x hat eine Art zum Überschreiben der Ausgaben von Komponenten – es war nie bekannt oder war nie wirklich eine Methode die sich bewährte oder Neuauflagen von Joomla! Core-Dateien überlebt hat. Doch Joomla! 1.5 hat das geändert. Weil alle Frontend-Komponenten ihr eigenes HTML in einzelnen Layout-Dateien haben, kann Ihnen Joomla! nun die Möglichkeit geben diese individuellen Dateien in aktiven Templates zu überschreiben.
| Um Beispiele davon zu sehen, gehen sie in das Beez Template. Da ist ein neues Verzeichnis mit dem Namen /html/. /html /com_content /article /mod_login Beide, Komponenten und Module können in der Ansicht überschrieben werden. |
In diesem Fall einer Komponente machen Sie eine Verzeichnisstruktur, angefangen mit dem Komponentennamen (der gleiche wie unter /components/), den Namen vom Ansichtsverzeichnis, und zuletzt erstellen Sie eine PHP-Datei mit dem gleichen Namen wie das Ansichtsverzeichnis welches überschrieben werden soll.
Module sind gleich, ausser das sie keine Ansicht haben, nur das Ansichtsverzeichnis überschreiben (einige Drittanbieter-Entwickler erlauben verschiedene Ansichten in Modulen; eine tolle Zugabe).
Alles woran Sie denken müssen ist die Abgleichung der Namen von Komponente oder Modul, abgleichen des Dateinamens der Ansicht (Layout). Eigentlich sehr einfach. Nächstes mal gehen wir detaillierter darauf ein, wie genau "views" und "layout" funktioniert.



Sonntag 13 Juli, 2008
endlich versteht ein "Normalo", dass Joomla 1.5x garnicht so komplex ist, wie es scheint. Freue mich schon auf die nächsten Übersetzungsteile.