[SPXPLUGINDOWNLOADER] : télécharger les plugins des dépôts

je-evrardje-evrard Member
août 2015 modifié dans Plugins
Hello,

Ce plugin va permettre de télécharger les plugins de differents dépôts (pluxopolis, spx...). Vous aurez aussi la possibilité de voir la liste de vos plugins installés ayant une mise à jour nécessaire.

1425759335.png

Caractéristiques :

[list=*]
[*]base du plugin a partir de MyPluginDownloader 1.2[/*]
[*]construction d'une base de dépôts[/*]
[*]ajout des dépôts pluxopolis, spx, jerry wham, the poulpe, ...[/*]
[*]révison du css[/*]
[*]rajout d'un lien pour les hits count pour affichage sur secretsitebox[/*]
[*]un nouveau lien apparait dans l'admin : Dépôt plugins[/*]
[*]plugin en vert : tout va bien[/*]
[*]plugin en bleu : nouveau et non installé[/*]
[*]plugin en rouge : mise a jour nécessaire[/*]
[/list]

Niveau d'usage : facile

Compatible : pluxml 5.1.7 - 5.2 - 5.3 - 5.3.1 - 5.4


spxplugindownloader 2.5 version officielle

Note: reste à gérer les compatibilités des versions selon le site local...dans une version 2.6

La liste des dépôts est en cours et vous pouvez participer à l'enrichir. Voici une petite documentation ici.

a noter l'excellent article : Repositorix: un gestionnaire de dépôt pour spxplugindownloader (ou comment automatiser son centre de dépot made by bronco)
«13456

Réponses

  • Cool. :)

    À noter, à la première installation : Erreur: Extension cURL non disponible.

    Installation de php-curl et c'est bon.


    à plus,

    Gzyg
  • Ce qui serait franchement top ce serait de centraliser le dépot histoire d'avoir une puissance de plugin à la wordpress...il manque pas grand chose!
  • Hello,

    Il est tout à fait possible de gérer plusieurs dépôts dans le même Plugin. Je vais sûrement cogiter dans ce sens.

    A plus


    Jeje
  • Bon boulot je-evrard :)
    très intéressant.
  • Yosh !

    Très bonne idée, ça m'évitera d'être toujours en retard sur les versions de tes plugins ^^
    je-evrard a écrit:
    Il est tout à fait possible de gérer plusieurs dépôts dans le même Plugin. Je vais sûrement cogiter dans ce sens.
    Ouh, la bonne nouvelle que voilà !

    Bon courage et merci pour ton travail.
  • Yep !

    Moi aussi ça va me permettre de mettre à jour mes différents sites assez facilement. :)

    A+

    je je
  • je-evrardje-evrard Member
    février 2015 modifié
    Hello,

    Voici une petite idée d'améliration du plugin avec notamment la gestion de plusieurs dépots de plugins.

    D'un point de vue fonctionnelle il serait intéressant de pourvoir filtrer les plugins sous forme d'onglets.

    Par exemple :

    [list=*]
    [*]Onglet "mes plugins" : liste tous les plugins installés sur le pluxml local et affiche les updates nécessaires [/*]
    [*]Onglet "tous les dépots" : Affiche la liste globale de tous les plugins de tous les dépots (pagination a voir ?)[/*]
    [*]Onglet "depotx" : affiche les plugins du depot x[/*]
    [*]Onglet "depoty" : affiche les plugins du depot y[/*]
    [*]...[/*]
    [/list]

    Nous pourrions évidemment en étant un peu fou faire un moteur de recherche des plugins avec comme description le nom et la description du plugin (option plus).

    Cela restant simple et pratique il sera nécessaire d'un point de vue du code d'avoir la liste des différents dépots en appelant une url :
    [== Indéfini ==]
    <?xml version="1.0" encoding="UTF-8"?>
    <document>
    	<repository>
    		<title><![CDATA[Pluxopolis]]></title>
    		<author><![CDATA[Stephane F]]></author>
    		<repositoryurl>...repository.xml</version>
    		<repositoryversionurl>...repository.version</version>
    		<site>http://www.pluxopolis.net</site>
    		<description><![CDATA[Liste des dépots des plugins pluxopolis]]></description>
    		<name>pluxopolis</name>
    		<icon>http://www.pluxopolis.net/.../icon.png</icon>
    	</repository>
    	<repository>
    		<title><![CDATA[Spx]]></title>
    		<author><![CDATA[je-evrard]]></author>
    		<repositoryurl>...repository.xml</version>
    		<repositoryversionurl>...repository.version</version>
    		<site>http://www.secretsitebox.fr</site>
    		<description><![CDATA[Liste des dépots des plugins spx]]></description>
    		<name>spx</name>
    		<icon>http://www.secretsitebox.fr/spx/depospx.png</icon>
    	</repository>
    ...
    <document>
    
    

    On a donc la liste des différents dépots avec le nom de code (name), l'url du depot, l'url de la version, la description et une icone éventuellement pour personnaliser le depot. Avec ceci nous avons les éléments pour passer a cette étape supérieure et bien pratique (un peu a la wordpress mais en plus simple :) )

    Cette url sera, bien sur, dans la configuration du plugin et pourra être changée par l'utilisateur voulant gérer sa propre liste.

    Voici donc pour une première idée d'évolution.

    Et puis après ?

    Il serait inéterrant d'avoir la même logique pour les thèmes non ? Il suffit juste d'avoir dans le thème un fichier infos.xml (au meme titre que les plugins, j'avais déja évoqué l'idée dans un post ici)....


    Qu'en pensez-vous ?

    A+

    jéjé
  • Pourquoi pas. Ça permettrait de palier le manque de l'onglet ressources officiel.
    Après quid de la gestion de la compatibilité vis à vis des versions de pluxml ?
  • je-evrardje-evrard Member
    février 2015 modifié
    Salut jerry,

    Actuellement pour le repository de la liste des plugins nous avons ceci:
    [== Indéfini ==]
    <?xml version="1.0" encoding="UTF-8"?>
    <document>
    	<plugin>
    		<title><![CDATA[spxprism]]></title>
    		<author><![CDATA[je-evrard]]></author>
    		<version>1.0</version>
    		<date>28/07/2014</date>
    		<site>http://www.secretsitebox.fr</site>
    		<description><![CDATA[Lightweight, extensible syntax highlighter based on Prism with shortcode (spxshortcodes)]]></description>
    		<name>spxprism</name>
    		<file>http://www.secretsitebox.fr/spx/spxprism.1.0.zip</file>
    		<icon>http://www.secretsitebox.fr/spx/spxprism.png</icon>	
    	</plugin>
    ...
    </document>
    

    I suffit juste de rajouter une ligne compatibilité avec un séparateur à virgule :
    [== Indéfini ==]
    <?xml version="1.0" encoding="UTF-8"?>
    <document>
    	<plugin>
    		<title><![CDATA[spxprism]]></title>
    		<author><![CDATA[je-evrard]]></author>
    		<version>1.0</version>
    		<date>28/07/2014</date>
    		<site>http://www.secretsitebox.fr</site>
    		<description><![CDATA[Lightweight, extensible syntax highlighter based on Prism with shortcode (spxshortcodes)]]></description>
    		<name>spxprism</name>
    		<file>http://www.secretsitebox.fr/spx/spxprism.1.0.zip</file>
    		<icon>http://www.secretsitebox.fr/spx/spxprism.png</icon>
    		<compatibility>5.1.6,5.1.7</version>
    	
    	</plugin>
    ...
    </document>
    

    Etant donné que l'on est sur le site en local, on connait la version de pluxml ($plxMotor->version). Il suffit donc juste d'afficher uniquement les plugins compatibles avec cette version. Si le paramètre n'existe pas ou si le champs est vide on considère que c'est bon pour toutes les versions.

    Ceci restant simple.
  • je-evrardje-evrard Member
    février 2015 modifié
    Voila pour illustrer ce que cela pourrait donner :

    1425054269.png
  • je-evrardje-evrard Member
    février 2015 modifié
    Hello,

    Bon ben ce que vous avez en image, c'est plus une image donc on passe en version 2.0.

    On a donc la possibilité de télécharger les plugins pluxopolis, spx et de voir la liste de ses propres plugins à jour ou non (avec ou sans dépôt associé)

    ## Version spx 2 (28/02/2015) ##
    [+] installation du système de dépôts
    [+] change traduction pour les plugins installés


    Note: On peux rajouter autant de dépot que l'on veux (jerry, the poulpe...). On peux en discuter.

    Enjoy,

    jéjé
  • Cool. Je m'en vais le tester. Merci pour tout ce boulot.
  • je-evrardje-evrard Member
    mars 2015 modifié
    Pas de bugs ? :) Bon.

    A menu de la prochaine version :

    Rajout d'un dépôt maison des plugins les plus utilisés

    [list=*]
    [*]ckeditor[/*]
    [*]mybetterurl[/*]
    [*]lockarticles[/*]
    [*]artgalerie[/*]
    [*]supercontact[/*]
    [*]champart[/*]
    [*]autosave[/*]
    [*]mycontact[/*]
    [*]mysocialbuttons[/*]
    [*]adhesion[/*]
    [*]spxtynimce[/*]
    [*]spxshortcodes[/*]
    [*]...[/*]
    [/list]


    Ne pas hésiter a débattre sur le sujet pour en rajouter. :)

    A +

    jéjé
  • GzygGzyg Member
    Ne reste plus qu'à faire la même chose pour les thèmes et les documentations et chacun aura son propre onglet "Ressources". :D


    À plus,
    Gzyg
  • GariGari Member
    Salut,

    Préambule : je n'ai pas encore pris le temps de télécharger et d'essayer ce plugin qui m'a l'air tout à fait intéressant.

    Pour avoir un truc super évolutif, ne peut-on pas imaginer créer un fichier xml "standard" reprenant les informations nécessaires pour gérer le dépôt ?

    Voici ce que j'imagine, en partant d'un plugin de téléchargement et d'installation de plugin "vide".

    - Page admin : on ajoute l'URL d'un fichier XML de dépôt. Ce fichier doit nécessairement être sur Internet (ou pas, d'ailleurs). C'est la seule action requise par l'utilisateur qui souhaite ajouter un dépôt. Ca revient globalement à faire comme pour apt sous debian.
    - Le plugin lit le fichier XML (s'il est accessible) et récupère toutes les informations utiles pour les présenter dans un onglet spécifique à ce dépôt.

    Voici ce qu'on pourrait imaginer dans ce fichier xml :
    <document>
      <depot>Le Nom De Mon Dépôt</depot>
      <plugin id="1">
        <nom>Nom Du Plugin</nom>
        <version>Version Du Plugin</version>
        <description>description</description>
        <icon>http://la/ou/trouver/licone</icon>
        <url>http://url/ou/telecharger/le/plugin/<url>
      </plugin>
    </document>
    

    Bien sur, il peut y avoir plein de balises <plugin>.
    Le plugin de téléchargement, en lisant le fichier XML, peut ainsi présenter les plugins, ils peut même savoir lesquels sont installés et chargés (class_exists(/document/plugin/nom)), ceux qui sont juste installés (en testant l'existence du répertoire), voire même si certains ont une mise à jour (comparaison de la version du XML du dépôt et de celle du fichier info du plugin installé).
    Lors de la mise à jour d'un plugin, on peut également imaginer une opération automatique de "ondeactivate" (je ne me souviens pas si cette fonction existe et de son nom exact) de l'ancien plugin avant effacement (ou archivage) du plugin, avant d'installer le nouveau plugin et de lui faire lancer la fonction "onactivate".

    Avec cette façon de faire, on pourrait imaginer des dépôts "standards" inclus automatiquement dans le plugin (mais éventuellement supprimables par l'utilisateur), et l'ajout de nouveaux dépôts serait aussi simple qu'un copier-coller d'URL. Vraiment, je copie le fonctionnement de apt ;)
  • Hello,

    ça m'intéresse ! Comment qu'on ajoute un dépot, et qu'est-ce que je dois mettre en place de mon coté ?
  • je-evrardje-evrard Member
    mars 2015 modifié
    Bonjour,

    Pour info j'ai fait une petite documentation pour les gens qui veulent se joindre à la liste des dépots : ici

    Ne pas hésiter à me dire si il y a des zones d'ombre.

    A noter que je n'ai rien inventé, j'ai juste rajouté un niveau au dessus (gestion des dépots) du système mis en place par stef.

    Avis donc aux amateurs pour un rajout dans liste globale des dépots, je me ferais un plaisir de vous rajouter.

    a+

    jéjé
  • je-evrardje-evrard Member
    mars 2015 modifié
    ## Version spx 2.1 (07/03/2015) ##
    BUG sur la gestion du cache

    Ajout d'un depot

    Ajout d'un depot best of reprenant pas mal de plugins indispensables !

    1425759335.png
  • GariGari Member
    Salut,

    Je réalise que mon message précédent était aux trois-quart hors-sujet (enfin, j'ai l'impression d'être le gars qui se ramène en disant "hé les mecs, et si on inventait le fil à couper le beurre ?").
    Cependant, après installation du plugin et test, je réitère ma proposition : que la possibilité de rajouter un dépôt soit fournie à l'utilisateur, sur la base de l'insertion d'une simple URL pointant vers un fichier xml "dépôt" correctement construit dans la partie "config" du plugin.

    J'ai également une remarque : lorsque je clique sur "Paramètres", le bouton "Dépôts plugins" se retrouve noyé dans les sous-menus de "Paramètre" (en l'occurrence, il apparaît entre "Options d'affichage" et "Comptes utilisateurs"). Est-ce que ça n'arrive qu'à moi ? Je précise que je suis sur un 5.3.1 tout neuf avec le thème par défaut et un seul autre plugin installé pour le test.
  • je-evrardje-evrard Member
    mars 2015 modifié
    Gari a écrit:
    Je réalise que mon message précédent était aux trois-quart hors-sujet (enfin, j'ai l'impression d'être le gars qui se ramène en disant "hé les mecs, et si on inventait le fil à couper le beurre ?").
    Il y a pas de soucis. C'est un forum pour débattre et avancer et toutes les idées sont bonnes. Ici le système de dépot a déjà été cogité effectivement.
    Gari a écrit:
    Cependant, après installation du plugin et test, je réitère ma proposition : que la possibilité de rajouter un dépôt soit fournie à l'utilisateur, sur la base de l'insertion d'une simple URL pointant vers un fichier xml "dépôt" correctement construit dans la partie "config" du plugin.
    Oui bien sur cela va faire partie intégrante des évolutions, j'ai juste pas eu le temps encore de l'implémenter.
    Gari a écrit:
    J'ai également une remarque : lorsque je clique sur "Paramètres", le bouton "Dépôts plugins" se retrouve noyé dans les sous-menus de "Paramètre" (en l'occurrence, il apparaît entre "Options d'affichage" et "Comptes utilisateurs"). Est-ce que ça n'arrive qu'à moi ? Je précise que je suis sur un 5.3.1 tout neuf avec le thème par défaut et un seul autre plugin installé pour le test.
    Effectivement. J'ai donné une position 10 qui n'est pas forcément adapté. Je vais voir ça.

    Merci en tout cas pour tes remarques. L'idée pour moi est de faire un plugin rassemblant un maximum de dépôts ce qui a mon avis fera gagner du temps a l'ensemble de la communauté, donc n'hésitez pas à me contacter (jerry, rocky...) pour je puisse vous rajouter dans la liste qui ne comporte pour le moment que 3 dépots (pluxopolis, spx, bestof). Par la suite j’intégrerai un moteur de recherche afin de trouver plus facilement le plugin dont on a besoin.

    a+

    jéjé
  • Hello,

    Mon dépot est prêt:
    [== XML ==]
    <repository>
    	<title><![CDATA[The Poulpe.net]]></title>
    	<author><![CDATA[Rockyhorror]]></author>
    	<repositoryurl>http://thepoulpe.net/repository/repository.xml</version>
    	<repositoryversionurl>http://thepoulpe.net/repository/repository.version</version>
    	<site>http://thepoulpe.net</site>
    	<description><![CDATA[Les plugins du poulpe pour PluXml]]></description>
    	<name>The Poulpe</name>
    	<icon>http://thepoulpe.net/repository/logo-orange-small.png</icon>
    </repository>
    
  • je-evrardje-evrard Member
    mars 2015 modifié
    Hello,

    Merci. je viens de t'ajouter dans la liste. Pas besoin de mise à jour du plugin ça c'est cool.
    J'ai modifié le xml comme suit :
    <repository>
    	<title><![CDATA[The Poulpe.net]]></title>
    	<author><![CDATA[Rockyhorror]]></author>
    	<repositoryurl>http://thepoulpe.net/repository/repository.xml</repositoryurl>
    	<repositoryversionurl>http://thepoulpe.net/repository/repository.version</repositoryversionurl>
    	<site>http://thepoulpe.net</site>
    	<description><![CDATA[Les plugins du poulpe pour PluXml]]></description>
    	<name>poulpe</name>
    	<icon>http://thepoulpe.net/repository/logo-orange-small.png</icon>
    </repository>
    

    le name correspond au nom de code utilisé pour faire un tableau associatif (pas d'espace, pas de majuscule...)

    Bon ben on a 3 dépôts ! Allo Jerry, tu veux te joindre a nous ?

    a+

    jéjé
  • PPmarcelPPmarcel Member
    mars 2015 modifié
    Je l'ai testé, et il marche super bien (a part sa position dans la sidebar, problème déjà remonté). C'est pratique d'avoir plusieurs dépots dans un seul outil de management.
  • Toutes mes contributions sont sur github (https://github.com/jerrywham et https://github.com/jerrywham-pluxml5-2/ pour les anciennes versions).
  • je-evrardje-evrard Member
    mars 2015 modifié
    jerry a écrit:
    Toutes mes contributions sont sur github (https://github.com/jerrywham et https://github.com/jerrywham-pluxml5-2/ pour les anciennes versions).

    Effectivement et c'est très bien mais pour que ça fonctionne il faut 2 fichiers que tu peux (si tu le veux) mettre dans un dossier de ton git (/repository par exemple)[list=*]
    [*]https://github.com/jerrywham/repository/repository.version --> retourne le numero de version de ton repository[/*]
    [*]https://github.com/jerrywham/repository/repository.xml --> liste le detail de tes différents plugins (voir formattage ci-joint)[/*]
    [/list]

    le repository.xml se présente sous cette forme :
    [== Indéfini ==]
    <?xml version="1.0" encoding="UTF-8"?>
    <document>
    	
    	<plugin>
    		<title><![CDATA[Gutama]]></title>
    		<author><![CDATA[jerry wham]]></author>
    		<version>1.6</version>
    		<date>01/10/2013</date>
    		<site>http://www.ecyseo.net/</site>
    		<description><![CDATA[Plugin x detail]]></description>
    		<name>gutama</name>
    		<file>https://github.com/jerrywham/gutuma/gutuma.1.6.zip</file>
    		<icon>https://github.com/jerrywham/gutuma/gutuma.png</icon>	
    	</plugin>
    ...
    </document>
    

    L'idée c'est d'avoir cette liste à jour et il n'y a que toi qui peux le savoir par rapport a tes changements.
    Je pourrais gérer ta liste sur mon site mais ça ne semble pas etre une bonne solution. Je sais que c'est pénible a créer, la mise à jour restant beaucoup plus simple. (+1 sur la version + changement du numéro de version du plugin concerné).

    A noter : l'icone peut etre générée en base 64 et non appelé via une url

    En attente de te lire.

    A+ et merci

    jéjé
  • Bon, il va falloir que je m'y colle alors 8.(
  • Merci Jerry (vraiment). C'est le début d'un beau centre de dépôt, j'espère qu'il va continuer a grandir...
  • cfdevcfdev Member
    Super les gars c'est du beau travail! en effet ça commence à rocker du poney !

    @Jéjé la fonction mettre à jour ne se réinitialise pas lorsque je clique dessus avec AutoSave - version 0.4ter (17/02/2015)
  • TomekTomek Member
    cfdev a écrit:
    @Jéjé la fonction mettre à jour ne se réinitialise pas lorsque je clique dessus avec AutoSave - version 0.4ter (17/02/2015)
    Pareil chez moi.
  • Ok je regarde pas de soucis. je vous tiens au courant.
Connectez-vous ou Inscrivez-vous pour répondre.