Замяна на потребителско име намиращо се в поста

Автор: jooorooo
Ето едно малко модче което написах за phpbb2, то се състой в това, че заменя потребителското име написано в пост на форума с линк към профила на името. Ето го и него.
Отваряте includes/bbcode.php
намирате
?>и преди него добавяте
function username_pass($message)
{
static $orig, $repl;
if (!isset($orig))
{
global $db, $board_config, $phpEx;
$orig = $repl = array();
$sql = 'SELECT * FROM ' . USERS_TABLE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain users data", "", __LINE__, __FILE__, $sql);
}
$users = $db->sql_fetchrowset($result);
if (count($users))
{
usort($users, 'smiley_sort');
}
for ($i = 0; $i < count($users); $i++)
{
$orig[] = "/(?<=.\W|\W.|^\W)" . preg_quote($users[$i]['username'], "/") . "(?=.\W|\W.|\W$)/i";
$repl[] = '<a target="_blank" href="profile.'.$phpEx.'?mode=viewprofile&u='.$users[$i]['user_id'].'">'.$users[$i]['username'].'</a>';
}
}
if (count($orig))
{
$message = preg_replace($orig, $repl, ' ' . $message . ' ');
$message = substr($message, 1, -1);
}
return $message;
}записвате и затваряте.
Отваряте viewtopic.php намирате
//
// Parse smilies
//
if ( $board_config['allow_smilies'] )
{
if ( $postrow[$i]['user_allowsmile'] && $user_sig != '' )
{
$user_sig = smilies_pass($user_sig);
}
if ( $postrow[$i]['enable_smilies'] )
{
$message = smilies_pass($message);
}
}след него добавяте:
$message = username_pass($message);записвате и затваряте.
Ми това е, сега които напише име което е регистрирано във форума ви, ще го замести с линк, например, пишете jooorooo и ще се получи
<a target="_blank" href="profile.php?mode=viewprofile&u=id_to_na_jooorooo">jooorooo</a>.Същия метод мове да използвате и за цензура на думи, тъй като има версии който имат проблем с цензурата на кирилица. Само си създавате една таблица за думите в нея и ги замествате.
Поздрави


