[SPIP Zone] Correction dans Formidable…

…sans doute hasardeuse ?

Dans https://zone.spip.net/trac/spip-zone/changeset/113300/spip-zone, j'ai essayé de corriger une notice PHP, mais je me rend compte que ce n'est pas suffisant/incomplet.

Mais surtout, après re-lecture du code de la fonction formidable_trouver_reponse_a_editer(…), je m’aperçois que le code est un peu confus (pour moi ?).

Je revert ?
P

Le 09/01/2019 à 13:32, peetdu a écrit :

…sans doute hasardeuse ?

Dans https://zone.spip.net/trac/spip-zone/changeset/113300/spip-zone, j'ai essayé de corriger une notice PHP, mais je me rend compte que ce n'est pas suffisant/incomplet.

Mais surtout, après re-lecture du code de la fonction formidable_trouver_reponse_a_editer(…), je m’aperçois que le code est un peu confus (pour moi ?).

Je revert ?
P

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

là comme cela je vois un truc bizarre
array_filter avec un seul argument
un $reponses pas systématiquement initialisé

Et je comprend pas la notice que tu a voulu supprimé.

Donc quand on comprend pas du code > revert. Mieux vaux une notice qu'un bug.

Le 09/01/2019 à 19:44, Maïeul a écrit :

là comme cela je vois un truc bizarre
array_filter avec un seul argument

Sans fonction de Callback, array_filter() supprime toutes les entrées du tableau valant FALSE, null ou vide. Plus prudent de faire ça avant de tester un tableau avec empty()

un $reponses pas systématiquement initialisé

Effectivement. Je trouve ça bizarre aussi.

Et je comprend pas la notice que tu a voulu supprimé.

le tableau $options passé en argument peut être vide.

Donc quand on comprend pas du code > revert. Mieux vaux une notice qu'un bug.

Revert avec r113347.

Le 09/01/2019 à 23:30, peetdu a écrit :

Le 09/01/2019 à 19:44, Maïeul a écrit :

là comme cela je vois un truc bizarre
array_filter avec un seul argument

Sans fonction de Callback, array_filter() supprime toutes les entrées du tableau valant FALSE, null ou vide. Plus prudent de faire ça avant de tester un tableau avec empty()

a oui c'est vrai. J'étais vraiment fatigué hier soir

un $reponses pas systématiquement initialisé

Effectivement. Je trouve ça bizarre aussi.

Et je comprend pas la notice que tu a voulu supprimé.

le tableau $options passé en argument peut être vide.

ca se produit dans quel cas? le problème peut être plus en amont (ou pas!)?

Donc quand on comprend pas du code > revert. Mieux vaux une notice qu'un bug.

Revert avec r113347.

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Et je comprend pas la notice que tu a voulu supprimé.

le tableau $options passé en argument peut être vide.

ca se produit dans quel cas? le problème peut être plus en amont (ou pas!)?

pour reproduire :
1- tu actives
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT',E_ALL);

2- tu vas dans une page
ecrire/?exec=formulaire&id_formulaire=xxx

et hop, petite flopée de notices, que le formulaire ait ou non des réponses déjà enregistrées.

Le 10/01/2019 à 12:21, peetdu a écrit :

Et je comprend pas la notice que tu a voulu supprimé.

le tableau $options passé en argument peut être vide.

ca se produit dans quel cas? le problème peut être plus en amont (ou pas!)?

pour reproduire :
1- tu actives
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT',E_ALL);

2- tu vas dans une page
ecrire/?exec=formulaire&id_formulaire=xxx

et hop, petite flopée de notices, que le formulaire ait ou non des réponses déjà enregistrées.

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

je suis toujours en local en mode debug avec toutes les erreurs, et je n'ai aucune flopéée d'erreur lors que je visite la page d'un formulaire...

pour reproduire :
1- tu actives
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT',E_ALL);

2- tu vas dans une page
ecrire/?exec=formulaire&id_formulaire=xxx

et hop, petite flopée de notices, que le formulaire ait ou non des réponses déjà enregistrées.

je suis toujours en local en mode debug avec toutes les erreurs, et je n'ai aucune flopéée d'erreur lors que je visite la page d'un formulaire...

Testé en local sur 3 sites différents. Résultats variables, mais j'ai toujours au moins une notice à propos du fichier /inc/formidable.php

"""Notice: Undefined index: formulaires in /plugins/auto/formidable/v3.34.5/inc/formidable.php on line 563"""

(avec SPIP 3.2.1[24194])

Note : il est important d'avoir """define('SPIP_ERREUR_REPORT',E_ALL);""" sinon effectivement tu vois rien.

Le 10/01/2019 à 15:44, peetdu a écrit :

pour reproduire :
1- tu actives
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT',E_ALL);

2- tu vas dans une page
ecrire/?exec=formulaire&id_formulaire=xxx

et hop, petite flopée de notices, que le formulaire ait ou non des réponses déjà enregistrées.

je suis toujours en local en mode debug avec toutes les erreurs, et je n'ai aucune flopéée d'erreur lors que je visite la page d'un formulaire...

Testé en local sur 3 sites différents. Résultats variables, mais j'ai toujours au moins une notice à propos du fichier /inc/formidable.php

"""Notice: Undefined index: formulaires in /plugins/auto/formidable/v3.34.5/inc/formidable.php on line 563"""

(avec SPIP 3.2.1[24194])

Note : il est important d'avoir """define('SPIP_ERREUR_REPORT',E_ALL);""" sinon effectivement tu vois rien.

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

pour cette erreur précise (qui ne pouvait certainement pas être corrigée par tes correction de l'autre jour), 3.34.6 corrige le tir.

Le 11/01/2019 à 11:14, Maïeul a écrit :

(qui ne pouvait certainement pas être corrigée par tes correction de l'autre jour)

Parce que ce n'était pas l'objectif. Ou alors je ne comprend pas l’intérêt de cette dernière remarque ?

Le 11/01/2019 à 14:54, peetdu a écrit :

Le 11/01/2019 à 11:14, Maïeul a écrit :

(qui ne pouvait certainement pas être corrigée par tes correction de l'autre jour)

Parce que ce n'était pas l'objectif. Ou alors je ne comprend pas l’intérêt de cette dernière remarque ?

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

laisse tomber, j'ai mal compris tes messages.