<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fruppel</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fruppel"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Fruppel"/>
	<updated>2026-06-17T22:36:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290355</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290355"/>
		<updated>2016-03-31T12:50:15Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials zur Entwicklung einer MVC Komponente==&lt;br /&gt;
Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290354</id>
		<title>Translations:Absolute Basics of How a Component Functions/57/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290354"/>
		<updated>2016-03-31T12:50:14Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290353</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290353"/>
		<updated>2016-03-31T12:49:54Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials zur Entwicklung einer MVC Komponente==&lt;br /&gt;
Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations|Erklärungen]]&lt;br /&gt;
[[Category:Component Development/de]]&lt;br /&gt;
[[Category:Beginner Development/de]]&lt;br /&gt;
[[Category:Development Recommended Reading/de]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290352</id>
		<title>Translations:Absolute Basics of How a Component Functions/57/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290352"/>
		<updated>2016-03-31T12:49:54Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations|Erklärungen]]&lt;br /&gt;
[[Category:Component Development/de]]&lt;br /&gt;
[[Category:Beginner Development/de]]&lt;br /&gt;
[[Category:Development Recommended Reading/de]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290351</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290351"/>
		<updated>2016-03-31T12:49:43Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials zur Entwicklung einer MVC Komponente==&lt;br /&gt;
Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations|Erklärungen]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development/de]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290350</id>
		<title>Translations:Absolute Basics of How a Component Functions/57/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290350"/>
		<updated>2016-03-31T12:49:42Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations|Erklärungen]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development/de]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290347</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290347"/>
		<updated>2016-03-31T12:48:54Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials zur Entwicklung einer MVC Komponente==&lt;br /&gt;
Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations/de|Erklärungen]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290346</id>
		<title>Translations:Absolute Basics of How a Component Functions/57/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290346"/>
		<updated>2016-03-31T12:48:54Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations/de|Erklärungen]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290341</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290341"/>
		<updated>2016-03-31T12:46:18Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials zur Entwicklung einer MVC Komponente==&lt;br /&gt;
Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290340</id>
		<title>Translations:Absolute Basics of How a Component Functions/57/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290340"/>
		<updated>2016-03-31T12:46:17Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials/de|Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290337</id>
		<title>Translations:Absolute Basics of How a Component Functions/57/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/57/de&amp;diff=290337"/>
		<updated>2016-03-31T12:44:38Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;Category:Tutorials Category:Explanations Category:Component Development Category:Beginner Development Category:Development Recommended Reading&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/56/de&amp;diff=290336</id>
		<title>Translations:Absolute Basics of How a Component Functions/56/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/56/de&amp;diff=290336"/>
		<updated>2016-03-31T12:44:13Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*  Joomla! 3.x&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/55/de&amp;diff=290335</id>
		<title>Translations:Absolute Basics of How a Component Functions/55/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/55/de&amp;diff=290335"/>
		<updated>2016-03-31T12:44:11Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*  Joomla! 2.5&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/54/de&amp;diff=290334</id>
		<title>Translations:Absolute Basics of How a Component Functions/54/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/54/de&amp;diff=290334"/>
		<updated>2016-03-31T12:42:52Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*  Joomla! 1.5&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290333</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290333"/>
		<updated>2016-03-31T12:42:44Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials zur Entwicklung einer MVC Komponente==&lt;br /&gt;
Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/53/de&amp;diff=290332</id>
		<title>Translations:Absolute Basics of How a Component Functions/53/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/53/de&amp;diff=290332"/>
		<updated>2016-03-31T12:42:43Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial:&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290331</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290331"/>
		<updated>2016-03-31T12:40:52Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;==Tutorials zur Entwicklung einer MVC Komponente==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials zur Entwicklung einer MVC Komponente==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/52/de&amp;diff=290330</id>
		<title>Translations:Absolute Basics of How a Component Functions/52/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/52/de&amp;diff=290330"/>
		<updated>2016-03-31T12:40:52Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;==Tutorials zur Entwicklung einer MVC Komponente==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Tutorials zur Entwicklung einer MVC Komponente==&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290329</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290329"/>
		<updated>2016-03-31T12:40:32Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform.  JEXEC enthält eine detaillierte Erklärung.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/51/de&amp;diff=290328</id>
		<title>Translations:Absolute Basics of How a Component Functions/51/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/51/de&amp;diff=290328"/>
		<updated>2016-03-31T12:40:32Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform.  JEXEC enthält eine detaillierte Erklärung.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. [[S:MyLanguage/JEXEC| JEXEC]] enthält eine detaillierte Erklärung.&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290327</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290327"/>
		<updated>2016-03-31T12:39:38Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/50/de&amp;diff=290326</id>
		<title>Translations:Absolute Basics of How a Component Functions/50/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/50/de&amp;diff=290326"/>
		<updated>2016-03-31T12:39:38Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/49/de&amp;diff=290325</id>
		<title>Translations:Absolute Basics of How a Component Functions/49/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/49/de&amp;diff=290325"/>
		<updated>2016-03-31T12:39:15Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;==JEXEC==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==JEXEC==&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290324</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290324"/>
		<updated>2016-03-31T12:39:12Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/48/de&amp;diff=290323</id>
		<title>Translations:Absolute Basics of How a Component Functions/48/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/48/de&amp;diff=290323"/>
		<updated>2016-03-31T12:39:11Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine PHP-Datei um die View anzuzeigen: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290322</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290322"/>
		<updated>2016-03-31T12:38:48Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/47/de&amp;diff=290321</id>
		<title>Translations:Absolute Basics of How a Component Functions/47/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/47/de&amp;diff=290321"/>
		<updated>2016-03-31T12:38:48Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290320</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290320"/>
		<updated>2016-03-31T12:38:34Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/46/de&amp;diff=290319</id>
		<title>Translations:Absolute Basics of How a Component Functions/46/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/46/de&amp;diff=290319"/>
		<updated>2016-03-31T12:38:34Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine weitere HTML-Datei: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290318</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290318"/>
		<updated>2016-03-31T12:38:05Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/45/de&amp;diff=290317</id>
		<title>Translations:Absolute Basics of How a Component Functions/45/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/45/de&amp;diff=290317"/>
		<updated>2016-03-31T12:38:04Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine XML-Datei für den Menüeintrags-Typ: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290316</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290316"/>
		<updated>2016-03-31T12:37:21Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/44/de&amp;diff=290315</id>
		<title>Translations:Absolute Basics of How a Component Functions/44/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/44/de&amp;diff=290315"/>
		<updated>2016-03-31T12:37:21Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine PHP-Datei die die Standard-View enthält: &amp;lt;tt&amp;gt;views/&amp;lt;komponenten_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290314</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290314"/>
		<updated>2016-03-31T12:36:44Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/42/de&amp;diff=290313</id>
		<title>Translations:Absolute Basics of How a Component Functions/42/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/42/de&amp;diff=290313"/>
		<updated>2016-03-31T12:36:44Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290312</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290312"/>
		<updated>2016-03-31T12:36:34Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/41/de&amp;diff=290311</id>
		<title>Translations:Absolute Basics of How a Component Functions/41/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/41/de&amp;diff=290311"/>
		<updated>2016-03-31T12:36:33Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;komponenten_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290310</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290310"/>
		<updated>2016-03-31T12:36:17Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/36/de&amp;diff=290309</id>
		<title>Translations:Absolute Basics of How a Component Functions/36/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/36/de&amp;diff=290309"/>
		<updated>2016-03-31T12:36:17Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290308</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290308"/>
		<updated>2016-03-31T12:36:10Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;htdocs/&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/37/de&amp;diff=290307</id>
		<title>Translations:Absolute Basics of How a Component Functions/37/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/37/de&amp;diff=290307"/>
		<updated>2016-03-31T12:36:10Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; &amp;lt;PfadZuJoomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden.&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290306</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290306"/>
		<updated>2016-03-31T12:35:50Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;htdocs/&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; htdocs/&amp;lt;path_to_joomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/36/de&amp;diff=290305</id>
		<title>Translations:Absolute Basics of How a Component Functions/36/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/36/de&amp;diff=290305"/>
		<updated>2016-03-31T12:35:50Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;htdocs/&amp;lt;PfadzuJoomla&amp;gt;/components/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290304</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290304"/>
		<updated>2016-03-31T12:33:55Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;htdocs/&amp;lt;PfadzuJoomla&amp;gt;/komponenten/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; htdocs/&amp;lt;path_to_joomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/43/de&amp;diff=290303</id>
		<title>Translations:Absolute Basics of How a Component Functions/43/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/43/de&amp;diff=290303"/>
		<updated>2016-03-31T12:33:55Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine weitere HTML-Dateiː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290302</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290302"/>
		<updated>2016-03-31T12:33:24Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;htdocs/&amp;lt;PfadzuJoomla&amp;gt;/komponenten/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; htdocs/&amp;lt;path_to_joomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/42/de&amp;diff=290301</id>
		<title>Translations:Absolute Basics of How a Component Functions/42/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/42/de&amp;diff=290301"/>
		<updated>2016-03-31T12:33:23Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine PHP-Datei für das Model: &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290300</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290300"/>
		<updated>2016-03-31T12:33:07Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;htdocs/&amp;lt;PfadzuJoomla&amp;gt;/komponenten/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; htdocs/&amp;lt;path_to_joomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file that represents the model itselfː &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/41/de&amp;diff=290299</id>
		<title>Translations:Absolute Basics of How a Component Functions/41/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Absolute_Basics_of_How_a_Component_Functions/41/de&amp;diff=290299"/>
		<updated>2016-03-31T12:33:06Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Eine PHP-Datei die die Controller-Klasse lädtː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290298</id>
		<title>Absolute Basics of How a Component Functions/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Absolute_Basics_of_How_a_Component_Functions/de&amp;diff=290298"/>
		<updated>2016-03-31T12:32:44Z</updated>

		<summary type="html">&lt;p&gt;Fruppel: Created page with &amp;quot;*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens &amp;quot;Hello World!&amp;quot; verweisen.&lt;br /&gt;
