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.