Jump to content

script compte à rebours


Fabrice

Recommended Posts

Bonjour !
je souhaite poser un javascript directement dans l'éditeur de la page d'accueil.

attention : dans le tpl c'est facile.

là, je souhaite poser le script dans le "texte" - ainsi la modif sera plus facile lorsque je modifierais le texte.

est-ce possible ?

l'idée serait e quelque sorte d'afficher une date mise à jour continuellement.
une idée ?

j'ai essayé via le code html dans l'éditeur, mais il n'en veut pas. le code n'est pas interprèté.

Link to comment
Share on other sites

j'avais proposé ca sur oscommerce en son temps

C'est un script de compte a rebours facile a mettre en place

<*script language="javascript">
//////////////////////////////////////////////////////////////////////////////
//    Fonction horloges pour ventes flash (TV)      //
//////////////////////////////////////////////////////////////////////////////

  function formatageDate(chaine) {
   var resultat
    if (chaine<=9) {
     resultat="0"+chaine
   }
   else {
    resultat = chaine
   }
   return resultat;
  }

  function calculdiff(idclock,datedeb,datefin) {
   var T1=datedeb.split('-');
   var T2=datefin.split('-');

   var NewDateDeb = new Date('20' + T1[0] + '/' + T1[1] + '/' + T1[2] + ' ' + T1[3] + ':' + T1[4] + ':' + T1[5])
   var NewDateFin = new Date('20' + T2[0] + '/' + T2[1] + '/' + T2[2] + ' ' + T2[3] + ':' + T2[4] + ':' + T2[5])

   var Diff = Math.floor((NewDateFin - NewDateDeb)/1000)

   //Gestion du probl? de fin de mois dans le calcul de la date
   //if ((T1[1] == '05' && T2[1] == '06')||(T1[1] == '08' && T2[1] == '09')) {
   // Diff = Diff + 86400
   // }
   //if ((T1[1] == '06' && T2[1] == '07')||(T1[1] == '09' && T2[1] == '10')) {
   // Diff = Diff - 86400
   // }

   affReste(idclock,Diff);
  }

  function affReste(idclock,reste) {
   var texte = ''
   var id_clock = 'clock' + idclock

   //On garde le temps restant pour le timeout
   var sec_reste = reste - 1

   //On transforme les secondes en date j/hh/mm/sec
   var j
   var h
   var m
   var s
   var tps = reste - 1

    if (tps>3600) {
      h=Math.floor(tps/3600);
     tps=tps % 3600;
     }
     else {
      h=0;
     }

     if (tps>60) {
      m=Math.floor(tps/60);
      tps=tps % 60;
     }
     else {
      m=0;
     }

    s=Math.floor(tps);

   //On construit la chaine

   if (j>0) {
    texte = j + "j " + formatageDate(h) +":" + formatageDate(m) +":" + formatageDate(s) //+"s"
   }
   else if (h>0) {
    texte = texte + formatageDate(h) +"h " + formatageDate(m) +"m " + formatageDate(s) +"s"
   }
   else if (m>0) {
    texte = texte + formatageDate(m) +"m " + formatageDate(s) +"s"
   }
   else {
    texte = texte + formatageDate(s) +"s"
   }

   //On affiche maintenant
   if (idclock=='nes') {
      // Pas IE
    [removed]ln('Plus que
'+texte+'');
     }
   else {
      // Internet Explorer
    if (sec_reste >= 0) {
       document.all[id_clock][removed]='Plus que
'+texte;
     setTimeout("affReste('"+idclock+"','"+sec_reste+"')", 1000);
     }
    else {
       document.all[id_clock][removed]='Trop tard !';
    }
   }
  }

  function disp_clock (idclock,dateact,datefin) {
   if (document.all) {
      // Internet Explorer
      [removed]ln('');
    setTimeout("calculdiff('"+idclock+"','"+dateact+"','"+datefin+"')",200);
   }
   else {
      // Le reste
    calculdiff('nes',dateact,datefin);
   }

  }


*script>


et l'appel de la fonction se fait par

<*script LANGUAGE="javascript">disp_clock('1','03-01-06-14-35-55','04-01-06-14-35-55');*script>




Bien sur enlever les * devant les *Script

Quelques Explications:

disp_clock('1','03-01-06-14-35-55','04-01-06-14-35-55')


disp_clock('1','[/i]Date du debut-Heure complete avec sec','date de fin-Heure de fin avec sec');
Link to comment
Share on other sites

Salut le tueur (de smarties:-)

dis-moi, je place tout ça où ? je suis chocolat là...
bicause là, fair du copier/coller je sais faire, mais de là à savoir placer ce code... c'est une autre histoire.
je souhaite qu'il apparaisse à la suite d'un texte, ce texte étant éditable dans l'éditeur de la page d'accueil.
je fais comment ?
parce que le javascript, le html de l'éditeur, il en veut pas.
merci !!!

Link to comment
Share on other sites

pour que ca apparaisse apres le texte tu devras lui coller le fameux

<*script LANGUAGE="javascript">disp_clock('1','03-01-06-14-35-55','04-01-06-14-35-55');*script> 

au niveau de ton texte,sans exemple concret j'peux pas trop t'aider ,m'en faudrait d'avantage pour savoir ou tout va.Pour le script js moi perso j'lavais mis dans le header juste apres ca

<*script type="text/javascript" src="{$base_dir}js/jquery/jquery.pack.js">*script>
   <*script type="text/javascript" src="{$base_dir}js/jquery/jquery.easing.1.3.js">*script>



ensuite pour qu'il fonctionne j'avais mis

<*script LANGUAGE="javascript">disp_clock('1','03-01-06-14-35-55','04-01-06-14-35-55');*script> 

dans mon product.tpl mais je devais le remplir a la main (pas cool mais en ce moment j'ai pas le temps de mettre ca en par l'admin,reprise d'une formation juridique qui me prend tout mon temps.)

Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...