Данный мод позволяет скрыть ссылки от незарегистрированных и не набравших определенное количество сообщений на форуме.
Управление через админ панель.
Есть возможность скрывать и от модераторов.
Установка
Делаем запрос в базу данных
#
#-----[ SQL ]-------------------------------------------
Код:
INSERT INTO `bb_config` SET `config_name`='necessary_post_number', `config_value`='0';
INSERT INTO `bb_config` SET `config_name`='mods_priority', `config_value`='1';
#
#-----[ открыть ]------------------------------------------
#
admin/admin_board.php#
#-----[ найти ]------------------------------------------
#
Код:
$board_email_form_yes = ( $new['board_email_form'] ) ? "checked=\"checked\"" : "";
$board_email_form_no = ( !$new['board_email_form'] ) ? "checked=\"checked\"" : "";
#
#-----[ добавить после ]------------------------------------
#
Код:
$mods_priority_yes = ( $new['mods_priority'] ) ? "checked=\"checked\"" : "";
$mods_priority_no = ( !$new['mods_priority'] ) ? "checked=\"checked\"" : "";
#
#-----[ найти ]------------------------------------------
#
Код:
"L_HOT_THRESHOLD" => $lang['Hot_threshold'],
#
#-----[ добавить после ]------------------------------------
#
Код:
"L_NECESSARY_POST_NUMBER" => $lang['Necessary_Post_Number'],
"L_MODS_PRIORITY" => $lang['Mods_Priority'],
"L_MODS_PRIORITY_EXPLAIN" => $lang['Mods_Priority_Explain'],
#
#-----[ найти]------------------------------------------
#
Код:
"HOT_TOPIC" => $new['hot_threshold'],
#
#-----[добавить после]------------------------------------
#
Код:
"NECESSARY_POST_NUMBER" => $new['necessary_post_number'],
"MODS_PRIORITY_YES" => $mods_priority_yes,
"MODS_PRIORITY_NO" => $mods_priority_no,
#
#-----[ открыть ]------------------------------------------
#
includes/bbcode.php#
#-----[ найти ]------------------------------------------
#
Код:
function prepare_bbcode_template($bbcode_tpl)
{
global $lang;
#
#-----[ заменить]------------------------------------
#
Код:
function prepare_bbcode_template($bbcode_tpl)
{
global $lang, $board_config, $phpEx, $u_login_logout;
#
#-----[ найти ]------------------------------------------
#
Код:
$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);
#
#-----[ добавить после ]------------------------------------
#
Код:
$bbcode_tpl['login_request'] = str_replace('{L_WARNING}', $lang['Links_Allowed_For_Registered_Only'], $bbcode_tpl['login_request']);
$bbcode_tpl['login_request'] = str_replace('{GET_REGISTERED}', sprintf($lang['Get_Registered'], "<a href=\"" . append_sid('profile.' . $phpEx . '?mode=register') . "\">", "</a>"), $bbcode_tpl['login_request']);
$bbcode_tpl['login_request'] = str_replace('{ENTER_FORUM}', sprintf($lang['Enter_Forum'], "<a href=\"" . append_sid($u_login_logout) . "\">", "</a>"), $bbcode_tpl['login_request']);
$bbcode_tpl['post_count_request'] = str_replace('{L_WARNING}', sprintf($lang['Post_Limit'], $board_config['necessary_post_number']), $bbcode_tpl['post_count_request']);
#
#-----[ найти ]------------------------------------------
#
Код:
function bbencode_second_pass($text, $uid)
{
global $lang, $bbcode_tpl;
#
#-----[ заменить ]------------------------------------
#
Код:
function bbencode_second_pass($text, $uid)
{
global $lang, $bbcode_tpl, $userdata, $board_config, $is_auth;
#
#-----[ найти ]------------------------------------------
#
Код:
// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];
// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = $bbcode_tpl['email'];
#
#-----[ заменить ]------------------------------------
#
Код:
$url_replacer = ( !$userdata['session_logged_in'] ) ? $bbcode_tpl['login_request'] : ( ( ( $userdata['user_posts'] >= $board_config['necessary_post_number'] ) || ( $userdata['user_level'] == 1 ) || ( ( $is_auth['auth_mod'] == 1 ) && ( $board_config['mods_priority'] == 1 ) ) ) ? '' : $bbcode_tpl['post_count_request'] );
// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url4'];
// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['email'];
#
#-----[ найти ]------------------------------------------
#
Код:
function make_clickable($text)
{
#
#-----[ добавить после ]------------------------------------
#
Код:
global $bbcode_tpl, $userdata, $board_config, $is_auth;
#
#-----[ найти ]------------------------------------------
#
Код:
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
#
#-----[ заменить ]------------------------------------
#
Код:
$url_replacer = ( !$userdata['session_logged_in'] ) ? $bbcode_tpl['login_request'] : ( ( ( $userdata['user_posts'] >= $board_config['necessary_post_number'] ) || ( $userdata['user_level'] == 1 ) || ( ( $is_auth['auth_mod'] == 1 ) && ( $board_config['mods_priority'] == 1 ) ) ) ? '' : $bbcode_tpl['post_count_request'] );
if ( $url_replacer )
{
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", $url_replacer, $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", $url_replacer, $ret);
// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", $url_replacer, $ret);
}
else
{
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
}
#
#-----[ открыть ]------------------------------------------
#
language/lang_russian/lang_admin.php#
#-----[ найти ]------------------------------------------
#
$lang['Login_reset_time_explain'] =
#
#-----[ добавить после ]------------------------------------
#
Код:
//
// Hide links mod
//
$lang['Necessary_Post_Number'] = 'Количество сообщений, без которых люди не могут видеть ссылки';
$lang['Mods_Priority'] = 'Модераторы форума видят все ссылки';
$lang['Mods_Priority_Explain'] = 'Модераторы форума могут видеть все ссылки на форуме, даже если они не имеют достаточно сообщений';
#
#-----[ открыть ]------------------------------------------
#
language/lang_russian/lang_main.php#
#-----[ найти ]------------------------------------------
#
Код:
$lang['Please_remove_install_contrib'] =
#
#-----[ добавить ниже ]------------------------------------
#
Код:
//
// Hide links mod
//
$lang['Links_Allowed_For_Registered_Only'] = 'Only registered users can see links on this board!';
$lang['Get_Registered'] = 'Get %sregistred%s or ';
$lang['Enter_Forum'] = '%senter%s the forums!';
$lang['Post_Limit'] = 'You must have <b>%s</b> posts to see links on this board';
#
#-----[ открыть ]------------------------------------------
#
Код:
templates/subSilver/bbcode.tpl
#
#-----[ найти ]------------------------------------------
#
Код:
<!-- BEGIN email --><a href="mailto:{EMAIL}">{EMAIL}</a><!-- END email -->
#
#-----[ добавить ниже ]------------------------------------
#
Код:
<!-- BEGIN login_request --></span><table width="40%" cellspacing="1" cellpadding="3" border="0">
<tr>
<td class="quote">{L_WARNING}<br />{GET_REGISTERED}{ENTER_FORUM}</td>
</tr>
</table><span class="postbody"><!-- END login_request -->
<!-- BEGIN post_count_request --> </span><table width="40%" cellspacing="1" cellpadding="3" border="0">
<tr>
<td class="quote">{L_WARNING}</td>
</tr>
</table><span class="postbody"><!-- END post_count_request -->
#
#-----[ открыть ]------------------------------------------
#
templates/subSilver/admin/admin_board.tpl#
#-----[ найти ]------------------------------------------
#
Код:
<tr>
<td class="row1">{L_HOT_THRESHOLD}</td>
<td class="row2"><input class="post" type="text" name="hot_threshold" size="3" maxlength="4" value="{HOT_TOPIC}" /></td>
</tr>
#
#-----[ добавить ниже ]------------------------------------
#
Код:
<tr>
<td class="row1">{L_NECESSARY_POST_NUMBER}</td>
<td class="row2"><input class="post" type="text" name="necessary_post_number" size="3" maxlength="4" value="{NECESSARY_POST_NUMBER}" /></td>
</tr>
<tr>
<td class="row1">{L_MODS_PRIORITY}<br /><span class="gensmall">{L_MODS_PRIORITY_EXPLAIN}</span></td>
<td class="row2"><input type="radio" name="mods_priority" value="1" {MODS_PRIORITY_YES} />{L_YES} <input type="radio" name="mods_priority" value="0" {MODS_PRIORITY_NO} />{L_NO}</td>
</tr>
#
#-----[ сохранить и закрыть все ]--------------------------
#
#
Готово!