Bonjour la zone,
J'ai remarqué que la commande `plugins:svp:depoter` ne fonctionne pas quand on donne une URL différente de celle du dépôt principal.
Après débug, c'est dû au fait que le cli ne trouve pas la fonction "filtrer_entites" nécessaire à `svp_ajouter_depot`.
Pour corriger tout cela, il suffit de rajouter `include_spip('inc/filtres');` dans spip.php du cli dans le test qui vérifie que `inc_version.php` est correctement chargé.
De plus dans la commande `plugins:svp:telecharger` la requête pour trouver le plugins à télécharger depuis le préfixe renvoie forcément FAUX `'UPPER(pl.prefixe) = LOWER("'.strtoupper($prefix).'")'` devrait normalement être `'pl.prefixe = "'.strtoupper($prefix).'"'` tout simplement.
Y a t'il des aspects que je ne maîtrise pas ou puis-je proposer une mise à jour du code ?
Librement
--
Laurent Vergerolle aka Psychoz971
twitter : @psychoz971
Le 02/10/2017 à 22:00, Laurent Vergerolle - IPEOS a écrit :
Pour corriger tout cela, il suffit de rajouter `include_spip('inc/filtres');` dans spip.php du cli dans le test qui vérifie que `inc_version.php` est correctement chargé.
Ah non non, on n'inclut rien du tout à cet endroit, on charge juste SPIP
si on le trouve là.
S'il y a des fonctions non trouvés, c'est aux fonctions qui les
utilisent de s'assurer qu'elles sont chargées, donc là dans SVP, pas
dans le noyau de spip-cli qui n'a rien à voir avec ça.
--
RastaPopoulos
Bonjour RastaPopoulos
----- Mail original -----
De: "RastaPopoulos" <rastapopoulos@spip.org>
Envoyé: Lundi 2 Octobre 2017 17:04:29
Ah non non, on n'inclut rien du tout à cet endroit, on charge juste SPIP
si on le trouve là.
S'il y a des fonctions non trouvés, c'est aux fonctions qui les
utilisent de s'assurer qu'elles sont chargées, donc là dans SVP, pas
dans le noyau de spip-cli qui n'a rien à voir avec ça.
En effet j'ai remarqué qu'on peut mettre le `include_spip('inc/filtres');` directement dans le fichier `PluginsSvpDepoter.php`.
Il y a aussi `include_spip('inc/autoriser');` manquant dans `PluginsSvpTelecharger.php`.
Tant que je place les inclures dans ces fichiers (PluginsSvpDepoter.php et PluginsSvpTelecharger.php) ça ne pose pas de problème que je propose une mise à jour ?
J'ai vraiment besoin que ces commandes fonctionnent correctement 
--
Laurent Vergerolle — ingénieur / réalisateur IPEOS
www.ipeos.com | www.ipeos.net
sales: +590 590 228 020 | info@ipeos.com
hotline: +590 590 227 217 | https://support.ipeos.com
Le 02/10/2017 à 23:15, Laurent Vergerolle - IPEOS a écrit :
Tant que je place les inclures dans ces fichiers (PluginsSvpDepoter.php et PluginsSvpTelecharger.php) ça ne pose pas de problème que je propose une mise à jour ?
J'ai vraiment besoin que ces commandes fonctionnent correctement 
À priori oui, mais encore mieux est-ce que ça ne devrait pas être dans
SVP ? S'il y a des fonctions de SVP qui appellent des choses qui ne sont
pas sûres d'être là, c'est là qu'il y a un manque en théorie. Alors on
peut les ajouter en amont comme ce que tu dis mais au départ tu annonces
que c'est "svn_ajouter_depot" qui a *besoin* de cette fonction… donc
c'est à elle de s'assurer qu'elle soit bien là, pas à des trucs en amont.
--
RastaPopoulos
De: "RastaPopoulos" <rastapopoulos@spip.org>
Envoyé: Lundi 2 Octobre 2017 18:00:29
À priori oui, mais encore mieux est-ce que ça ne devrait pas être dans
SVP ? S'il y a des fonctions de SVP qui appellent des choses qui ne sont
pas sûres d'être là, c'est là qu'il y a un manque en théorie. Alors on
peut les ajouter en amont comme ce que tu dis mais au départ tu annonces
que c'est "svn_ajouter_depot" qui a *besoin* de cette fonction… donc
c'est à elle de s'assurer qu'elle soit bien là, pas à des trucs en amont.
En fait normalement `ecrire/inc_version.php` est sensé charger plusieurs fonctions du répertoire `inc` en fonction des besoins et quand SPIP est chargé l'ensemble des fonctions de `inc/filtres.php` sont disponibles sans `inclure_spip` et pour l'interface privé, `inc/autoriser.php` est chargé.
Par contre quand on utilise le SPIP-cli, on a pas le chargement classique d'un SPIP mais un chargement minimum des fonctions. Dans l'absolu ce n'est pas dérangeant car on peut faire les inclures dans les commandes mais je me disais qu'il pourrait être intéressant que le SPIP-cli charge le SPIP avec toutes ses initialisations.
Autre exemple, bien que les variables globales soient initialisées par SPIP-cli, elles sont vides. On est donc obligé d'utiliser la fonction `lister_tables_principales()` au lieu de `global $tables_principales` pour avoir la liste des tables installées.
En attendant, je vais proposer la mise à jour qui inclus les dépendances dans les commandes pour les faire fonctionner.
--
Laurent Vergerolle aka Psychoz971
mastodon : psychoz971@social.gwadalug.org
Le 03/10/2017 à 14:22, Laurent Vergerolle - IPEOS a écrit :
En fait normalement `ecrire/inc_version.php` est sensé charger plusieurs fonctions du répertoire `inc` en fonction des besoins et quand SPIP est chargé l'ensemble des fonctions de `inc/filtres.php` sont disponibles sans `inclure_spip` et pour l'interface privé, `inc/autoriser.php` est chargé.
Je ne vois pas de quoi tu parles. Il n'y a pas d'inclusion de
inc/filtres dans inc_version, et il y a plein de cas *web* où ce fichier
n'est pas inclus.
Il ne faut pas partir du principe qu'il est inclus forcément, il est
inclus quand il y a une compilation de squelettes, quand il y a le
compilateur. Donc au niveau des fonctions PHP, si c'est une instruction
PHP qui en a besoin, c'est à CETTE fonction de s'assurer que ce fichier
est bien inclus.
Donc je le redis, c'est à la fonction SVP dont tu parles de s'assurer de
ça : pas à des fonctions en amont qui sont appelantes.
Autre exemple, bien que les variables globales soient initialisées par SPIP-cli, elles sont vides. On est donc obligé d'utiliser la fonction `lister_tables_principales()` au lieu de `global $tables_principales` pour avoir la liste des tables installées.
Coder avec des globales, c'est mal. C'est toujours mieux d'utiliser des
fonctions d'API.
En attendant, je vais proposer la mise à jour qui inclus les dépendances dans les commandes pour les faire fonctionner.
Ce serait mieux de modifier la fonction de SVP dont tu parlais pour
qu'elle s'assure d'avoir ses dépendances incluses, pas ailleurs.
--
RastaPopoulos
Merci de tes conseils,
----- Mail original -----
De: "RastaPopoulos" <rastapopoulos@spip.org>
À: "spip-zone" <spip-zone@rezo.net>
Envoyé: Mardi 3 Octobre 2017 12:24:51
Objet: Re: [SPIP Zone] SPIP-cli et les commandes SVP
Coder avec des globales, c'est mal. C'est toujours mieux d'utiliser des
fonctions d'API.
J'ai modifié mes commandes dans mon petit plugins perso et effectivement j'ai utilisé les fonctions d'api et tout marche comme sur des roulettes.
++
--
Laurent Vergerolle aka Psychoz971
mastodon : psychoz971@social.gwadalug.org