bonjour,
je suis entrain de tenter de porter un plugin vers la V4.4. j’ai installé un docker avec jeedom 4.4 beta et mes plugins en 4.3.2 (qui marchent je le précise).
Dans ce plugin j’ai une fonction templateWidget qui permet de définir des modèles de widget simples. voilà le début de la fonction pour illustration :
public static function templateWidget(){
$return = array('action' => array('string' => array()), 'info' => array('string' => array()));
$return['action']['other']['mylock'] = array(
'template' => 'tmplicon',
'replace' => array(
'#_icon_on_#' => '<i class=\'icon_green icon jeedom-lock-ouvert\'></i>',
'#_icon_off_#' => '<i class=\'icon_red icon jeedom-lock-ferme\'></i>'
)
);
$return['info']['string']['mypellets'] = array(
'template' => 'tmplmultistate',
'test' => array(
array('operation' => '#value# == 0','state_light' => 'Arrêt','state_dark' => 'Arrêt'),
array('operation' => '#value# >= 1 && #value# <= 9','state_light' => '#value#','state_dark' => '#value#'),
array('operation' => '#value# == 10 && #value# <= 5','state_light' => 'extinction','state_dark' => 'extinction'),
array('operation' => '#value# == 255','state_light' => 'Allumage', 'state_dark' => 'Allumage')
)
);
Dans les menus, les templates apparaissent bien :
Dans le code pour créer les commandes, j’attribue les widget custom sur les commandes comme suit en passant « jee4heat::mypellet » comme argument $Template:
if ($IsHistorized!=null) $Command->setIsHistorized(strval($IsHistorized));
if ($Template != null) {
$Command->setTemplate('dashboard', $Template);
$Command->setTemplate('mobile', $Template);
}
if ($unite != null && $SubType == 'numeric')
$Command->setUnite($unite);
Sur Jeedom 4.3.2 ça passe sans souci, sur 4.4 il ne change pas le widget et attribue Tile par défaut à la place.
une idée de ce qui ne marche pas dans mon système ?