wie "method" bei eigenem Template setzen?

  • Joomla Version
    5.1
    PHP Version
    PHP 8.1.x
    Hoster
    lokal

    Hallo,

    ich erwäge von WordPress zu Joomla! zu wechseln und bin dabei ein eigenes Template zu erstellen. In den Anleitungen findet sich für den Eintrag in die Datei templateDetails.xml die Zeile

    Code
    <extension type="template" client="site">

    Der Nachteil ist, dass bei (größeren) Änderungen das Template erst wieder deinstalliert werden muss. Mittlerweile habe ich eine Fundstelle entdeckt, dass es auch so geht:

    Code
    <extension type="template" client="site" method="upgrade">

    Es gibt also einen Parameter "method". Wenn er fehlt, ist der Default method = "install", was während der Entwicklung eher unhandlich ist.

    Mit method = "upgrade" erspare ich mir das Deinstallieren, wodurch ich die Templates auch nicht immer wieder neu zuweisen muss. Beim Durchsuchen des Codes habe ich noch die Variante method = "patch" gefunden.

    Wann sollte ich was einsetzen? Was sind die Unterschiede zwischen "upgrade" und "patch"? Ich gehe einmal davon aus, dass das Deinstallieren in beiden Fällen kein Thema ist.

    Ich würde mich auch über die Links in die entsprechende Joomla!-Dokumentation freuen.

    Vielen Dank schon einmal, Thomas

  • Beim Durchsuchen des Codes habe ich noch die Variante method = "patch" gefunden.

    Finde ich bei mir nicht als XML-Eintrag. Da wäre nett, wenn du sagst, wo du das gefunden hast.

    Bei allen Erweiterungen, egal welcher Art, ist method="upgrade" empfohlen. Warum? Das weißt ja selber (siehe #1).

    Natürlich kann es in Ausnahmefällen sinnvoll sein, zuerst eine Deinstallation zu fordern, damit aller Müll entfernt wird. Man kann sich so das Löschen unnötiger, verwaister Dateien z.B. durch ein zu pflegendes <scriptfile> sparen. Aber ich pflege lieber das $deleteFiles und $deleteFolders im ScriptFile von Anfang an, anstatt gemachte Einstellungen, Inhalte jedesmal neu anlegen zu müssen.

    Übrigens könnte man auch ein method="tralalasonstwas" verwenden und das dann im eigenen Scriptfile irgendwie nutzen. Und an Joomla gibt man dann ein method=upgrade weiter oder so....

    Wie es beliebt.

  • Allen Danke für die schnelle Antwort!

    Finde ich bei mir nicht als XML-Eintrag. Da wäre nett, wenn du sagst, wo du das gefunden hast.

    Habe ich aus \libraries\src\Updater\DownloadSource.php, Zeile 61

    Code
     public const TYPE_PATCH = 'patch';

    geschlossen, steht direkt vor "upgrade".

    https://docs.joomla.org/Manifest_files#Root_element

    wird dir aber wohl auch nicht mehr Erkenntnise bringen.

    Du sagst es! Was genau passieren soll, ist nicht dokumentiert. "Patch" fehlt hier aber, ist vielleicht auch nur für andere Situationen gedacht.

    Dann bleibe ich bei upgrade.

    Vielen Dank noch einmal!