#


.

. . .()

#

)
vdm

. Vous obtiendrez un dossier « plugin-template-master » contenant des dossiers 3rparty, core, desktop…

.


. . .

:

.

Renommez le dossier « plugin-template-master » en « » (l’id) du plugin.

..

json { “id” : “vdm”, “name” : “”, “description” : “”, “licence” : “AGPL”, “author” : “”, “require” : “”, “category” : “monitoring”, “changelog” : “”, “documentation” : “”, “language” : “”, “compatibility” : “” }

.

(vdm), .

.

.

Remplacez

php

par

php


php

par

php

:

php $plugin = plugin::byId(‘template’)

Par

php $plugin = plugin::byId(‘vdm’)


html

{{Mes templates}}<legend> Par html <legend> {{Mes équipements}}<legend> ———————— php <?php include_file(‘desktop’, ‘template’, ‘js’, ‘template’)?> Par php <?php include_file(‘desktop’, ‘vdm’, ‘js’, ‘vdm’)?> , ** <?php include_file('core', 'plugin.template', 'js')?>. - . - . - . php () { } () { } () { } : image . . image . . # . . Elle sera de sous- « string » car c’est une chaîne de caractère. . -Créez un équipement « vdm1 » en cliquant sur le +. . ). . .) php () { $ = $this->getCmd(null, ‘story’) (!)) { $ = new vdmCmd() $info->setName((‘Histoire’, __FILE)) } $info->setLogicalId(‘story’) $info->setEqLogic_id($this->getId()) $info->setType(‘info’) $info->setSubType(‘string’) $info->save() $refresh = $this->getCmd(null, ‘refresh’) (!)) { $refresh = new vdmCmd() $refresh->setName((‘Rafraichir’, __FILE)) } $refresh->setEqLogic_id($this->getId()) $refresh->setLogicalId(‘refresh’) $refresh->setType(‘action’) $refresh->setSubType(‘other’) $refresh->save() } - Créez un autre équipement « vdm2 » en cliquant sur le +. . . . - Enregistrez le premier équipement « vdm1 » pour créer les commandes. . . image .. html <div role="tabpanel" class="tab-pane" id="commandtab"> {{Ajouter une commande}}

<div class="table-responsive"> <table id="table_cmd" class="table table-bordered table-condensed"> <thead> <tr> <th>{{Id}}<th> <th>{{Nom}}<th> <th>{{Type}}<th> <th>{{Paramètres}}<th> <th>{{Options}}<th> <th>{{Action}}<th> <tr> <thead> <tbody> <tbody> <table> <div> <div> .. html * * ) { (!)) { : {} } } (!)) {
} . :

::


: :




:



.. .
:: .}}” .}}” :30%display: .}}” .}}” :30%display: :30%display:
::



:: .id)) {

}

