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.
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]
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>
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?
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).
<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é.
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 !!!!
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);
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.
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 ?
* 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 ...
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 ?
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
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>
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>
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
Réponses
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+
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é
Tout d'abord un grand merci à toi !
Maintenant, place à un petit bug, lorsqu'on déroule "Paramètres" :
Bon courage pour la suite =]
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 !
[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>
Pour l'instant, je n'ai mis qu'un plugin pour voir si je ne me suis pas trompé.
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 !!!!
[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]
Remplacer les lignes à partir de la ligne 157, jusqu'à la ligne contenant "unlink($zipfile);" par : J'ai testé et ça fonctionne.
T'en penses quoi ?
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é
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.
A+
jéjé
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 : 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.
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é
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 ...
1 onglet Plugins non officiel dans lequel on règle la problématique de recherche. (recherche par dépot, par nom ....)
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 ?
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+ ^^
Après le repos du guerrier, voici le repo du cowboy
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.
lerepo du guerrier
Merci ;-)
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):
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é
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:
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