Joomla 1.6 Komponente erstellen – Teil1

Da Joomla! 1.6 erst Anfang dieses Jahres herausgekommen ist, gibt es noch nicht wirklich viele Tutorials und Informationen im deutschen Bereich. Wenn Sie jedoch eine Joomla 1.6 komponente erstellen möchten wäre so manche Info hilfreich. Da ich derzeit dabei bin eine Joomla 1.6 Komponente zu erstellen, möchte ich mein Wissen und meine Erfahrungen damit mit euch teilen. In diesem Joomla 1.6 Tutorial möchte ich so viele Facetten der Komponenten Entwicklung für Joomla 1.6 zeigen. Das Joomla 1.6 Tutorial soll von Anfänger bis Fortgeschritten gehen. Das bedeutet dass wir eine Komponente erstellen werden, die erst einmal im Frontend nur eine Liste aus der Datenbank ausgibt. Dazu wird es dann eine Administrations Verwaltung geben. Am Schluss dieses Joomla 1.6 Tutorial möchte ich euch zeigen wie diese Listen so realisiert werden können, dass auf der Webseite eine Liste ausgegeben wird die aber von mehreren Benutzern erstellt worden ist. Dabei darf jeder Benutzer nur seine eigenen Einträge sehen und verwalten. Dazu wird es dann nebenbei noch ein Joomla 1.6 Tutorial geben, wie ein Content-Modul erstellt wird, dass die Daten auf der Webseite ausgibt, so dass dieses Flexibel eingesetzt werden kann. Falls etwas unvollständig oder missverständlich ist, solltet ihr mir das schnellstmöglich über die Kommentarfunktion mitteilen. Dies gilt ebenso für Fehler etc.

Wenn Sie eine Joomla 1.6 Komponente erstellen möchten, müssen folgende persönlichen Vorraussetzungen gegeben sein (Vorraussetzungen für dieses Joomla 1.6 Tutorial:

  • Basis Kenntnisse im Backend von Joomla! 1.6
  • Gute Kenntnisse in PHP
  • Gute Kenntnisse in Objektorientierter Programmierung (OOP)
  • viel Ausdauer

Nun aber zum grundsätzlichen Aufbau der Komponente (Und dieses Joomla 1.6 Tutorial). Alle Komponenten, Plugins und Module folgen dem Model View Controller (kurz MVC) Konzept. Genau nach diesem Prinzip ist auch die Ordnerstruktur einer Komponente aufgebaut. Dabei ist das Model das Datenmodel nach dem die Daten verarbeitet werden. Das View ist letztendlich unser Template und ist zuständig für das Anzeigen der Elemente / Inhalte. Der Controller übernimmt dabei die Steuerung zwischen Ansicht und Datenmodell. Jegliche Interaktionen laufen in der Regel über den Controller.

Wie die Dateien am besten editiert werden bleibt jedem selbst überlassen. Ich verwende phpStorm. Ich erstelle mir im Root-Verzeichnis neben den ganzen Joomla! 1.6 Verzeichnissen ein Verzeichnis /dev. Dort erstelle ich ein entsprechendes Verzeichnis für die Komponente, das Modul oder Plugin. In unserem Fall beim Tutorial wäre das dann /dev/com_list/. In diesem Verzeichnis wiederrum finden sich dann alle notwendigen Dateien für die Komponente, das Modul oder Plugin. Warum mache ich das so kompliziert? Dafür habe ich mehrere Gründe. Ich finde es immer noch einfacher als die ganze Zeit zwischen den Systemordnern hin und her zu wechseln. Desweiteren erreiche ich dadurch den Vorteil dass ich das entsprechende Verzeichnis (com_list) jederzeit herunterladen und zippen kann. Diese Zip ist eine vollwertige Joomla! 1.6 erweiterung. Das bedeutet ich kann in jedes Joomla! 1.6 wechseln und muss nur diese Zip-Datei über den Erweiterungsmanager installieren. Allerdings hat diese Methode einen gravierenden Nachteil: Die Erweiterung muss jedes mal neu installiert werden. Da Joomla! 1.6 die Installation von einem Verzeichnis aus starten kann gehe ich dann entsprechend in den Erweiterungsmanager und gebe das Verzeichnis an. Bei jeder Änderung gehe ich also wieder in den Erweiterungsmanager und drücke auf installieren. Joomla! 1.6 Speichert den einegebenen Pfad solange ich eingeloggt bin, ich muss ihn also nicht jedesmal erneut angeben. Ich denke das ist verkraftbar. So könnt Ihr am ende dieses Joomla 1.6 Tutorial auch diese hier erstellte Komponente erstellen.

Dieses Joomla 1.6! Tutorial werde ich nicht weiter fortführen. Es wird bei Gelegenheit ein Tutorial für eine neuere Joomla! Version geben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.