$(‘#table_cmd tbody’).append(tr)
({ id: $(‘.eqLogicAttr[data-l1key=id]’).value(), filter: { type: ‘info’ }, error: ) { $(‘#div_alert’).showAlert({ message: .message, level: ‘danger’ }) }, success: ) {


} }) } . . # . php $url = “http:www.viedemerde.fraleatoire” $data = file_get_contents($url) @$dom = new DOMDocument() $dom->loadHTML(‘<?xml encoding=”UTF-8”>’ .$data) $xpath = new DOMXPath($dom) $divs = $xpath->query(‘article[@class=”art-panel col-xs-12”]div[@class=”panel-content”]pa’) . php () { $url = “http:www.viedemerde.fraleatoire” $data = file_get_contents($url) @$dom = new DOMDocument()
$dom->loadHTML($data)
$xpath = new DOMXPath($dom) $divs = $xpath->query(‘article[@class=”art-panel col-xs-12”]div[@class=”panel-content”]pa’)
} ). . php ()) { } C’est qu’on va définir ce qu’il va se passer quand on actionne la commande « Rafraîchir ». ) On vérifie le logical de la commande lancée et si « refresh » on lance les actions php ()) { ‘: .
break } (). . php $eqlogic = $this->getEqLogic() Récupération de l’eqlogic $ = $eqlogic->randomVdm() Lance la fonction et stocke le résultat dans la variable $info On met à jour la commande « story » avec la variable $info. php $eqlogic->checkAndUpdateCmd(‘story’, $info) php ()) { $eqlogic = $this->getEqLogic() récupère l’éqlogic de la commande $this
‘: . $ = $eqlogic->randomVdm() On lance la fonction randomVdm() pour récupérer une et on la stocke dans la variable $info $eqlogic->checkAndUpdateCmd(‘story’, $info) on met à jour la commande avec le Logical “story” de l’eqlogic break } } . Puis la commande « Histoire » qui doit être à jour. . . . # ) . Si vous cliquez sur la commande « refresh » , la commande « story » se met à jour mais sinon rien. . . . : : - : - : - : - : - : - : 1jour ). (). . php * * () { } * php () { } , php self::) php ::) { } Voila maintenant on recherche la commande « refresh » de l’équipement (eqLogic) php $cmd = $vdm->getCmd(null, ‘refresh’) php (!)) { continue } $cmd->execCmd() php () { :: $cmd = $vdm->getCmd(null, ‘refresh’) retourne la commande “refresh” si elle existe (!
} $cmd->execCmd() la commande existe on la lance } } Pour tester, dans jeedom, allez dans configurationmoteur de tâches et lancer le de class « plugin » fonction « » . . A la création de l’équipement, la commande « story » ne se met pas à jour. . (). . php () { $cmd = $this->getCmd(null, ‘refresh’) On recherche la commande refresh de l’équipement
$cmd->execCmd() } } ? php () { self:: } () php ) {
$eqLogics = self::byType(‘vdm’, true) } ) $eqLogics = array(self::byId($_eqLogic_id)) } ) { $cmd = $vdm->getCmd(null, ‘refresh’) retourne la commande “refresh si elle existe (!
} $cmd->execCmd() la commande existe on la lance } } . ==>
==> . . . # . . . La commande qui apparaît est la commande «story» de info, sous- string. . :D Donc on va changer le style en affectant un template à la commande « story» . ==> .) .) J’applique le template « cmd.info.string.tile.html » à ma commande. .php , fonction postSave() et j’ajoute le template « tile » pour la commande « story » en appliquant la méthode setTemplate() php $ = $this->getCmd(null, ‘story’) (!)) { $ = new vdmCmd() $info->setName((‘Histoire’, __FILE)) } $info->setLogicalId(‘story’) $info->setEqLogic_id($this->getId()) $info->setType(‘info’) $info->setTemplate(‘dashboard’,’tile’)template pour le dashboard $info->setSubType(‘string’) $info->save() . . . défaut la largeur du widget de l’équipement(eqLogic) et la hauteur sont à « auto ». .. php $this->setDisplay(“width”,”800px”) !! . . ? () php () { $this->setDisplay(“width”,”800px”) } . # . > ** > > . : . .. php $plugin = plugin::byId(‘vdm’) appelle la classe plugin du core . : . : php $this->setConfiguration(“type”,”mon_type”) si on veut définir un paramètre de valeur mon_type. Comme on a défini la largeur du widget via la méthode setDisplay() . :D Cherchez html html de laisser la classe eqLogicAttr ). Dans le champs «Paramètre» d’un équipement, tapez «aléatoire» et sauvegardez. . image ? . C’est pourquoi il ne faut surtout pas toucher à cette ligne de code comme indiqué dans le premier menu « test ». php <?php include_file(‘core’, ‘plugin.template’, ‘js’)?> Chargement du fichier corejsplugin.template.js (en partant de la racine du site) . html retourne l’id(unique) de l’eqLogic(équipement) que l’on va pouvoir récupérer via $this->getId() html retourne le nom de l’eqLogic(équipement) que l’on va pouvoir récupérer via $this->getName() Etc… . html
    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.