Warning PHP / Invalid argument supplied for foreach

Hello,

Je ne trouve pas la repository git du plugin octoprint, sinon j’aurais posté ça là bas.

Dans les Logs> cron_execution, je constate les Warnings suivants :

PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/octoprint/core/class/octoprint.class.php on line 46
PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/octoprint/core/class/octoprint.class.php on line 82

En effet, dans le fichier source on constate que les « array_expression » des foreach ne sont pas protégés et vous propose donc le patch suivant :

45a46
>                       if (is_array($jsonprinter['temperature']) || is_object($jsonprinter['temperature'])) {
81a83,85
>                       }
>                       if ( (is_array($jsonprinter['state']) || is_object($jsonprinter['state'])) &&
>                            (is_array($jsonprinter['state']['flags']) || is_object($jsonprinter['state']['flags'])) ) {
87a92
>                       }

& remise en forme de l’indentation.

En passant, la documentation ici : https://jeedom.github.io/documentation/howto/fr_FR/remonter_un_bug ne s’affiche plus correctement (juste chez moi ?)

Cordialement

Bonjour @Bad,

https://doc.jeedom.com/fr_FR/howto/remonter_un_bug

akenad :slight_smile:

Hello @akenad,

Merci pour ta réponse super rapide et la nouvelle URL.

Je ne me suis pas bien exprimé, l’URL en question est présente ici dans Jeedom v4.0.58 :


Il faudra peut-être la modifier pour pointer vers la nouvelle doc :wink:

Cordialement

1 « J'aime »

Hello, je déterre mon sujet car le bug est toujours présent.

Impossible d’ouvrir de ticket car « Votre service pack ne vous permet pas d’ouvrir un ticket sur un plugin gratuit », je ne sais pas pour quoi je ne l’ai pas signalé plus tôt…

Bref, c’est patché chez moi depuis depuis juin et je n’ai plus de souci, j’attends que quelqu’un intègre ce patch (ou un autre) au train stable pour fermer le sujet.

En passant, le plugin Octoprint étant gratuit, pourquoi la repository n’est pas publique ?

Merci