Geburtstag/Alter als Pflichtfeld
Verfasst: 10.01.2008 10:41
Zuerst die klare Warnung:
Nach dem deutschen Datenschutzgesetz dürft Ihr nicht einfach beliebige Daten sammeln (Datensparsamkeit). Wenn Ihr diese Änderungen macht, solltet Ihr Euch vorher entsprechend absichern (Anwalt)
Snippet-Autor: Swat
phpBB Version: 3.0.x (getestet mit 3.0.0)
Beschreibung: Mit diesem Snippet wird bei der Registrierung auch das Geburtsdatum abgefragt. Dieser ist zugleich ein Pflichtfeld, was zur Folge hat das das Registrieren ohne Angabe eines Geburtsdatums nicht möglich ist.
7 Dateien sind zu bearbeiten:
Nach dem deutschen Datenschutzgesetz dürft Ihr nicht einfach beliebige Daten sammeln (Datensparsamkeit). Wenn Ihr diese Änderungen macht, solltet Ihr Euch vorher entsprechend absichern (Anwalt)
Snippet-Autor: Swat
phpBB Version: 3.0.x (getestet mit 3.0.0)
Beschreibung: Mit diesem Snippet wird bei der Registrierung auch das Geburtsdatum abgefragt. Dieser ist zugleich ein Pflichtfeld, was zur Folge hat das das Registrieren ohne Angabe eines Geburtsdatums nicht möglich ist.
7 Dateien sind zu bearbeiten:
- includes/ucp/ucp_profile.php
- includes/ucp/ucp_register.php
- styles/prosilver/ucp_register.htm
- styles/prosilver/ucp_profile_profile_info.htm
- styles/subsilver2/ucp_register.htm
- styles/subsilver2/ucp_profile_profile_info.htm
- language/de/common.php
öffne: includes/ucp/ucp_profile.php
suchedavor einfügenCode: Alles auswählen
// validate custom profile fields $cp->submit_cp_field('profile', $user->get_iso_lang_id(), $cp_data, $cp_error);
um eine Prüfung hinzuzufügen die auf den 30 und 31.02. prüft dies noch danach einfügenCode: Alles auswählen
if ($data['bday_day'] == '0' or $data['bday_month'] == '0' or $data['bday_year'] == '0') { $error[] = $user->lang['NO_BDAY']; }
Code: Alles auswählen
if(($data['bday_day'] == '30' or $data['bday_day'] == '31') and $data['bday_month'] == '2') { $error[] = $user->lang['NO_BDAY']; }
öffne: includes/ucp/ucp_register.php
suchedanach einfügenCode: Alles auswählen
'tz' => request_var('tz', (float) $config['board_timezone']),
sucheCode: Alles auswählen
'bday_day' => request_var('bday_day', '', true), 'bday_month' => request_var('bday_month', '', true), 'bday_year' => request_var('bday_year', '', true),
danach einfügenCode: Alles auswählen
'tz' => request_var('tz', (float) $timezone),
sucheCode: Alles auswählen
'bday_day' => request_var('bday_day', '', true), 'bday_month' => request_var('bday_month', '', true), 'bday_year' => request_var('bday_year', '', true),
danach einfügenCode: Alles auswählen
'tz' => array('num', false, -14, 14), 'lang' => array('match', false, '#^[a-z_\-]{2,}$#i'),
sucheCode: Alles auswählen
'bday_day' => array('num', true, 1, 31), 'bday_month' => array('num', true, 1, 12), 'bday_year' => array('num', true, 1901, gmdate('Y', time()) + 50),
davor einfügenCode: Alles auswählen
// Replace "error" strings with their real, localised form $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
sucheCode: Alles auswählen
if ($data['bday_day'] == '0' or $data['bday_month'] == '0' or $data['bday_year'] == '0') { $error[] = $user->lang['NO_BDAY']; }
danach einfügenCode: Alles auswählen
'user_regdate' => time(), 'user_inactive_reason' => $user_inactive_reason, 'user_inactive_time' => $user_inactive_time,
sucheCode: Alles auswählen
'user_birthday' => sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']),
danach einfügenCode: Alles auswählen
// $l_reg_cond = ''; switch ($config['require_activation']) { case USER_ACTIVATION_SELF: $l_reg_cond = $user->lang['UCP_EMAIL_ACTIVATE']; break; case USER_ACTIVATION_ADMIN: $l_reg_cond = $user->lang['UCP_ADMIN_ACTIVATE']; break; }
Code: Alles auswählen
if ($config['allow_birthdays']) { $s_birthday_day_options = '<option value="0"' . ((!$data['bday_day']) ? ' selected="selected"' : '') . '>--</option>'; for ($i = 1; $i < 32; $i++) { $selected = ($i == $data['bday_day']) ? ' selected="selected"' : ''; $s_birthday_day_options .= "<option value=\"$i\"$selected>$i</option>"; } $s_birthday_month_options = '<option value="0"' . ((!$data['bday_month']) ? ' selected="selected"' : '') . '>--</option>'; for ($i = 1; $i < 13; $i++) { $selected = ($i == $data['bday_month']) ? ' selected="selected"' : ''; $s_birthday_month_options .= "<option value=\"$i\"$selected>$i</option>"; } $s_birthday_year_options = ''; $now = getdate(); $s_birthday_year_options = '<option value="0"' . ((!$data['bday_year']) ? ' selected="selected"' : '') . '>--</option>'; for ($i = $now['year']-1; $i > $now['year'] -100; $i--) { $selected = ($i == $data['bday_year']) ? ' selected="selected"' : ''; $s_birthday_year_options .= "<option value=\"$i\"$selected>$i</option>"; } unset($now); $template->assign_vars(array( 'S_BIRTHDAY_DAY_OPTIONS' => $s_birthday_day_options, 'S_BIRTHDAY_MONTH_OPTIONS' => $s_birthday_month_options, 'S_BIRTHDAY_YEAR_OPTIONS' => $s_birthday_year_options, 'S_BIRTHDAYS_ENABLED' => true, )); }
öffne: styles/prosilver/ucp_register.htm
suchedanach einfügenCode: Alles auswählen
<dl> <dt><label for="tz">{L_TIMEZONE}:</label></dt> <dd><select name="tz" id="tz" tabindex="7" class="autowidth">{S_TZ_OPTIONS}</select></dd> </dl>
Code: Alles auswählen
<dl> <dt><label for="bday_day">{L_BIRTHDAY}: *</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt> <dd> <label for="bday_day">{L_DAY}: <select name="bday_day" id="bday_day" style="width: 4em;">{S_BIRTHDAY_DAY_OPTIONS}</select></label> <label for="bday_month">{L_MONTH}: <select name="bday_month" id="bday_month" style="width: 4em;">{S_BIRTHDAY_MONTH_OPTIONS}</select></label> <label for="bday_year">{L_YEAR}: <select name="bday_year" id="bday_year" style="width: 6em;">{S_BIRTHDAY_YEAR_OPTIONS}</select></label> </dd> </dl>
öffnen: styles/prosilver/ucp_profile_profile_info.htm
sucheersetze mitCode: Alles auswählen
<dt><label for="bday_day">{L_BIRTHDAY}:</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
Code: Alles auswählen
<dt><label for="bday_day">{L_BIRTHDAY}: *</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
öffne: styles/subsilver2/ucp_register.htm
suchedavor einfügenCode: Alles auswählen
<!-- BEGIN profile_fields -->
Code: Alles auswählen
<!-- IF S_BIRTHDAYS_ENABLED --> <tr> <td class="row1" width="35%"><b class="genmed">{L_BIRTHDAY}: *</b><br /><span class="gensmall">{L_BIRTHDAY_EXPLAIN}</span></td> <td class="row2"><span class="genmed">{L_DAY}:</span> <select name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> <span class="genmed">{L_MONTH}:</span> <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> <span class="genmed">{L_YEAR}:</span> <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></td> </tr> <!-- ENDIF -->
öffnen: styles/subsilver2/ucp_profile_profile_info.htm
sucheersetze mitCode: Alles auswählen
<td class="row1" width="35%"><b class="genmed">{L_BIRTHDAY}: </b><br /><span class="gensmall">{L_BIRTHDAY_EXPLAIN}</span></td>
Code: Alles auswählen
<td class="row1" width="35%"><b class="genmed">{L_BIRTHDAY}: *</b><br /><span class="gensmall">{L_BIRTHDAY_EXPLAIN}</span></td>
öffnen: language/de/common.php
suchedanach einfügenCode: Alles auswählen
'NO_BIRTHDAYS' => 'Heute hat kein Mitglied Geburtstag',
Code: Alles auswählen
'NO_BDAY' => 'Bitte gebe dein Geburtsdatum ein',