Bonjour!
Je souhaiterais ajouter une charte sur la page d'inscription et je voudrais que celle-ci soit accompagnée d'une case à obligatoirement cocher pour valider l'inscription. Au niveau du formulaire c'est tout bon; il ne me manque plus que le bout de code en javascript (je suppose) vérifiant si la case est cochée.
Merci!
Hors ligne
Personne? ^^
Hors ligne
De mémoire, je ne crois pas qu'il existe de solution "clef en main" pour cela. Mais, à y réfléchir, ce serait un bon sujet pour un plugin personnel ou une d'évolution pour les plugin NBC_UAM, Additionnal pages ou PWG_Stuffs.
A voir mais ce ne sera pas pour tout de suite. Je ne doute pas cependant qu'un autre membre de l'équipe te propose une approche personnalisée. Un peu de patience, il est déjà très tard ;-)
Hors ligne
Pas de soucis, c'est pas très urgent.
Et puis étant donné que la case est déja la, la plupart des gens cliqueront par réflexe sans voir que ca passe tout debout! lol
Donc je regarde de mon côté et j'attends que le staff se penche sur le sujet en même temps.
Merci! :)
Hors ligne
Il se trouve que ça m'intéresse, et c'est vraiment très simple.
Mais avant que j'aie pris le temps de fournir une solution :-/ ... il se peut que d'autres le fassent avant moi.
Je m'abonne à la discussion, reviens faire un up d'ici quelques jours si personne d'autre ne t'aide.
Hors ligne
LucMorizur a écrit:
Il se trouve que ça m'intéresse, et c'est vraiment très simple.
Mais avant que j'aie pris le temps de fournir une solution :-/ ... il se peut que d'autres le fassent avant moi.
Je m'abonne à la discussion, reviens faire un up d'ici quelques jours si personne d'autre ne t'aide.
MDR Quel gourmand !
T'as pas déjà quelque chose d'autre sur le feu ?
Hors ligne
Alors, voilà ou j'en suis:
J'ai créé un .js nommé "decharge.js" contenant ceci:
var d = document; var OB = new Object(); OB.Formulaire = { Charte: function() { this.charte = d.getElementById( 'accepter' ); this.bouton = d.getElementByClass( 'submit' ); }, Transmettre: function() { var valid = new OB.Formulaire.Charte(); valid.bouton.onclick = function() { if( valid.charte.checked == true ) { return true; } else { window.alert( 'Vous devez accepter les conditions ci-dessus pour continuer' ); return false; } } } }; OB.Script = { Init: function() { OB.Formulaire.Transmettre(); } }; window.onload = OB.Script.Init;
et dans le fichier register.tpl, ceci en début de page:
<script type="text/javascript" src="decharge.js"></script>
et cela pour le bouton envoyer:
<input class="submit" type="submit" name="submit" value="{'Register'|@translate}">
Mais ca ne marche point. Quelqu'un voit l'erreur?
Hors ligne
tosca a écrit:
MDR Quel gourmand !
T'as pas déjà quelque chose d'autre sur le feu ?
Si...
Mais disons que ceci, ainsi que ce que j'ai d'autre "sur le feu" comme tu dis, s'inscrit dans un projet plus vaste...
Le problème c'est que quand ce sera prêt, PHP (entre autres)sera obsolète :-/ ...
Hors ligne
dragonballed a écrit:
Mais ca ne marche point. Quelqu'un voit l'erreur?
dragonballed, je n'ai pas testé ce que tu as proposé, mais en tous cas pour déverminer du JS : Firefox avec Firebug, c'est très pratique.
Je testerai peut-être ta solution, mais j'en essayerai peut-être une autre de mon cru sans essayer la tienne.
Luc
Hors ligne
Rajouter du PHP dans tu TPL c'est faisable même si il parait que c'est moche. Il faut donc ajouter du PHP qui contrôle que la case soit cochée. En gros une condition.
Mais je ne sais pas si ça peux se faire dans un TPL. Pas certain qu'il ne faille pas toucher à des fichiers plus "sensibles"...
Hors ligne
Je suis loin d'être doué pour ce qui est du php, donc à part ma solution, qui ne marche pas ^^, je ne suis capable de rien d'autre. Donc je vais me contenté de surveiller le sujet en attente d'une potentielle solution.
Bonne chance pour ce que tu as sur le feu!
Hors ligne
Gotcha a écrit:
Rajouter du PHP dans tu TPL c'est faisable même si il parait que c'est moche. Il faut donc ajouter du PHP qui contrôle que la case soit cochée. En gros une condition.
Mais je ne sais pas si ça peux se faire dans un TPL. Pas certain qu'il ne faille pas toucher à des fichiers plus "sensibles"...
A mon avis, ce n'est pas le plus pratique de passer par du PHP.
Hors ligne
Bon, ça y est, il faut maintenant respecter la charte sur mon site de tests : http://lucmorizur.free.fr/piwigo/register.php . (Comme c'est vraiment très simple, je n'ai eu besoin que d'une soirée pour mettre ça en place :-/ .... mais bon, j'ai des circonstances atténuantes : y'avait Emmanuelle Devos à la télé.... ;-) )
dragonballed, est-ce que cela correspond à peu près à ce que tu voulais ? Moi oui en tous cas ^^ .
Mise en œuvre :
_ réaliser un template-extension de register.tpl ;
_ dans ce template, rajouter le texte en gras à la ligne suivante (ligne 24 a priori) :
<form method="post" action="{$F_ACTION}" class="properties" name="register_form" onsubmit="return check_ok_submit();">
_ rajouter le texte voulu pour le message de la charte ; personnellement j'ai rajouté ceci, ce qui est important y est en gras :
<p>
<h3>Conditions d'utilisation :</h3>
Soyez respectueux svp et cochez la case ci-dessous.
</p>
<p class="bottomButtons">
<label>
<input type="checkbox" id="check_ok">
J'accepte les conditions d'utilisation
</label>
</p>
_ à la fin du fichier, dans le petit bloc JS, le transformer de la façon suivante :
<script type="text/javascript"><!-- {literal}
document.register_form.login.focus();
function check_ok_submit() {
if (document.getElementById('check_ok').checked == "") {
alert("Cochez d'abord la case svp");
return false;
} else return true;
}
{/literal} //--></script>
_ activer ce template-extension dans Admin > Configuration > Templates.
Ne pas hésiter à poser des questions ici.
:-)
Hors ligne
Alors, je n'ai jamais réalisé de template-extension donc il va d'abord falloir que je me renseigne la-dessus. Ensuite j'essayerai ta méthode et si tout se passe bien tu devrais recevoir un bisou venu de nulle part si ta fenêtre est ouverte... lol
Je te tiens au courant!
Hors ligne
Nikeeeell!!!! Bravo! Clap clap clap!!!!
T'as reçu le bisou j'éspère! Mdr
Perso j'ai préféré insérer ma charte dans un fieldset, je trouve ca plus joli.
J'ai un seul petit souci: sur IE le texte contenu dans "legend" s'affiche en noir au lieu d'être blanc. Plutôt gênant!
Hors ligne