Packaging für Plugins

Wie einige vielleicht mitbekommen haben bin ich derzeit dabei, eine richtige Plugin-Gallerie für ContentLion zu erstellen. Dort bin ich mittlerweile so weit, dass ich Plugins im Backend von contentlion.de anlegen kann, die dann auf der Website und in den einzelnen Installationen angezeigt werden können.

Auch ein Plugin zur Verbindung nach FTP ist bereits vorhanden. Nun bin ich dabei, dass letzte Element der Reihe fertigzustellen. Das Tool, dass die Plugins herunterlädt und mit der FTP-Verbindung auf dem Server verteilt. Jedoch muss ich dafür per API anfragen, welche Bedingungen für das Plugin erforderlich sind und wo welche Dateien hin müssen.

Vor einiger Zeit habe ich euch die package.xml für das Update-System vorgestellt. Diese wird bereits erstellt und auf die Dauer wird daraus der Installer für das komplette ContentLion erstellt. So in der Art möchte ich auch die Plugins verteilen, so dass wir da auf eine einheitliche Schiene kommen. Also habe ich mir ein Format dazu überlegt. Dieses muss vorerst nicht in den Plugins eingebaut werden, sondern wird für den Anfang vom ContentLion-Server automatisch erstellt:

<?xml version="1.0" encoding="UTF-8"?>
<contentlion_package>
    <info>
        <dataname>insightsforearch</dataname>
        <displayname>Insights for Search</displayname>
        <short_description lang="de">Keywordanalyse</short_description>
        <revision>5</revision>
    </info>
    <files download_plain="http://www.example.org/"
           download_zip="http://www.example.org/insightsforsearch.zip">
        <folder name="system">
            <folder name="plugins">
                <folder name="insightsforsearch">
                    <folder name="classes">
                        <file name="lookup.php" />
                    </folder>
                    <folder name="language">
                        <file name="de.php" />
                        <file name="en.php" />
                    </folder>
                    <file name="activate.php" />
                    <file name="deactivate.php" />
                    <file name="info.php" />
                </folder>
            </folder>
        </folder>
    </files>
    <dependencies>
        <plugin type="required" name="testplugin" min_revision="10" max_revision="20" />
    </dependencies>
    <install>
        <include file="system/plugins/insightsforearch/activate.php" />
    </install>
</contentlion_package>

Das wichtigste sind hier die Dateien, die heruntergeladen und verteilt werden müssen. Beim Download haben wir uns dafür entschieden, dass der normale Download, aber auch ein komprimierter Download vorhanden ist. Aus diesem Grund gibt es auch zwei Urls. Ist eine Dependency vorhanden, schaut mein Plugin-Installer, ab das Plugin in der Version vorliegt. Tut es das nicht, muss es noch installiert werden.

Zu guter Letzt befindet sich auch noch eine Installationsroutine, mit der Dateien ausgeführt (includiert) werden können. Ich habe das Packging-Format extra etwas größer ausgelegt, damit wir mit diesem später auch Updates für den ContentLion-Core verteilen können.

Feedback und Kritik sind gerne erwünscht ;-)

Dieser Beitrag wurde unter Diksussion veröffentlicht. Setze ein Lesezeichen auf den Permalink.

2 Antworten auf Packaging für Plugins

  1. JuKu sagt:

    Super! ;)
    Aber was ist mit der deactivate.php? :D

    Die Installations-Dateien bleiben aber erhalten, oder? :D
    Wäre es möglich, dass Plugin-Entwicler sich einloggen könnten und dort Updates ihrer Plugins hochladen können? :D
    Könnte ja dafür nen Plugin erstellen… ;)

  2. JuKu sagt:

    Für was ist das?: 5

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>