Message d'erreur Call to undefined method timeline::getIsEnable()

Salut.

L’erreur peut devenir récurrente si le plugin n’est pas supprimé avant le passage en V4.

Je ne suis pas notifié sur de nombreux tag de mes plugins d’où le délai.

Voici le fix (enfin j’espère):

  • Créer le code dans un bloc code scénario
  • Activer le scénario et l’exécuter
  • En cas de persistance du problème , transmettre les logs de scenario_execution
$table1 = array(
            'id' => 'timeline_jeedom',
            );
$table2 = array(
            'id' => 'timeline_triggers',
            );			

$sql = "SHOW TABLES LIKE :id";
$exist1 = DB::Prepare($sql, $table1, DB::FETCH_TYPE_ROW);
$exist2 = DB::Prepare($sql, $table2, DB::FETCH_TYPE_ROW);

if ($exist1) {
	echo 'timeline_jeedom exist '  . PHP_EOL;
	DB::Prepare('DROP TABLE IF EXISTS `timeline_jeedom`', array(), DB::FETCH_TYPE_ROW);
	echo 'timeline_jeedom supprimée'  . PHP_EOL;
} else {
	echo 'timeline_jeedom inexistante'  . PHP_EOL;
}

if ($exist2) {
	echo 'timeline_triggers exist' . PHP_EOL;
	DB::Prepare('DROP TABLE IF EXISTS `timeline_triggers`', array(), DB::FETCH_TYPE_ROW);
	echo 'timeline_triggers supprimée' . PHP_EOL;
} else {
	echo 'timeline_triggers inexistante' . PHP_EOL;
}

$eqLogics = eqLogic::byType('timeline');
foreach($eqLogics as $eqLogic) {
	if(is_object($eqLogic)) {
		echo 'Equipement trouvé : ' . $eqLogic->getName() . PHP_EOL;
		foreach ($eqLogic->getCmd() as $cmd) {
			if(is_object($cmd)) {
				$cmd->remove();
			}
		}
		echo 'Suppression des commandes OK' . PHP_EOL;		
		$eqLogic->remove();
		echo 'Suppression de la timeline OK'. PHP_EOL;
	}
}

$cmds = cmd::all();
$i = 0; 
foreach ($cmds as $cmd) {
  if($cmd->getEqtype() == 'timeline') {
    $cmd->remove();
    $i++;
  } 
}
echo $i . ' commandes supprimées en post....'. PHP_EOL;

$dir = __DIR__ . '/../../plugins/timeline';
if (!is_dir($dir)) {
	echo 'le dossier du plugin est supprimé' . PHP_EOL;	
} else {
	echo 'le dossier du plugin exist' . PHP_EOL;	
}
echo 'exécution du script terminé';
3 « J'aime »