Je cherche à savoir si la fonction toHtml est lancé par un design.
Elle possède 1 param : $_version mais qui retourne dashboard qu’on soit sur le dashboard ou sur les designs. Sur le panel, c’est bien panel qui est retourné.
Ensuite dans la fonction est présent : $version = jeedom::versionAlias($_version);
si on regarde en détails :
public static function versionAlias($_version, $_lightMode = true) {
if ($_version == 'mview') {
return 'mobile';
}
if ($_version == 'dview' || $_version == 'dplan' || $_version == 'plan' || $_version == 'view') {
return 'dashboard';
}
return $_version;
}
Donc $_version peut être plan, mais quand ?
Mon souhait est de proposer un template different pour les designs et le dashboard.
Oui celle-ci est bien lancé par un design et voici les étapes et commentaires :
byPlanHeader est appelée sans paramètre version
Dans la suite des événements l’ajax planHeader est appelée avec version = ‹ dashboard › par défaut :
getHtml de la class plan :
Et la partie qui fait appelle au toHtml de la class eqLogic :
Pour synthétiser et répondre en partie a ta question, actuellement, au vu du core, il n’est pas possible de capter dans un toHtml (eqLogic) la version « plan » il faudrait je pense PR ceci :
en ajoutant le paramètre version :
Evidemment dans ton toHtml il ne faudrait pas non plus utiliser versionAlias sous peine de retransformer la version en dashboard pour un design.
Je pense pas que $_version peut être plan, il est possible que, jadis, les fonctions étaient différentes et que cette partie soit restée …
Je ferai quelques tests ce soir. Possible que cela n’ai jamais été mis en fonction. Si c’est concluant je ferai un PR, cela ne devrait pas être gênant pour les autres plugins.
versionAlias, je l’avais déjà viré, mais au final je ne vois pas ce qu’il apporte vu qu’on a déjà dashboard.
A ce jour, c’est bien dashboard ou mobile qui est censé être envoyé,
versionAlias est là simplement pour éviter tout type d’erreurs a mon avis, car pour dview, dplan, plan et view le core n’a pas de version mobile.
Là c’est différent, car c’est bien le code du dev qui est appelé (panel.js), ce n’est donc pas le core, c’est donc dans ta propre fonction (ajax) que tu as certainement ajouter la version ‹ panel › pour le capter dans le toHtml.
C’est le « bruit de couloir » que j’ai aussi cru comprendre, mais il y a déjà un bon moment…,
Il me semble, sans affirmation, que c’est l’AppV2 qui substituera dans le futur a la version « mobile » du core.