Bugs avec le script du compte à rebours

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Bugs avec le script du compte à rebours

Message par Arc-En-Ciela le Lun 27 Juil 2015 - 22:58

Détails techniques


Version du forum : phpBB2
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Autre
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://afmgn.forumofficiel.com/

Description du problème

Bonjour,

En suivant le tutoriel pour installer le compte à rebours, qui fonctionne d'ailleurs à merveilles !, je me suis rendu compte qu'un des javascripts occasionnait des bugs dans mon forum (le numéro 2)

Code:
1. $(function(){
var x=new horloge($("#id_horloge"));
x.a_rebours("07/08/2015-20:00:00");
});

Les problèmes rencontrés :
    1. Les boutons de l'éditeur de message ne s'affichent plus lorsque j'essaie d'éditer un message (mais ils s'affichent lors de nouveaux messages ou de citations...)
    2. La flèche qui permet de se loger sur la version mobile du forum disparaît (et donc il est impossible de se connecter).
Je ne suis pas certaine à 100% que les problèmes viennent de ce script, puisque j'ai plusieurs autres scripts, des templates modifiés et du CSS. Toutefois, ces problèmes apparaissent toujours lorsque je force les templates par défauts, lorsque je supprime complètement mon CSS. J'ai également remarqué que lorsque je n'admets l'usage du script que sur la page d'accueil, les boutons de l'éditeur de message reviennent, mais pas la flèche de connexion de la version mobile... sauf que celle-ci redevient disponible dès que je quitte la page d'accueil (là où le script est effectif).

Avez-vous une idée de comment le script peut créer ces problème ?
J'aimerais bien garder ce compte à rebours, car il est personnalisable. Cependant, comme il altère des éléments essentiels de mon forum, s'il n'y a pas d'autres alternatives, je devrai l'enlever...

Merci !


Dernière édition par Arc-En-Ciela le Lun 27 Juil 2015 - 23:59, édité 1 fois

Arc-En-Ciela
***

Messages : 120
Inscrit(e) le : 22/08/2010

http://alter-mundus.superforum.fr/portal.htm
Arc-En-Ciela a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Bugs avec le script du compte à rebours

Message par no_way le Lun 27 Juil 2015 - 23:05

Bonsoir, je doute que le souci vienne du script mais j'aimerais malgré tout voir ce qui peut provoquer un tel comportement (surtout l'éditeur à vrai dire), je m'enregistre sur votre forum, vous me supprimerez à la fin.

no_way
Aidactif
Aidactif

Messages : 1779
Inscrit(e) le : 26/03/2010

no_way a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Bugs avec le script du compte à rebours

Message par Arc-En-Ciela le Lun 27 Juil 2015 - 23:09

Merci beaucoup Smile

Si vous avez besoin de mes templates, de mon css ou de mes scripts, n'hésitez pas à me le demander. Sauf que comme je dis, forcer les templates par défauts et supprimer mon css ne règlent pas les problèmes. C'est seulement lorsque je désactive la gestion des javascripts que les problèmes disparaissent, et plus particulièrement ce script-là.

Edit : Wow, si j'essaie d'éditer votre message, les boutons de l'éditeur s'affiche Oo

Edit 2 : oui, je suis bête, le script n'est actif que sur la page d'accueil, donc le problème de l'éditeur de message est évité.

Edit 3 : Merci à no_way pour avoir réglé le problème ! Le tutoriel a été édité.

Le premier script devrait être :


