Comment masquer un div après un test
anohjp09
Messages postés
1
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Boujour chers Développeurs,
Voici mon code:
- 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.
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:
- Comment masquer un div après un test
- Test performance pc - Guide
- Test steam deck oled - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test composant pc - Guide
- Test batterie pc - Guide