Geburtstag/Alter als Pflichtfeld

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Snippets können über unser Kontaktformular eingereicht werden (bitte als vollständiger, Copy&Paste fähiger Beitrag).
Bei Fragen oder Problemen benutze bitte das Forum [3.0.x] Mod Support.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Christian_W
Ehemaliges Teammitglied
Beiträge: 5703
Registriert: 26.02.2004 00:09

Geburtstag/Alter als Pflichtfeld

Beitrag von Christian_W »

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:
  • 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
suche

Code: Alles auswählen

// validate custom profile fields
					$cp->submit_cp_field('profile', $user->get_iso_lang_id(), $cp_data, $cp_error);
davor einfügen

Code: Alles auswählen

if ($data['bday_day'] == '0' or $data['bday_month'] == '0' or $data['bday_year'] == '0')
				   	{
                 	 	$error[] = $user->lang['NO_BDAY'];
               		}		
um eine Prüfung hinzuzufügen die auf den 30 und 31.02. prüft dies noch danach einfügen

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
suche

Code: Alles auswählen

'tz'				=> request_var('tz', (float) $config['board_timezone']), 
danach einfügen

Code: Alles auswählen

'bday_day' 			=> request_var('bday_day', '', true),
					'bday_month' 		=> request_var('bday_month', '', true),
					'bday_year' 		=> request_var('bday_year', '', true),
suche

Code: Alles auswählen

'tz'				=> request_var('tz', (float) $timezone),
danach einfügen

Code: Alles auswählen

'bday_day' 			=> request_var('bday_day', '', true),
			'bday_month' 		=> request_var('bday_month', '', true),
			'bday_year' 		=> request_var('bday_year', '', true),
suche

Code: Alles auswählen

'tz'				=> array('num', false, -14, 14),
'lang'				=> array('match', false, '#^[a-z_\-]{2,}$#i'),
danach einfügen

Code: 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),
suche

Code: 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);
davor einfügen

Code: Alles auswählen

if ($data['bday_day'] == '0' or $data['bday_month'] == '0' or $data['bday_year'] == '0')
		 {
			$error[] = $user->lang['NO_BDAY'];
		 }
suche

Code: Alles auswählen

'user_regdate'			=> time(),
'user_inactive_reason'	=> $user_inactive_reason,
'user_inactive_time'	=> $user_inactive_time,
danach einfügen

Code: Alles auswählen

'user_birthday'			=> sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']),
suche

Code: 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;
		}
danach einfügen

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
suche

Code: 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>
danach einfügen

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
suche

Code: Alles auswählen

<dt><label for="bday_day">{L_BIRTHDAY}:</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
ersetze mit

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
suche

Code: Alles auswählen

<!-- BEGIN profile_fields -->
davor einfügen

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
suche

Code: Alles auswählen

<td class="row1" width="35%"><b class="genmed">{L_BIRTHDAY}: </b><br /><span class="gensmall">{L_BIRTHDAY_EXPLAIN}</span></td>
ersetze mit

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
suche

Code: Alles auswählen

'NO_BIRTHDAYS'				=> 'Heute hat kein Mitglied Geburtstag',
danach einfügen

Code: Alles auswählen

'NO_BDAY'					=> 'Bitte gebe dein Geburtsdatum ein',
Zuletzt geändert von Dr.Death am 04.03.2010 20:59, insgesamt 1-mal geändert.
Grund: ucp_register.htm angepasst.
---
Antworten

Zurück zu „[3.0.x] Snippets“