[SPIP Zone] CFG + multi + nom de variable avec plusieurs _ == bug ou fonctionnalite ?

Après de nombreux tests je suis "tombé" sur un cas ou CFG semble avoir un soucis :

Dans un de "mes" plugins j'ai un cfg avec le code ci-dessous , qui lorsque le plugin vient d'etre installé génère parfois de nombreuses erreurs "Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/site/htdocs/ecrire/public/composer.php(71) : eval()'d code on line 95". La page de cfg s'affiche très bien et si je valide... je n'ai plus aucune erreur...
Mais là où ça ce corse c'est que le problème vient du nom de la variable, à savoir migre_id_mot. Si je l'appelle migre_idmot (sans le 2eme underscore) plus aucun problème !!!!!!!!!!!!! Y aurait il pas un schtroumpf dans la potée ?

Exemple de code pas beau :

<fieldset>
<legend><:migrestatic:choix_mot_cle:></legend>
<p>
<label>
  <:migrestatic:sous_choix_mot_cle:>
  <br />
#SET{selected,#CONFIG{migre_static/migre_id_mot,'',''}}
  <select name="migre_id_mot[]" multiple="multiple" size="5" id="migre_id_mot">
  <BOUCLE_mots(MOTS){par id_mot}>
    <option value="#ID_MOT"[(#ID_MOT|in_array{#GET{selected}}|?{' selected="selected"'})]>#ID_MOT . #TITRE</option>
  </BOUCLE_mots>
  </select>
  <small><:migrestatic:choix_mot_cle_selection:></small>
</label>
</p>
</fieldset>
<input style="float:#LANG_RIGHT;" type="submit" name="_cfg_ok" value="<:OK:>" class="fondo" />

Alors bug ou pas ?

Chryjs

chryjs wrote:

Après de nombreux tests je suis "tombé" sur un cas ou CFG semble avoir un soucis :

Dans un de "mes" plugins j'ai un cfg avec le code ci-dessous , qui lorsque le plugin vient d'etre installé génère parfois de nombreuses erreurs "Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/site/htdocs/ecrire/public/composer.php(71) : eval()'d code on line 95". La page de cfg s'affiche très bien et si je valide... je n'ai plus aucune erreur...
Mais là où ça ce corse c'est que le problème vient du nom de la variable, à savoir migre_id_mot. Si je l'appelle migre_idmot (sans le 2eme underscore) plus aucun problème !!!!!!!!!!!!! Y aurait il pas un schtroumpf dans la potée ?

Exemple de code pas beau :

<fieldset>
<legend><:migrestatic:choix_mot_cle:></legend>
<p>
<label>
  <:migrestatic:sous_choix_mot_cle:>
  <br />
#SET{selected,#CONFIG{migre_static/migre_id_mot,'',''}}
  <select name="migre_id_mot" multiple="multiple" size="5" id="migre_id_mot">
  <BOUCLE_mots(MOTS){par id_mot}>
    <option value="#ID_MOT"[(#ID_MOT|in_array{#GET{selected}}|?{' selected="selected"'})]>#ID_MOT . #TITRE</option>
  </BOUCLE_mots>
  </select>
  <small><:migrestatic:choix_mot_cle_selection:></small>
</label>
</p>
</fieldset>
<input style="float:#LANG_RIGHT;" type="submit" name="_cfg_ok" value="<:OK:>" class="fondo" />

Alors bug ou pas ?

En fait le problème est situé dans le nom de la page dans fonds, il doit s'appeler cfg_machinchose où machinchose ne doit pas contenir de _ ,et les paramètres utilisés avec CONFIG sont préfixés avec machinchose sans _ surtout. Dans ce cas ça fonctionne bien. Le pourquoi doit être situé dans le code de CFG qui va chercher les squelettes dans fonds/ ...

Chryjs

chryjs a écrit :

chryjs wrote:

Après de nombreux tests je suis "tombé" sur un cas ou CFG semble avoir un soucis :

Mais là où ça ce corse c'est que le problème vient du nom de la variable, à savoir migre_id_mot. Si je l'appelle migre_idmot (sans le 2eme underscore) plus aucun problème !!!!!!!!!!!!! Y aurait il pas un schtroumpf dans la potée ?

Alors bug ou pas ?

En fait le problème est situé dans le nom de la page dans fonds, il doit s'appeler cfg_machinchose où machinchose ne doit pas contenir de _ ,et les paramètres utilisés avec CONFIG sont préfixés avec machinchose sans _ surtout. Dans ce cas ça fonctionne bien. Le pourquoi doit être situé dans le code de CFG qui va chercher les squelettes dans fonds/ ...

Je ne reproduis pas chez moi.

Ni les erreurs array() ni les erreurs eventuelles sur migre_static ou migre_id_mot .

Regardes, mais moi, si j'affiche #CFG_ARBO{migre_static} ou #CFG_ARBO{migrestatic} (selon le fond cfg) bien les variables sont bien enregistrées et au bon endroit.

C'est comment chez toi ?

MM.

Matthieu Marcillaud wrote:

chryjs a écrit :

chryjs wrote:

Après de nombreux tests je suis "tombé" sur un cas ou CFG semble avoir un soucis :

Mais là où ça ce corse c'est que le problème vient du nom de la variable, à savoir migre_id_mot. Si je l'appelle migre_idmot (sans le 2eme underscore) plus aucun problème !!!!!!!!!!!!! Y aurait il pas un schtroumpf dans la potée ?

Alors bug ou pas ?

En fait le problème est situé dans le nom de la page dans fonds, il doit s'appeler cfg_machinchose où machinchose ne doit pas contenir de _ ,et les paramètres utilisés avec CONFIG sont préfixés avec machinchose sans _ surtout. Dans ce cas ça fonctionne bien. Le pourquoi doit être situé dans le code de CFG qui va chercher les squelettes dans fonds/ ...

Je ne reproduis pas chez moi.

Ni les erreurs array() ni les erreurs eventuelles sur migre_static ou migre_id_mot .

Regardes, mais moi, si j'affiche #CFG_ARBO{migre_static} ou #CFG_ARBO{migrestatic} (selon le fond cfg) bien les variables sont bien enregistrées et au bon endroit.

C'est comment chez toi ?

MM.

Heu ca dépends si tu utilises le code que j'ai mis ici ou celui de SVN :slight_smile: Sur SVN j'ai déjà fait la correction nécessaire... Sur celui mis ici stocké dans une page fons/cfg_migre_static bin ca buggue avec spip 193 SVN et CFG SVN.

Je ne connais pas #CFG_ARBO mais je vais essayer.

Je n'avais jamais eu ce bug jusqu'à ce que quelqu'un m'en parle sur le forum de spip-contrib... et pas pu le reproduire jusqu'à aujourd'hui. Et là bing, chaque fois ça plantait.

Voilà comme ça ne se reproduit pas facilement je voulais juste laisser une trace...

Chryjs