&lt;br /&gt;
==Was ist ein Joomlaǃ Komponente==&lt;br /&gt;
{{Chunk:Component/de}}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Einführung in MVC==&lt;br /&gt;
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, dass 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 das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. 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 gekapselt 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.&lt;br /&gt;
&lt;br /&gt;
===View===&lt;br /&gt;
Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete 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.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
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 und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. 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.&lt;br /&gt;
&lt;br /&gt;
== Joomla! Komponenten Framework erklärt ==&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine &amp;quot;get-Funktion&amp;quot;. Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die &amp;quot;HelloWorldViewHelloWorld&amp;quot; View. Standardmäßig ist das Model &amp;quot;HelloWorldModelHelloWorld&amp;quot;, welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.&lt;br /&gt;
&lt;br /&gt;
Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche &amp;quot;Magie&amp;quot;, mit der alles funktioniert:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; liegt in &#039;&#039;site/views/&#039;&#039;&#039;helloworld&#039;&#039;&#039;/view.html.php&#039;&#039; und nutzt die Klasse &#039;&#039;HelloWorldModel&#039;&#039;&#039;HelloWorld&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;helloworld&#039;&#039;&#039;.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Angenommen, man möchte eine imaginäre View &amp;quot;fluffy&amp;quot; verwenden, würde man folgendes haben:&lt;br /&gt;
&lt;br /&gt;
Die Klasse &#039;&#039;HelloWorldView&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; liegt in  &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/view.html.php&#039;&#039;. Die View verwendet &#039;&#039;HelloWorldModel&#039;&#039;&#039;Fluffy&#039;&#039;&#039;&#039;&#039; in der Datei &#039;&#039;site/models/&#039;&#039;&#039;fluffy&#039;&#039;&#039;.php&#039;&#039;. Anmerkung: die eigentliche Ansicht der View: &#039;&#039;site/views/&#039;&#039;&#039;fluffy&#039;&#039;&#039;/tmpl/default.php&#039;&#039; wird ebenfalls benötigt damit dieses Beispiel funktioniert.&lt;br /&gt;
&lt;br /&gt;
Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugriff auf eine Joomlaǃ Komponente==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deineDomain&amp;gt;/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deinedomain&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallo Welt!&amp;quot;- Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können die URL der Komponente, oder ein [[#Menu| Menu]] nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | Benutzer-Zugriff&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | Administrator-Zugriff &lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;deine Seite&amp;gt;/joomla/administrator/index.php?option=com_&amp;lt;component_name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Hallo Welt! Beispiel: &amp;lt;tt&amp;gt;localhost/joomla/index.php?option=com_helloworld&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MVC Grundlegende Verzeichnis Struktur==&lt;br /&gt;
Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in &amp;lt;tt&amp;gt;htdocs/&amp;lt;PfadzuJoomla&amp;gt;/komponenten/com_&amp;lt;komponenten_name&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Hallo Welt! Komponente würde in &amp;lt;tt&amp;gt; htdocs/&amp;lt;path_to_joomla&amp;gt;/components/com_helloworld/&amp;lt;/tt&amp;gt; gespeichert werden. &lt;br /&gt;
&lt;br /&gt;
Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:&lt;br /&gt;
*Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː &amp;lt;tt&amp;gt;index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Eine PHP-Datei für den Controllerː &amp;lt;tt&amp;gt;controller.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file that loads the controller classː &amp;lt;tt&amp;gt;&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file that represents the model itselfː &amp;lt;tt&amp;gt;models/&amp;lt;component_name&amp;gt;.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;models/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file containing the default viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A xml file for adding a menu item typeː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/default.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/tmpl/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Another html file for background controlː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/index.html&amp;lt;/tt&amp;gt;&lt;br /&gt;
*A php file for displaying the viewː &amp;lt;tt&amp;gt;views/&amp;lt;component_name&amp;gt;/view.html.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JEXEC==&lt;br /&gt;
The following line is commonly found at the start of Joomla! PHP files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables for a secure entry point into the Joomla! platform. [[S:MyLanguage/JEXEC| JEXEC]] contains a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
==Tutorials on Designing a MVC Component==&lt;br /&gt;
To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.&lt;br /&gt;
* [[S:MyLanguage/J1.5:Developing_a_MVC_Component/Introduction| Joomla! 1.5]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing_a_MVC_Component| Joomla! 2.5]]&lt;br /&gt;
* [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction| Joomla! 3.x]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Explanations]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Development Recommended Reading]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fruppel</name></author>
	</entry>
</feed>