MyBB.support, le portail francophone de MyBB

Version complète : Date de naissance obligatoire
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,

J'aimerais rendre le champ "date de naissance" obligatoire à l'inscription. Comment faire ?

Merci d'avance,

Jujufield
Panneaux ACP ==>Configuration ==> Champs de profil personnalisés ==> ajouter un champs de profils ==>


Titre * : date de naissance

Courte description * : Comme tu veut Smile

Type de champ * : comme tu veut Smile

Longueur maximum * : comme tu veut Smile

Requis ? *
Oui
Éditable par l'utilisateur ? *
Non
Cacher dans le profil ? *
Non
Ce que tu me proposes je sais le faire Wink Et j'ai déjà testé ^^ Ca ferait 2 endroits où l'on peut remplir la date de naissance (champ à l'inscription + détails du profil =S).

Je voudrais pouvoir rendre le champ "date de naissance", qui est modifiable dans les paramètres avancés du profil, obligatoire lors de l'inscription Wink comme sur la plupart des forums phpbb par exemple Wink Ca doit bien pouvoir se faire =)
Salut ,
Pour que la date de naissance soit remplier encours d'inscription il vous faut quelque modifications car il n'y a aucun mode pour ce truc ; et voila les modification après avoir tester dans le localhost est ca marche :

1***Dans le Fichier "Member.php":

Chercher :
Code PHP :
$user['birthday'] = array(
        
"day" => $mybb->input['bday1'],
        
"month" => $mybb->input['bday2'],
        
"year" => $mybb->input['bday3']
    ); 
Ajouter Aprés ceci :
Code PHP :
$bdaysel '';
    for(
$i 1$i <= 31$i++)
    {
        if(
$user['birthday'][0] == $i)
        {
            
$bdaydaysel .= "<option value=\"$i\" selected=\"selected\">$i</option>\n";
        }
        else
        {
            
$bdaydaysel .= "<option value=\"$i\">$i</option>\n";
        }
    } 

Puis souvgarder.
2***Dans le fichier "inc/datahandlers/user.php":
Chercher:
Code PHP :
$birthday['day'] = intval($birthday['day']);
        
$birthday['month'] = intval($birthday['month']);
        
$birthday['year'] = intval($birthday['year']); 
Ajouter Après Ceci :
Code PHP :
if(!$birthday['day'] || !$birthday['month'] || !$birthday['year'])
            {
                
$this->set_error("invalid_birthday");
                return 
false;
            } 
Puis Souvgarder ;
3***APC==>Temlates==>Member_Template==>"member_register"

Effacer Le Continue et Remplacer par ceci :

Code PHP :
<html>
<
head>
<
title>{$mybb->settings['bbname']} - {$lang->registration}</title>
{
$headerinclude}
</
head>
<
body>
{
$header}
<
br />
<
form action="member.php" method="post">
{
$regerrors}
<
table border="0" cellspacing="{$theme['borderwidth']}cellpadding="{$theme['tablespace']}class="tborder">
<
tr>
<
td class="thead" colspan="2"><strong>{$lang->registration}</strong></td>
</
tr>
<
tr>
<
td width="50%" class="trow1" valign="top">
<
fieldset class="trow2">
<
legend><strong>{$lang->account_details}</strong></legend>
<
table cellspacing="0" cellpadding="{$theme['tablespace']}">
<
tr>
<
td colspan="2"><span class="smalltext">{$lang->username}</span></td>
</
tr>
<
tr>
<
td colspan="2"><input type="text" class="textbox" name="username" size="40" value="{$username}/></td>
</
tr>
{
$passboxes}
<
tr>
<
td><span class="smalltext">{$lang->email}</span></td>
<
td><span class="smalltext">{$lang->confirm_email}</span></td>
</
tr>
<
tr>
<
td><input type="text" class="textbox" name="email" size="20" maxlength="50" value="{$email}/></td>
<
td><input type="text" class="textbox" name="email2" size="20" maxlength="50" value="{$email2}/></td>
</
tr>
<
tr>
<
td colspan="3"><span class="smalltext">{$lang->birthday}</span></td>
</
tr>
<
tr>
<
td>
<
select name="bday1">
<
option value="" selected>&nbsp;</option>
{
$bdaysel}
</
select>
</
td>
<
td>
<
select name="bday2">
<
option value="">&nbsp;</option>
<
option value="1" {$bdaymonthsel['1']}>{$lang->month_1}</option>
<
option value="2" {$bdaymonthsel['2']}>{$lang->month_2}</option>
<
option value="3" {$bdaymonthsel['3']}>{$lang->month_3}</option>
<
option value="4" {$bdaymonthsel['4']}>{$lang->month_4}</option>
<
option value="5" {$bdaymonthsel['5']}>{$lang->month_5}</option>
<
option value="6" {$bdaymonthsel['6']}>{$lang->month_6}</option>
<
option value="7" {$bdaymonthsel['7']}>{$lang->month_7}</option>
<
option value="8" {$bdaymonthsel['8']}>{$lang->month_8}</option>
<
option value="9" {$bdaymonthsel['9']}>{$lang->month_9}</option>
<
option value="10" {$bdaymonthsel['10']}>{$lang->month_10}</option>
<
option value="11" {$bdaymonthsel['11']}>{$lang->month_11}</option>
<
option value="12" {$bdaymonthsel['12']}>{$lang->month_12}</option>
</
select>
</
td>
<
td>
<
input type="text" class="textbox" size="4" maxlength="4" name="bday3" value="{$bday['2']}/>
</
td>
</
tr>
</
table>
</
fieldset>
{
$requiredfields}
{
$referrer}
{
$regimage}
</
td>
<
td width="50%" class="trow1" valign="top">
<
fieldset class="trow2">
<
legend><strong>{$lang->account_prefs}</strong></legend>
<
table cellspacing="0" cellpadding="{$theme['tablespace']}">
<
tr>
<
td valign="top" width="1"><input type="checkbox" class="checkbox" name="allownotices" id="allownotices" value="yes" {$allownoticescheck} /></td>
<
td valign="top"><span class="smalltext"><label for="allownotices">{$lang->allow_notices}</label></span></td>
</
tr>
<
tr>
<
td valign="top" width="1"><input type="checkbox" class="checkbox" name="hideemail" id="hideemail" value="yes" {$hideemailcheck} /></td>
<
td valign="top"><span class="smalltext"><label for="hideemail">{$lang->hide_email}</label></span></td>

</
tr>
<
tr>
<
td valign="top" width="1"><input type="checkbox" class="checkbox" name="emailnotify" id="emailnotify" value="yes" {$emailnotifycheck} /></td>
<
td valign="top"><span class="smalltext"><label for="emailnotify">{$lang->email_notify}</label></span></td>
</
tr>
<
tr>
<
td valign="top" width="1"><input type="checkbox" class="checkbox" name="receivepms" id="receivepms" value="yes" {$receivepmscheck} /></td>
<
td valign="top"><span class="smalltext"><label for="receivepms">{$lang->receive_pms}</label></span></td>
</
tr>
<
tr>
<
td valign="top" width="1"><input type="checkbox" class="checkbox" name="pmpopup" id="pmpopup" value="yes" {$pmpopupcheck} /></td>
<
td valign="top"><span class="smalltext"><label for="pmpopup">{$lang->pm_popup}</label></span></td>
</
tr>
<
tr>
<
td valign="top" width="1"><input type="checkbox" class="checkbox" name="emailpmnotify" id="emailpmnotify" value="yes" {$emailpmnotifycheck} /></td>
<
td valign="top"><span class="smalltext"><label for="emailpmnotify">{$lang->email_notify_newpm}</label></span></td>
</
tr>
<
tr>
<
td valign="top" width="1"><input type="checkbox" class="checkbox" name="invisible" id="invisible" value="yes" {$invisiblecheck} /></td>
<
td valign="top"><span class="smalltext"><label for="invisible">{$lang->invisible_mode}</label></span></td>
</
tr>
</
table>
</
fieldset>
<
br />
<
fieldset class="trow2">
<
legend><strong>{$lang->time_offset}</strong></legend>
<
table cellspacing="0" cellpadding="{$theme['tablespace']}">
<
tr>
<
td colspan="2"><span class="smalltext">{$lang->time_offset_desc}</span></td>
</
tr>
<
tr>
<
td>{$tzselect}</td>
</
tr>
<
tr>
<
td valign="top" colspan="2"><input type="checkbox" class="checkbox" name="enabledst" id="enabledst" value="yes" {$enabledstcheck} />   <span class="smalltext"><label for="enabledst">{$lang->enable_dst}</label></span></td>
</
tr>
</
table>
</
fieldset>
<
br />
<
fieldset class="trow2">
<
legend><strong>{$lang->lang_select}</strong></legend>
<
table cellspacing="0" cellpadding="{$theme['tablespace']}">
<
tr>
<
td colspan="2"><span class="smalltext">{$lang->lang_select_desc}</span></td>
</
tr>
<
tr>
<
td><select name="language"><option value="">{$lang->lang_select_default}</option><option value="">-----------</option>{$langoptions}</select></td>
</
tr>
</
table>
</
fieldset>
</
td>
</
tr>
</
table>
<
br />
<
div align="center">
<
input type="hidden" name="action" value="do_register" />
<
input type="submit" class="button" name="regsubmit" value="{$lang->submit_registration}/>
</
div>
</
form>
{
$footer}
</
body>
</
html

Et bonne chance Wink
Amicalement Haytoch
Ok merci ! Je vais tester ça ! Merci beaucoup de t'être occupé de ma demande Wink
de rien Smile
J'ai testé, pas de forum qui plante ! 1ere étape ok ^^

Sinon ça s'affiche bien dans les champs obligatoires donc c'est parfait ! Mais j'ai fais un test et j'ai réussi à m'inscrire sans rentrer de date Sad

Peut être que le code ne marche pas comme il faut :

Code PHP :
if(!$birthday['day'] || !$birthday['month'] || !$birthday['year'])
{
$this->set_error("invalid_birthday");
return false;
}

=S


Et je voulais savoir, la date que l'on rentre ici, elle correspond à la date du champ optionnel ? Ou ça reste deux champs différents où l'on peut mettre 2 dates différentes =S Peut-être qu'il faudrait la faire disparaître des champs optionnels si maintenant elle est obligatoire ?

Et pour finir, c'est toi qui a codé ? =)

Merci beaucoup en tout cas !

Jujufield
Oui c vrais il me faut donc autres modifications !!!!!

ok je les fait pour le rendre Obligatoire Smile
Merci ! Et OK pour le MP, je comprends tout à fait Wink
@Jujufield,
Pour mettre la date Obliguatoire en inscription des nouveaux membres :
APC==>Configuration==>Options d'Enregistrement et de Profil==> Chercher "Conformité COPPA"==>Choisie "deny users under The age of 13" .
Si vous voulez changer "age=13" par un autres de votre choix :
dans le fichier "member.php"
chercher
Code PHP :
// User is <= 13, we mark as a coppa user
            
if($bdaytime >= mktime(000my_date('n'), my_date('d'), my_date('Y')-13)) 
Puis changer 13 par votre age Préféré .

Pour la premiére Solution je suis encours d'essayé si possible de le mettre obliguatoire.
Ok merci, ce qui permettrait en effet de ne pas valider l'inscription si il n'y a pas de date Wink

Mais en modifiant un peu le code que tu m'as donné pour que

Code PHP :
if(!$birthday['day'] || !$birthday['month'] || !$birthday['year'])
{
$this->set_error("invalid_birthday");
return 
false;


marche, ça ne serait pas plus simple ?



Et sinon ?


Jujufield a écrit :Et je voulais savoir, la date que l'on rentre ici, elle correspond à la date du champ optionnel ? Ou ça reste deux champs différents où l'on peut mettre 2 dates différentes =S Peut-être qu'il faudrait la faire disparaître des champs optionnels si maintenant elle est obligatoire ?
ok il y a un qui crié un mode a partir de ce que je vous postez déja
vous pouvez l'utilisez
téléchargez le sur ce lien : http://mods.mybb.com/uploads/downloads/2324-1286307798-dobonreg.zip

langue français
Merci d'avance, je n'ai pas encore eu le temps de tester c'est pour ça que je n'avais pas répondu. J'essaye bientôt Wink
Bon c'est la méga grosse loose xD

Est-ce que tu pourrais me passer les fichiers originaux que j'ai modifié pour la page d'inscription stp ? car là j'ai plusieurs champs de date de naissance, aucun n'est obligatoire ...

J'aimerais repartir à 0 ^^

Merci
Les fichier originale sont dans le dossier : "inc/language/english"

et traduit les comme vous voulez.
Merci je vais tester Wink
 Utilitaire de traduction fourni par Regentronique