Paket - Alle Erweiterungen in einer Installationsdatei
Wir haben eine Menge unterschiedlicher Erweiterung erstellt. Es ist lästig, für jede einzelne eine separate Installation durchzuführen. Dies ist einem Benutzer nicht zumutbar. Außerdem bauen diese teilweise aufeinander auf und es ist wichtig, sicherzustellen, dass alles installiert ist und nichts vergessen wurde. Deshalb zeige ich in diesem abschießenden Kapitel, wie unterschiedliche Erweiterungen zu einem Installationspaket zusammengepackt werden.
Für Ungeduldige: Sieh dir den geänderten Programmcode in der Diff-Ansicht[^codeberg.org/astrid/j4examplecode/compare/t41…t42] an und übernimm diese Änderungen in deine Entwicklungsversion.
Schritt für Schritt
In diesem Abschnitt erstellen wir ein Installationspaket.
Neue Dateien
Paket
/administrator/manifests/ packages/foos/script.php
Ein Paket ist wie die Komponente mit einem optionalen Skript erweiterbar. In unserem Fall prüfen wir, ob die Installationsvoraussetzungen in Bezug auf minimale Versionen für Joomla und PHP gegeben sind.
/administrator/manifests/ packages/foos/script.php
// https://codeberg.org/astrid/j4examplecode/raw/branch/210867f3a4211ecff2c364f292bc4250cd75bc71/src/administrator/manifests/packages/foos/script.php
<?php
/**
* @package Joomla.Site
* @subpackage pkg_foos
*
* @copyright Copyright (C) 2005 - 2019 Astrid Günther, Inc. All rights reserved.
* @license GNU General Public License version 2 or later;
* @link astrid-guenther.de
*/
\defined('_JEXEC') or die;
/**
* Installation class to perform additional changes during install/uninstall/update
*
* @since __BUMP_VERSION__
*/
class Pkg_FoosInstallerScript
{
/**
* Extension script constructor.
*
* @since __BUMP_VERSION__
*/
public function __construct()
{
$this->minimumJoomla = '4.0';
$this->minimumPhp = JOOMLA_MINIMUM_PHP;
}
}
administrator/manifests/ packages/pkg_foos.xml
Das Manifest kennst du schon. Im Falle eines Paketes gibt es hier wenig Neues. Im Bereich der zu kopierenden Dateien gibst du die Installationspakete der Erweiterungen an, die zu installieren sind.
administrator/manifests/ packages/pkg_foos.xml
<!-- https://codeberg.org/astrid/j4examplecode/raw/branch/t42/src/administrator/manifests/packages/pkg_foos.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<extension type="package" version="1.0" method="upgrade">
<name>pkg_foos</name>
<packagename>agosms</packagename>
<creationDate>##DATE##</creationDate>
<packager>Astrid Günther</packager>
<copyright>(C) ##YEAR## Astrid Günther. All rights reserved.</copyright>
<packageremail>info@astrid-guenther.de</packageremail>
<packagerurl>www.astrid-guenther.de</packagerurl>
<author>Astrid Günther</author>
<authorEmail>info@astrid-guenther.de</authorEmail>
<authorUrl>www.astrid-guenther.de</authorUrl>
<version>##VERSION##</version>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<description>PKG_FOOS_XML_DESCRIPTION</description>
<scriptfile>script.php</scriptfile>
<files>
<!-- The id for each extension is the element stored in the DB -->
<file type="component" id="com_foos">com_foos.zip</file>
<file type="module" id="mod_foo" client="site">mod_foo.zip</file>
<file type="plugin" id="plg_webservices_foos" group="webservices">plg_webservices_foos.zip</file>
<file type="template" id="tpl_facile" client="site">tpl_facile.zip</file>
</files>
<updateservers>
<server type="extension" name="Foo Updates">https://codeberg.org/astrid/j4examplecode/raw/branch/tutorial/foo_update.xml</server>
</updateservers>
<dlid prefix="dlid=" suffix="" />
</extension>
Teste dein Joomla-Template
-
Führe eine neue Installation durch. Deinstalliere hierzu deine bisherige Installation.
-
Erstelle für jede Erweiterung ein ZIP-Archiv
Wie erstellt man eine installierbare Zip-Datei für jede Erweiterung? Wenn du dieses Tutorial durchgearbeitet hast, dann verfügst du über alle Dateien. Wenn du die Dateien nicht selbst erstellen möchtest, findest du sie alle in Zweig 42 des Repository für Beispieldateien, der unter diesem Link codeberg.org/astrid/j4examplecode/src/branch/t42 zu finden ist. Du kannst den Inhalt dieses Zweigs als Zip-Datei herunterladen. Es handelt sich jedoch nicht um eine Installations-Zip-Datei. Du musst diese Datei selbst für jede Erweiterung separat erstellen. Im Grunde kannst du die Dateien für jede Erweiterung in ein Verzeichnis kopieren und sie mit einem Packprogramm deiner Wahl zusammenpacken. Die Ordnerstruktur sollte dabei gleich bleiben. Lediglich die Installations-XML-Datei und ein eventuelles Installationsskript müssen in das Stammverzeichnis der Zip-Datei kopiert werden, sofern sie nicht bereits dort gespeichert sind.
-
Erstelle ein ZIP Archiv das alle ZIP-Dateien und die Dateien dieses Kapitels enthält.
-
Installiere das in Punkt 3 erstellt ZIP in Joomla.
-
Stelle sicher, dass alle Erweiterungen installiert wurden.