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

2456

Réponses

  • je-evrardje-evrard Membres
    mars 2015 modifié
    Rocky,

    Pour AutoSave : Le fichier info du plugin comporte un numéro de version alphanumérique et ça ne peux par marcher.

    <version>0.4ter</version>

    Le numéro de version doit être de type number : n ou n.n mais pas de caractère alaphabétique.

    a+
  • je-evrardje-evrard Membres
    mars 2015 modifié
    Dans l'idée d'avancer dans le plugin je vais intégrer la possiblité de gérer les dépots des thèmes.

    Ne pas hésiter à me contacter si vous avez deja créer 4 ou 5 thèmes ou plus et que vous voulez créer un dépot pour le voir apparaitre dans le plugin. Je ferais une petite doc en temps et en heure.

    a+

    jéjé
  • aruhunoaruhuno Membres
    Yosh !

    Tout d'abord un grand merci à toi !
    Maintenant, place à un petit bug, lorsqu'on déroule "Paramètres" :
    1426083047.png

    Bon courage pour la suite =]
  • Merci aruhuno. C'est déja fixé pour la prochaine version. Je suis a la moitié du developpement pour intégrer les thèmes en dépot.

    Si tout le monde joue le jeu, je pense que l'on peux faire un plugin de dépôt réellement puissant.

    Les avantages sont la :

    [list=*]
    [*]gain de temps[/*]
    [*]outil tout en un[/*]
    [*]plus a chercher dans le wiki a droite a gauche[/*]
    [*]plus d'opération à la main, tout en un clic[/*]
    [*]...[/*]
    [/list]

    Que du bonheur !
  • Jerry WhamJerry Wham Membres
    mars 2015 modifié
    Vraiment puissant en effet.
    [del]Juste une ou deux choses que je n'ai pas bien comprises :[/del]
    La version du repository correspond à quoi ? C'est la version du dépôt. On commence à 1 et dès qu'un plugin est modifié, on incrémente et on modifie les informations concernant le plugin dans le fichier xml générique du dépôt.
    Le fichier xml décrit un plugin en particulier ou tous les plugins présents ? Il décrit tous les plugins du dépôt (chaque description est entre les balises <plugin></plugin>)
    Mon dépôt github ne contient pas que des plugins pluxml. Comment faire pour les filter ? Créer un nouveau dépôt spécifique aux plugins ? Non, il suffit de renseigner une balise <plugin></plugin>
  • je-evrardje-evrard Membres
    mars 2015 modifié
    Oui tout a fait jerry. C'est le xml qui décrit ta liste de plugins. Voici une petite documentation ici.
  • Jerry WhamJerry Wham Membres
    mars 2015 modifié
    Pour la liste des dépots, il serait bien de l'avoir en local avec possibilité d'édition en ligne (config). Actuellement, si j'ai bien compris, elle est hébergée chez toi, c'est ça?
  • je-evrardje-evrard Membres
    mars 2015 modifié
    Oui c'est ça. Mais t'inquiètes c'est prévu dans un textarea de mettre le xml direct des dépots. Pas de soucis. Le but est de faire un plugin 100% générique. Juste une question de temps. J'ai pas mal de boulot en ce moment (comme beaucoup d'ailleurs).
  • Voici les informations concernant mon dépôt :
    <repository>
    		<title><![CDATA[Ecyseo]]></title>
    		<author><![CDATA[Cyril MAGUIRE]]></author>
    		<repositoryurl>https://github.com/jerrywham/repositoryForPluxml/blob/master/repository.xml</version>
    		<repositoryversionurl>https://github.com/jerrywham/repositoryForPluxml/blob/master/repository.version</version>
    		<site>http://www.ecyseo.net</site>
    		<description><![CDATA[Liste des dépots des plugins de Jerry Wham]]></description>
    		<name>Ecyseo</name>
    		<icon>http://www.ecyseo.net/plugins/favicon/img/apple-touch-icon.png</icon>
    	</repository>
    

    Pour l'instant, je n'ai mis qu'un plugin pour voir si je ne me suis pas trompé.
  • je-evrardje-evrard Membres
    mars 2015 modifié
    Ok. Ton url n'est pas bonne je l'ai modifié mais rien de grave.
    [== Indéfini ==]
    <repository>
    		<title><![CDATA[Ecyseo]]></title>
    		<author><![CDATA[Cyril MAGUIRE]]></author>
    		<repositoryurl>https://raw.githubusercontent.com/jerrywham/repositoryForPluxml/master/repository.xml</repositoryurl>
    		<repositoryversionurl>https://raw.githubusercontent.com/jerrywham/repositoryForPluxml/master/repository.version</repositoryversionurl>
    		<site>http://www.ecyseo.net</site>
    		<description><![CDATA[Liste des dépots des plugins de Jerry Wham]]></description>
    		<name>Ecyseo</name>
    		<icon>http://www.ecyseo.net/plugins/favicon/img/apple-touch-icon.png</icon>
    	</repository>
    

    Dans ta liste de plugin il faut modifier l'url l'icone.
    https://raw.githubusercontent.com/jerrywham/phpGraphForPluxml/master/icon.png

    Le zip n'est pas valide car il a une structure au dézip phpGraphForPluxml-master/phpGraphForPluxml-master au lieu phpGraphForPluxml-master/phpGraphForPluxml

    Après ça sera parfait. Tu es dans le dépot Jerry !!!!
  • C'est github qui ajoute master. Comment fait-on pour l'éviter ???
  • Deux petites remarques :
    [list=*]
    [*]l'icone générique n'est pas affichée si le plugin d'origine n'est possède pas[/*]
    [*]le bouton "installé" est fonctionnel et envoie une requête alors qu'il ne devrait pas (puisque le plugin est déjà installé)[/*]
    [/list]
  • Pour les archives githubesques, je te propose la modification suivante du fichier admin.php afin que le téléchargement se passe comme il faut.
    Remplacer les lignes à partir de la ligne 157, jusqu'à la ligne contenant "unlink($zipfile);" par :
    foreach($_POST['button'] as $plugName => $dummy) {
    		$depot = $_POST["buttonrepository"][$plugName];
    		$file = $astores[$depot]["plugins"][$plugName]["file"];
    		
    		if (strpos($file, 'github') !== false) {
    			$suffix = '-master';
    		} else {
    			$suffix = '';
    		}
    		//echo ("plugin = ".$plugName." depot=".$depot);
    		//echo ("file = ".$file."\n</br>");
    	
    	
    		# on teste si le fichier distant est dispo
    		if(!spxplugindownloader::is_RemoteFileExists($file)) {
    			plxMsg::Error($plxPlugin->getLang('L_ERR_REMOTE_FILE'));
    			header('Location: plugin.php?p=spxplugindownloader&groupe='.$groupe);
    			exit;
    		}
    		
    		# téléchargement du fichier distant
    		$zipfile = PLX_PLUGINS.$plugName.$suffix.'.zip';
    
    		if(!spxplugindownloader::downloadRemoteFile($file, $zipfile)) {
    			plxMsg::Error($plxPlugin->getLang('L_ERR_DOWNLOAD'));
    			header('Location: plugin.php?p=spxplugindownloader&groupe='.$groupe);
    			exit;
    		}
    
    		# dezippage de l'archive
    		require_once(PLX_PLUGINS."spxplugindownloader/dUnzip2.inc.php");
    		$zip = new dUnzip2($zipfile); // New Class : arg = fichier à dézipper
    		$zip->unzipAll(PLX_PLUGINS, "", true, 0755); // Unzip All  : args = dossier de destination
    
    		# on renomme le dossier extrait
    		rename(PLX_PLUGINS.$plugName.'-'.str_replace('.zip', '', basename($file)), PLX_PLUGINS.$plugName);
    		rename(PLX_PLUGINS.$plugName.$suffix, PLX_PLUGINS.$plugName);
    
    		# on supprimer le fichier .zip
    		unlink($zipfile);
    
    J'ai testé et ça fonctionne.

    T'en penses quoi ?
  • je-evrardje-evrard Membres
    mars 2015 modifié
    Salut jerry,

    J'ai fait une erreur en te disant que ça ne marche pas au niveau du zip pour toi. En fait ça marche.

    Petite analyse pour comprendre :

    Pluxopolis

    https://github.com/Pluxopolis/plxMyGoogleAnalytics/archive/1.2.1.zip

    plxMyGoogleAnalytics-1.2.1.zip (consistance plxMyGoogleAnalytics-1.2.1/plxMyGoogleAnalytics-1.2.1)

    upload du zip plugins/plxMyGoogleAnalytics.zip

    dezip plugins/plxMyGoogleAnalytics-1.2.1/

    remame : plugins/plxMyGoogleAnalytics/

    Jerry

    https://github.com/jerrywham/phpGraphForPluxml/archive/master.zip

    phpGraphForPluxml-master.zip (consistance phpGraphForPluxml-master/phpGraphForPluxml-master)

    upload du zip plugins/phpGraphForPluxml.zip

    dezip plugins/phpGraphForPluxml-master/

    remame : plugins/phpGraphForPluxml/

    Secretsitebox
    http://www.secretsitebox.fr/spx/spxprism.1.0.zip

    spxprism.1.0.zip (consistance spxprism.1.0/spxprism)

    upload du zip plugins/spxprism.zip

    dezip plugins/spxprism/

    remame : la fonction ne fait rien car ne contien pas de -


    Tu as juste à faire un + 1 sur ton dépot pour afficher l'icone. Désolé pour l'erreur jerry.

    a+

    jéjé
  • Je confirme. En effet, ça fonctionne.
    Voici quelques suggestions d'améliorations :
    * supprimer "spx" dans les traductions de L_SPXPLUGINDOWNLOADERTITLE car maintenant, il n'y a pas que tes plugins qui sont concernés
    * mettre la position du menu à false ($this->setAdminMenu($this->getLang('L_SPXPLUGINDOWNLOADER'), false, $this->getLang('L_SPXPLUGINDOWNLOADERTITLE'));) afin que le lien se mette où il faut
    * supprimer adminOld.php
    * panneau de configuration pour sélectionner l'adresse du magasin de dépôts ($repositorystores_url) et modifier le fichier local éventuellement
    * corriger le comportement du bouton "Installé" qui ne devrait pas être actif
    * est-ce que le choix de la présentation par onglets est judicieux si le nombre de dépôts augmente ? Ne vaudrait-il mieux pas un onglet avec les plugins installés, un avec les officiels (pluxopolis) et un autre avec une liste déroulante permettant de choisir le dépôt que l'on souhaite (les dépôts étant organisés par ordre alphabétique) ?
    * même principe pour les dépôts de thèmes

    Il me reste à mettre à jour mon dépôt. Je le ferai dans la journée si je peux.
  • Merci de ton retour je regarde ça.

    A+

    jéjé
  • Je viens de mettre à jour mon dépôt avec la plupart de mes plugins (je n'ai pas mis autosave qui est encore buggué).

    Petites modif à faire, car les icônes ne sont pas toutes prises en compte.
    Je te propose de changer la ligne 264 du fichier admin.php par :
    echo '<td class="icon"><img src="'.(is_file(PLX_PLUGINS.$plugName.'/icon.png')?PLX_PLUGINS.$plugName.'/icon.png' : PLX_CORE.'admin/theme/images/icon_plugin.png').'" width="48px" height="auto" alt="" /></td>';
    
    Mais ce n'est pas satisfaisant car seules les images en png sont prises en compte, contrairement à ce que fait pluxml dans la liste des plugins.
  • Ce qui serait bien c'est quand un plugin est installé, et que l'on clique sur le bouton vert ("Installé"), on soit redirigé vers la page des plugins (actifs ou inactifs). Vous en pensez quoi ?
  • je-evrardje-evrard Membres
    mars 2015 modifié
    Hello jerry,

    Merci des propos, j'en tiens compte. Je vais essayer d'avancer dessus le plus vite possible. Le temps me manque un peu en ce moment.

    a+

    jéjé
  • cfdevcfdev Membres
    Jerry a écrit:
    * est-ce que le choix de la présentation par onglets est judicieux si le nombre de dépôts augmente ? Ne vaudrait-il mieux pas un onglet avec les plugins installés, un avec les officiels (pluxopolis) et un autre avec une liste déroulante permettant de choisir le dépôt que l'on souhaite (les dépôts étant organisés par ordre alphabétique) ?

    J'aillais proposer la même chose, mais je pensais plus à un onglet pour les différents dépôts avec un champ "filter", histoire que l'on se retrouve pas avec un onglet = 1 voir 2 plugins ...
  • je-evrardje-evrard Membres
    mars 2015 modifié
    +1 pour cdev

    1 onglet Plugins non officiel dans lequel on règle la problématique de recherche. (recherche par dépot, par nom ....)
  • Qu'importe le flacon pourvu qu'on ait l'ivresse ]:D
  • Je me questionne par rapport au nom de l'archive.

    J'ai testé le dépôt gitlab pour éviter de tout centraliser sur github et le nommage des archives est différent de celui de github.

    Ce n'est pas le nom de la branche qui est ajouté au nom du dépôt mais un hash (md5 je suppose). De plus, on est limité à 42 dépôts et donc on ne peut pas faire un dépôt par plugin. Je me suis donc dis que j'allais créer une branche par plugin dans un dépôt générique.
    Au final, le nom des archives ainsi créées ne contient plus le nom du plugin initial.

    Tout ça pour dire qu'un traitement automatique se basant sur le nom de l'archive qui tient compte de toutes les possibilité spécifique à chaque dépôt peut s'avérer impossible (je n'ai pas testé toutes les possibilité de solution d'hébergement de code).

    Je propose donc de se baser plutôt sur le nom donné par le tag name dans le fichier repository.xml pour nommer le dossier final issu de l'archive. Qu'en pensez-vous ?
  • broncobronco Membres
    mars 2015 modifié
    Salut les gars !
    Je ne sais pas si je poste au bon endroit, mais bon...
    J'ai bossé sur un genre de gestionnaire de dépôt automatisé à héberger soi-même.
    Il y a une page admin sur laquelle glisser déposer les zip des plugins; le gestionnaire régénère le fichier repository.xml à chaque fois et en profite pour générer aussi une page index.html contenant la liste des plugins et leurs infos/liens de téléchargement etc. (je réfléchis à implémenter un flux rss)
    Pour le moment, je voudrais savoir si le format de fichier xml est correct :
    http://repo.warriordudimanche.net/repository.xml

    la page du repo:http://repo.warriordudimanche.net/
    A+ ^^
  • Jerry WhamJerry Wham Membres
    mars 2015 modifié
    Oui nickel, sauf qu'il vaut mieux mettre la description entre CDATA.

    Après le repos du guerrier, voici le repo du cowboy :D

    PS : pour le flux rss, si on utilise le plugin de jéjé, il n'est pas absolument nécessaire, mais c'est toujours utile.
  • broncobronco Membres
    Ok, je fais ça ce soir.
    lerepo du guerrier :lol:
    Merci ;-)
  • je-evrardje-evrard Membres
    mars 2015 modifié
    Hello,

    Merci bronco. J'ai fait un test de ton xml, toutes les infos sont ok. Un seul bémol, il semble que les zip ne se dézip pas via le script. Tu zip d'une manière particulière ?

    Sinon j'ai rajouté ça dans le store (à voir pour toi):
    [== Indéfini ==]
    <repository>
    		<title><![CDATA[Bronco]]></title>
    		<author><![CDATA[Bronco]]></author>
    		<repositoryurl>http://repo.warriordudimanche.net/repository.xml</repositoryurl>
    		<repositoryversionurl>http://repo.warriordudimanche.net/repository.version</repositoryversionurl>
    		<site>http://warriordudimanche.net</site>
    		<description><![CDATA[Liste des dépots des plugins de Bronco]]></description>
    		<name>bronco</name>
    		<icon>http://warriordudimanche.net/themes/defaut/img/favicon2.png</icon>
    	</repository>
    

    En appelant l'url via le script : http://repo.warriordudimanche.net/repository.xml j'ai une erreur 404 (a voir).

    PS : je vais essayer d'avancer sur le plugin ce week-end - je suis un peu débordé la semaine en ce moment.


    a+

    jéjé
  • cfdevcfdev Membres
    mars 2015 modifié
    Jerry Wham a écrit:
    Qu'importe le flacon pourvu qu'on ait l'ivresse ]:D

    ca se remplit ]:D

    @jéjé pour la nouvelle version de pluXml niveau admin, il y a un margin de dingue surement du aux controls maintenant en haut, du coup:
    [== CSS ==]
    section{
    	margin-top: 0px !important;
    }
    
  • broncobronco Membres
    je-evrard a écrit:
    Hello,

    Merci bronco. J'ai fait un test de ton xml, toutes les infos sont ok. Un seul bémol, il semble que les zip ne se dézip pas via le script. Tu zip d'une manière particulière ?

    Sinon j'ai rajouté ça dans le store (à voir pour toi):
    [== Indéfini ==]
    <repository>
    		<title><![CDATA[Bronco]]></title>
    		<author><![CDATA[Bronco]]></author>
    		<repositoryurl>http://repo.warriordudimanche.net/repository.xml</repositoryurl>
    		<repositoryversionurl>http://repo.warriordudimanche.net/repository.version</repositoryversionurl>
    		<site>http://warriordudimanche.net</site>
    		<description><![CDATA[Liste des dépots des plugins de Bronco]]></description>
    		<name>bronco</name>
    		<icon>http://warriordudimanche.net/themes/defaut/img/favicon2.png</icon>
    	</repository>
    

    En appelant l'url via le script : http://repo.warriordudimanche.net/repository.xml j'ai une erreur 404 (a voir).

    PS : je vais essayer d'avancer sur le plugin ce week-end - je suis un peu débordé la semaine en ce moment.


    a+

    jéjé

    Ok, cool ^^
    Pour les zips, je ne comprends pas, ils se dézippent normalement... quid ?! Je les zippe tout à fait normalement...
    Je m'aperçois que j'ai omis le repository.version ^^ je m'en occupe ce soir, si je peux ;)
    En ce qui concerne l'accès au xml, c'est curieux: l'accès fonctionne normalement, pourtant ?! It's a kind of maaagiiik ^^
    Merci pour la rapidité d'exécution en tout cas ^^
    A+ et bon courage pour ta semaine ;)
  • Le dépôt de Bronco n'apparait pas dans la liste des dépôts. C'est normal ???
Connectez-vous ou Inscrivez-vous pour répondre.