Aktualisieren Sie den Server für ein Paket oder eine einzelne Erweiterung


7

Ich bin etwas verwirrt und brauche eine Empfehlung für einen optimalen Ansatz zum Einrichten eines Update-Servers für eine Sammlung von Erweiterungen.

Ich habe eine Komponente, eine Bibliothek und ein Plugin, die ich in ein einziges Paket gesteckt habe. Ich habe ein Paket-XML-Manifest und auch ein individuelles Manifest für jede Komponente, Bibliothek und ein Plugin.

Sollte ich den Update-Server auf Paketebene als Sammlung haben? Oder sollte ich für jede Erweiterung einen Update-Server haben?

Irgendwelche Empfehlungen?

Update (26/01/2016): Über diesen Link- Link gegangen und es werden mir keine Informationen zum Paket-Upgrade bereitgestellt ... Soll ich mich für einen Sammlungstyp entscheiden ???

Antworten:


4

Nach 3 Tagen Kampf kann ich einen Weg finden, das Paket automatisch zu aktualisieren. Ich bin mir nicht sicher, ob dies der richtige Weg ist. Aber es funktioniert für mein Szenario.

Updateserver

Angenommen, mein Komponentenname ist com_mycomponentund ich habe die mycompnent.xml(Manifest-) Datei erhalten. Aktualisieren Sie in dieser Datei die Server wie folgt. Ich setze den folgenden Code nach dem adminstrationTag.

<updateservers>
  <server type="extension" priority="2" name="My Package Updates">http://example.com/update_package.xml</server>
</updateservers>

Ja, ich verwende die Manifestdatei der Komponente, um mein Paket zu aktualisieren

Erstellen Sie das Paket

-- pck_mypackage
   -- com_mycomponent.zip
   -- lib_mylibrary.zip
   -- lib_myplugin.zip
-- script.php
-- pck_mypackage.xml

update_package.xml

<updates>
  <update>
    <name>My Package Update</name>
    <description>Some description</description>
    <element>pkg_mypackage</element>
    <client>0</client>
    <type>package</type>
    <version>1.0.1</version>
    <infourl title="Some title">http://www.example.com/</infourl>
    <downloads>
      <downloadurl type="full" format="zip">http://example.com/pkg_mypackage_101.zip</downloadurl>
    </downloads>
    <tags>
      <tag>stable</tag>
    </tags>
    <targetplatform name="joomla" version="3"/>
  </update>
</updates>

Das ist alles. Der Updater sucht nun nach dem Update für die Komponente und installiert das Paket tatsächlich.


Du hast Recht. Als ich die Datenbank #__updates überprüfte, fand ich alle Sprachdateien mit der Client-ID 0, und als ich den Client-Teil in meine XML-Datei einfügte, funktionierte er. Aber Joomla-Dokumente haben dies nicht erwähnt. Sie sagten, dass die Client-ID nur für Module und Vorlagen erforderlich ist. Ich denke, Joomla Devs müssen ihren Dokumentationsteil ernsthaft überprüfen.
Amit Ray

3

Sie können dies tatsächlich nur mit der Paketerweiterung tun (und das wäre wahrscheinlich der beste Weg, dies zu tun). Kurz und gut, Sie haben im Grunde alles richtig gemacht. Sie sollten Ihr <updateservers>Element einfach vom Manifest der Komponente auf das Paket übertragen.

Ein paar Beispiele aus meiner eigenen Erweiterung:

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.