.. falls noch jemand interesse daran hat, habe es jetzt gelöst.
In der phpbb_users - Tabelle 'ne neue Spalte zufügen, bspw. user_pseudo, als varchar(255) oder sowas, default null.
In includes/functions_users.php eine neue Funktion einfuegen:
Code: Alles auswählen
/**
* Returns userpseudonym if available, else the submitted username
*/
function user_getpseudo($username) {
global $db;
$sql = 'select user_pseudo from ' . USERS_TABLE . ' where username_clean = \''.strtolower($username).'\'';
$result = $db->sql_query($sql);
if($row = $db->sql_fetchrow($result)) $userreturn = $row['user_pseudo'];
else {
$userreturn = $username;
}
$db->sql_freeresult($result);
return $userreturn;
}
Jetzt kann man an jeder Stelle, an der der Benutzername verwendet wird, den Pseudonamen ausgeben lassen (ein require_once("{$phpbb_root_path}includes/functions_user.$phpEx"); davor macht Sinn).
Zentral kann man dass in der Funktion get_username_stirng in der Datei functions_content.php umsetzen:
Code: Alles auswählen
switch ($mode)
{
case 'profile':
return $profile_url;
break;
case 'username':
return $username;
break;
case 'colour':
return $username_colour;
break;
case 'pseudo':
return user_getpseudo($username);
break;
case 'no_profile':
case 'full':
default:
$tpl = '';
if (!$profile_url && !$username_colour)
{
$tpl = '{USERNAME}';
}
else if (!$profile_url && $username_colour)
{
$tpl = '<span style="color: {USERNAME_COLOUR};" class="username-coloured">{USERNAME}</span>';
}
else if ($profile_url && !$username_colour)
{
$tpl = '<a href="{PROFILE_URL}">{USERNAME}</a>';
}
else if ($profile_url && $username_colour)
{
$tpl = '<a href="{PROFILE_URL}" style="color: {USERNAME_COLOUR};" class="username-coloured">{USERNAME}</a>';
}
if($mode=='fullpseudo') {
$username = user_getpseudo($username);
}
return str_replace(array('{PROFILE_URL}', '{USERNAME_COLOUR}', '{USERNAME}'), array($profile_url, $username_colour, $username), $tpl);
break;
Damit hat man dann die Möglichkeit, bei Aufrufen von get_username_string als Paramter an erster Stelle statt 'username' 'pseudo' anzugeben, und statt 'full' 'fullpseudo' - dort wird dann (wenn in der Datenbank vorhanden) das Pseudonym angezeigt, ansonsten der normale Benutzername.
Um z.B. in bei den Topics die Pseudonyme statt der Benutzernamen anzuzeigen, muss die Datei viewtopic.php angepasst werden:
Code: Alles auswählen
$postrow = array(
'POST_AUTHOR_FULL' => get_username_string('fullpseudo', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
'POST_AUTHOR_COLOUR' => get_username_string('colour', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
'POST_AUTHOR' => get_username_string('pseudo', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
'U_POST_AUTHOR' => get_username_string('profile', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
.. an anderen Stellen das gleiche, einfach nach "get_username_string" suchen - da dann username mit pseudo und full mit fullpseudo ersetzen.