Код: Выделить всё
<open src="posting.php">
<edit>
<find><![CDATA[if (isset($post_data['post_text']))
{
$message_parser->message = &$post_data['post_text'];
unset($post_data['post_text']);]]></find>
<action type="after-add"><![CDATA[
// Adaptive Hide BBcodes MOD
if ($mode == 'quote')
{
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide:' . $post_data['bbcode_uid'] . '\](.*?)\[/hide:' . $post_data['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/hide:' . $post_data['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/ghide:' . $post_data['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide:' . $post_data['bbcode_uid'] . '\](.*?)\[/ghide:' . $post_data['bbcode_uid'] . '\]!s';
$message_parser->message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $message_parser->message);
}
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/bbcode.php">
<edit>
<find><![CDATA[ function bbcode_second_pass(&$message, $bbcode_uid = '', $bbcode_bitfield = false)
{]]></find>
<action type="after-add"><![CDATA[
global $auth, $db, $user, $row, $author_id, $group_ids; // Adaptive Hide BBcodes MOD
]]></action>
</edit>
<edit>
<find><![CDATA[ if (!$undid_bbcode_specialchars)
{
$message = str_replace(array(':', '.'), array(':', '.'), $message);
$undid_bbcode_specialchars = true;
}]]></find>
<action type="after-add"><![CDATA[
// Adaptive Hide BBcodes MOD
if (substr_count($preg['search'][0], 'hide'))
{
$poster_id = isset($row['user_id']) ? $row['user_id'] : (isset($row['poster_id']) ? $row['poster_id'] : (isset($author_id) ? $author_id : 2));
if (!isset($row['forum_id']))
{
$row['forum_id'] = 0;
}
$user->setup('mods/adaptive_hide_bbcodes');
if (substr_count($preg['search'][0], '[hide:') && ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] == 1))
{
$message = preg_replace($preg['search'], array(0 => '[hide:' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_GUEST') . '[/hide:' . $this->bbcode_uid . ']'), $message);
}
if (substr_count($preg['search'][0], '[hide\=') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
{
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int)$poster_id . '
AND user_pending = 0';
$result = $db->sql_query($sql);
$poster_groups = array();
while ($sql_row = $db->sql_fetchrow($result))
{
$poster_groups[] = $sql_row['group_id'];
}
$db->sql_freeresult($result);
$ignore_groups = explode(',', ADAPT_HIDE_IGNORE_LIMIT_GROUPS);
$ignore_limit = false;
foreach ($poster_groups as $poster_group)
{
if (in_array($poster_group, $ignore_groups))
{
$ignore_limit = true;
break;
}
}
$sql = 'SELECT user_posts
FROM ' . USERS_TABLE . '
WHERE user_id = ' . (int)$poster_id;
$result = $db->sql_query($sql);
$sql_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$poster_posts = $sql_row['user_posts'];
$hide_matches = array();
preg_match_all($preg['search'][0], $message, $hide_matches);
foreach ($hide_matches[1] as $key => $posts)
{
if (!$ignore_limit)
{
$posts = min($posts, ADAPT_HIDE_LIMIT_POSTS, $poster_posts);
}
$hide_cause = false;
if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] == 1)
{
if ($posts == 0)
{
$hide_cause = $user->lang('ADAPT_HIDE_GUEST');
}
else
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_GUEST_POSTS'), $posts);
}
}
elseif ($user->data['user_posts'] < $posts)
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_POSTS'), $posts);
}
if ($hide_cause)
{
$message = str_replace($hide_matches[0][$key], '[hide=' . $posts . ':' . $this->bbcode_uid . ']' . $hide_cause . '[/hide:' . $this->bbcode_uid . ']', $message);
}
}
}
if (substr_count($preg['search'][0], '[ghide') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
{
if (!sizeof($group_ids))
{
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int)$user->data['user_id'] . '
AND user_pending = 0';
$result = $db->sql_query($sql);
$group_ids = array();
while ($sql_row = $db->sql_fetchrow($result))
{
$group_ids[] = $sql_row['group_id'];
}
$db->sql_freeresult($result);
}
if (substr_count($preg['search'][0], '[ghide:'))
{
$sql = 'SELECT group_id
FROM ' . USERS_TABLE . '
WHERE user_id = ' . (int)$poster_id;
$result = $db->sql_query($sql);
$sql_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$poster_group = $sql_row['group_id'];
if (!in_array($poster_group, $group_ids))
{
$message = preg_replace($preg['search'], array(0 => '[ghide:' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_GROUPS') . '[/ghide:' . $this->bbcode_uid . ']'), $message);
}
}
if (substr_count($preg['search'][0], '[ghide\='))
{
$hide_matches = array();
preg_match_all($preg['search'][0], $message, $hide_matches);
foreach ($hide_matches[1] as $key => $groups)
{
$groups_ary = explode(',', $groups);
$ghide = true;
foreach ($groups_ary as $group)
{
if (in_array($group, $group_ids))
{
$ghide = false;
break;
}
}
if ($ghide)
{
$message = str_replace($hide_matches[0][$key], '[ghide=' . $groups . ':' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_GROUPS') . '[/ghide:' . $this->bbcode_uid . ']', $message);
}
}
}
}
}
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/constants.php">
<edit>
<find><![CDATA[?>]]></find>
<action type="before-add"><![CDATA[
// Adaptive Hide BBcodes MOD
define('ADAPT_HIDE_LIMIT_POSTS', 200);
define('ADAPT_HIDE_IGNORE_LIMIT_GROUPS', '4,5');
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/functions_posting.php">
<edit>
<find><![CDATA[ $template->assign_block_vars($mode . '_row', array(]]></find>
<action type="before-add"><![CDATA[
// Adaptive Hide BBcodes MOD
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+)\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
$hide_search_ary[] = '!\[ghide\](.*?)\[/ghide\]!s';
$decoded_message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $decoded_message);
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/ucp/ucp_pm_compose.php">
<edit>
<find><![CDATA[ $message_parser->message = ($action == 'reply') ? '' : $message_text;
unset($message_text);]]></find>
<action type="after-add"><![CDATA[
// Adaptive Hide BBcodes MOD
if ($action == 'quotepost')
{
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+)\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
$hide_search_ary[] = '!\[ghide\](.*?)\[/ghide\]!s';
$message_parser->message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $message_parser->message);
}
elseif ($action == 'quote' || $action == 'forward')
{
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide:' . $post['bbcode_uid'] . '\](.*?)\[/hide:' . $post['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+):' . $post['bbcode_uid'] . '\](.*?)\[/hide:' . $post['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post['bbcode_uid'] . '\](.*?)\[/ghide:' . $post['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide:' . $post['bbcode_uid'] . '\](.*?)\[/ghide:' . $post['bbcode_uid'] . '\]!s';
$message_parser->message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $message_parser->message);
}
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/ucp/ucp_pm_viewmessage.php">
<edit>
<find><![CDATA[function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
{
global $user, $template, $auth, $db, $cache;
global $phpbb_root_path, $phpEx, $config;]]></find>
<action type="after-add"><![CDATA[
global $author_id; // Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="styles/prosilver/theme/content.css">
<edit>
<find><![CDATA[/* Attachments
----------------------------------------*/]]></find>
<action type="before-add"><![CDATA[
/* Hide block */
div.adapthide {
border: 1px dashed #000099;
background-color: #FFFFFF;
margin: 0px 10px 5px 10px;
padding: 5px 5px 5px 5px;
font-size: 12px;
}
]]></action>
</edit>
</open>