Comment masquer un div après un test

Fermé
anohjp09 Messages postés 1 Date d'inscription vendredi 27 mai 2016 Statut Membre Dernière intervention 14 février 2017 - Modifié par jordane45 le 14/02/2017 à 17:14
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 14 févr. 2017 à 17:19
Boujour chers Développeurs,

Voici mon code:
<script type="text/javascript">
var url= document.location;

<?php 
// Recupérer l'ID de l'article en cours
$articleId = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0;

// si on est sur un article alors calculer la clef
//if( isset($_GET['Itemid'] ) ) {  $PointURLkey=substr(md5($_GET['Itemid']),0,8);  } 
if(isset($articleId)) {  
 $PointURLkey=substr(md5($articleId),0,8);  
} 
else { 
 $PointURLkey=""; 
}
?> 

function redirectionJavascript(){
 // Clé a ajouter dans l'url de l'article
  document.location.href=url+'&key=<?php echo $PointURLkey; ?> '; 
}

var tick = function ($el, duration) {
  'use strict';

  $el.attr('data-duration', duration);
  $el.find('.duration').html(duration);

  if (duration > 60) {
    $el.addClass('full');
  }

  if (duration < -60) {
    $el.addClass('full negative');
  }

};


(function ($) {
  'use strict';

  $.fn.timer = function (options) {

    var settings = $.extend({
      duration: 60,
      unit: 's'
    }, options);

    var updateEverySecond = 1000;
    var updateEveryMinute = 60 * 1000;

    return this.each(function () {

      var duration = settings.duration;
      var unit = settings.unit;

      var updateInterval;

      if (unit === 'm') {
        updateInterval = updateEveryMinute;
      } else if (unit === 's') {
        updateInterval = updateEverySecond;
      } else if (unit === 'h') {
        // if provided e.g. 2 hours convert it to 120 minutes
        unit = 'm';
        duration = duration * 60;
        updateInterval = updateEveryMinute;
      } else {
        throw 'The provided unit "' + unit + '" is unsupported! Supported units are "s", "m" and "h".';
      }

      var $$ = $(this);

      $$.html('<div class="timer-grpe"><div class="timer-bg"><span class="duration"></span><small class="unit"></small></div>' +
        '<div class="timer-half-container right"><div class="timer-half right"></div></div>' +
        '<div class="timer-half-container left"><div class="timer-half left"></div></div></div>');

      $$.addClass('timer');
      $$.find('.unit').html(unit);
   // start ticking
      tick($$, duration);

      /* global setInterval */
      setInterval(function () {
        tick($$, duration);

  if(duration===60)  { 
   $$.html('<input name="bouton_points" type="button" value="<?php echo JText::_('COM_CONTENT_BUTTON_TIMER'); ?>" onclick="redirectionJavascript()">'); 
  } 
  else{ 
   duration++; 
  } 


      }, updateInterval);

    });

  };

}(jQuery));

</script>
<script type="text/javascript">

   <?php 
    //$msgError = 'Vous avez deja visité cette page';

   $articleId = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0;
   // vérification si les clefs sont égaux // ceci pour eviter qu'on tape une clé quelonque pour avoir les points
   if(isset($_GET['key'])) { 
  $Verificationkey=substr(md5($articleId),0,8);    

  if($Verificationkey==$_GET['key']) { ?>
  /* on arrête le compteur en ne faisant rien / plus de point a prendre  */
   //echo $msgError;

                document.getElementById('timer-7').style.display = 'none';


  <?php }
     else {  
  /*Afficher une message d'erreur, url non valide mais pas obligatoire */ 

  } 
   }
   else {
 // sinon afficher le compteur  
  if($PointURLkey=substr(md5($articleId),0,8)) // Activer uniquement si Itemid existe
  {?> 

      $(document).ready(function () {
      $('#timer-7').timer({duration:0, unit: 's'});
    })
 <?php 
 }
 }
 ?> 
</script>

<div class="countdown"> <div id="timer-7" class="timer"></div></div>
<div class="msgError"><?php echo $msgError; ?></div>


EDIT : Ajout du LANGAGE dans les BALISES DE CODE

Le principe de ce code consiste à :
- tester dans l'url de l'article en cours, l'exixtance d'une clé (key)
- si la clé n'existe pas alors on affiche un compteur qui affiche un bouton au bout d'un certain temps(60s);
sinon on masque le competur
- après un click sur le bouton affiché par le compteur on recupère l'ID de l'article
- ensuite on code cet ID en MD5 et on ajoute dans l'URL comme etant la clé(key)
- On effectue une verification de la clé; si elle est identique du a l'ID codé en MD5 alors on masque le compteur, sinon on effiche un message d'erreur.

voila en resumé ce que j'essaie de faire. Mon souci c'est je n'arrive pas à masquer le compteur.
C'est pour quoi j'oriente vers vous pour une precieuse aide.

Merci d'avance très chers développeurs.
A voir également:

1 réponse

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
14 févr. 2017 à 17:19
Bonjour,


On effectue une verification de la clé; si elle est identique du a l'ID codé en MD5 alors on masque le compteur, sinon on effiche un message d'erreur.

Et tu fais cette étape où dans ton code... je ne le vois pas ?
Dans le "php" ou dans le "javascript" ?
Qu'as tu essayé ?



0