mathni
Décembre 28, 2025, 3:47
1
Bonjour, suite à MAJ jeedom 4.5.1 et Linux sous Debian 12,
l’interface du plugin Qivivo n’est plus accessible. J’ai une erreur « implode(): Argument #2 ($array) must be of type ?array, string given » sur l’interface (voir capture). Merci pour votre aide.
Informations Jeedom
Core : 4.5.1 (master)
DNS Jeedom : non
Plugin : Qivivo
Version : 2024-10-12 01:24:35 (stable)
Bonjour
Parfois la veraion beta regle ce type de soucis.
Antoine
PS: voir si ce post aide à mieux cerner le problème
Disclaimer important
La procédure ci-dessous modifie un fichier du core Jeedom :
/var/www/html/core/class/jeedom.class.php
C’est totalement volontaire, mais non supporté officiellement.
Vous devez savoir ce que vous faites avant de l’appliquer.
Nécessite PHP 7 minimum.
La modification est réversible facilement via une simple commande SSH (voir plus bas).
Vérifiez que vous savez lancer une connexion SSH avant de lancer ce patch !!
…
mathni
Décembre 28, 2025, 6:19
3
Merci pour ta réponse. J’ai testé en beta, même erreur. Et j’ai appliqué le patch pour voir si j’aurai davantage d’infos.
mathni
Décembre 30, 2025, 8:32
4
Bonsoir,
Pas d’infos supplémentaires dans les logs. En revanche, j’ai un peu avancé en lisant le code. La fonction implode est utilisée une seule fois dans le fichier qivivo.php
ligne 49
$cats = $eqLogic->getCategory();
unset($cats['default']);
$div .= '<span> ' . implode(array_keys($cats, 1), ', ') . '</span>';
if ($eqLogic->getIsVisible() == 1) {
$div .= ' <i class="fas fa-eye"></i>';
} else {
$div .= ' <i class="fas fa-eye-slash"></i>';
}
@kiboost , une idée ?
mathni
Décembre 30, 2025, 9:00
5
J’ai réussi à corriger l’erreur en modifiant le code de la ligne 49 comme suit:
$cats = $eqLogic->getCategory();
unset($cats['default']);
$filteredCats = [];
if (is_array($cats)) {
$filteredCats = array_keys($cats, 1);
}
// Utilisation de implode uniquement si le tableau n'est pas vide
$div .= '<span> ' . (!empty($filteredCats) ? implode(', ', $filteredCats) : '') . '</span>';