Package/de: Difference between revisions

From Joomla! Documentation

Created page with "=== Manifest-Dateiname und Paketname === Die Möglichkeit die Paketdatei zu deinstallieren und der Name der Manifest-Datei hängen eng zusammen. Die Manifest-Datei muss das Pr..."
Created page with "Optional kann eine Datei <pkg_script.php> verwendet werden, die eine Klasse pkg_<packagename>InstallerScript mit einer öffentlichen Funktion postflight enthält (unterstützt..."
Line 67: Line 67:
Die Möglichkeit die Paketdatei zu deinstallieren und der Name der Manifest-Datei hängen eng zusammen. Die Manifest-Datei muss das Präfix "pkg_" haben. Der Rest des Namens (ohne die Erweiterung .xml) wird als <paketname> verwendet. Oder anders herum gesagt: ein Paket, das als "blurpblurp_J3" identifiziert werden soll, muss eine Manifest-Datei "pkg_blurpblurp_J3.xml" haben. Ist dies nicht der Fall, kann das Paket nicht deinstalliert werden.
Die Möglichkeit die Paketdatei zu deinstallieren und der Name der Manifest-Datei hängen eng zusammen. Die Manifest-Datei muss das Präfix "pkg_" haben. Der Rest des Namens (ohne die Erweiterung .xml) wird als <paketname> verwendet. Oder anders herum gesagt: ein Paket, das als "blurpblurp_J3" identifiziert werden soll, muss eine Manifest-Datei "pkg_blurpblurp_J3.xml" haben. Ist dies nicht der Fall, kann das Paket nicht deinstalliert werden.


An optional <pkg_script.php> which contains a class pkg_<packagename>InstallerScript with public function postflight can be used (works in Joomla! 3.6).
Optional kann eine Datei <pkg_script.php> verwendet werden, die eine Klasse pkg_<packagename>InstallerScript mit einer öffentlichen Funktion postflight enthält (unterstützt seit Joomla! 3.6).


=== Extension tag ===
=== Extension tag ===

Revision as of 15:54, 13 April 2019

Anmerkung zu komponentenabhängigen Modulen

Manche Module (oder Plugins etc.) verwenden Models, Helpers u.ä. einer Komponente. In diesen Fällen wäre es wünschenswert, das Modul so zu packen, dass es deinstalliert wird, sobald die Komponente selber deinstalliert wird. Dieses dependency management wird in Joomla! zwar angestrebt, aber bisher nicht umgesetzt. Es wird empfohlen, den Standards zu folgen und ein Paket zu verwenden wie unten beschrieben.

Was ist ein Paket?

Ein Paket ist eine Erweiterung, mit der mehrere Erweiterungen auf einmal installiert werden. Dies wird z.B. verwendet, wenn man eine Komponente und ein Modul hat, die voneinander abhängig sind. Wenn diese in einem Paket kombiniert werden, kann der Benutzer die beiden Erweiterungen in einem Rutsch installieren und deinstallieren. Paket-Erweiterungen können ab Joomla Joomla 2.5 verwendet werden.

Wie erstellt man ein Paket?

Eine Paket-Erweiterung wird erstellt indem alle zip-Dateien der Erweiterungen zusammen mit einer XML-Manifest-Datei gepackt werden. Ein Paket besteht beispielsweise aus folgenden Bestandteilen:

  • Komponente helloworld
  • Modul helloworld
  • Bibliothek helloworld
  • System-Plugin helloworld
  • Template helloworld

Das Paket sollte die folgende Baumstruktur in der zip-Datei haben:

 -- pkg_helloworld.xml
 -- packages <dir>
     |-- com_helloworld.zip
     |-- mod_helloworld.zip
     |-- lib_helloworld.zip
     |-- plg_sys_helloworld.zip
     |-- tpl_helloworld.zip
 -- pkg_script.php

Die Datei pkg_helloworld.xml könnte folgendermaßen aussehen:

 <?xml version="1.0" encoding="UTF-8" ?>
 <extension type="package" version="1.6" method="upgrade">
 <name>Hello World Package</name>
 <author>Hello World Package Team</author>
 <creationDate>May 2012</creationDate>
 <packagename>helloworld</packagename>
 <version>1.0.0</version>
 <url>http://www.yoururl.com/</url>
 <packager>Hello World Package Team</packager>
 <packagerurl>http://www.yoururl.com/</packagerurl>
 <description>Example package to combine multiple extensions</description>
 <update>http://www.updateurl.com/update</update>
 <scriptfile>pkg_script.php</scriptfile>
 <files folder="packages">
   <file type="component" id="com_helloworld" >com_helloworld.zip</file>
   <file type="module" id="helloworld" client="site">mod_helloworld.zip</file>
   <file type="library" id="helloworld">lib_helloworld.zip</file>
   <file type="plugin" id="helloworld" group="system">plg_sys_helloworld.zip</file>
   <file type="template" id="helloworld" client="site">tpl_helloworld.zip</file>
 </files>
 </extension>

Wenn dies in eine ZIP-Datei gepackt wird und man diese installiert, wird jede enthaltene Erweiterung installiert. Das Paket wird auch im Backend in der Liste der Erweiterungen aufgeführt und wird verwendet, um alle Erweiterungen des Paktes zu deinstallieren.

Es sollte immer der Uninstaller des Pakets verwendet werden und nicht die Uninstaller der einzelnen Teilpakete. So wird verhindert, dass in der Erweiterungsverwaltung verwaiste Einträge stehen bleiben.

Id= <file id="not_arbitrary">

Das Id-Element im <file ..> Tag kann NICHT beliebig gewählt werden! "id=" sollte auf den Wert der element-Spalte in der Tabelle "#__extensions" gesetzt werden. Wenn diese nicht korrekt gesetzt werden, können die Teilpakete ( <file> ) bei der Paket-Deinstallation NICHT gefunden und deinstalliert werden.

Manifest-Dateiname und Paketname

Die Möglichkeit die Paketdatei zu deinstallieren und der Name der Manifest-Datei hängen eng zusammen. Die Manifest-Datei muss das Präfix "pkg_" haben. Der Rest des Namens (ohne die Erweiterung .xml) wird als <paketname> verwendet. Oder anders herum gesagt: ein Paket, das als "blurpblurp_J3" identifiziert werden soll, muss eine Manifest-Datei "pkg_blurpblurp_J3.xml" haben. Ist dies nicht der Fall, kann das Paket nicht deinstalliert werden.

Optional kann eine Datei <pkg_script.php> verwendet werden, die eine Klasse pkg_<packagename>InstallerScript mit einer öffentlichen Funktion postflight enthält (unterstützt seit Joomla! 3.6).

Extension tag

As of Joomla! 3.4, you should include method="upgrade" in the <extension> tag if you wish for your package to succeed in updating itself on subsequent installations.

The version attribute of the <extension> tag should be set to the minimum supported version of Joomla for this package. For example, if your package only supports Joomla! 3.2 and above set this to 3.2.