Замяна на потребителско име намиращо се в поста
Ето едно малко модче което написах за 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>.

Същия метод мове да използвате и за цензура на думи, тъй като има версии който имат проблем с цензурата на кирилица. Само си създавате една таблица за думите в нея и ги замествате.

Поздрави

/ Трябва да сте регистриран за да напишете коментар /