Création Widget message défilant

Bonjour à tous,

J’ai besoin d’aide pour la création d’un widget me permettant d’afficher un message( à partir d’une variable) défilant dans mon dashboard.
Ex: « Programme 1 activé: moteur actif de 10h à 12h etc etc… »
J’ai le script en JS, mais je ne sais pas comment récupérer une variable d’un virtuel pour l’afficher dans le message défilant.
Apparemment on peut en Ajax ou en Php mais mes compétences sont nulles.
Si une personne qualifiée peut m’aider je serai très content.
Merci d’avance.

Steph.

Voila le code :

<div style="width:300px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="message" data-cmd_id="#id#" title="#collectDate#">
 <div id="defil1" style="z-index:1;position:relative;width:300px;border:1px solid #C0C0C0;overflow:hidden" onmouseover="Pause1();" onmouseout="Defile1();" >
 <div id="contenu1" style="z-index:1;position:relative;white-space:nowrap;display:inline;float:left;padding:5px" >TEXTE A AFFICHER</a>
 </div>
</div>
   <script type="text/javascript">

// DEFIL TEXTE HORIZONTAL

var Timer1 ;
var Vitesse1 = 20 ;
var Scroll1 = 0 ;
var P1 = 0 ;
var Intro1 = true ;
var Boucle1 = false ;
// Texte1 peut être renseigné par une variable php
var Texte1 = 'TEXTE A AFFICHER' ;
// La séparation entre chaque texte
Texte1 = Texte1 + ' ... ' ;
var Contenu1 = document.getElementById("contenu1") ;
Contenu1.innerHTML = Texte1 ;
var LargC = Contenu1.clientWidth ;
var Defil1 = document.getElementById("defil1") ;
var LargD = Defil1.clientWidth ;
Contenu1.style.left = LargD + "px" ;

function Defile1()
{
 while ( LargC <= LargD )
 {
 Texte1 += Texte1 ;
 Contenu1.innerHTML += Texte1 ;
 LargC = Contenu1.clientWidth ;
 }
 if ( P1 == 0 )
 {
 Contenu1.innerHTML += Texte1 ;
 P1 = 1 ;
 }
Scroll1++ ; 
 if ( Intro1 == true && Scroll1 == LargD )
 {
 Scroll1 = 0 ;
 Contenu1.style.left = 0 + 'px' ;
 Intro1 = false ;
 Boucle1 = true ;
 }
 if ( Boucle1 == true && Scroll1 == LargC-10 ) // -10 compense le padding de 5px du div contenu1
 {
 Scroll1 = 0 ;
 Contenu1.style.left = 0 + 'px' ;
 }
Contenu1.style.left = ( Contenu1.offsetLeft - 1 ) + 'px' ;
Timer1 = setTimeout('Defile1()', Vitesse1) ;
}

function Pause1()
{
clearTimeout(Timer1) ; 
}

</script>
</div> 

Bonjour,

Est ce qu’un truc de ce genre pourrait être ce que tu recherche?

1 « J'aime »

Salut,

Il suffit de mettre variable(nomVariable) dans le champ équipement de la commande sur laquelle est appliquée le widget et #state# à la place de « TEXTE A AFFICHER ».

Mais ce ne fonctionnera pas de manière optimale car il manque tout le js jeedom dans le code de ton widget, je rejoins donc @iPapy autant utiliser un widget partagé et fonctionnel qui fait la même chose.

1 « J'aime »

Vous avez devancé ma réponse. Tout est dit🙂
Avec du support si besoin😉

1 « J'aime »

Merci je regarde ce widget.
Si en plus il y a le support c’est merveilleux.
Merci

@noodom
Super !! pour info, fonctionne aussi parfaitement en V3 .
Une question: est-il possible d’augmenter la longueur du scroll ?
Etant complètement incompétent en code (entre autre :smile:) , je préfère poser la question.
Merci pour ce super widget

C’est une évolution prévue (en fonction de la faisabilité dans tout casser🙂)
Mais pour la suite je te conseille d’aller sur le post principal c’est plus simple à suivre

Voila le lien du widget :

@noodom tellement évident que je n’avais pensé qu’un post existait comme quoi il n’y a pas que dans le code etc etc :smile: