Vérifier la dernière version des plugins utilisés.
niqnutn
Member
Bonjour,
En regardant le plugin spxplugindownloader de Je-evrard, je me demande s'il n'est pas possible d'ajouter une fonction dans PluXml pour vérifier qu'on utilise bien la dernière version disponible.
Je pense à quelque chose de simple, dans la Gestion des plugins on pourrait simplement afficher si un plugin utilisé dispose d'une version plus récente.
Dans la page "Informations relatives à PluXml" il y a une fonction pour vérifier si on utilise la dernière version de PluXml. Est ce qu'on ne peut pas généraliser ça avec les plugins ?
Je pense que ça peut être utile à tous mais sans vouloir remplacer les fonctions de spxplugindownloader.
En regardant le plugin spxplugindownloader de Je-evrard, je me demande s'il n'est pas possible d'ajouter une fonction dans PluXml pour vérifier qu'on utilise bien la dernière version disponible.
Je pense à quelque chose de simple, dans la Gestion des plugins on pourrait simplement afficher si un plugin utilisé dispose d'une version plus récente.
Dans la page "Informations relatives à PluXml" il y a une fonction pour vérifier si on utilise la dernière version de PluXml. Est ce qu'on ne peut pas généraliser ça avec les plugins ?
Je pense que ça peut être utile à tous mais sans vouloir remplacer les fonctions de spxplugindownloader.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
La version du plugin est lue via le fichier infos.xml et est comparée a la version existante du plugin dans le dépot x ou y.
Ce qui permet de savoir si le plugin est a jour ou pas.
a+
jéjé
lastVersion : (dernière version) contiendrait une url permettant de télécharger un fichier texte d'une ligne avec le numéro de la dernière version
repository: (dépôt) contiendrait une url pour télécharger le fichier zip de l'archive
frequency: frequence en jours pour vérifier s'il y a une nouvelle version
Il faudrait également créer une fonction suopplémentaire dans la classe PlxPlugin, nommée par exemple newVersion() qui renverrait False ou l'adresse pour télécharger le nouveau paquet zip du plugin. Cette fonction comparerait la version contenue dans infos.xml avec celle téléchargée avec le lien lastVersion.
Il suffirait ensuite d'appeler cette fonction avec le hook AdminFootEndBody quand l'administrateur du site est connecté pour lui afficher un message.
En attendant la prochaine version de Pluxml, il suffirait de convenir des champs supplémentaires pour infos.xml et éventuellement d'une fonction à rajouter à chaque plugin.
Je rajoute une autre idée. Cela serait bien s'il y avait sur pluxml.org un tableau ou une base de données contenant pour chaque plugin :
une date, un nom, une catégorie, un auteur, le numéro de la dernière version, un descriptif court, une url pour télécharger l'archive zip.
A++
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
il me semble que spxplugindownloader centralise les URL des dépôts (puisque l'information n'est pas dispo ailleurs), mais le fonctionnement pourrait être similaire.
Il n'y a pas besoin de tout réinventer pour vérifier la version du plugin.
SPXPLUGINDOWNLOADER fait déja tout ça, centralisation de plugin, téléchargement et installation automatique, vérification de la dernière version des plugins...
personnellement, je n'ai pas besoin des fonctionnalités de SPXPLUGINDOWNLOADER mais simplement de savoir si je suis à jour.
En plus, le fait d'ajouter des infos sur le dépôt pourrait être utilisé par le plugin de Je-evrard et n'a pour objectif de le remplacer.
@bazooka07: il y a déjà une page http://wiki.pluxml.org/index.php?page=Plugins+non+officiels même si on pourrait mieux structurer l'information sous forme de tableau.
sur la date et numéro de version, c'est trop volatile et ça sera difficilement à jour. pour le reste c'est une bonne idée et j'ajouterai la version de PluXml concernée.
Et un lien vers ledit site juste pour ne pas chercher sur le Net où se trouve la mise à jour.
si tu n'as pas de site, je ne vois pas comment on peut gérer ça. de toute façon, je vois ça comme une option du plugin.
il faudrait effectivement avoir le lien vers la version la plus récente du plugin.
ça ressemble à spxdownloader mais en gardant une fonction très basique. si quelqu'un a une bonne idée, pourquoi ne pas s'en inspirer mais surtout qu'on définisse comment gérer les versions pour tous les plugins.
Ensuite pour obtenir le numéro de version du plugin XXXXXX en ligne, il suffit de consulter l'adresse:
http://www.monsite.com/plugins/version?plugin=xxxxxx
De la même façon, pour obtenir le fichier complet aux format xml du fichier infos.xml, il suffiit de faire:
http://www.monsite.com/plugins/version?plugin=xxxxxx&infos
Je vous ai mis une démo en ligne chez http://www.kazimentou.fr/pluxml-plugins/ si vous voulez tester.
Sur le site j'ai rajouté un autre script php qui génére un tableau des plugins dans ce dossier plugins.
Les scripts sont en ligne si vous voulez les employer.
Reste plus qu'à créer la fonction magique à insérer dans la classe de votre plugin ou dans plxPlugin
Des suggestions ?
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
en utilisant github tu peux consulter un fichier type texte mais pas sûr que tu puisse avoir un script PHP. en plus si ton script doit être modifié, c'est plus contraignant que de modifié les données de ton plugin.
@bazooka07: ton site n'est pas accessible
A titre de comparaison, quand je change d'onglet dans SPXPLUGINDOWNLOADER ça me prends facilement entre 5 et 7 secondes car il y a 7 dépôts à contacter et consulter. Quand l'un d'eux a un soucis, cela prends encore plus de temps. Je l'accepte car j'ai installé ce plugin (pour profiter de la fonctionnalité évoquée).
En "core", il est hors de question d'attendre aussi longtemps pour afficher la page des plugins. ]:D
après si ton serveur n'est pas capable de récupérer quelques fichiers, il doit y avoir un pb. au pire tu n'as pas de résultat.
pluxml va vérifier si tu utilises la dernière version donc c'est à peu près pareil.
cette fonctionnalité serait au mieux appeler quand on est sur /core/admin/parametres_plugins.php ou éventuellement sur /core/admin/parametres_infos.php donc pas de quoi fouetter un chat.
@kowalsky: c'est une discussion et je ne suis pas le responsable de projet. si effectivement cela ne peut pas être intégré au projet rien n’empêche de discuter de la meilleure solution pour gérer ça au sein d'un plugin.
actuellement SPXPLUGINDOWNLOADER ne gère pas tous les plugins et ça pourrait améliorer cette partie et éventuellement pas besoin de développer autre chose en parallèle.
Vous pouvez consulter cette adresse chez LWS en remplacement:
http://echecs-annonay.fr/pluxml-plugins/
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
par rapport à ce qui a été dit par @kowalsky, on pourrait faire la vérification uniquement sur un bouton "Rechercher une nouvelle version du plugin".
A) mon idée était qu'une fonction équivalente à version_compare() de je-evrard soit intégré à la classe plxPlugin pour éviter que chacun aille bidouiller un truc dans son coin. Mais pour une autre raison, je pense ne pas en avoir besoin
C'est sûr que ça doit frustant d'attendre la réponse du dépôt de plugins qui bloque Pluxml pendant la génération des pages Web. Par contre, si on consulte le dépôt pendant que tu lis la page HTML générée, l'éventuelle lenteur du dépôt peut te passer inarperçue. De plus, on peut se limiter à conserver un dépôt par page web
C) Conséquence il faut mixer plusieurs techniques : php pour controler l'administrateur et récupérer quelques infos sur les plugins installés sur le serveur, javascript, ajax et json pour consulter les dépôts depuis le navigateur et envoyer des messages d'alerte, la session pour mémoriser les dépôts à parcourir. C'est un peu plus complexe que les solutions déjà évoquées mais cela me semble jouable.
A++
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Je voudrais éclaircir le fonctionnement de spxplugindownloader pour chasser toute ambiguité dans un premier temps.
Comment ça fonctionne ?
La première fois dans l'admin du plugin
[list=*]
[*]récupère le numéro de version des magasins[/*]
[*]récupère la liste de plugins des magasins[/*]
[/list]
Ayant récupéré la liste des magasins, il appel les différents magasins
[list=*]
[*]récupère le numéro de version du magasin[/*]
[*]récupère la liste des plugins du magasin[/*]
[/list]
Le plugin met tout en cache dans le dossier plugins/cache/
Que se passe t-il les fois suivantes ?
Le plugin ne fait des requetes que sur :
[list=*]
[*]numéro de version des magasins[/*]
[/list]
il le compare avec celui en cache, si c'est le meme, il ne fait rien, sinon il recharge la liste.
Il fait de meme avec les versions de magasins.
On a donc pour chaque magasin :
[list=*]
[*]récupère le numéro de version du magasin[/*]
[/list]
il le compare avec celui en cache, si c'est le meme, il ne fait rien, sinon il recharge la liste du magasin en question.
Ceci permet de gagner du temps dans les requêtes. Je pourrais meme mettre un système en place pour que les requetes de version se fasse une fois par heure en plaçant un flag date-H dans le répertoire temporaire. Il y aurait donc aucune requete pendant une heure et une fluidité parfaite, la mise à jour d'un auteur se fera dans l'heure maxi. on pourrait meme imaginer que ce paramètre d'une heure soit mis dans la config du plugin lui-meme mais c'est une autre histoire.
Ceci étant dit tout ceci reste temporaire. De mon coté, dans mes installations pour des clients je n'ai de base qu'un plugin a mettre à la main (devinez lequel), le reste est automatique et c'est bien pratique. Mais c'est parce qu'aujourd'ui nous n'avons pas de gestionnaire de ressource qu'il existe des solutions temporaires ou des futures solutions temporaires (le sujet de ce forum par exemple).
Le gestionnaire de ressources va arriver tot ou tard sur pluxml.org. Chaque auteur pourra avoir son compte en frontend, administrer ses plugins et ses thèmes en lui joignant des propriétés (catégories, mots clefs..) qui seront bien utiles par la suite. Tout le problème d'avoir plusieurs dépots aura disparu. Un seul dépot centralisé et un controle de la team en backend (catégories, auteurs, plugins, thèmes...).
Coté pluxml un plugin et un seul pourrait répondre à la problématique d'installation et de mise à jour des thèmes et des plugins via un moteur de recherche par tags, auteurs, catégories, par nom, par notoriété... mais ce ne sera pas spxplugindownloader (bien sur) mais un autre plugin. Petit a petit l'oiseau fait son nid et c'est déja pas si mal.
a+
jéjé
Avec une vérif. de version.
Faudrait voir ce que Stéphane veut sachant qu'il y a le risque d'alourdir... mais que ça peut aider les gens à installer des plugins facilement.
Je pense aussi que le fait de vérifier les versions des plugins ne peut qu'alourdir la backend du CMS.
Si cette fonction était installée, il faudrait avoir l'option pour l'activer ou pas.
Je vais rajouter l'option dans spxplugindownloader rapidement.
Pour le reste le plugin officiel orienté ressource peut-etre déja installé quand on télécharge pluxml et ça allourdie rien du tout.
on pourrait lancer cette fonction manuellement, ce qui limiterai certains pb de vie privée et autres (éventuellement désactivable dans un paramètre).
on pourrait gérer ça sous la forme de plugin un certain temps et voir si l'intégrer au projet est intéressant.
le plugin de je-evrard est déjà dispo mais si on veut se baser sur son travail, il faudra savoir comment gérer TOUS les plugins (pour ceux qui veulent bien). pour ça, il faut définir clairement comment le gérer et que ça soit documenter.
j'entends bien l'argument que ça peut alourdir PluXml, bien qu'on peut faire ça proprement, mais en terme de sécurité et de simplicité d'utilisation c'est pas non plus un gadget et comme dit plus haut, ça peut être fait uniquement manuellement.
personnellement, si ça doit être un plugin plus ou moins officiel ça me va. Il faut qu'on puisse gérer ça pour tout le monde et pas dépendre de quelqu'un pour ajouter son dépot perso. si on arrive à faire évoluer spxplugindownloader ça me conviendrait aussi.
Il y a bien des manières de faire ça et faudrait trouver la plus intéressante. Il faut que les responsables de PluXml et les autres arrivent à définir les orientations.
Je pense que ça intéresse plus d'une personne et qu'il y a un véritable besoin derrière.
Nouvelle version de mon gestionnaire pour le dépôt de plugins.
Il tient maintenant en un seul petit fichier PHP.
Dans le fichier infos.xml de mes plugins, je rajoute 2 champs optionnels :
repository
requirements
C'est par ici : http://www.kazimentou.fr/pluxml-plugins/
Enjoy it !
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
après je sais pas si l'utilisation de ziparchive ne peut pas être source de pb.
reste à gérer ça du coté de PluXml pour lancer la vérification des versions.
après on pourra créer un plugin pour la gestion des dépôts (avec l'ajout des archives via backend)
edit: je viens d'avoir un pb avec un plugin qui fonctionne uniquement avec PuXml 5.4 et je me demandais comment faire pour garder les versions d'un plugin proprement.
ce que propose bazooka07, c'est d'avoir une entrée par plugin mais je ne vois pas comment on peut gérer les versions successives.
edit2: j'ai quelques pistes d'améliorations.
@bazooka07: je pense qu'il faudrait mieux récupérer la date présente dans infos.xml plutôt que prendre la date d'ajout du fichier dans le dépôt.
au moins, il faudrait libellé: ajouté au dépot le xx/xx/xxxx .
on pourrait également ajouté une colonne avec "plugin créé le xx/xx/xx" mais je suppose que c'est le format de date qui risque de posé un petit pb à un moment donné.
Gérer les différentes versions d'un plugin
- parce que certains plugins marchent avec 5.3 et pas 5.4 et inversement (cf data/media)
Du coup, il faudrait obligatoirement que les différentes versions de plugin intègrent leur numéro dans le nom d'archive.
- autoriser uniquement les caractères [0-9][.] après le "-" ( et peut être master pour github)
- nom de fichier possible: pluginA.zip ou plugin-1.0.zip (on doit retrouver "1.0" dans infos.xml)
Contenu possible d'une archive:
pluginA.zip
|_ pluginA (dossier)
|_ infos.xml
|_ pluginA.php
ou
pluginA-1.0.zip
|_ pluginA (dossier)
|_ infos.xml
|_ pluginA.php
ou
pluginA-1.0.zip
|_ pluginA-1.0 (dossier)
|_ infos.xml
|_ pluginA.php
Dans le tableau, il ne faudrait afficher que la dernière version du plugin.
Fonction pour lister les versions disponibles d'un plugin donné:
http://www.kazimentou.fr/pluxml-plugins/index.php?plugin=xxxxxx&versions
Fonction pour télécharger la dernière version du plugin: (si on utilise un nom de fichier du type "pluginA-1.0.zip")
http://www.kazimentou.fr/pluxml-plugins/index.php?plugin=xxxxxx&download
Utiliser la date de infos.xml plutôt que la date d'ajout dans le dépôt.
actuellement on a la date d'ajout du plugin dans le dépôt mais pas la date de création du plugin.
- pb avec le format de date -> on l'affiche sous forme de texte mais c'est pas uniformisé dans le formulaire
Pb performance ?
Ajouter un cache au lieu de récupérer les infos dans les .zip
- on crée le cache en vérifiant que le fichier cache.xml est plus récent que les plugins présents dans le dépôt.
Pendant qu'on est dans les propositions, il faudrait voir si on a besoin de différencier plugin et thème.
en ajoutant simplement un fichier infos.xml dans l'archive du thème ça fonctionne très bien.
http://blog.niqnutn.com/data/documents/011/pluxml-plugins/index.php
Petite mise à jour de mon gestionnaire de dépôts :
[list=*]
[*]affichage des icônes des plugins[/*]
[*]retouches cosmétiques[/*]
[*]numéro de version dans le source[/*]
[/list]
Cela se voit ici : http://kazimentou.fr/pluxml-plugins/
Si vous regardez le code source de la page, pas de panique à la vue de gros paquets incompréhensibles d'octets.
Les logos sont embarqués dans la page html pour économiser de la base passante du serveur.
Cela devrait s'afficher plus vite car le serveur ne répond qu'une fois.
A++
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bon, j'ai rajouté la possibilité de télécharger un catalogue contenant l'ensemble des infos.xml au format xml.
Cela évitera de charger les fichiers infos.xml de tous les plugins, un par un.
A+
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
L'idée est de ne pas se préoccuper du nom de l'archive, on récupère directement le fichier infos.xml .
Après on enregistre toutes les infos.xml dans un cache, l'équivalent de ton catalogue.
L'objectif final est de pouvoir gérer les différentes versions d'un plugin.
Pour le moment, j'ai le tableau avec les infos de tous les plugins.
Je m'attaque aux pb de versions: afficher la dernière version dispo (/index.php?plugin=xxxxxx ), lister toutes les versions présentes dans le dépôt et afficher seulement la dernière version dans le tableau.
en cours