Administrar widgets de complementos

Hay varias posibilidades para crear widgets personalizados para complementos :

Función HTML

Nada especial en eso, la función toHtml debe devolver el widget en html, tienes un ejemplo allá

Lo importante son especialmente las primeras líneas :

$replace = $this->preToHtml($_version);
si (!is_array($reemplazar)) {
	devolver $reemplazar;
}

La fonction preToHtml renvoi :

Le système de template

Le système de template de widget dans le code est en fait exactement le même que celui sur la page Outils -> Widget de jeedom.

Voaquí un exemple :

widget de plantilla de función estática pública(){
	$return = array('info' => array('string' => array()));
	$return['info']['string']['state'] = array(
		'template' => 'tmplmultistate',
		'test' => array(
			array('operation' => '#value# == 2','state_light' => '<i class="icon maison-vacuum6"></i>','state_dark' => '<i class="icon maison-vacuum6"></i>'),
			array('operation' => '#value# == 3','state_light' => '<i class="fa fa-pause"></i>','state_dark' => '<i class="fa fa-pause"></i>'),
			array('operation' => '#value# > 3 || #value# < 2','state_light' => '<i class="fa fa-home"></i>','state_dark' => '<i class="fa fa-home"></i>')
		)
	);
	devolver $regresar;
}

Aquí crearemos un nuevo widget basado en la plantilla “tmplmultistate” (tienes la lista de plantillas aquí son aquellos con tmpl en su nombre), para un comando de tipo info y subtipo cadena.

IMPORTANTE

Cada plantilla es para un tipo y subtipo determinado, por lo que debes comprobar que la plantilla que deseas utilizar existe para el tipo y subtipo

Luego, como es una plantilla con varios estados, debes definir los iconos según el estado. Esto se hace en la parte de prueba de la tabla.

Ejemplo : para la primera prueba, decimos que si el valor del comando es 2 entonces tendremos que reemplazar la etiqueta #_state_# (en el código html de la plantilla) por>

Otro ejemplo basado en otra plantilla podría ser :

widget de plantilla de función estática pública(){
	$return = array('info' => array('string' => array()));
	$return['info']['binary']['toto'] = array(
		'plantilla' => 'tmplicon',
		'reemplazar' => matriz(
			'#_icon_on_#' => '<i class=\'icon_green icon jeedom-porte-ferme\'></i>',
			'#_icon_off_#' => '<i class=\'icon_red icon jeedom-porte-ouverte\'></i>'
			)
	);
	devolver $regresar;
}

Ici, je crée un widget totó basé sur le template “tmplicon” en type info et sous-type binaire. Quand il vaut 1 alors l’icône sera et quand il vaut 0, ça sera

TIPS

Petite astuce, vous pouvez à la place d’une icône mettre une balise image (attention au chemin)

Ensuite, pour utiliser votre widget :

$cmd->setTemplate('dashboard','neato::state');
$cmd->setTemplate('mobile','neato::state');

Es como un widget normal excepto por el nombre del widget que tiene el formato id_plugin::nombre_widget. Para el segundo ejemplo, será id_plugin::toto

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.