Résoudre l’erreur « Class object not found » dans un plugin Jeedom

Depuis la V4.x de Jeedom, certaines structures logicielles relatives aux plugins ont changé. Cela induit que ces plugins doivent évoluer pour devenir compatibles avec les dernières versions de Jeedom.

Malheureusement certains plugins ne sont plus maintenus par leur créateur. Ils n’ont donc pas évolué pour le version 4. Dans ce cas, une erreur classique est l’affichage du message d’erreur suivant à l’ouverture de l’interface du plugin : Class ‘object’ not found.

C’est une erreur assez facile à corriger dans le code des plugins. Cela ne signifie pas que l’astuce ci-dessous fonctionne à 100% et que la compatibilité sera assurée à tous les coups, mais le simple correctif ci-dessous a fonctionné pour les plugins qui m’intéressaient (plugins ftpd, plugin FreeCrystal, plugin JPI)

Pour corriger ce problème il sera nécessaire de réaliser une petite modification dans le code de ces plugins. Voici les étapes pour réaliser cette action. Certaines étapes ne sont pas décrites en détail. Si vous ne savez pas comment faire, il est peut être plus sage de ne pas tenter la manipulation 😉 …

  1. Se connecter sur votre machine hébergeant jeedom
  2. Ouvrir un terminal en local ou via liaison ssh
  3. Se logger en root
    su root
  4. Aller dans le répertoire du plugin défaillant.
    Exemple pour le plugin Freecrystal :
    cd /var/www/html/plugins/freeCrystal/
  5. Rechercher dans l’ensemble des fichiers la classe en défaut
    grep -R object:: *
    Cette fonction retourne une liste des fichiers à modifier
  6. Réaliser une copie de sauvegarde des fichiers qui seront modifiés
    cp desktop/php/freeCrystal.php desktop/php/freeCrystal.php.old
  7. Editer le fichier à modifier
    nano desktop/php/freeCrystal.php
  8. Avec les fonctions de l’éditeur rechercher la ligne à modifier
    Touche : CTRL+W pour réaliser la recherche
    Rechercher object::
  9. Remplacer object:: par jeeObject::
    Ligne avant correction : foreach (object::all() as $object) {
    Ligne après correction : foreach (jeeObject::all() as $object) {
  10. Sauver le fichier modifié
    Touche CTRL+O puis ENTREE

Vous pouvez alors tenter de recharger le plugin dans l’interface de Jeedom, le problème a disparu.

Vincent Recipon

Propriétaire de ce blog. Owner of this blog.

Vous aimerez aussi...

1 réponse

  1. untoutseul05 dit :

    A priori, ce n’est pas jeeobject mais jeeObject.
    Mais merci pour la piste

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.