Le plugin YAML v2 - commentaires Le plugin YAML v2 2023-09-16T08:55:41Z https://files.spip.org/Le-plugin-YAML-v2#comment514049 2023-09-16T08:55:41Z <p>Le plus simple serait utiliser l'option show_error de la fonction pour vérifier si il n'y a pas une erreur dans le YAML.</p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>$configuration = yaml_decode_file($fichier, array('show_error' => true));</code></pre></div> Le plugin YAML v2 2023-09-14T03:47:54Z https://files.spip.org/Le-plugin-YAML-v2#comment514023 2023-09-14T03:47:54Z <p>Voici (ça me permet de synchroniser une table entre mes bases locale et distante)</p> <p>- <br class="autobr"> id_activite : '54'<br class="autobr"> id_matiere : '2'<br class="autobr"> ref : exoT8-9<br class="autobr"> date_modif : '201804061600'<br class="autobr"> type : exo<br class="autobr"> id_chapitre : '69'<br class="autobr"> titre : 'Réaction nucléaire'<br class="autobr"> difficulte : null<br class="autobr"> pdf_enonce : exoT8-9-E-201804061600.pdf<br class="autobr"> height_enonce : '165'<br class="autobr"> pdf_corrige : exoT8-9-C-58856.pdf<br class="autobr"> height_corrige : '255'<br class="autobr"> statut : prop<br class="autobr"> maj : '2023-08-31 15:16:25'<br class="autobr"> id_rubrique : '15'<br class="autobr"> id_secteur : null<br class="autobr"> correction : null<br class="autobr"> rang_activite : '0' <br>- <br class="autobr"> id_activite : '55'<br class="autobr"> id_matiere : '2'<br class="autobr"> ref : exoT8-31<br class="autobr"> date_modif : '201908281510'<br class="autobr"> type : exo<br class="autobr"> id_chapitre : '69'<br class="autobr"> titre : 'cuisson d''un \oe uf dur'<br class="autobr"> difficulte : null<br class="autobr"> pdf_enonce : exoT8-31-E-201908281510.pdf<br class="autobr"> height_enonce : '125'<br class="autobr"> pdf_corrige : exoT8-31-C-61695.pdf<br class="autobr"> height_corrige : '120'<br class="autobr"> statut : prop<br class="autobr"> maj : '2023-08-31 15:16:33'<br class="autobr"> id_rubrique : '15'<br class="autobr"> id_secteur : null<br class="autobr"> correction : null<br class="autobr"> rang_activite : '0' <br>- </p> Le plugin YAML v2 2023-09-13T18:09:14Z https://files.spip.org/Le-plugin-YAML-v2#comment514022 2023-09-13T18:09:14Z <p>Tu peux simplement copier-coller le contenu en l'encadre de balises code.</p> Le plugin YAML v2 2023-09-13T15:30:16Z https://files.spip.org/Le-plugin-YAML-v2#comment514020 2023-09-13T15:30:16Z <p>le fichier n'est pas passé<small class="fine d-inline"> </small>?? oui le .txt n'est pas accepté. je tente de changer juste son extension, à transformer en txt après<small class="fine d-inline"> </small>?</p> Le plugin YAML v2 2023-09-13T15:28:17Z https://files.spip.org/Le-plugin-YAML-v2#comment514019 2023-09-13T15:28:17Z <p>oui voici, merci pour l'aide<small class="fine d-inline"> </small>!</p> Le plugin YAML v2 2023-09-13T14:17:45Z https://files.spip.org/Le-plugin-YAML-v2#comment514017 2023-09-13T14:17:45Z <p>tu aurais le fichier yaml, car chez moi ca marche :p</p> Le plugin YAML v2 2023-09-13T14:08:40Z https://files.spip.org/Le-plugin-YAML-v2#comment514016 2023-09-13T14:08:40Z <p>Bonjour,<br class="autobr"> j'utilise ce plugin sans problème avec la fonction yaml_decode_file sur un spip4.2 avec php 8.0<br class="autobr"> Si je passe à une version 8.2 ou supérieure, la fonction n'arrive plus à décoder un fichier yaml.<br class="autobr"> Mon hébergeur ne maintient la version 8.0 que jusqu'en décembre.<br class="autobr"> Ce problème est-il connu<small class="fine d-inline"> </small>?<br class="autobr"> Cordialement</p> Le plugin YAML v2 2023-07-23T05:47:40Z https://files.spip.org/Le-plugin-YAML-v2#comment513772 2023-07-23T05:47:40Z <p>Testé sous Windows avec PHP 8.2 et PECL libyaml installée via <a href="https://www.apachelounge.com/viewtopic.php?t=6359" class="spip_url spip_out auto" rel="nofollow external">https://www.apachelounge.com/viewtopic.php?t=6359</a> en version 2.2.3 (cf <a href="https://github.com/php/pecl-file_formats-yaml/issues/71#issuecomment-1463997670" class="spip_url spip_out auto" rel="nofollow external">https://github.com/php/pecl-file_formats-yaml/issues/71#issuecomment-1463997670</a>)</p> <p>Ça marche<small class="fine d-inline"> </small>!</p> Le plugin YAML v2 2023-03-18T18:27:12Z https://files.spip.org/Le-plugin-YAML-v2#comment512954 2023-03-18T18:27:12Z <p>La version 3.0.3 corrige cette erreur.<br class="manualbr">Merci pour le signalement.</p> Le plugin YAML v2 2023-03-18T16:16:20Z https://files.spip.org/Le-plugin-YAML-v2#comment512951 2023-03-18T16:16:20Z <p>Bonjour,<br class="autobr"> Sur un SPIP 4.1 une mise à jour de Yaml v3.0.2 était indiquée. Je l'ai lancée mais je me retrouve avec une page blanche de l'admin avec le message : <br class="autobr"> <code class="spip_code spip_code_inline" dir="ltr">Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.1.0".</code><br class="autobr"> Ma version de PHP est PHP Version 8.0.28 mais je n'ai pas fait gaffe en lisant la mention <br class="autobr"> <code class="spip_code spip_code_inline" dir="ltr">"Une mise à jour {{corrective}} est disponible (3.0.2). "</code></p> <p>J'ai récupéré une version 3.0.1, de Yaml vidé tout le cache du site et cela refonctionne.</p> <p>Autre problème hier sur un autre site : lors de l'installation de Reinette il faut aussi installer Yaml mais apparemment cela ne se fait pas correctement et Rainette retourne une erreur sans s'installer.</p> <p>Merci</p> <p>dd.</p> Le plugin YAML v2 2021-08-24T12:01:16Z https://files.spip.org/Le-plugin-YAML-v2#comment509049 2021-08-24T12:01:16Z <p>bonjour , <br class="autobr"> j'ai passé mon site en spip 4 et ai remis YAml (donc V3.00) et en partie privée , il n'y a pas l'accès classique pour faire ses sauvegardes de config.<br class="autobr"> merci<small class="fine d-inline"> </small>!</p> Le plugin YAML v2 2021-07-30T05:38:27Z https://files.spip.org/Le-plugin-YAML-v2#comment508875 2021-07-30T05:38:27Z <p>Pour info Eric tu avais créé le tag sans mettre à jour le paquet, puis marcimat était intervenu pour mettre à jour le paquet mais sans avancer le tag v2.0.15 qui pointait donc sur la version 2.0.14. J'ai déplacé le tag vers la bonne version...<br class="autobr"> Mais il semble que plugins.spip.net ne veut toujours pas présenter la v2.0.15<small class="fine d-inline"> </small>! C'est peut être un peu le meme pb qu'avec cachelab. Par exemple se pourrait il que les scripts de plugins.spip.net ne gèrent pas le déplacement de tags<small class="fine d-inline"> </small>?</p> Le plugin YAML v2 2021-07-30T04:59:27Z https://files.spip.org/Le-plugin-YAML-v2#comment508874 2021-07-30T04:59:27Z <p>Merci JLuc<br class="autobr"> Alors pour le PHP, je suis chez free..</p> <p>Mais je viens de me rendre compte que c'est un autre plugin qui pose le problème (Insérer Modèles ) car j'ai un autre site chez le même fournisseur qui fonctionne très bien et dans les mêmes conditions Spip 3.2 et PHP 5.6 mais le fameux plugin</p> <p>Bonne journée</p> Le plugin YAML v2 2021-07-30T04:50:50Z https://files.spip.org/Le-plugin-YAML-v2#comment508872 2021-07-30T04:50:50Z <p>La version 2.0.14 est adaptée à spip 3.2 cf <a href="https://plugins.spip.net/yaml.html?compatible_spip=3.2" class="spip_url spip_out auto" rel="nofollow external">https://plugins.spip.net/yaml.html?compatible_spip=3.2</a></p> <p>Par contre php 5.6 c'est fini depuis janvier 2017 et c'est enterré depuis décembre 2018. Il faudrait gravement mettre à jour.</p> Le plugin YAML v2 2021-07-29T09:03:37Z https://files.spip.org/Le-plugin-YAML-v2#comment508870 2021-07-29T09:03:37Z <p>Bonjour,<br class="autobr"> J'ai un site en php 5.6.34 et spip 3.2<br class="autobr"> J'ai un problème avec la version 2.0.14 qui est passée obsolète pour la version 3.2.0. ce matin<small class="fine d-inline"> </small>? mais il n'y a pas de mise à jour sur le site plugins Spip</p> <p>Merci de votre aide</p> Le plugin YAML v2 2021-05-11T17:00:14Z https://files.spip.org/Le-plugin-YAML-v2#comment508377 2021-05-11T17:00:14Z <p>Exact et c'est complètement incompréhensible. Je vais créer un tag 2.0.15 de suite avec la bonne borne.</p> Le plugin YAML v2 2021-05-11T16:45:53Z https://files.spip.org/Le-plugin-YAML-v2#comment508376 2021-05-11T16:45:53Z <p>J'ai cru devenir fou en allant voir git... car la borne est bien en 3.0</p> <p> Mais en fait c'est dans le zip de la 2.0.14 qu'on trouve la borne 3.2 (voir <a href="https://git.spip.net/spip-contrib-extensions/yaml/src/tag/v2.0.14/paquet.xml" class="spip_url spip_out auto" rel="nofollow external">https://git.spip.net/spip-contrib-extensions/yaml/src/tag/v2.0.14/paquet.xml</a>)</p> Le plugin YAML v2 2021-05-11T16:39:06Z https://files.spip.org/Le-plugin-YAML-v2#comment508375 2021-05-11T16:39:06Z <p>Bonjour,</p> <p>Non cela n'a pas été fait. La version n'a pas changé d'intervalle de compatibilité. Qu'est-ce qui te fait dire ça<small class="fine d-inline"> </small>?</p> Le plugin YAML v2 2021-05-11T16:27:45Z https://files.spip.org/Le-plugin-YAML-v2#comment508374 2021-05-11T16:27:45Z <p>Bonjour,<br class="autobr"> J'ai encore un site en php 5.3.3 donc spip 3.1<br class="autobr"> J'ai un problème avec la version 2.0.14 qui est passé pour la borne inférieure de Spip de 3.0.0 à 3.2.0.</p> <p>Y'a t'il une raison technique pour rendre la version 2.0.14 incompatible SPIP 3.1 alors que la 2.0.13 l'était<small class="fine d-inline"> </small>?</p> <p>merci</p> Le plugin YAML v2 2019-02-28T21:04:23Z https://files.spip.org/Le-plugin-YAML-v2#comment500185 2019-02-28T21:04:23Z <p><strong>Merci</strong> pour le conseil et la très pratique page de test.<br class="autobr"> Cela m'a permit de mettre le main sur le fautif, un obscur fichier yaml dans un plugin tiers dont le rendu était différent entre les 3 libs en effet.</p> <p>En gros, il manquait deux espaces devant <kbd>-</kbd> pour déclarer correctement un sous tableau. :/</p> <p>Plus je pratique le YAML, plus j'aime le JSON.</p> <p>Merci encore.</p> Le plugin YAML v2 2019-02-28T19:46:10Z https://files.spip.org/Le-plugin-YAML-v2#comment500184 2019-02-28T19:46:10Z <p>Bonjour,</p> <p>Je ne reproduis pas du tout en passant à la librairie spyc. Peux-tu aller dans la démo</p> <pre> page=demo/yaml</pre> <p>et faire des essais avec les différentes possibilités en navigation à gauche. En particulier, tu peux fixer la librairie à spyc ou autre pour faire des tests.</p> Le plugin YAML v2 2019-02-28T18:03:39Z https://files.spip.org/Le-plugin-YAML-v2#comment500181 2019-02-28T18:03:39Z <p>Un petit retour concernant l'utilisation du plugin <br class="autobr"> SPIP 3.2.3 SVN [24210] + YAML 2.0.10</p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>define('_LIB_YAML', 'spyc')</code></pre></div> <p>L'espace privé est complètement cassé (message d'erreur puis page blanche) au point de devoir purger le cache ET renommer le dossiers plugins/ pour reprendre la main.</p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>Fatal error: Uncaught Error: Function name must be a string in /home/ouam/htdocs/spip/plugins-dist/textwheel/engine/textwheel.php:288 Stack trace: #0 /home/ouam/htdocs/spip/plugins-dist/textwheel/engine/textwheel.php(65): TextWheel->apply('---', '<img src='../pr...') #1 /home/ouam/htdocs/spip/plugins-dist/textwheel/inc/texte.php(174): TextWheel->text('<img src='../pr...') #2 /home/ouam/htdocs/spip/ecrire/public/composer.php(92) : eval()'d code(47): interdire_scripts('<img src='../pr...') #3 /home/ouam/htdocs/spip/ecrire/public/parametrer.php(128): html_12eca9bc02ead06eac7ddeaf4d3d84ac(Array, Array) #4 /home/ouam/htdocs/spip/ecrire/public/assembler.php(314): public_parametrer_dist('prive/squelette...', Array, '', '') #5 /home/ouam/htdocs/spip/ecrire/public/assembler.php(278): public_produire_page_dist('prive/squelette...', Array, -1, '', Array, Array, 0, '') #6 /home/ouam/htdocs/spip/ecrire/public/assembler.php(602): inclure_page('prive/squelette...', Array, '') #7 /home/ouam/htdocs/spip/ecrire/i in /home/ouam/htdocs/spip/plugins-dist/textwheel/engine/textwheel.php on line 288</code></pre></div> Le plugin YAML v2 2018-12-13T15:50:10Z https://files.spip.org/Le-plugin-YAML-v2#comment499108 2018-12-13T15:50:10Z <p>tu cliques sur « Mettre à jour » et hop…</p> <blockquote class="spip"> <p> Oups. Une erreur inattendue a empêché de soumettre le formulaire. Vous pouvez essayer à nouveau.</p> </blockquote> <p>etc.</p> Le plugin YAML v2 2018-12-13T15:45:10Z https://files.spip.org/Le-plugin-YAML-v2#comment499107 2018-12-13T15:45:10Z <p>c'est à dire<small class="fine d-inline"> </small>? que se passe-t-il exactement<small class="fine d-inline"> </small>?</p> Le plugin YAML v2 2018-12-13T15:37:04Z https://files.spip.org/Le-plugin-YAML-v2#comment499106 2018-12-13T15:37:04Z <p>Avec SPIP 3.1.2 et YAML 2.0.9 impossible de faire la mise à jour vers la 2.0.10 via SVP.</p> Le plugin YAML v2 2018-06-15T06:30:19Z https://files.spip.org/Le-plugin-YAML-v2#comment497386 2018-06-15T06:30:19Z <p>Pour résumer les mises à jour :</p> <ul class="spip"><li> l'exportation produit des fichiers conformes YAML tous équivalents et sans espace en début de ligne. Néanmoins cela ne veut pas dire qu'ils sont tous lisibles par toutes les librairies.</li><li> par contre je ne reproduis pas ton souci sur l'édition des formulaires.</li></ul> Le plugin YAML v2 2018-06-14T07:35:52Z https://files.spip.org/Le-plugin-YAML-v2#comment497365 2018-06-14T07:35:52Z <p>Avec <a href="https://zone.spip.org/trac/spip-zone/changeset/110648" class="spip_url spip_out auto" rel="nofollow external">https://zone.spip.org/trac/spip-zone/changeset/110648</a> et la libYaml :</p> <ol class="spip"><li> import d'un formulaire généré par V1 ou V2 (lib par défaut) : le formulaire importé est vide de champs.</li><li> l'édition des champs d'un formulaire existant ne marche pas non plus : Warning : array_walk_recursive() expects parameter 1 to be array, null given in plugins\auto\saisies\v2.15.0\formulaires\construire_formulaire.php on line 113, Warning : array_splice() expects parameter 1 to be array, null given in plugins\auto\saisies\v2.15.0\inc\saisies_manipuler.php on line 103, Warning : Cannot modify header information - headers already sent by (output started atplugins\auto\saisies\v2.15.0\inc\saisies_manipuler.php:103) in ecrire\inc\actions.php on line 147 (les version des plugins indiquées dans les chemins sont farfelues : après installation par SVP en mode SVN, j'ai continué à mettre à jour les plugins par SVN)</li></ol> Le plugin YAML v2 2018-06-14T07:29:32Z https://files.spip.org/Le-plugin-YAML-v2#comment497364 2018-06-14T07:29:32Z <p>Avec <a href="https://zone.spip.org/trac/spip-zone/changeset/110648" class="spip_url spip_out auto" rel="nofollow external">https://zone.spip.org/trac/spip-zone/changeset/110648</a> et la lib par défaut, ça marche (aussi bien l'import d'un yaml fait en V1 ou V2, que l'édition du formulaire.).</p> Le plugin YAML v2 2018-06-14T06:48:19Z https://files.spip.org/Le-plugin-YAML-v2#comment497362 2018-06-14T06:48:19Z <p>Hello,</p> <p>Avec plaisir.</p> <ol class="spip"><li> Est-ce que tu veux que je le fasse<small class="fine d-inline"> </small>?</li><li><small class="fine d-inline"> </small>;-)</li><li> ieconfig n'a pas besoin de plugins : il y a toute la config du core qui est gérée par ce dernier, donc, tu peux tester avec un SPIP sans plugin autre que ieconfig et ses dépendances</li><li> c'est bien pour ça que j'ai fait un nouveau thread<small class="fine d-inline"> </small>;-) Dans ce thread, c'est une installation vierge, sans define, juste ce qui se produit par défaut à l'installation</li><li> la lib par défaut en V2 rajoute 2 espaces en début de chaque ligne des yaml générés (mais je viens de voir que tu as corrigé ça en <a href="https://zone.spip.org/trac/spip-zone/changeset/110648" class="spip_url spip_out auto" rel="nofollow external">https://zone.spip.org/trac/spip-zone/changeset/110648</a>)</li></ol> <p>Je vais essayer de garder un œil sur IRC<small class="fine d-inline"> </small>;-)</p> Le plugin YAML v2 2018-06-13T18:14:49Z https://files.spip.org/Le-plugin-YAML-v2#comment497360 2018-06-13T18:14:49Z <p>Yo,</p> <p>Merci pour les réponses.</p> <ol class="spip"><li> ben en mettant la borne mini à strictement supérieure à 3.2.* alors tu n'aurais pas eu la proposition dans SVP car le zip aurait été incompatible avec une 3.2. Mais on aurait toujours le zip et on pourrait tester cette version en 3.3.0-dev</li><li> ok</li><li> je n'utilise jamais ieconfig. Quels plugins peuvent me permettre de faire ces tests<small class="fine d-inline"> </small>?</li><li> ben là je suis dubitatif car dans un autre message tu m'avais dit que tu avais installé libYAML<small class="fine d-inline"> </small>?</li><li> ben là aussi je suis dubitatif car si tu utilises la librairie par défaut de v2 c'est la même que la v1. Or on a pas le problème en v1<small class="fine d-inline"> </small>?</li></ol> <p>Bon j'essaye de regarder un peu cela demain après-midi et si tu es sur IRC je te ferais signe.</p> Le plugin YAML v2 2018-06-13T15:51:24Z https://files.spip.org/Le-plugin-YAML-v2#comment497359 2018-06-13T15:51:24Z <p>Hello,</p> <p>Je vais essayer de répondre à toutes tes questions.</p> <ol class="spip"><li> je ne vois pas ce que changer <i>compatibilite=«<small class="fine d-inline"> </small>[3.0.0<small class="fine d-inline"> </small>;3.2.*]<small class="fine d-inline"> </small>»</i> aurait pu modifié du comportement de SVP (Ajouter un plugin, rechercher yaml, constater qu'il n'y a qu'un seul plugin yaml proposé, l'instaler, c'est la version 2.0.2)</li><li> oui</li><li> jeu de test : export avec ieconfig de n'importe quelle config, tentative d'import infructueuse</li><li> librairie par défaut à l'installation de Yamlv2, rien dans config/mes_options.php</li><li> les fichiers ont été supprimés car, après avoir compris le problème, j'ai installé manuellement la v1 de Yaml et constaté qu'elle bugait avec les .yaml des sauvegardes de ieconfig faites avec la V2</li></ol> <p>En conclusion, ayant constaté que pour un néophyte (en l'occurrence un stagiaire découvrant SPIP), il se retrouvait dans une situation problématique, je me suis dit que le problème allait concernait rapidement tous ceux qui mettaient à jour leurs plugins par SVP (pour mémoire, formidable et ieconfig sont impactés), j'ai préféré éteindre le départ d'incendie.</p> <p>Mais je comprends que ça puisse te mettre en colère. Et j'en suis désolé.</p> Le plugin YAML v2 2018-06-13T13:20:33Z https://files.spip.org/Le-plugin-YAML-v2#comment497353 2018-06-13T13:20:33Z <p>Hello,</p> <p>Ton approche du problème m'interdit toute possibilité de correction.</p> <ol class="spip"><li> déjà tu aurais du modifier la borne mini de YAML v2 et pas supprimer le zip d'autorité car maintenant je ne peux plus tester le problème SVP si il y en a un.</li><li> je suppose que tu parles de formulaires/ieconfig_import.php dans le plugin IEConfig<small class="fine d-inline"> </small>?</li><li> quel est ton jeu de test pour que je puisse reproduire (ou pas) ton souci<small class="fine d-inline"> </small>?</li><li> quelle librairie YAML utilises-tu<small class="fine d-inline"> </small>? c'est essentiel car comme je l'ai expliqué dans l'article, elles ne supportent pas toutes le même ensemble de features YAML.</li><li> Pour la production des YAML je te redis une deuxième fois que comme expliqué les librairies ne sont pas équivalentes ni en import ni en export. Et comme tu as du produire ton YAML avec YAML tu dois avoir des --- au début que la librairie Symfony ne sait pas lire. Mais ça il faudrait que tu me donnes des détails sur le fichier et la librairie que je n'ai pas.</li></ol> <p>En conclusion, si on veut avancer il faut faire tout le contraire de ce post. Je suis désolé d'être faché mais passer des heures sur ce plugin pour en arriver là est frustrant. Donc je veux bien corriger mais il faudrait que je sache quoi<small class="fine d-inline"> </small>!</p> Le plugin YAML v2 2018-06-13T11:59:24Z https://files.spip.org/Le-plugin-YAML-v2#comment497352 2018-06-13T11:59:24Z <p>Je t'ai fourni dans une autre réponse le lien vers le formulaire .yaml à importer avec la V1 de YAML installée.</p> <p>Ça te permettra de tester avec le même formulaire.</p> <p>Merci</p> Le plugin YAML v2 2018-06-13T11:53:27Z https://files.spip.org/Le-plugin-YAML-v2#comment497351 2018-06-13T11:53:27Z <p>Bonjour,</p> <p>La V2 est maintenant installée par défaut via SVP pour SPIP 3.2.<br class="autobr"> Et elle fait planter le plugin ieconfig au moment de la restauration d'une sauvegarde.</p> <p>Un boolean à la place d'un array en ligne 56 de formulaires/ieconfig_import.php</p> <p>Par ailleurs, les config exportées avec la V2 font planter complètement l'importation si on remet Yaml en v1</p> <p>Bref, ça pose de gros problèmes.</p> <p>Je rebranche le zip sur la V1 en attendant en espérant qu'il n'y a pas trop de monde touché par ça...</p> Le plugin YAML v2 2018-06-06T16:43:31Z https://files.spip.org/Le-plugin-YAML-v2#comment497249 2018-06-06T16:43:31Z <blockquote class="spip"> <p>Tu expliques que c'est pour être «<small class="fine d-inline"> </small>indépendant<small class="fine d-inline"> </small>» que le plugin «<small class="fine d-inline"> </small>embarque<small class="fine d-inline"> </small>» une portion de code maintenue ailleurs...</p> </blockquote> <p>Je crois que mon expression n'était pas assez précise parce que je voulais dire exactement ce que tu écris dans ta réponse. Si Textwheel nécessitait YAML il serait plus difficile à utiliser en dehors de SPIP.</p> <blockquote class="spip"> <p>Tu dupliques du code (symfony/yaml) dans un plugin SPIP packagé via smart_paquets, parce qu'aujourd'hui, c'est comme ça que ça marche...</p> </blockquote> <p>Là c'est un peu réducteur car l'encapsulation de la librairie n'est pas toujours une redite exacte de l'API proposée par ladite librairie. Elle peut avoir une existence propre et donc un intérêt.</p> <p>Après, l'inclusion de symfony/yaml v4 et Spyc est faite via composer. C'est pas ultime car tu ne mettras pas à jour le site de production avec mais ça permet au moins de mettre facilement à jour le plugin. J'ai galéré un maximum pour retrouver la version et la trace de la librairie sfyaml quand j'ai commencé mes investigations. Un petit pas...</p> <p>Après pour finir avec Textwheel je pense qu'il faut migrer les YAML en JSON, ce qui se fait en quelques secondes et permet de s'affranchir complètement de toute librairie et n'utiliser le YAML que pour des configurations ou des exports plus «<small class="fine d-inline"> </small>grand public<small class="fine d-inline"> </small>».</p> Le plugin YAML v2 2018-06-06T13:00:07Z https://files.spip.org/Le-plugin-YAML-v2#comment497246 2018-06-06T13:00:07Z <blockquote class="spip"> <p>Ouais bof, je ne suis pas convaincu de mon erreur...</p> </blockquote> <p>Tu expliques que c'est pour être « indépendant » que le plugin « embarque » une portion de code maintenue ailleurs, alors que c'est parce que SPIP ne gère pas les dépendances avec un système commun avec cet ailleurs que cette portion de code a été dupliquée.</p> <p>Par ailleurs, et j'ai pu me méprendre, j'ai toujours cru que la volonté d'indépendance de TextWheel par rapport à SPIP résidait dans le fait que la méthode avait vocation à être utilisée ailleurs que dans SPIP. Donc, sans nécessiter une partie de son code et par voie de conséquence d'un SPIP tout entier.</p> <blockquote class="spip"> <p>pourquoi TextWheel redéfinit une fonction qui existe déjà un autre plugin<small class="fine d-inline"> </small>?</p> </blockquote> <p>Je demanderais directement aux auteurs de ces plugins, si j'étais toi.</p> <hr class="spip"> <p>Quoiqu'il en soit, ne nous chamaillons pas, il me semble qu'on aspire peu ou prou à la même chose, c'est juste la méthode qui diffère :</p> <ul class="spip"><li> Tu dupliques du code (symfony/yaml) dans un plugin SPIP packagé via smart_paquets, parce qu'aujourd'hui, c'est comme ça que ça marche.</li><li> Je propose qu'on change de méthode, démo à l'appui, pour que SPIP puisse s'appuyer quand c'est nécessaire sur du code conçu et maintenu ailleurs sans qu'il soit dupliqué dans un plugin SPIP, par le biais d'un système de gestion de dépendances commun à l'ensemble de la communauté PHP.</li></ul> <p>Et je propose ce changement parce qu'il me semble être une meilleure solution à la plupart des problèmes que tu soulèves, considérant que c'est précisément le packaging « proprio » de SPIP qui engendre ces problèmes.</p> Le plugin YAML v2 2018-06-06T12:06:33Z https://files.spip.org/Le-plugin-YAML-v2#comment497245 2018-06-06T12:06:33Z <p>Ouais bof, je ne suis pas convaincu de mon erreur...<br class="manualbr">Dans ce cas pourquoi TextWheel redéfinit une fonction qui existe déjà un autre plugin<small class="fine d-inline"> </small>? En plus, on se pose la question de quelle librairie est appelée quand YAML est activé. Non je n'en vois pas l'intérêt surtout que l'évolution de la librairie n'est jamais prise en compte.</p> <p>Cette question revient sur le tapis à chaque fois que l'on propose un nouveau plugin. J'ai toujours du mal à comprendre cette logique de pseudo stabilité des plugins-dist qui ne répond à aucune stratégie claire de mon point vue. Ma vision du noyau est plutôt celui d'un framework que celui d'un coeur fonctionnel (toute proportion gardée). A cet égard manipuler des fichiers (XML, JSON, YAML...) c'est du noyau comme les raccourcis SPIP ou les itérateurs. Après les plugins externes c'est pour des ajouts fonctionnels. On a l'impression de vouloir définir la dist de SPIP comme un SPIP vision historique immuable (je caricature un peu).</p> <p>Enfin, la question que je soulève est simple : on a un plugin dans la dist qui utilise une fonction qui est proposée dans un autre plugin qui n'est pas dans la dist : est-ce logique et si non que pouvons nous faire<small class="fine d-inline"> </small>?</p> Le plugin YAML v2 2018-06-06T10:21:18Z https://files.spip.org/Le-plugin-YAML-v2#comment497238 2018-06-06T10:21:18Z <p>Erreur<small class="fine d-inline"> </small>! :) TextWheel embarque un bout de lib d'un autre projet parce que SPIP ne permet pas d'intégrer des librairies autonomes de manière standard. D'autre part, c'est un plugin SPIP qui n'est pas autonome (et ne peut le devenir en l'état) puisqu'il dépend encore de fonctions du noyau de SPIP, me semble-t-il. C'était en tout cas vrai quand j'ai isolé la partie <code class="spip_code spip_code_inline" dir="ltr">./engine</code> à l'époque.</p> <p>Embarquer un nouveau plugin SPIP dans la « dist », je ne sais pas si c'est une bonne ou une mauvaise idée. Tout dépend de comment et à quelle vitesse la communauté spipienne adopte Composer (ou pas) pour le développement de SPIP, de ses plugins, voire de librairies standard ...</p> <p>Si ça ne tenait qu'à moi, j'éviterais les surcharges par des fonctions publiques des appels à l'API de la librairie symfony/yaml, et j'introduirais l'autoloading PSR-4 dans SPIP. Mais ça, je n'ai pas à le décider tout seul.<small class="fine d-inline"> </small>;-)</p> Le plugin YAML v2 2018-06-06T09:38:53Z https://files.spip.org/Le-plugin-YAML-v2#comment497234 2018-06-06T09:38:53Z <p>Hello,</p> <p>Oui je me rappelle très bien de l'objectif de TextWheel d'être «<small class="fine d-inline"> </small>indépendant<small class="fine d-inline"> </small>» de SPIP. C'est d'ailleurs pour cela qu'il embarque une version mini de la vieille librairie YAML de symfony v1.</p> <p>Et c'est bien mon propos. Pourrait-on aujourd'hui envisager d'utiliser le plugin YAML dans la dist de SPIP avec un TextWheel qui se branche dessus surtout qu'avec l'utilisation de libYAML on améliore les performances d'environ un facteur 10<small class="fine d-inline"> </small>?</p> Le plugin YAML v2 2018-06-05T20:07:37Z https://files.spip.org/Le-plugin-YAML-v2#comment497216 2018-06-05T20:07:37Z <p>À propos de textwheel et pour info, j'ai ré-écrit textwheel sous forme de <a href="https://github.com/JamesRezo/textwheel/tree/php-library" class="spip_out" rel='nofollow external'>library standard</a> il y a 2/3 ans, ça peut s'intégrer dans n'importe quel framework/cms qui utilise Composer.</p> <p>L'idée suivante aurait été de faire un plugin SPIP, dans le cas où SPIP utiliserait Composer, qui requiert cette librairie d'une part afin que textwheel vive sa propre vie (et d'assurer l'interopérabilité souhaitée par ses auteurs au début <a href="http://zzz.rezo.net/Presentation-de-Textwheel.html" class="spip_url spip_out auto" rel="nofollow external">http://zzz.rezo.net/Presentation-de-Textwheel.html</a>) et les règles SPIP d'autre part, en supposant que les règles soient distribuées sous forme de composant (par composer, donc)</p> <p>Le plugin textwheel pour spip ne serait qu'un <a href="https://fr.wikipedia.org/wiki/Adaptateur_(patron_de_conception)" class="spip_out" rel='nofollow external'>wrapper</a>.</p> Le plugin YAML v2 2018-06-05T11:49:25Z https://files.spip.org/Le-plugin-YAML-v2#comment497205 2018-06-05T11:49:25Z <p>Re,</p> <p>J'ai regardé les deux fichiers de dump que tu as annexé. Et j'ai quelques remarques qui vont bien dans le sens de mon précédent message.</p> <p>Les fichiers sont bien « identiques », ce qui diffère c'est la présentation du YAML du au mode inline qui est déclenché différemment pour l'une et l'autre librairie. Par défaut, le mode inline est déclenché après deux niveaux d'imbrication pour l'une et l'autre des librairies. Or, on remarque que pour le défaut (sfyaml) le mode inline est enclenché un niveau avant. Et chose étrange l'indentation est activée dès la racine : il y a peut-être une rapport d'ailleurs.</p> <p>Après sfyaml ne lit pas les '---' et '...'. Je ne comprends pas pourquoi mais c'est ainsi.</p> <p>Pourrais-tu me dire comment générer le formulaire pour obtenir le fichier YAML que tu as annexé afin que je fasse des tests de mon coté<small class="fine d-inline"> </small>?</p> Le plugin YAML v2 2018-06-05T11:44:10Z https://files.spip.org/Le-plugin-YAML-v2#comment497203 2018-06-05T11:44:10Z <p>Jeu de test à importer avec la V1 du plugin : <a href="http://dl.free.fr/gXHv1eavg" class="spip_url spip_out auto" rel="nofollow external">http://dl.free.fr/gXHv1eavg</a></p> <p>L'importation avec la V2 ne fonctionne pas.</p> <p>Et l'exportation avec la V2 produit un fichier différent (2 espaces en plus au début de chaque ligne).</p> Le plugin YAML v2 2018-06-05T11:42:24Z https://files.spip.org/Le-plugin-YAML-v2#comment497202 2018-06-05T11:42:24Z <p>Au temps pour moi : le yaml généré par défaut diffère de celui généré par la v1 : il a 2 espaces en plus au début de chaque ligne (ce qui fait que les éléments racines sont décalés de 2 espaces).</p> <p>Ceci <a href="http://dl.free.fr/gXHv1eavg" class="spip_url spip_out auto" rel="nofollow external">http://dl.free.fr/gXHv1eavg</a> s'importe correctement avec la V1 du plugin.<br class="autobr"> Et ne s'importe pas avec la V2, que ce soit avec la lib par défaut ou avec libyaml.</p> Le plugin YAML v2 2018-06-05T11:06:07Z https://files.spip.org/Le-plugin-YAML-v2#comment497201 2018-06-05T11:06:07Z <p>Dans le premier paragraphe de ma question : voir fichiers ici : <a href="http://dl.free.fr/h3Y8EY0Ss" class="spip_url spip_out auto" rel="nofollow external">http://dl.free.fr/h3Y8EY0Ss</a></p> Le plugin YAML v2 2018-06-05T07:33:24Z https://files.spip.org/Le-plugin-YAML-v2#comment497199 2018-06-05T07:33:24Z <p>Ok, de même il faudrait me fournir tes fichiers de tests. Par contre, je pense qu'il y a aussi un problème sur la v1 à partir du moment où la librairie sfyaml ne sait pas lire son propre encodage YAML.</p> <p>Après que le fichier créé ne soit pas le même exactement n'est pas un problème si son décodage produit toujours la même structure PHP. En particulier, le mode inline peut différer.</p> Le plugin YAML v2 2018-06-05T07:16:14Z https://files.spip.org/Le-plugin-YAML-v2#comment497197 2018-06-05T07:16:14Z <p>Hello,</p> <p>Merci de tester avec des jeux différents des miens. Peux-tu me fournir tes jeux de tests pour que je les essaye chez moi<small class="fine d-inline"> </small>?<br class="manualbr">Le mieux aussi est d'utiliser les fichiers YAML hors contexte d'un plugin pour vérifier si seul le plugin YAML est en cause.</p> Le plugin YAML v2 2018-06-04T21:11:35Z https://files.spip.org/Le-plugin-YAML-v2#comment497193 2018-06-04T21:11:35Z <p>J'ai aussi testé l'export d'un formulaire formidable et je n'obtient pas du tout les mêmes fichiers avec libyaml et par défaut (voir fichiers ici : <a href="http://dl.free.fr/h3Y8EY0Ss" class="spip_url spip_out auto" rel="nofollow external">http://dl.free.fr/h3Y8EY0Ss</a>)</p> <p>Et aucune des 2 méthodes (défaut et libyaml) n'est capable d'importer l'un ou l'autre des 2 .yaml exportés.</p> <p>Je suis revenu en v1 du plugin.</p> <ul class="spip"><li> L'export produit un fichier .yaml identique</li><li> L'import plante, mais avec un message plus explicite : Unable to parse string : Unable to parse line 1 ( id_formulaire : '2'). (je vais donc poster ça dans le forum du plugin formidable)</li></ul> Le plugin YAML v2 2018-06-04T20:46:39Z https://files.spip.org/Le-plugin-YAML-v2#comment497192 2018-06-04T20:46:39Z <p>Merci beaucoup pour cette évolution<small class="fine d-inline"> </small>!</p> <p>J'ai testé sous Windows en installant la lib en m'inspirant de <a href="https://stackoverflow.com/questions/27122701/installing-php-yaml-extension-with-xampp-on-windows" class="spip_url spip_out auto" rel="nofollow external">https://stackoverflow.com/questions/27122701/installing-php-yaml-extension-with-xampp-on-windows</a> (les dossiers n'étaient plus exactement les mêmes, mais l'idée était bien là).</p> <p>Le php_info me dit :</p> <blockquote class="spip"> <p>LibYAML Support enabled<br class="autobr"> Module Version 2.0.2<br class="autobr"> LibYAML Version 0.1.4</p> </blockquote> <p>Mes_options avec :</p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>define('_LIB_YAML','libyaml');</code></pre></div> <p>Saisies + formidable à jour, modification d'un champ de formulaire de type ligne de texte.<br class="autobr"> J'ai plusieurs erreurs :</p> <ul class="spip"><li> Warning : array_walk_recursive() expects parameter 1 to be array, null given in \plugins\saisies\formulaires\construire_formulaire.php on line 113</li><li> Warning : array_splice() expects parameter 1 to be array, null given in saisies\inc\saisies_manipuler.php on line 103</li></ul> <p>Est-ce que tu reproduis sous Linux<small class="fine d-inline"> </small>?</p>