Bonjour à tous,
Sans vouloir utilisé configuration puisque non adapté à mon besoin, je souhaiterais trouver une manière d’avoir une commande info et deux commandes actions, communes à tous les équipements d’un plugin.
Ainsi, quand on modifierait l’intitulé de la commande info ou la valeur de la commande action, on aurait avoir cette information dans tous les devices du plugin.
Je réfléchis a un système de doublons et de mise à jour dès qu’un est modifié mais cela me semble lourd.
Vous êtes vous déja posé ce type de question ? Quelqu’un l’a mis en oeuvre dans un plugin ?
Merci
Hello,
tu parles du nom de la commande info/action ?
ou de la valorisation de ces commandes ?
Les deux, je voudrais dans chaque edlogic, 2 commandes actions et 1 commande info qui soient toutes identiques.
Et tes 2 actions pilotent la valeur de l info ?
Ou les 3 n ont rien a voir entre elles ?
oui les actions modifie l’info
j’avais un peu le même besoin avec une unique commande identique sur l’ensemble des équipements, qui réalise une action commune à tous les équipement. mais j’ai rien trouvé de particulier à ce propos.
du coup j’ai fait un truc dans ce genre :
en partant du principe que tu crées :
- 1 commande info, logicalId= monInfo
- 2 commandes action, logicalId= monAction1 & monAction2, qui mettent à jour l’info
côté plugin dans ta class qui extend cmd :
public function execute($_options = array()) {
if ($this->getType() != 'action') {
return;
}
switch ($this->getLogicalId()) {
case 'monAction1':
case 'monAction2':
if ( !isset($_options['onlyCurrentEq']) ){
foreach (eqLogic::byType('monPluginId') as $eqLogic) {
if ($eqLogic->getId() == $this->getId()) continue;
// ++ check if eq enable ?
$cmd = $eqLogic->getCmd( null, $this->getLogicalId() );
$cmd->execCmd( array_merge( $_options, array('onlyCurrentEq' => true) );
}
}
$this->getEqLogic()->checkAndUpdateCmd('monInfo', $_options['value'] );
break;
.......
en gros à chaque exec d’une des 2 actions, je boucle sur l’ensemble de mes équipements pour réaliser l’action elle-même. j’ajoute une clé dans les options pour dire de n’executer l’action que pour l’équipement en question (sauf pour celui qui est l’initiateur qui va justement faire la boucle)
est ce que ca pourrait marcher pour toi …?
Merci mille fois, je regarde si cela s’adapte à moi ou si je fais autrement, je te tiens au courant
.
et ici tu as fini par faire quoi …?
J’ai fini par laisser tomber, mon idée n’était finalement pas fonctionnelle, des cas de figures nécessitaient d’avoir une commande par device, donc j’ai abandonné. Merci pour ton aide, cela peut mettre utile pour plus tard.
1 « J'aime »