Advertisement:

Author Topic: Ajouter une checkbox pour accepation des CGu et une pour les CGV  (Read 3630 times)

Guib

  • Jr. Member
  • **
  • Posts: 92
Pour ajouter une checkbox pour l'acceptation de CGU il y a deja des plugins dont le LOPD ou autre qui affiche en mode lightbox les conditions.

Pour ceux qui ne veulent pas installer de plugin, et qui veulent à la fois que la personne accepte les CGU lors de son enregistrement et des CGV lors du dépots d'annonces, il y a juste du code à ajouter.
Déjà il faut créer la page avec les CGU dans l admin (et la page CGV en cas de besoin).



Sur user-registrer ajouter :

<!--Ajout du script qui annule le press enter qui valide le submit-->
<script type="text/javascript">
/**
 * Disable a key press event
 **/
function disableKeyPressEvent(key) {
     if (!key) {
       return false;
     }
     $(document).keypress(function(event) {
     var eventKey = event.charCode || event.keyCode;
     if (eventKey == key) {
         return false;
     }
     });
}
 
jQuery(document).ready(function($) {
   // Disable enter key - 13
   try { disableKeyPressEvent('13'); } catch(error) { try { console.log(error); } catch(error) {} }
});
</script>
<!--Fin Ajout du script qui annule le press enter qui valide le submit-->



<!--AJOUT-->
<div class="control-checkage">
<input type="checkbox" id="required-checkbox" name="agree" onclick="CheckIfChecked()"> <p class="enregistrement-check">Vous devez accepter les <a onclick="open('http://www.monsite.fr/le-nom-de-ma-page', 'Popup', 'scrollbars=1,resizable=1,height=560,width=770'); return false;" ><strong>CGU</strong></a><br>pour créer votre compte</p>
</div><!--control-checkage-->
<div id="submit-button-container" style="display:none;">
<!--FIN AJOUT-->


<div class="control-group">
<div class="controls">
<button type="submit" class="ui-button ui-button-middle ui-button-main"><?php _e("Création du compte",'lesarchitectes');?></button>
</div>
</div>


<!--AJOUT-->
</div><!--submit-button-container-->
<!--FIN AJOUT-->



<!--code pour les CGU que j'ai mis apres le php de user js_validation-->
<noscript>
<p style="font-size:larger;"><b>JavaScript is required to use this form.</b></p>
</noscript>

<script type="text/javascript"><!--
function CheckIfChecked()
{
   var CheckboxID = "required-checkbox";
   var SubmitButtonContainerID = "submit-button-container";
   if( document.getElementById(CheckboxID).checked ) { document.getElementById(SubmitButtonContainerID).style.display = "block"; }
   else { document.getElementById(SubmitButtonContainerID).style.display = "none"; }
}
CheckIfChecked();
//-->
</script>
<!--END CGU-->

Meme chose pour Item post

Avec le premier script on empeche la validation par le Keypress, ça oblige vraiment la personne à cocher la checkbox.
Quand elle est cochée la bouton de validation ou de création apparait.


Voila :)

J'espere que ça servira, je viens de galérer 5h00 à chercher ça et à faire des tests

THOMAS

  • Newbie
  • *
  • Posts: 31
Re: Ajouter une checkbox pour accepation des CGu et une pour les CGV
« Reply #1 on: October 14, 2015, 11:49:17 pm »
Bonjour,

Merci pour ce travail.
Si j'ai bien compris il y a deux codes qu'il faut coller dans deux fichiers différents. J'ai bien collé, pour l'acceptation des CGV le premier code dans "item.post.php et le checkbox apparait bien mais même si on ne coche pas la case " VOUS DEVEZ ACCEPTER......." l'annonce est quand même publiée.

Je ne sais pas ou se trouve cela "le php de user js_validation" pour insérer le deuxième code.

Merci de ton aide

Cordialement

Guib

  • Jr. Member
  • **
  • Posts: 92
Re: Ajouter une checkbox pour accepation des CGu et une pour les CGV
« Reply #2 on: October 15, 2015, 09:09:21 am »
Salut Thomas.

Dsl sur la page Item-Post il n y a pas de js_validation.

Dans Item Post change le code qui permet de bloquer la validation de l annonce en appuyant sur la touche "Entrer" par celui ci :

<!--script pour eviter le submit par press enter-->
<!--<script type="text/javascript">
function disableKeyPressEvent(key) {
     if (!key) {
       return false;
     }
     $(document).keypress(function(event) {
     var eventKey = event.charCode || event.keyCode;
     if (eventKey == key) {
         return false;
     }
     });
}
 
jQuery(document).ready(function($) {
   try { disableKeyPressEvent('13'); } catch(error) { try { console.log(error); } catch(error) {} }
});
</script>-->
<script type="text/javascript">

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}

document.onkeypress = stopRKey;

</script>

