[SPIP Zone] [N-core + Noizetier SVN] contexte ne transmet aucun élément de l'env à une noisette

Bonjour,

Sans Composition ni Z-core avec spip 3.2.1 SVN.

Une noisette utilisée dans le sommaire.html incluse par :
[(#VAL{oui}|setenv{menu})]
#INCLURE{fond=bloc_compiler,id_conteneur=contenu/corps,env}

[<pre>(#ENV**|unserialize|print_r{1})</pre>] placé dans :
bloc_compiler.html
début de la noisette concernée

Résultat :
bloc_compiler.html :
Array
(
      [menu] => oui
      [date] => 2018-07-20 07:02:09
      [date_default] => 1
      [date_redac] => 2018-07-20 07:02:09
      [date_redac_default] => 1
      [id_conteneur] => contenu/corps
      [lang] => fr
)
menu a bien été transmis dans le env

Dans la noisette :
Array
(
      [id_noisette] => 508
      [id_conteneur] => contenu/corps
      [rang_noisette] => 7
      [lang] => fr
      [date] => 2018-07-20 07:02:10
      [date_default] => 1
      [date_redac] => 2018-07-20 07:02:10
      [date_redac_default] => 1
)

menu a été perdu

Pourtant, le yaml de la noisette contient :
contexte: 'menu'

Pas mieux avec :
contexte: 'env'

Ni sans cette ligne.
Testé aussi en mettant ?menu=coucou dans l'url.

Est-ce que c'est bien un bug ?

Merci de toute lumière sur ce problème.

--
RealET

Complément d'info : si je fais var_mode=debug, j'ai plusieurs erreurs

Warning: array_flip() expects parameter 1 to be array, boolean given in C:\wwwrootDev\_mutualisation\spip31.pyrat.net\plugins\n-core\ncore_fonctions.php on line 261
Warning: array_intersect_key(): Argument #2 is not an array in C:\wwwrootDev\_mutualisation\spip31.pyrat.net\plugins\n-core\ncore_fonctions.php on line 272
Warning: array_merge(): Argument #2 is not an array in C:\wwwrootDev\_mutualisation\spip31.pyrat.net\ecrire\public\composer.php(92) : eval()'d code on line 89

J'ai bien l'impression que c'est précisément là que l'env n'est pas correctement pris en compte.

--
RealET

RealET a écrit le 20/07/2018 à 18:42 :

Complément d'info : si je fais var_mode=debug, j'ai plusieurs erreurs

Warning: array_flip() expects parameter 1 to be array, boolean given in C:\wwwrootDev\_mutualisation\spip31.pyrat.net\plugins\n-core\ncore_fonctions.php on line 261
Warning: array_intersect_key(): Argument #2 is not an array in C:\wwwrootDev\_mutualisation\spip31.pyrat.net\plugins\n-core\ncore_fonctions.php on line 272
Warning: array_merge(): Argument #2 is not an array in C:\wwwrootDev\_mutualisation\spip31.pyrat.net\ecrire\public\composer.php(92) : eval()'d code on line 89

J'ai bien l'impression que c'est précisément là que l'env n'est pas correctement pris en compte.

Bon, en fait, c'était les .yaml qui comportaient des erreurs de syntaxe : il faut *absolument* que les chaines soient fermées.
Mauvais :
description: 'La noizettes des A la Une
Bon :
description: 'La noizettes des A la Une'

(PS : les ' sont possible dans le texte en les doublant : 'l''été')

==>> Suggestion : afficher un message informant de l'erreur de syntaxe yaml

--
RealET

Le 21/07/2018 à 12:27, RealET a écrit :

Suggestion : afficher un message informant de l'erreur de syntaxe yaml

Utiliser un *éditeur de texte correct* pour rédiger ses yaml : atom par exemple surligne très bien ce genre d'erreur

Valider ses yaml sur un validateur en ligne, y'en a pour le json aussi

installer un linter pour son editeur Sunsetting Atom - The GitHub Blog

ou alors passer par un script de build, qui validera tout un projet si il y'a beaucoup de sous éléments

--
Bonne journée
Arnaud B. (Mist. GraphX)

Le 22/07/2018 à 10:37, Mist. GraphX a écrit :

Valider ses yaml sur un validateur en ligne, y'en a pour le json aussi

Indispensable pour débuguer les YAML de noisettes

Ouep,

J’utilise aussi celui de CodeBeautify qui permet de traduire le YAML en JSON ou autre.
https://codebeautify.org/yaml-to-json-xml-csv#copy