jah-tz.de Joomla als Hobby

Joomla Update Server

Inhalt

1. Allgemein

2. Funktion

3. Extension und Collection

4. Collection -XML-Datei Elemente

5. Extension -XML-Datei Elemente

6. Einbinden

7. Beispiele

8. Tipps / Hinweise

9. Quellen

 

Allgemein

Seit Joomla 2.5.4 gibt es in Joomla eine einheitliche Möglichkeit Updates für Erweiterungen anzubieten. Auch ein Joomla Core Update kann seit dem direkt über das Backend gemacht werden ohne das Paket selber downloaden und hochladen zu müssen.

Diese Anleitung erklärt das erstellen und betreiben eines Update Servers mit Beispielen für alle Erweiterungstypen.

Funktion

Update Server hört sich etwas kompliziert an im Grunde ist es aber nur ein URL zu einer XML-Datei welcher in der Installations-XML-Datei angegeben wird. Diese XML-Datei enthält dann eine Reihe von Angaben u.a. die neue Version und den Download-URL welchen Joomla auslesen kann. Sollte Joomla ein Update finden wird dies im Kontrollzentrum (Backend) angezeigt.

Extension und Collection.

Die Joomla Update Funktion kennt zwei Typen von Update XML-Dateien. Einmal „extension“ und einmal „collection“. Die „extension“-XML Datei enthält alle Informationen über die Erweiterung. Mit „collection“ kann man eine Art Priorisierung vornehmen. Dabei wird die Datei von oben nach unten gelesen.

 

Collection-XML-Datei Elemente

XML-Datei Element Beschreibung Optional/Pflicht
<extensionset> Äußerster Container er umschließt alle Erweiterungen. Dieser enthält auch einen Namen (name="") und eine Beschreibung (description="") Pflicht
<extension> Container für jede einzelne Erweiterung enthält die untenstehenden Elemente Pflicht

 

<extension> Element

Beschreibung Optional/Pflicht
name="" Name der Erweiterung Pflicht
element="" Element (siehe #__extentions Tabelle) der Erweiterung Pflicht
typ="" Erweiterungstyp: component, module, plugin, package oder file Pflicht
folder="" Plugin Ordner: z.B. system, content, ... Pflicht bei Plugins
client=""

Client: site oder administrator

Pflicht wenn der Client administrator ist da sonst automatisch site genommen wird
version="" Aktuelle Version Pflicht
targetplatformversion="" Für welche Version von Joomla ist die Erweiterung geignet. Optional
detailsurl="" URL zur extension.xml Datei Pflicht

Extension-XML-Datei Elemente

XML-Datei Element Beschreibung Optional/Pflicht
<updates> Äußerste Updates Container er umschließt alle Updates Pflicht
<update> Update Container er umschließt jedes Update Pflicht
<name> Name der Erweiterung Pflicht
<description> Beschreibung der Erweiterung Optional
<element> Element der Erweiterung Pflicht
<type> Typ der Erweiterung (components/module/plugin/file/package) Pflicht
<folder> Plugin Ordner: z.B. system, content, ... Pflicht bei Plugins
<version> Aktuelle Version der Erweiterung Pflicht
<infourl> Info URL z.B. URL zur Release Meldung Optional
<client>

Client der Erweiterung (site oder administrator)

Pflicht
<group> Gruppe der Erweiterung Optional
<downloads> Download Container enthält den Download URL Container Pflicht
<downloadurl> Download URL Container enthält den Pfad, Typ und das Format des Downloads Pflicht
<tags> Tags Container enthält verschiedene 'tag' Container Optional
<tag>

Tag Container enthält einen Tag. Welcher aussagt wie stabil die Version ist (erst ab 3.4+)

dev: Entwicklerversion, sehr unstabiel z.B. nightly builds
alpha: Software mit Alpha Qualität (Einige Funktionen sind noch nicht implementiert, Zeigt kritische Fehler)
beta: Software mit Beta Qualität (Alle Funktionen sind implementiert, Zeigt ggf. kritische Fehler, Kleinere Bugs möglich)
rc: Software mit RC Qualität (Keine kritischen Fehler, Kleine Fehler können möglich sein)
stable: Software für den produktiven Einsatz. Alle anderen Tags werden ignoriert.

Wenn mehr als ein Tag eingetragen wird gilt der Letzte. Wird kein Tag eingetragen geht Joomla! davon aus das es eine Stable Version ist.

Optional
<maintainer> Maintainer Container enthält z.B. den Namen des Entwickers Optional
<maintainerurl> Maintainer URL Container enthält z.B. die Webseite des Entwickers Optional
<category> Kategorie der Erweiterung Optional
<relationships> Beziehungen der Erweiterung Optional
<targetplatform>

Der Targetplatform Container enthält mindestens den Platformnamen (P) sowie die Mindestversion (P) und kann zusätzlich eine Mini- oder Maximale Maintenanceversion enthalten (O)

Beispiele:
name="joomla" (P)
version="3.3" oder version="2.5" (P)
min_dev_level="2" (=minimal 2.5.2 / 3.2.2) (O)
max_dev_level="3" (=maximal 2.5.3 / 3.2.3) (O)

Pflicht
<php_minimum> Der PHP Minimum Container enthält die für die Erweiterung minimal erforderliche PHP Version. Optional
<supported_databases> Der Unterstütze Datenbanken Container enthält die für die Erweiterung minimal erforderlichen Datenbanktypen und deren Version Beispiel: <supported_databases mysql="5.5.3" postgresql="9.2" mssql="10.50.1600.1" />. (Dieser wird erst ab 3.7.0 aufwährts unterstützt.) Optional

Beispiele:

 

 

Einbinden

Um einen Update Server für eine Erweiterung bekannt zu machen muss man ihn in der Installations-XML-Datei hinzufügen. Dazu gibt es einen eigenen Tag <updateserver>.

Beispiel (keine Zeilenumbrüche in den URLs!):

<updateservers>
<server type="collection" name="Collection Updates" priority="1">http://update.example.org/collection.xml</server>
<server type="extension" name="Extension Updates" priority="2">http://update.example.org/extension.xml</server>
</updateservers>

Diese URLs (collection und extension) werden vom Joomla Updater überprüft und finden sich später in der Datnbank tabelle #__update_sites wieder.

Tipps / Hinweise

Für kommerzielle Erweiterungen gibt es auch eine Möglichkeit Updates über den Updater anzubieten. Siehe:

Quellen:

Aktuelle Version
Joomla! 3.9.23