Code:
var horloge=function(cible,options){
try{
 if(!cible.length||!(cible.tagName||(cible instanceof jQuery&&cible[0].tagName)))throw 'cible ne représente pas un élément';
 this.cible=cible;
 this.options=options||this.optionsParDefaut();
 }catch(e){console.log(e)}
 };
 horloge.prototype={
      /*récupération de l'heure*/
      heure:function(){try{
 var d=new Date(),date=[],i,h,m,s,r=this,t,u,v=this.options.f_H;
 h=d.getHours();m=d.getMinutes();s=d.getSeconds();
 date["h"]=h<10?"0"+h:""+h;
 date["m"]=m<10?"0"+m:""+m;
 date["s"]=s<10?"0"+s:""+s;
 for(i in date){
 for(t=0;t<date[i].length;t++){date[i+(t+1)]=date[i][t];}
 }
 /*Actions*/
 t=v.match(/\{[jhms][0-9]?\}/g);
 for(i in t){
 v=v.replace(t[i],(u=date[t[i].slice(1,-1)])?u:"mode "+t[i]+" inconnu")
 }
 this.cible instanceof jQuery?this.cible.html(v):this.cible.innerHTML=v;
 /**/
 setTimeout(this.heure.bind(this),1000)
 }catch(e){console.log(e)}},
 /*mode a rebours*/
 a_rebours:function(date_cible){try{
 var d=new Date(),date=[],dc=date_cible,dfs,i,j,h,m,s,r=this,t,u,v=this.options.f_C;
 dc=dc.split(/\D/);
 if(dc.length!=6){this.options.cible.html("Date non valide");return false};
 dc=dc.map(function(e){return parseInt(e)});
 dc=((t=dc[2])<10?"0"+t:t)+"-"+((t=dc[1])<10?"0"+t:t)+"-"+((t=dc[0])<10?"0"+t:t)+"T"+((t=dc[3])<10?"0"+t:t)+":"+((t=dc[4])<10?"0"+t:t)+":"+((t=dc[5])<10?"0"+t:t);
 dc=new Date(dc);
 dfs=parseInt((dc.getTime()>d.getTime())?(dc.getTime()-d.getTime())/1000:0);
 s=dfs%60;dfs-=s;
 j=parseInt(dfs/0x15180);dfs-=j*0x15180;
 h=parseInt(dfs/3600);dfs-=h*3600;
 m=dfs/60;
 date["j"]=""+j;
 while(date["j"].length<parseInt(this.options.n_J)){
 date["j"]="0"+date["j"];
 }
 date["h"]=h<10?"0"+h:""+h;
 date["m"]=m<10?"0"+m:""+m;
 date["s"]=s<10?"0"+s:""+s;
 for(i in date){
 for(t=0;t<date[i].length;t++){
 date[i+(t+1)]=date[i][t];
 }
 }
 /*Actions*/
 t=v.match(/\{[jhms][0-9]?\}/g);
 for(i in t){
 v=v.replace(t[i],(u=date[t[i].slice(1,-1)])?u:"mode "+t[i]+" inconnu")
 }
 this.cible instanceof jQuery?this.cible.html(v):this.cible.innerHTML=v;
 /**/
 this.instance_a_rebours=setTimeout(this.a_rebours.bind(r,date_cible),1000);
 if(0>=parseInt((dc.getTime()>d.getTime())?(dc.getTime()-d.getTime())/1000:0)){clearTimeout(this.instance_a_rebours);this.fin_a_rebours()}
 }catch(e){console.log(e)}},
 fin_a_rebours:function(){try{/*votre code*/}catch(e){console.log(e)}},
      optionsParDefaut:function(){return {
      /*options de base*/
      /*taille fixe jours*/
      n_J:3,
      /*format Horloge*/
      f_H:'{h}:{m}:{s}',
      /*format Compte a rebours*/
      f_C:'{j} jours {h}:{m}:{s}'
      }}
      };


Dernière édition par Arc-En-Ciela le Mar 28 Juil 2015 - 0:02, édité 1 fois

Arc-En-Ciela
***

Messages : 120
Inscrit(e) le : 22/08/2010

http://alter-mundus.superforum.fr/portal.htm
Arc-En-Ciela a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Bugs avec le script du compte à rebours

Message par no_way le Mar 28 Juil 2015 - 0:01

Le javascript ne gérait pas le cas où la personne l'installant n'avait pas défini un élément existant, ce n'est pas une erreur du script, mais comme gérer cette exception est facile, le code du tuto à été mis à jour.

no_way
Aidactif
Aidactif

Messages : 1779
Inscrit(e) le : 26/03/2010

no_way a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum