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

Модификации и расширения phpBB
Регистрация ·  Логин: Пароль: Запомнить   · Забыли пароль?




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

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

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

Этот мод добавляет ББ-коды, которые позволяют скрывать текст от гостей, от пользователей, имеющих недостаточное количество сообщений, от групп пользователей.
Скачать можно тут: 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]
Пример:
Скрытый текст. Необходимо зарегистрироваться.
(тут у меня по своему оформлено, суть та же)
Скачать
_______________________
Если нужен стиль для сайта, стучите: ICQ 560107181


Профиль  Отправить личное сообщение
Идеальный заработок для торрент-трекеров
Страница 1 из 1
Показать сообщения за:  Поле сортировки  
Ответить на тему

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


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

cron



Powered by phpBB, 9CaraTT.RU, 2012-2018.
Обратная связь
000webhost logo