Habs ähnlich mit Namen und Gruppen
Außerdem wird überall hervorgehoben, wo zensiert wird.
includes/functions_content.php
finde:
Code: Alles auswählen
/**
* For display of custom parsed text on user-facing pages
* Expects $text to be the value directly from the database (stored value)
*/
davor einfügen
Code: Alles auswählen
function highlight_users_and_groups($message)
{
global $db, $phpEx, $phpbb_root_path, $user;
$sql = 'SELECT user_type, username, user_id, user_colour
FROM ' . USERS_TABLE;
$result = $db->sql_query($sql);
while ($user_row = $db->sql_fetchrow($result))
{
$username_replace['match'][] = '#(?<!\w)(' . str_replace('\*', '\w*?', preg_quote($user_row['username'], '#')) . ')(?!\w)#i';
$username_replace['replace'][] = get_username_string((($user_row['user_type'] == USER_IGNORE) ? 'no_profile' : 'full'), $user_row['user_id'], $user_row['username'], $user_row['user_colour']);
}
$sql = 'SELECT g.group_type, g.group_name, g.group_id, g.group_colour, ug.user_id
FROM ' . GROUPS_TABLE . ' AS g
LEFT JOIN ' . USER_GROUP_TABLE . ' AS ug
ON g.group_id = ug.group_id
AND ug.user_id = ' . $user->data['user_id'] . '
AND ug.user_pending = 0';
$result = $db->sql_query($sql);
while ($user_row = $db->sql_fetchrow($result))
{
if (($user_row['group_type'] != GROUP_HIDDEN) || ($user->data['user_id'] == $user_row['user_id']))
$username_replace['match'][] = '#(?<!\w)(' . str_replace('\*', '\w*?', preg_quote((($user_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $user_row['group_name']] : $user_row['group_name']), '#')) . ')(?!\w)#i';
$link = append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=group&g={$user_row['group_id']}");
$name = (($user_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $user_row['group_name']] : $user_row['group_name']);
if ($user_row['group_colour'])
{
$colour = get_username_string('colour', $user_row['group_id'], $user_row['group_name'], $user_row['group_colour']);
$tpl = '<a href="' . $link . '" style="color: ' . $colour . ';" class="username-coloured">' . $name . '</a>';
}
else
{
$tpl = '<a href="' . $link . '">' . $name . '</a>';
}
$username_replace['replace'][] = $tpl;
}
$message = preg_replace($username_replace['match'], $username_replace['replace'], $message);
return $message;
}
finde:
Code: Alles auswählen
return $text;
}
/**
* custom version of nl2br which takes custom BBCodes into account
*/
davor einfügen:
Screenshoot:
http://www.flying-bits.org/gallery/imag ... mage_id=73
Versteckte Gruppen werden nur angezeigt, wenn man Mitglied ist. Es braucht allerdings 2SQL-Abfragen für jeden Beitrag oder zu zensierenden Abschnitt. dass lässt sich hoffentlich noch verbessern.