Absolute Grundlagen, wie eine Komponente funktioniert

From Joomla! Documentation

Revision as of 20:19, 12 December 2023 by Max123kl (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Nederlands (informeel)‎ • ‎eesti • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎русский • ‎українська • ‎فارسی • ‎हिन्दी • ‎অসমীয়া • ‎বাংলা • ‎中文(台灣)‎

Dieser Artikel ist für Joomla! Anfänger entworfen worden und soll erklären, was eine Joomla!-Komponente ist und wie sie funktioniert. Falls das Tutorial Beispiele für eine Komponente verwendet, wird auf die Beispiel-Komponente namens "Hello World!" verwiesen.

Was ist eine Joomlaǃ-Komponente

Eine Komponente ist eine Art von Joomla! Erweiterung. Komponenten sind die Haupt-Funktionseinheiten von Joomla!; sie können auch als Mini-Applikationen gesehen werden. Eine einfache Analogie sieht Joomla! als das Betriebssystem und die Komponenten als die Desktopanwendungen. Inhalte werden normalerweise von einer Komponente erzeugt und in der Mitte des Inhaltsbereichs eines Templates angezeigt (abhängig vom Template).

Die meisten Komponenten haben zwei Hauptbestandteile: einen Administrationsbereich und einen Site-Bereich. Der Site-Bereich wird genutzt, um Seiten anzuzeigen, wenn sie von Besuchern während des normalen Betriebs der Website angefordert werden. Der Administrationsbereich bietet eine Schnittstelle, um die verschiedenen Aspekte der Komponente zu konfigurieren und zu verwalten. In den Administrationsbereich gelangt man mit Hilfe der Joomla! Administrationsanwendung.

Joomla! wird mit einer Reihe von Basis-Komponenten, wie die Inhaltsverwaltung, Kontaktformulare und Weblinks, ausgeliefert.

Siehe auch: Module, Plugin, Template


Im Joomla! Framework können Komponenten entworfen werden, die ein flaches Model (gibt den HTML-Code der angefragten Seite zurück) oder das Model-View-Controller (kurz MVC) Muster nutzen.

Einführung in MVC

MVC ist ein Entwurfsmuster in der Softwareentwicklung, welches genutzt werden kann, um Code zu strukturieren und so Geschäftslogik und Datenpräsentation zu trennen. Die Prämisse hinter diesem Ansatz ist Folgende: Wenn die Geschäftslogik in einem Bereich zusammengefasst ist, dann können die Benutzerschnittstelle und -interaktion, die die Daten umgeben, überarbeitet und angepasst werden, ohne dass die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Rollen Eingabe, Verarbeitung und Ausgabe in einer logischen GUI-Archtiektur abzubilden.

Model

Das Model ist der Teil der Komponente, der die Daten der Anwendung umschließt. Es stellt Routinen bereit, um diese Daten in einer sinnvollen Art und Weise zu verwalten und zu manipulieren. Zusätzlich bietet es Routinen, um die Daten vom Model abzurufen. Generell sollte die zugrunde liegende Technik des Datenzugriffs im Model enthalten sein. Auf diese Weise muss nur das Model geändert werden (und nicht die View oder der Controller), wenn die Anwendung von einem System welches statt Dateien die Datenbank nutzt um Informationen zu speichern, wechselt.

View

Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeigneten Art und Weise darstellt. Bei web-basierten Anwendungen generiert die View normalerweise eine HTML-Seite für die Benutzer. Die View holt sich die Daten aus dem Model (welches wiederum die Daten vom Controller erhält) und übergibt sie an ein Template, welches mit den Daten befüllt und dem Benutzer angezeigt wird. Daten werden von der View in keinster Weise verändert, sie werden lediglich so ausgegeben, wie sie vom Model empfangen wurden.

Controller

Der Controller ist verantwortlich für das Beantworten von Benutzer-Aktionen. Bei Webanwendungen ist eine Benutzer-Aktion üblicherweise eine Seiten-Anfrage. Der Controller bestimmt, welche Anfrage vom Benutzer gemacht wurde. Dann antwortet er, indem er das Model anweist, die Daten entsprechend zu verändern und an die View weiterzugeben. Der Controller zeigt die Daten im Model nicht an, sondern ruft lediglich Methoden im Model auf, welche dann die Daten modifizieren, und gibt dann das Model an die View weiter, welche die Daten anzeigt.

Joomla! Komponenten-Framework erklärt

Model

Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine get-Funktion. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die HelloWorldViewHelloWorld View. Standardmäßig ist das Model HelloWorldModelHelloWorld, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View. Um die Namenskonventionen besser zu verstehen, folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche "Magie", mit der alles funktioniert: Die Klasse HelloWorldViewHelloWorld liegt in site/views/helloworld/view.html.php und nutzt die Klasse HelloWorldModelHelloWorld in der Datei site/models/helloworld.php Angenommen, man möchte eine imaginäre View "fluffy" verwenden, würde man folgendes haben: Die Klasse HelloWorldViewFluffy liegt in site/views/fluffy/view.html.php. Die View verwendet HelloWorldModelFluffy in der Datei site/models/fluffy.php. Anmerkung: die eigentliche Ansicht der View: site/views/fluffy/tmpl/default.php wird ebenfalls benötigt, damit dieses Beispiel funktioniert. Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leeren Seite.

Zugriff auf eine Joomlaǃ-Komponente

Als erstes benötigt man Zugriff zur Joomla! Plattform, auf die man immer durch einen einzigen Zugriffspunkt zugreifen kann. Mit Hilfe eines Browsers navigiert man zu folgender URL:

1 Benutzer-Zugriff <deineSite>/joomla/index.php
2 Administrator-Zugriff <deineSite>/joomla/administrator/index.php

"Hallo Welt!"- Beispiel: localhost/joomla/index.php Wir können die URL der Komponente, oder ein Menü nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.

1 Benutzer-Zugriff <deineSite>/joomla/index.php?option=com_<component_name>
2 Administrator-Zugriff <deineSite>/joomla/administrator/index.php?option=com_<component_name>

Hallo Welt! Beispiel: localhost/joomla/index.php?option=com_helloworld

MVC Grundlegende Verzeichnis Struktur

Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in <PfadzuJoomla>/components/com_<komponenten_name>/ Die Komponente Hallo Welt! würde in <PfadZuJoomla>/components/com_helloworld/ gespeichert werden. Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:

  • Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründen: index.html
  • Eine PHP-Datei für den Controllerː controller.php
  • Eine PHP-Datei die die Controller-Klasse lädtː <komponenten_name>.php
  • Eine PHP-Datei für das Model: models/<komponenten_name>.php
  • Eine weitere HTML-Dateiː models/index.html
  • Eine PHP-Datei die die Standard-View enthält: views/<komponenten_name>/tmpl/default.php
  • Eine XML-Datei für den Menüeintrags-Typ: views/<komponenten_name>/tmpl/default.xml
  • Eine weitere HTML-Datei: views/<komponenten_name>/tmpl/index.html
  • Eine weitere HTML-Datei: views/<komponenten_name>/index.html
  • Eine PHP-Datei um die View anzuzeigen: views/<komponenten_name>/view.html.php

JEXEC

Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:

<?php
    defined('_JEXEC') or die('Restricted Access');

Dies ermöglicht einen sicheren Eingangspunkt in die Joomla!-Plattform. Die Seite JEXEC enthält eine detaillierte Erklärung.

Tutorials zur Entwicklung einer MVC-Komponente

Um zu lernen wie man eigene MVC Komponenten entwirft, gibt es für jede Joomla! Version ein Tutorial: