Форум web-мастеров phpBB3

Модификации и расширения phpBB




Ответить на тему
Пред. тема | След. тема 
Автор Сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 4 месяца
Сообщения: 330
Россия

Ответить с цитатой

Этот мод добавляет ББ-коды, которые позволяют скрывать текст от гостей, от пользователей, имеющих недостаточное количество сообщений, от групп пользователей.
Скачать можно тут: http://bb3x.ru/mods/info/70
Открыть: posting.php
Найти:
if (isset($post_data['post_text']))
{
   $message_parser->message = &$post_data['post_text'];
   unset($post_data['post_text']);
После вставить:
// 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

Открыть: includes/bbcode.php
Найти:
function bbcode_second_pass(&$message, $bbcode_uid = '', $bbcode_bitfield = false)
   {
После вставить:
global $auth, $db, $user, $row, $author_id, $group_ids; // Adaptive Hide BBcodes MOD
Найти:
if (!$undid_bbcode_specialchars)
                  {
                     $message = str_replace(array(':', '.'), array(':', '.'), $message);
                     $undid_bbcode_specialchars = true;
                  }
После вставить:
// 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));
                     $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
Открыть: includes/constants.php
Найти: Перед вставить:
// Adaptive Hide BBcodes MOD
define('ADAPT_HIDE_LIMIT_POSTS', 200);
define('ADAPT_HIDE_IGNORE_LIMIT_GROUPS', '4,5');
// end Adaptive Hide BBcodes MOD

Открыть: includes/functions_posting.php Найти:
$template->assign_block_vars($mode . '_row', array(
Перед вставить:
// 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
Открыть: includes/ucp/ucp_pm_compose.php
Найти:
$message_parser->message = ($action == 'reply') ? '' : $message_text;
   unset($message_text);
После вставить:
// 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
Открыть: includes/ucp/ucp_pm_viewmessage.php
Найти:
function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
{
   global $user, $template, $auth, $db, $cache;
   global $phpbb_root_path, $phpEx, $config;
После вставить:
global $author_id; // Adaptive Hide BBcodes MOD

Установка для стиля prosilver, открыть: styles/prosilver/theme/content.css
Найти:
 /* Attachments
----------------------------------------*/
Перед вставить:
/* Hide block */
div.adapthide {
   border: 1px dashed #000099;
   background-color: #FFFFFF;
   margin: 0px 10px 5px 10px;
   padding: 5px 5px 5px 5px;
   font-size: 12px;
}

Установка для subsilver2:
Открыть: styles/subsilver2/theme/stylesheet.css
Найти:
/* Private messages
Вставить до:
/* Hide block */
div.adapthide {
   border: 1px dashed #000099;
   background-color: #FFFFFF;
   margin: 0px 10px 5px 10px;
   padding: 5px 5px 5px 5px;
   font-size: 12px;
}
Заходим админ раздел> Сообщения создаём новый BBCodes
Использование BBCode
[hide]{TEXT}[/hide]
Замена HTML
<div class="adapthide">{TEXT}</div>
Текст подсказки
[hide]text[/hide]
Пример:
Скрытый текст. Необходимо зарегистрироваться.
(тут у меня по своему оформлено, суть та же)
Скачать
_______________________
[size=90:335q8cfb][color=#727272:335q8cfb]Если нужен стиль для сайта, стучите: ICQ 560107181[/color:335q8cfb][/size:335q8cfb]
Профиль  Отправить личное сообщение
Идеальный заработок для торрент-трекеров
Страница 1 из 1
Показать сообщения за:  Поле сортировки  
Ответить на тему

Сейчас этот форум просматривают: нет пользователей онлайн и гости: 1

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron