Bonjour, j’essaye d’exécuter ce bout de code dans un scénario et il plante sans aucun log. J’ai juste « erreur » qui apparait a la place de en cours. Le truc c’est que tout le monde à l’air de s’en servir sans soucis donc comprend pas
// id du plugin
$_plugin_Id = 'monplugin que je cherche';
// charger le plugin
$_plugin = plugin::byId($_plugin_Id); <----cette ligne pante
$scenario->setLog('plugin ('.$_plugin_Id.'):' . $_plugin);
Bonjour,
Si le plugin n’est pas trouvé, une exception est lancée.
Essaie ce code :
try {
$_plugin_Id = 'monplugin que je cherche';
// charger le plugin
$_plugin = plugin::byId($_plugin_Id); <----cette ligne pante
$scenario->setLog('plugin ('.$_plugin_Id.'):' . $_plugin);
} catch (Exception $e) {
$scenario->setLog( var_export($e, true));
}
A+
Bernard
P-S : Attention , si le plugoin est trouvé , ta fonction setLog va essayer de placer dans le log un objet il vaudrait mieux faire cela:
if(is_object($_plugin ) {
$scenario->setLog('plugin ('.$_plugin_Id.'):' . json_encode($_plugin));
} else {
$scenario->setLog('plugin .$_plugin_Id . : 'absent, pas trouvé');
}
1 « J'aime »
La fonction que tu cites n’écrit pas dans le log du plugin mais dans le log du scénario en cours !
1 « J'aime »
Mips
Mars 16, 2021, 2:11
5
Merci, j’étais au courant mais j’ai effectivement lu le code trop vite quand j’ai répondu étant sur smartphone à ce moment là
Bonjour à tous
il y a t’il un moyen de lister le byId de tous les plugins ?
Salut,
Tu as la fonction plugin::listPlugin($_activateOnly = false, $_orderByCategory = false, $_translate = true, $_nameOnly = false)
qui te permet de récupérer un tableau de tous les plugins installés.
2 « J'aime »
$plugins = plugin::listPlugin();
foreach ($plugins as $plugin) {
$name = $plugin->getName();
$id = $plugin->getId();
$scenario->setLog($name . ' ' . $id);
}
Après en fonctio de ce que tu veux en faire, stocker dans un string ou array …
1 « J'aime »
merci à vous 2
c’est pour faire une désactivation de tous les plugins pour ma VM de test
$plugins = plugin::listPlugin();
foreach ($plugins as $plugin) {
$name = $plugin->getName();
$id = $plugin->getId();
$myPlugin = plugin::byId("$id");
$myPlugin->setIsEnable(false);
$scenario->setLog('Désactivation du plugin ' . $id);
}
Une dernière question, est il possible de remonter l’IP local de jeedom ?
Celles contenues dans index.php?v=d&p=administration#networktab :
$ipInterne = config::byKey('internalAddr','core')
$ipExterne = config::byKey('externalAddr','core')
1 « J'aime »
system
A fermé ce sujet ()
Juin 24, 2021, 2:11
14
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.