Öffne
includes/functions_profile_fields.php
finde
Code: Alles auswählen
function generate_profile_fields_template($mode, $user_id = 0, $profile_row = false)
{
global $db;
Code: Alles auswählen
global $db;
Code: Alles auswählen
global $db, $user;
Code: Alles auswählen
else if ($mode == 'show')
{
// $profile_row == $user_fields[$row['user_id']];
$tpl_fields = array();
$tpl_fields['row'] = $tpl_fields['blockrow'] = array();
Code: Alles auswählen
// Hier die Feldkennungen gemäß Profilfeldverwaltung angeben, nicht die angegebenen Namen des Feldes:
$forbidden_fields = array('field_name_1', 'field_name_2');
Code: Alles auswählen
$tpl_fields['row'] += array(
'PROFILE_' . strtoupper($ident) . '_VALUE' => $value,
Code: Alles auswählen
$is_forbidden = (in_array($ident_ary['data']['field_name'], $forbidden_fields)) ? true : false;
if (($is_forbidden && ($user->data['user_type'] == USER_FOUNDER || $user->data['user_id'] == $user_id)) || !$is_forbidden)
{
Code: Alles auswählen
'PROFILE_FIELD_EXPLAIN' => $ident_ary['data']['lang_explain'],
'S_PROFILE_' . strtoupper($ident) => true
);
Code: Alles auswählen
}
Es können dazu auch weitere Felder in dem Array $forbidden_fields gemäß dem Muster hinterlegt werden, die allesamt in der Profilansicht für andere User (Ausnahme in diesem Beispiel eben Forengründer) nicht angezeigt werden sollen.
Bei den Feldern aber unbedingt darauf achten, die Feldkennung anzugeben, die auch im Admin-Bereich zu dem Feld vom Forum angezeigt/hinterlegt wird und nicht der selbst eingegebene Feldname.
Beispiele weiterer Bedingungen, wer die Profilfelder nicht sehen darf:
Nur für den Benutzer selber:
Code: Alles auswählen
if (($is_forbidden && $user->data['user_id'] == $user_id)) || !$is_forbidden)
{
Code: Alles auswählen
if (($is_forbidden && !in_array($user->data['user_id'], array(10,11,12))) || !$is_forbidden)
{
Code: Alles auswählen
array(10,11,12)
06.06.2009: Anpassung wegen ungenauer Suchstelle