Besoin renseignement création plugin

Je cherche à placer plusieurs icon a la place de getPathImgIcon() pour faire en sorte que ca soit représentatif à l’appareil configuré.
Est ce que cela est possible?

Cette fonction sert à afficher l’icone d’un plugin sur les pages de gestion des plugins.
Pour ton besoin, en fait, tu cherches à afficher une image relative à un type d’équipement de ton plugin, si j’ai bien compris. Donc, cette fonction ne convient pas pour ton besoin.
Rien ne t’empêche de définir une fonction équivalente au niveau de ta classe de définition du plugin.
Par exemple :
public function getpathImgIcon($_type) { … }

A+
Bernard

Bonjour Bernard,

Oui j’aimerais assigner en fonction de l’appareil ajouté un icone.
Tu veux dire qu’il y aura une fonction par classe d’appareil alors?

Je vais me renseigner pour voir si je trouve un exemple.

Merci

Non. A un équiêment correspond une seule classe eqLogic. par contre , ton équipêment (ou eqLogic) peut te retourner une icone particulière suivant un paramètre ( le type d’appareil).
Il suffit d’implémenter dans la classe de ton plugin la fonction public function getpathImgIcon($_type) { … } qui retournera le chemin d’accès de l’icone particulière en fonction du type.

A+
Bernard

Ah oui je comprend.

Je vais regarder à cela ce soir.
Merci encore

Normalement lorsque tu auras accès à ton eqLogic , il doit correspondre à un type d’appareil Ce type est stocké au niveau de la config. Donc , il n’est pas nécessaire de passer le paramètre type, ta fonction pourrait être :

public function getpathImgIcon()  {
$path = "";
switch ($eqLogic->getConfiguration(‹ ModuleType ›) {
   case 'type 1' :  $path = ' path to icone type 1'; break;
   case 'type n' :  $path = ' path to icone type n'; break;
   default:
                $path = ' path to default  icone ';
}
return $path;
}

Ah super gentil.
Je te tiendrais au courant.

J’ai essayé. Je n’ai pas d’erreur mais les icones ne s’affichent pas.
Mon script n’est peut-être pas correct.

public function getpathImgIcon()  {
        $path = "";
        switch ($eqLogic->getConfiguration("device")) {
           case 'lumiere' :  $path = ' /plugins/dobiss/images/lumière_icon.png'; break;
           case 'prise' :  $path = ' /plugins/dobiss/images/prise_icon.png'; break;
           case 'ventilation' :  $path = ' /plugins/dobiss/images/ventilation_icon.png'; break;
           case 'volet' :  $path = ' /plugins/dobiss/images/volet_icon.png'; break;
           default:
                        $path = ' /plugins/dobiss/images/dobiss_icon.png';
        }
        return $path;
    }

Merci

je l’ai créé dans le fichier dobiss.class.php mais je n’arrive pas à le faire démarrer.
J’ai rajouté un echo « bonjour » comme test mais je ne vois rien.

Il faudrait montrer le code du plugin et aussi l’appel de la fonction.
A+
Bernard

Oui c’est surtout ça qu’il y a, c’est que la function ne veux pas démarrer car j’ai rajouté un écho et il ne s’affiche pas.
De quoi aurais-tu besoin?

Merci bernard

Je vais copier le fichier class et le fichier html.
Je mange et après je l’envoie

voici le code fichier class

Encore merci

Merci d’arrêter de partager des codes de classes entières sur le forum stp. C’est la 2ème fois que je dois les supprimer. Hormis que ça n’a pas vraiment sa place ici, cela ralentit considérablement l’accès au forum.

Github sert à ça.

Aparté : plutôt que de demander de l’aide à chaque fonction il semblerait plus instructif de chercher la solution tout en améliorant son apprentissage du développement par la même occasion.

2 « J'aime »

Ah très bien désolé.
Je vais passer par Github.

Bernard,

Voilà j’ai mis mon code sur github. C’est la première fois que je le faisait.

l’appel de la function ne doit pas se faire à cet endroit?

<img name="icon_visu" src="<?= $plugin->getPathImgIcon(); ?>" style="max-width:120px;"/>

Merci

1 « J'aime »

En regardant vite fait ton code sur github, je vois deux erreurs
: dans desktop/php/dobiss.php
ligne 46 , il faut appeler la fonction ainsi :

echo '<img src="' . $eqLogic->getPathImgIcon() . '"/>';

dans la classe dobiss.class.php:
le path indiqué doit être indiqué ainsi :

public function getPathImgIcon()  {
        $path = "";
        switch ($this->getConfiguration("device")) {
           case 'lumiere' :  $path = ' lumière_icon.png'; break;
           case 'prise' :  $path = ' prise_icon.png'; break;
           case 'ventilation' :  $path = ' ventilation_icon.png'; break;
           case 'volet' :  $path = ' volet_icon.png'; break;
           default:
                        $path = ' dobiss_icon.png';
        }
        return '/plugins/dobiss/images/' . $path;
}```


A+
Bernard

Ah merci beaucoup Bernard.

Oui je me débrouille un peu mais je suis pas calé en php.

Petite question,
Dans quel cas met-on par exemple getPathImgIcon(« device »)
Peux-tu m’expliquer à quoi ca sert?

Merci pour ton aide

Dans ton cas cela n’set pas utile, puisque la valeur du device est dans la configuration de l’équipement eqLogic. Sinon en règle générale cela sert à passer un paramètre à une fonction. La fonction exécutera du code ne tenant compte de la valeur du paramètre.

A+
Bernard

P-S : Est-ce que cela fonctionne maintenant ?

Oui super Bernard.
J’ai juste reculé d’un cran le nom du fichier png par rapport à l’apostrophe.
Oui c’est super j’ai compris le principe.

Merci beaucoup pour ton aide.