Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[BESTOF] [PHPBB3]Compte à rebours hebdomadaire permanent


2 participants

Page 2 sur 3 Précédent  1, 2, 3  Suivant

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

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Lun 2 Déc 2019 - 9:51

Rappel du premier message :

  • Version du forum :
    PhpBB3
  • Templates modifiés :
    oui
  • Navigateur :
    Firefox
Bonjour,

Je cherche à installer en haut de page un compte à rebours permanent.
Il y a ce script sur FA peut-être adaptable: https://forum.forumactif.com/t379157-horloge-compte-a-rebours-sans-personnalisation#3196324
Mais il faudrait toutes les semaines changer la date.

Le but serait d'avoir en permanence une horloge défilante sur une ligne en haut à gauche de la page d'accueil et sur le portail indiquant: "Temps restant pour voter: 2 jours 12:20:50"

Elle démarrerait à 7 jours 00:00:00 le mardi à 0 heure et arriverait à 0 jour 00:00:00 le lundi à minuit.
Et cela de façon permanente.

Merci pour votre aide.


Dernière édition par photoclic le Mar 3 Déc 2019 - 19:04, édité 1 fois

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 15:41

Je vais essayé ton denier code.

Le code html proposé fonctionne sans que je sois obligé de remettre la date chaque semaine phil.

