Seite 1 von 5
Geburtstag/Alter als Pflichtfeld
Verfasst: 15.12.2007 17:50
von Swat
Hi
würde gern neben dem Wohnort auch das Alter als Pflichtfeld machen. Habe mir den Prime Birthdate Require angesehen dieser ist mir aber zu groß.
Alternativ wäre ein universelles snippet hilfreich wie man dies umstellen kann.
Verfasst: 17.12.2007 23:42
von Swat
*schieb*
Verfasst: 20.12.2007 00:42
von ups
würd mich auch interessieren
ups
Verfasst: 26.12.2007 17:15
von Adm_Cascal
Das würde mich auch interessieren.
Verfasst: 26.12.2007 23:17
von Tifker
Im ACP> Benutzer und Gruppen > Benutzerdefinierte Profilfelder kann man doch Felder im Profil hinzufügen und diese auch bei der Registrierung als Pflichtfeld machen!
Verfasst: 27.12.2007 01:31
von redbull254
Tifker hat geschrieben:Im ACP> Benutzer und Gruppen > Benutzerdefinierte Profilfelder kann man doch Felder im Profil hinzufügen und diese auch bei der Registrierung als Pflichtfeld machen!
Man kann zwar zusätzlich Felder anlegen, aber diese nicht zum Pflichtfeld machen. Dazu muss eine Mod her.
In diesem Fall eben die Mod "Prime Birthdate Require"
Verfasst: 27.12.2007 10:51
von Tifker
redbull254 hat geschrieben:Tifker hat geschrieben:Im ACP> Benutzer und Gruppen > Benutzerdefinierte Profilfelder kann man doch Felder im Profil hinzufügen und diese auch bei der Registrierung als Pflichtfeld machen!
Man kann zwar zusätzlich Felder anlegen, aber diese nicht zum Pflichtfeld machen. Dazu muss eine Mod her.
In diesem Fall eben die Mod "Prime Birthdate Require"
Aber beim anlegen eines Profilfeldes hat man die Möglichkeit dies auszuwählen! >
Erforderliches Feld:
Zwingt die Benutzer, dieses Feld auszufüllen oder eine Option auszuwählen. Macht das Feld bei der Registrierung und im persönlichen Bereich sichtbar.
Ist das nun kein Pflichtfeld?
EDIT: Hab dies soeben getestet und das Feld wird als
Pflichtfeld erkannt! Somit muss man dies bei der Registrierung ausfüllen.
Gruß Tifker

Verfasst: 27.12.2007 14:07
von redbull254
Hallo, Tifker
wo Du recht hast, hast Du recht.
Man kann Pflichtfelder anlegen. Ich habe mich vertan und nehme alles mit dem Ausdruck des größten Bedauerns zurück.
Ich habe die Mod zum eintragen eines Wohnort als Pflichtfeld von "Nickvergessen" und die Mod Prime Birthdate Require bei mir eingebaut. Das hatte aber andere Gründe, die ich jetzt dabei vergessen hatte.
Die Mod von "Nickvergessen war notwendig, damit nicht zweimal im Profilfeld "Wohnort" erscheint und die Mod Prime Birthdate Require hatte ich wegen dem erweiterten Möglichkeiten zum Geburtstags-Pflichtfeld eingebaut.
Mea Culpa
Verfasst: 27.12.2007 19:52
von Swat
Habe mir diesen "Prime Birthdate Require" auch angesehen nur stört mich da das ich bei der Zustimmung schon das Pflichtfeld habe wollte es genauso haben wie beim Wohnort von Nickvergessen
Verfasst: 31.12.2007 01:10
von Swat
hab mich jetzt mal versucht
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
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="user_from">{L_LOCATION}: </label></dt>
<dd><input type="text" tabindex="3" name="user_from" id="user_from" size="25" maxlength="100" value="{USER_FROM}" class="inputbox autowidth" title="{L_LOCATION}" /></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
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
so das war es

ich hoffe ich habe nichts vergessen
hab es auch leider nur für Prosilver da ich subsilver2 nicht nutze
Natürlich liegt es in eurer Verantwortung ob ihr so viele Daten von euren Users sammeln wollt (Datensparsamkeit)
EDIT: hab es mal ein weinig systematischer aufgeschrieben
EDIT2: subsilver2 hinzugefügt