Ancien en commentaire, nouveau Ok.
L'ancien bloquait aussi le saut de ligne, donc pas cool pour le champ texte de l annonce.



Ici le code à placer entre apres la fermeture du php  pour le captcha et avant le script de fin de la page

<!--GGU-->
<?php if($edit) { ?>
<?php
} else { ?>

<div class="control-checkage">
<input type="checkbox" id="required-checkbox" name="agree" onclick="CheckIfChecked()"> <p class="enregistrement-check">Vous devez accepter les <a onclick="open('TON SITE', 'Popup', 'scrollbars=1,resizable=1,height=560,width=770'); return false;" ><strong>CGU / CGV</strong></a><br>pour créer votre fiche agence</p>
</div><!--control-checkage-->
<div id="submit-button-container" style="display:none;">
<?php } ?>
<!--END GGU-->
<div class="controls btn-register">
<button type="submit" class="ui-button ui-button-middle ui-button-main"><?php if($edit){_e("Mise à jour",'lesarchitectes');}else{_e("Publier",'lesarchitectes');}?></button>
</div>
</div><!--submit-button-container qui va avec les GCU-->
</div>
</fieldset>
</form>
</div>
</div>
<!--CGU-->
<noscript>
<p style="font-size:larger;"><b>JavaScript is required to use this form.</b></p>
</noscript>

<script type="text/javascript"><!--
function CheckIfChecked()
{
   var CheckboxID = "required-checkbox";
   var SubmitButtonContainerID = "submit-button-container";
   if( document.getElementById(CheckboxID).checked ) { document.getElementById(SubmitButtonContainerID).style.display = "block"; }
   else { document.getElementById(SubmitButtonContainerID).style.display = "none"; }
}
CheckIfChecked();
//-->
</script>
<!--END CGU-->

Je viens de re checker chez moi et l annonce n est publié que si la personne coche bien la case…
Regarde les deux images.

Normalement ça devrait te donner ces deux états :
Img 1 : Case non cochée (donc pas moyen de publier l annonce meme en appuyant sur la touche "Entrer"
Img 2 : Case cochée qui débloque le btn de Publication

T as une demo en ligne de ton site ou des IMG à montrer?!

Courage

THOMAS

  • Newbie
  • *
  • Posts: 31
Re: Ajouter une checkbox pour accepation des CGu et une pour les CGV
« Reply #3 on: October 15, 2015, 04:24:42 pm »
Bonjour,

Merci de ta réponse mais comme je ne suis pas vraiment connaisseur, je crois que je ne colle pas les codes au bon endroit.
Je t'envoie en PJ le fichier item.post.php. Pourrais-tu éventuellement coller les scriptes au bon endroit et me retourner le fichier ? Ensuite je changerais le texte et les liens.

Te remerciant
Cordialement

Guib

  • Jr. Member
  • **
  • Posts: 92
Re: Ajouter une checkbox pour accepation des CGu et une pour les CGV
« Reply #4 on: October 19, 2015, 10:52:27 am »
Salut Thomas

Ci joint le fichier item-post avec les scripts etc de collés.
N ayant pas ton theme je ne sais pas si ça va marcher ou pas.
Mon site est basé sur le theme Bender pas sur le meme que toi.

Y a comme redondance du code entre les lignes 227 à 235 et entre ce que j ai ajouté, des lignes 245 à 248.
Regarde, le else à la 248 ne se ferme qu'à la 254.

J espere que même s il y a repeat de code ça va marcher. Tiens moi au jus.
Si ça ne fonctionne pas essaye de virer les lignes de 227 à 235 pour voir…

Bon courage.
Guillaume

THOMAS

  • Newbie
  • *
  • Posts: 31
Re: Ajouter une checkbox pour accepation des CGu et une pour les CGV
« Reply #5 on: October 19, 2015, 12:04:32 pm »
Bonjour Guillaume,

Je te remercie pour ton aide, c'est très sympa.
Malheureusement cela ne fonctionne pas. Maintenant le bouton "Publier" est bien caché lorsque le checkbox n'est pas coché, mais n'apparait pas quand il est coché non plus.

 J'utilise le thème OSCLASSWIZARD, je crois qu'il est aussi basé le BENDER.

Cordialement
Thomas

yellow53

  • Full Member
  • ***
  • Posts: 142
Re: Ajouter une checkbox pour accepation des CGu et une pour les CGV
« Reply #6 on: November 21, 2015, 04:05:35 pm »
Merci c'est génial ça marche super bien !

Vivement d'autre tuto comme celui ci :)

servicesmary

  • Newbie
  • *
  • Posts: 37
Re: Ajouter une checkbox pour accepation des CGu et une pour les CGV
« Reply #7 on: March 16, 2016, 08:00:01 pm »
Bonjour,

J'utilise le même thème que Thomas. J'ai donc repris le fichier.
Malheureusement, la checkbox et le texte s'affiche, je peux cocher/décocher la checkbox mais le bouton de soumission n'apparait pas.