Je remets le compteur à 7 jours ici:
Code:

          } else {
           
            clearInterval( ObjInterval );
   
    // à zéro, on réinitialise le compteur universel 
  countdown( "#countdown", 1, 0, 0 ,0 , 7 );         


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 15:48

Oki Serge,

alors ce script doit être fonctionnel mon ami:


Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript

Mettre un titre explicite.

Cocher sur toutes les pages.


Déposer ceci:

Code:

$(function(){
  $(function(){'use strict';
const countdown = ( id = "#countdown", interval = 1, seconds = 0, minutes = 0, hours = 0, days = 7, months = 0, years = 0 ) => {
          const
            ctx = new AudioContext(),
            note = ( frequency = 277.18, duration = 1.0, type = "sine"  ) => {
              let
                osc = ctx.createOscillator(),
                gainNode = ctx.createGain();
         
              osc.type = type;
              osc.connect( gainNode );
              osc.frequency.value = frequency;
              gainNode.connect( ctx.destination );
              osc.start( 0 );
              gainNode.gain.exponentialRampToValueAtTime( 0.00001, ctx.currentTime + duration );
              return Promise.resolve( "note" );
            };
           
          let
            timer = document.querySelector( id ),
            duration = moment.duration({
              "seconds" : seconds,
              "minutes" : minutes,
              "hours" : hours,
              "days" :days,
              "months" : months,
              "years" : years
            }),
            ObjInterval = setInterval( () => {
              duration.subtract( interval, "seconds" );
             
              if ( duration.asMilliseconds() > -1 ){
               
                timer.value = "Temps restant pour voter: " +
        http://duration.get( "years" ) + " an(s), "  +
        http://duration.get( "months" ) + " mois, " +
                  duration.get( "days" ) + " j, " +
                  duration.get( "hours" ) + " h, " +
                  duration.get( "minutes" ) + " mn, " +
                  duration.get( "seconds" ) + " sec";
                 
              } else {
               
                clearInterval( ObjInterval );
       
        // à zéro, on réinitialise le compteur universel 
      countdown( "#countdown", 1, 0, 0 ,0 , 7 );         
               
                note( 261.63, 2.0 ).catch( er => { console.error( er ) } );
               
              }
            }, interval * 1000 );
        };
       
        document.addEventListener( 'DOMContentLoaded', ev => {
                     
        }, false );
       
        window.addEventListener( 'load', ev => {
         
          // id, intervalle en secondes, secondes, minutes, heures, jours, mois, ans
          // ci-dessous : une minute 7 jours 0 heures 0 minutes et 0 secondes avec un intervalle d'une seconde
          countdown( "#countdown", 1, 0, 0 ,0 , 7 );
         
        }, false );
        });
  var index=$('a[href="/search?search_id=activetopics"]').length;
  var portail=$('table[class="portal"]').length;
  if((index)||(portail))
  {
$('head').before('<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>');
$('body').append('<output id="countdown"></output>');
   
  }
  });

Penser a cliquer sur le bouton Valid


Puis la css :

Code:
/*LE CONTENEUR*/
#countdown
{
background:#2e2e2e;
text-align:center;
height:50px;
padding: 10px;
width: 40%;
position: fixed;
left: 0;
top: 50px;
line-height:50px;
color:#3bd9eb;
font-size:14px;
}


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 15:57

Hum,
je ne suis pas adepte des règles de Forumactif concernant les doubles post Serge.
Je préfère en voir et avoir les informations de mon côté clin oeil .

Pour le script, tu peux le modifier ainsi afin qu'il soit bien actif sur le portail et l'index , le précédent injecté le script sur toutes les pages:


Code:
$(function(){
var index=$('a[href="/search?search_id=activetopics"]').length;
  var portail=$('table[class="portal"]').length;
  if((index)||(portail))
  {
    'use strict';
const countdown = ( id = "#countdown", interval = 1, seconds = 0, minutes = 0, hours = 0, days = 7, months = 0, years = 0 ) => {
          const
            ctx = new AudioContext(),
            note = ( frequency = 277.18, duration = 1.0, type = "sine"  ) => {
              let
                osc = ctx.createOscillator(),
                gainNode = ctx.createGain();
         
              osc.type = type;
              osc.connect( gainNode );
              osc.frequency.value = frequency;
              gainNode.connect( ctx.destination );
              osc.start( 0 );
              gainNode.gain.exponentialRampToValueAtTime( 0.00001, ctx.currentTime + duration );
              return Promise.resolve( "note" );
            };
           
          let
            timer = document.querySelector( id ),
            duration = moment.duration({
              "seconds" : seconds,
              "minutes" : minutes,
              "hours" : hours,
              "days" :days,
              "months" : months,
              "years" : years
            }),
            ObjInterval = setInterval( () => {
              duration.subtract( interval, "seconds" );
             
              if ( duration.asMilliseconds() > -1 ){
               
                timer.value = "Temps restant pour voter: " +
        http://duration.get( "years" ) + " an(s), "  +
        http://duration.get( "months" ) + " mois, " +
                  duration.get( "days" ) + " j, " +
                  duration.get( "hours" ) + " h, " +
                  duration.get( "minutes" ) + " mn, " +
                  duration.get( "seconds" ) + " sec";
                 
              } else {
               
                clearInterval( ObjInterval );
       
        // à zéro, on réinitialise le compteur universel 
      countdown( "#countdown", 1, 0, 0 ,0 , 7 );         
               
                note( 261.63, 2.0 ).catch( er => { console.error( er ) } );
               
              }
            }, interval * 1000 );
        };
       
        document.addEventListener( 'DOMContentLoaded', ev => {
                     
        }, false );
       
        window.addEventListener( 'load', ev => {
         
          // id, intervalle en secondes, secondes, minutes, heures, jours, mois, ans
          // ci-dessous : une minute 7 jours 0 heures 0 minutes et 0 secondes avec un intervalle d'une seconde
          countdown( "#countdown", 1, 0, 0 ,0 , 7 );
         
        }, false );
$('head').before('<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>');
$('body').append('<output id="countdown"></output>');
   
  }
  });


photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 16:04

Quelque soit le script, je n'ai qu'un grand carré noir Phil et pas l'horloge.



Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 16:18

Je ne vois rien sur ton fofo!!!!!!!

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 16:21

Normal Phil, comme ça plantait je le teste sur mon forum test.

Tu veux que je mette le JS sur mon forum?

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 16:24

Ah ben voilà MDR ,
tu as le lien de ton fofo de test stp

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 16:24

En fait ça plante quand je le mets sur toutes les pages et il ne se passe rien quand je coche accueil et portail.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 16:26

C'est étonnant car sur mon fofo de test, il fonctionne bien:

https://testphpbb3.1fr1.net/

Tu as déposé quel script Serge ?

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 16:29

Le lien du fofo test:
http://whoroot.forumactif.com/

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 16:31

Essayes ce script modifié Serge,
il se peut qu'il rentrait en conflit avec un autre:
Code:
$(function(){
$('head').before('<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>');

     
  var index=$('a[href="/search?search_id=activetopics"]').length;
  var portail=$('table[class="portal"]').length;
  if((index)||(portail))
  {
    $('body').append('<output id="countdown"></output>');
    $(function(){
const countdown = ( id = "#countdown", interval = 1, seconds = 0, minutes = 0, hours = 0, days = 7, months = 0, years = 0 ) => {
          const
            ctx = new AudioContext(),
            note = ( frequency = 277.18, duration = 1.0, type = "sine"  ) => {
              let
                osc = ctx.createOscillator(),
                gainNode = ctx.createGain();
         
              osc.type = type;
              osc.connect( gainNode );
              osc.frequency.value = frequency;
              gainNode.connect( ctx.destination );
              osc.start( 0 );
              gainNode.gain.exponentialRampToValueAtTime( 0.00001, ctx.currentTime + duration );
              return Promise.resolve( "note" );
            };
           
          let
            timer = document.querySelector( id ),
            duration = moment.duration({
              "seconds" : seconds,
              "minutes" : minutes,
              "hours" : hours,
              "days" :days,
              "months" : months,
              "years" : years
            }),
            ObjInterval = setInterval( () => {
              duration.subtract( interval, "seconds" );
             
              if ( duration.asMilliseconds() > -1 ){
               
                timer.value = "Temps restant pour voter: " +
        http://duration.get( "years" ) + " an(s), "  +
        http://duration.get( "months" ) + " mois, " +
                  duration.get( "days" ) + " j, " +
                  duration.get( "hours" ) + " h, " +
                  duration.get( "minutes" ) + " mn, " +
                  duration.get( "seconds" ) + " sec";
                 
              } else {
               
                clearInterval( ObjInterval );
       
        // à zéro, on réinitialise le compteur universel 
      countdown( "#countdown", 1, 0, 0 ,0 , 7 );         
               
                note( 261.63, 2.0 ).catch( er => { console.error( er ) } );
               
              }
            }, interval * 1000 );
        };
       
        document.addEventListener( 'DOMContentLoaded', ev => {
                     
        }, false );
       
        window.addEventListener( 'load', ev => {
         
          // id, intervalle en secondes, secondes, minutes, heures, jours, mois, ans
          // ci-dessous : une minute 7 jours 0 heures 0 minutes et 0 secondes avec un intervalle d'une seconde
          countdown( "#countdown", 1, 0, 0 ,0 , 7 );
         
        }, false );
        });

   
  }
  });


photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 16:36

Bin mince alors, rien à afaire il n'y a que chez toi que ça marche :-)

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 16:38

Hum, tu n'as pas de portail sur ce forum test Serge!!
As tu des ids a me donner (en MP) avec accès au P.A

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 16:41

Oui, faut que je mette le portail.

Non pas d'id sur celui là faudrait t'inscrire ou que je rajoute un id.


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 16:44

Je viens de m'inscrire Serge.

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 16:48

Super.
Je venais aussi de créer un autre id.

Je t'ai mis en admin.


Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 16:58


tu as modifié des templates ?
Tu peux sur ton fofo de test me donner tes ids fondateur stp

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 17:05

Je ne les ai pas Phil. Faudrait que je les demande au fondateur.
Peut-être tout à l'heure.

je ne pense pas que les templates soient modifiés.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 17:12

Ok Serge,

je vais regarder tout cela à tête reposée.
Laisses moi le temps que je trouve la cause en tant qu'admin clin oeil

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 17:18

OK. Pas de problème et rien d'urgent Phil. Vraiment bizarre tout ça.
M'attendait pas à autant de souci.

Le fondateur du forum test vient de me confirmer que les templates n'ont pas été modifiés.
Si je reçois l'id fondateur, je te le transmettrais.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 17:47

Ok merci Serge,
c'est assez étonnant effectivement.
J'ai trouvé une autre procédure, j'ai créé une page html :


http://whoroot.forumactif.com/h2-les-votes

et on retient juste la fin soit ceci:
Code:
/h2-les-votes


Puis le script a placer sur l'index et le portail:
Code:
$(function(){
$('body').append('<div id="compte"></div>');
$("#compte").load("/h2-les-votes");       
});

Puis la c.s.s:
Code:
    /*LE CONTENEUR*/
    #compte
    {
    background:#2e2e2e;
    text-align:center;
    height:50px;
    padding: 10px;
    width: 40%;
    position: fixed;
    left: 0;
    top: 150px;
    line-height:50px;
    color:#3bd9eb;
    font-size:14px;
    }

Le soucis est qu'il y a une latence avec ce script d'environ 3 secondes avant d'avoir l'affichage.

On peut modifier ainsi on met un display none dans la css et on ajoutes au script cette ligne:
Code:
$('#compte').delay(3000).fadeIn();


Soit le script complet:
Code:
$(function(){
$('body').append('<div id="compte"></div>');
$('#compte').load('/h2-les-votes'); 
$('#compte').delay(3000).fadeIn();
});


photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 18:00

Je viens de voir ces ajouts Phil sur le forum test.

Mais je n'ai sur le portail et la page d'accueil qu'un carré noir sur le forum test, alors que la page html fonctionne.
Une histoire de fou...

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 18:03

J'ai bien l'affichage:

[BESTOF] [PHPBB3]Compte à rebours hebdomadaire permanent - Page 2 125

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 18:07

C'est fou ça, je n'ai qu'un rectangle noir moi marreordi

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 3 Déc 2019 - 18:09

Tu as pensé a vider ton cache ?

photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 3 Déc 2019 - 18:15

Pétard! avec la cache vidé c'est bon sur le forum test.

Vais essayé sur mon forum pour voir s'il n'y a pas de conflits.

Page 2 sur 3 Précédent  1, 2, 3  Suivant

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

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

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