• Фиксы ошибок от модов, исправления, доработки • 
Здесь инструкции по дружбе модов и доработки
При создании темы о модах для двигателя форумов phpBB ветки до версии 3.0.14 название темы должно начинаться с названия мода на английском, без указания версии, затем тире, затем короткое название мода на русском с маленькой буквы. Создание тем не о модах в данном подфоруме запрещено. Посторонние темы о двиге и посторонних проблемах для ветки до версии 3.0.14 в соседнем подфоруме.

    Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 25 мар 2013, 05:57

Здесь инструкции по дружбе модов...
Что насобирал... Могут быть повторы. Закончу выкладывать все - потом проверю на повторы....

О Версиях мода с файлами именно с этого форума.
ПОМНИТЕ!!!! Скачивая и устанавливая вариант мода с файлами от этого форума вы рискуете!!!
Не имея знаний в вопросах правки и исправления глюков делать это не стоит!
1. Я не могу помнить всех нюансов и правок в моде и доработок его работы у себя на форуме!
2. Обычно все файлы мода у меня тут максимально оптимизированы, из них выкинуто все "лишнее".
3. Переводы адаптированы именно под данный форум с правилами под так называемую "тошноту".
4. Файлы стиля могут иметь CSS классы, которых нет в ваших классах CSS ваших стилей
5. В любых файлах могут находиться правки от других модов (дружбы) и даже от СЕО

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Татьяна5 05 фев 2017, 12:52

09 Fix от автор мода Avatar Index Viewforum v1.3.0 для уменьшения аватарок от fashion Random No Avatar v1.0.4b [Рандомный "Ноуаватар"] при установленном Avatar Index Viewforum v1.3.0 имеет небольшой глюк...
Аватары при данной правке - Дружба модов между собой (наработки) теряют соотношение сторон и авы становится чисто квадратными... Ну или такими, как выставлены размеры...
Заменить на:
Код: выделить все
//-- mod : apiv ----------------------------------------------------------------
//-- add
function user_display_avatar($row, $prefix = '', $tpl_switch, $display)
{
   if ( !$display || empty($row[$prefix . '_poster_avatar']) )
   {
      return;
   }

   global $config, $template;

   $avatar = unserialize($row[$prefix . '_poster_avatar']);
   if ( $avatar['width'] >= $avatar['height'] )
   {
      $avatar_width = ($avatar['width'] > $config['avatar_max_dimensions']) ? $config['avatar_max_dimensions'] : $avatar['width'];
      $avatar_height = ($avatar_width == $config['avatar_max_dimensions']) ? round($config['avatar_max_dimensions'] / $avatar['width'] * $avatar['height']) : $avatar['height'];
   }
   else
   {
      $avatar_height = ($avatar['height'] > $config['avatar_max_dimensions']) ? $config['avatar_max_dimensions'] : $avatar['height'];
      $avatar_width = ($avatar_height == $config['avatar_max_dimensions']) ? round($config['avatar_max_dimensions'] / $avatar['height'] * $avatar['width']) : $avatar['width'];
   }
   
   if (!$avatar_width && !$avatar_height) {
      $avatar_width = $avatar_height = $config['avatar_max_dimensions'];
   }

   $template->alter_block_array($tpl_switch, array(
      strtoupper($prefix) . '_POSTER_AVATAR' => get_user_avatar($avatar['avatar'], $avatar['type'], $avatar_width, $avatar_height),
      strtoupper($prefix) . '_POSTER_AVATAR_MARGIN' => ($avatar_width == $config['avatar_max_dimensions']) ? 5 : ($config['avatar_max_dimensions'] - $avatar_width + 5),
   ), true, 'change');
}
//-- fin mod : apiv ------------------------------------------------------------

Данная правка убивает ТРЕХ ЗАЙЦЕВ - ресайзятся обычные авы, ресайзятся рандом авы и сохраняется соотношение ав нестандартного размера ...
Аватар пользователя
Татьяна5
Профессор форума
Профессор форума 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 05 фев 2017, 12:57

11 Fix для исправления отсутствия пагинации при выводе нескольких страниц в блоке от мода NV Recent Topics v1.0.6 при установленном Zero Dupe.
Открыть index.php
Найти:
Код: выделить все
// www.phpBB-SEO.com SEO TOOLKIT BEGIN -> Zero dupe

Добавить до:
Код: выделить все
//Fix for Recent topics
$recent_topics_start = request_var('recent_topics_start', 0);
//End Fix for Recent topics

Найти:
Код: выделить все
if (!$pl) {
   $phpbb_seo->seo_chk_dupe();
}

Заменить на:
Код: выделить все
if (!$pl && !$recent_topics_start) {
   $phpbb_seo->seo_chk_dupe();
}

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 05 фев 2017, 13:00

12 Fix для исправления отсутствия смены аватары автора сообщения при смене автора сообщения в модераторском разделе при установленном моде Avatar Index Viewforum v1.3.0
(От Автора)
Открыть:
includes/mcp/mcp_post.php
Найти:
Код: выделить все
    // Resync topic/forum if needed

Добавить перед:
Код: выделить все
//-- mod : apiv ----------------------------------------------------------------
//-- add
    include $phpbb_root_path . 'includes/functions_user.' . $phpEx;
    user_update_avatar($post_info['user_id'], $userdata['user_avatar'], $userdata['user_avatar_type'], $userdata['user_avatar_width'], $userdata['user_avatar_height']);
//-- fin mod : apiv ------------------------------------------------------------

Открыть:
includes/functions_user.php
Найти:
Код: выделить все
   $avatar_info = serialize(array(
        'avatar' => $new_avatar,
        'type' => (int) $new_avatar_type,
        'width' => (int) $new_avatar_width,
        'height' => (int) $new_avatar_height,
    ));

Заменить на:
Код: выделить все
    $avatar_info = '';
    if ( !empty($new_avatar) )
    {
        $avatar_info = serialize(array(
            'avatar' => $new_avatar,
            'type' => (int) $new_avatar_type,
            'width' => (int) $new_avatar_width,
            'height' => (int) $new_avatar_height,
        ));
    }

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Татьяна5 05 фев 2017, 13:05

14 Дружба модов NV recent topics v1.0.6 и Topic Text in Mouse Over v1.0.6
Открыть includes/functions_recenttopics.php
Найти:
Код: выделить все
if ($display_parent_forums)
   {
      $sql_query_array['SELECT'] .= ', f.parent_id, f.forum_parents, f.left_id, f.right_id';
   }

   $sql = $db->sql_build_query('SELECT', $sql_query_array);
   $result = $db->sql_query_limit($sql, $topics_per_page);

Вставить перед:
Код: выделить все
// BEGIN Topic Text Hover Mod
         if ($config['hover_active'] && !$user->data['user_text_hover'])
         {
            include($phpbb_root_path . 'includes/topic_text_hover.' . $phpEx);
            if($config['hover_show'] == TOPIC_TEXT_HOVER_FIRST || $config['hover_show'] == TOPIC_TEXT_HOVER_BOTH)
            {
               $sql_query_array['LEFT_JOIN'][] = array('FROM' => array(POSTS_TABLE => 'p'), 'ON' => 'p.post_id = t.topic_first_post_id');
                  $sql_query_array['SELECT'] .= ', p.post_text AS first_text_hover';
            }
            if($config['hover_show'] == TOPIC_TEXT_HOVER_LAST || $config['hover_show'] == TOPIC_TEXT_HOVER_BOTH)
            {
               $sql_query_array['LEFT_JOIN'][] = array('FROM' => array(POSTS_TABLE => 'pt'), 'ON' => 'pt.post_id = t.topic_last_post_id');
               $sql_query_array['SELECT'] .= ', pt.post_text AS last_text_hover';
            }
         }
         // END Topic Text Hover Mod

Найти:
Код: выделить все
$template->assign_block_vars($tpl_loopname, array(

Вставить перед:
Код: выделить все
       // BEGIN Topic Text Hover Mod
            if (!empty($row['first_text_hover']) || !empty($row['last_text_hover']))
            {
               // strip bbcode
               include($phpbb_root_path . 'includes/topic_text_hover.' . $phpEx);         
               if(!empty($row['first_text_hover']))
               {
                  $first_text_hover = bbcode_strip($row['first_text_hover']);
                  if (utf8_strlen($first_text_hover) >= $config['hover_char_limit'])
                  {
                     $first_text_hover = (utf8_strlen($first_text_hover) > $config['hover_char_limit'] + 3) ? utf8_substr($first_text_hover, 0, $config['hover_char_limit']) . '...' : $first_text_hover;
                  }
               }
               if(!empty($row['last_text_hover']))
               {
                  $last_text_hover = bbcode_strip($row['last_text_hover']);
                  if (utf8_strlen($last_text_hover) >= $config['hover_char_limit'])
                  {
                     $last_text_hover = (utf8_strlen($last_text_hover) > $config['hover_char_limit'] + 3) ? utf8_substr($last_text_hover, 0, $config['hover_char_limit']) . '...' : $last_text_hover;
                  }
               }
            }
            else
            {
               $first_text_hover = $last_text_hover = '';
            }
            // END Topic Text Hover Mod

Найти:
Код: выделить все
'S_TOPIC_TYPE'         => $row['topic_type'],

Вставить перед:
Код: выделить все
// BEGIN Topic Post Text Mod
            'FIRST_TEXT_HOVER'   => (isset($first_text_hover)) ? censor_text($first_text_hover) : '',
            'LAST_TEXT_HOVER'   => (isset($last_text_hover)) ? censor_text($last_text_hover) : '',
            'LAST_POST_IMG'      => $user->img('icon_topic_latest'),
            // END Topic Post Text Mod

Открыть styles/ваш стиль/template/recent_topics_body.html
Найти:
Код: выделить все
href="{recent_topics.U_VIEW_TOPIC}" class="topictitle"

Вставить после;
Код: выделить все
<!-- IF recent_topics.FIRST_TEXT_HOVER -->title="{recent_topics.FIRST_TEXT_HOVER}"<!-- ENDIF -->

Найти:
Код: выделить все
href="{recent_topics.U_LAST_POST}"

Вставить после:
Код: выделить все
<!-- IF recent_topics.LAST_TEXT_HOVER -->title="{recent_topics.LAST_TEXT_HOVER}"<!-- ENDIF -->

Найти:
Код: выделить все
{LAST_POST_IMG}

Заменить на:
Код: выделить все
<!-- IF recent_topics.LAST_TEXT_HOVER -->{recent_topics.LAST_POST_IMG}<!-- ELSE -->{LAST_POST_IMG}<!-- ENDIF -->

Чистим кеши и радуемся результатам
Аватар пользователя
Татьяна5
Профессор форума
Профессор форума 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 07 фев 2017, 04:40

СОЗДАНИЕ, например, 20 штукового списка юзеров в МЕМБЕРЕ
По-хорошему надо завести в таблице _config новое значение и использовать его.
Значит так:
1) Заходишь в phpMyAdmin
2) Добавляешь в таблицу_config параметр users_per_page и ставишь значение, например, 20 (третье поле — 0)
3) Чистишь кеш конференции через админку
4) Меняешь в memberlist.php все $config['topics_per_page'] на $config['users_per_page']

или запросом
Код: выделить все
INSERT INTO phpbb_config (config_name, config_value) VALUES ('users_per_page', '20');

Потом можно сменить на любое другое запросом
Код: выделить все
UPDATE phpbb_config SET config_value = '20' WHERE config_name = 'users_per_page'

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 07 фев 2017, 05:25

От Shredder
При модерировании темы, когда выбираешь количество сообщений на странице, ставишь значение больше того что по умолчанию и нажимаешь "Перейти", то те из сообщений, которые были вновь добавлены для отображения, по какой-то непонятной причине оказываются уже отмеченными. По-моему, это серьёзный баг. Я могу начать выбирать сообщения для переноса вверху, не заметив "автоотмеченного" внизу, и затем напереношу всё что надо и не надо...
Происходит в любом стиле и браузере.

Решение от Shredder
Фикс для проблемы, о которой я писал тут, возможно, следующий (по крайней мере у меня после этого всё адекватно работает):
В includes/mcp/mcp_topic.php найти
Код: выделить все
         'S_CHECKED'         => (($submitted_id_list && !in_array(intval($row['post_id']), $submitted_id_list)) || in_array(intval($row['post_id']), $checked_ids)) ? true : false,

Заменить на:
Код: выделить все
         'S_CHECKED'         => ((!$submitted_id_list && in_array(intval($row['post_id']), $submitted_id_list)) || in_array(intval($row['post_id']), $checked_ids)) ? true : false,

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 07 фев 2017, 05:47

Изменение информации о новых ЛС другим цветом -
В overall_header.htmlнайти:
Код: выделить все
<!-- IF S_DISPLAY_PM --> (<a href="{U_PRIVATEMSGS}">{PRIVATE_MESSAGE_INFO}</a>)<!-- ENDIF -->

Заменить на:
Код: выделить все
<!-- IF S_DISPLAY_PM --><!-- IF S_USER_NEW_PRIVMSG -->(<a href="{U_PRIVATEMSGS}" style="color:#FF0000;">{PRIVATE_MESSAGE_INFO}</a>)<!-- ELSE -->(<a href="{U_PRIVATEMSGS}">{PRIVATE_MESSAGE_INFO}</a>)<!-- ENDIF --><!-- ENDIF -->

Надпись будет красной при наличии новых ЛС

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 06 мар 2017, 06:39

ССЫЛКА на СООБЩЕНИЕ ЦИТИРУЕМОЕ в полной ЦИТАТЕ
Posting.php
Код: выделить все
        $message_parser->message = '[quote=&quot;' . $post_data['quote_username'] . '&quot;]' . censor_text(trim($message_parser->message)) . "[/quote]n" ;

Replace with:
Код: выделить все
//        $message_parser->message = '[quote=&quot;' . $post_data['quote_username'] . '&quot;]' . censor_text(trim($message_parser->message)) . "[/quote]n";
        $message_parser->message = '[quote=&quot;' . '[url=' . generate_board_url() . "/viewtopic.$phpEx?p=$post_id#p$post_id" . ']' . $post_data['quote_username'] . ' &raquo; ' . $user->format_date($post_data['post_time']) . '[/url]' . '&quot;]' . censor_text(trim($message_parser->message)) . "[/quote]n";   

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 06 мар 2017, 06:52

С разрешения автора правки косяка между модами Post Expire 1.0.3 и jQuery Quick Edit FEAR93 выкладываю правки, позволяющие работать обоим модам вместе...
В файле quickedit.php
Найти:
Код: выделить все
$url_status       = ($config['allow_post_links'] && $post_data['enable_magic_url']) ? true : false;

Заменить на:
Код: выделить все
$url_status      = ($config['allow_post_links']) ? true : false;

Найти:
Код: выделить все
      // start parsing the text for the database
      $message_parser = new parse_message();
     
      $message_parser->message = $post_text;
     
      // Always check if the submitted attachment data is valid and belongs to the user.

Заменить на:
Код: выделить все
      // start parsing the text for the database
      $message_parser = new parse_message();
      $message_parser->message = $post_text;
      $post_data['topic_first_post_id'] = (isset($post_data['topic_first_post_id'])) ? (int) $post_data['topic_first_post_id'] : 0;
      $post_data['date_picker'] = '';
      $post_data['post_expire_time'] = (isset($post_data['post_expire_time'])) ? (int) $post_data['post_expire_time'] : -1;
      $post_data['post_expire_time'] = ($post_data['post_expire_time'] != 0) ? $post_data['post_expire_time'] : -1;
      $expire_default_action = -1;
      $perm_actions = array('0' => $auth->acl_get('u_post_expire_delete'), '1' => $auth->acl_get('u_post_expire_lock'), '2' => $auth->acl_get('u_post_expire_move'), '3' => $auth->acl_get('u_post_expire_lockandmove'));
      foreach ($perm_actions as $key => $value)
      {
         if ($value)
         {
            if ($key == $config['expire_default_action'])
            {
               $expire_default_action = $key;
               break;
            }
            else if ($expire_default_action == -1)
            {
               $expire_default_action = $key;
            }
         }
      }
   unset($perm_actions);
   if ($expire_default_action == -1)
   {
      $expire_default_action = 0;
   }
   $uninit = array('post_attachment' => 0, 'poster_id' => $user->data['user_id'], 'enable_magic_url' => 0, 'topic_status' => 0, 'topic_type' => POST_NORMAL, 'post_subject' => '', 'topic_title' => '', 'post_time' => 0, 'post_edit_reason' => '', 'notify_set' => 0, 'topic_expire_type' => $expire_default_action);
   foreach ($uninit as $var_name => $default_value)
   {
      if (!isset($post_data[$var_name]))
      {
         $post_data[$var_name] = $default_value;
      }
   }
   unset($uninit);
      // Always check if the submitted attachment data is valid and belongs to the user.

Найти:
Код: выделить все
      // Create the data array for submit_post

Добавить перед:
Код: выделить все
   $post_data['date_picker'] = request_var('date_picker', '');
   $post_data['post_expire_time'] = request_var('post_expire_time', -1);
   $post_data['topic_expire_type'] = request_var('topic_expire_type', $expire_default_action);
   $post_data['expire_forum_id'] = request_var('expire_forum_id', 0);
   if ($config['expire_enable'])
   {
      if(!empty($post_data['date_picker']))
      {
         $date_picker = str_replace('-', ' ', $post_data['date_picker']);
         $date_picker = str_replace(':', ' ', $date_picker);
         $date_array = explode(' ', $date_picker);
         $day = (isset($date_array[0])) ? $date_array[0] : NULL;
         $month = (isset($date_array[1])) ? $date_array[1] : NULL;
         $year = (isset($date_array[2])) ? $date_array[2] : NULL;
         (!isset($date_array[3])) ? $hour = NULL : $date_array[3] ? $hour = $date_array[3] : $hour = '00';
         (!isset($date_array[4])) ? $minute = NULL : $date_array[4] ? $minute = $date_array[4] : $minute = '00';
         $am_pm = (isset($date_array[5])) ? $date_array[5] : NULL;
         if (preg_match("/^(d{2}) (d{2}) (d{4}) ([01][0-9]|2[0-3]) ([0-5][0-9])$/", "$day $month $year $hour $minute", $matches))
         {
            if (isset($am_pm))
            {
               $am_pm = strtolower($am_pm); 
               switch ($am_pm)
               {
                  case 'am':
                     $hour = ($hour == 12) ? 0 : $hour;
                  break;
                  case 'pm':
                     $hour = ($hour == 12) ? 12 : $hour + 12;
                  break;
                  default:
                     $error[] = $user->lang['INVALID_DATE'];
                  break;
               }
            }
            if (checkdate($matches[2], $matches[1], $matches[3]))
            {
               $post_data['post_expire_time'] = gmmktime(intval($hour), intval($minute), 0, intval($month), intval($day), intval($year)) - (time() + $user->timezone + $user->dst);
               if ($post_data['post_expire_time'] < 0)
               {
                  $error[] = $user->lang['PAST_DATE'];
               }
            }
            else
            {
               $error[] = $user->lang['INVALID_DATE'];
            }       
         }
         else
         {
            $error[] = $user->lang['INVALID_DATE'];
         }
      }
      if (intval($config['expire_max_time']) != 0 && (intval($post_data['post_expire_time'])) > intval($config['expire_max_time'])*86400)
      {
         $error[] = sprintf($user->lang['MAX_DATE'], $config['expire_max_time']);
      }
      if($post_data['post_expire_time'] == -1)
      {
         $post_data['topic_expire_type'] = $expire_default_action;
         $post_data['expire_forum_id'] = 0;
      }
      else if ($post_data['post_expire_time'] != -1 && ($post_data['topic_expire_type'] == 0 || $post_data['topic_expire_type'] == 1))
      { 
         $post_data['expire_forum_id'] = 0;
      }
      if ($post_data['post_expire_time'] != -1 && $post_data['expire_forum_id'] == 0 && ($post_data['topic_expire_type'] == 2 || $post_data['topic_expire_type'] == 3) && $post_data['topic_first_post_id'] == $post_id)
      {
         if (!$auth->acl_get('u_post_expire_only'))
         {
            $error[] = $user->lang['MOVE_UNABLE'];
         }
      }
   }

Найти и удалить:
Код: выделить все
          'topic_poster'      => $post_data['topic_poster'],

Найти:
Код: выделить все
       // Other Options
          'post_edit_locked'  => $post_data['post_edit_locked'],

Добавить после:
Код: выделить все
          'post_expire_time'      => ($post_data['post_expire_time'] != -1) ? (int) $post_data['post_expire_time'] : -1,
         'topic_expire_type'      => (int) $post_data['topic_expire_type'],
         'expire_forum_id'      => (int) $post_data['expire_forum_id'],

Найти:
Код: выделить все
         * $username is set to $user->data['username'] as we don't need the clean username for the logs
         */
         submit_post('edit', $post_data['post_subject'], $post_data['username'], $post_data['topic_type'], $poll, $data);

Заменить на:
Код: выделить все
         * $username is set to $user->data['username'] as we don't need the clean username for the logs
         */
         submit_post('edit', $post_data['post_subject'], $user->data['username'], $post_data['topic_type'], $poll, $data);

Оба указанных мода будут работать на форуме вместе...удачи..И спасибо FEAR93 еще раз за такую профессиональную работу ...

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP

  Фиксы ошибок от модов, исправления, доработки

Сообщение Разместил Александр Лешванов 06 мар 2017, 06:57

ДРУЖБА jQuery Quick Edit и Topic Title Colour (после правки исчезает намеченный цвет названия темы)
В файле - quickedit.php
Найти:
Код: выделить все
          'topic_title'       => $post_data['topic_title'],

Добавить после:
Код: выделить все
         'topic_title_colour'       => $post_data['topic_title_colour'],

Найти:
Код: выделить все
         add_log('mod', $post_data['forum_id'], $post_data['topic_id'], 'LOG_POST_EDITED', $post_data['topic_title'], (!empty($post_data['username'])) ? $post_data['username'] : $user->lang['GUEST']);

Найти в строке:
Код: выделить все
$post_data['topic_title'],

Добавить в строку после:
Код: выделить все
 $post_data['topic_title_colour'],

Аватар пользователя
Александр Лешванов
(можно Николаич)
(можно Николаич) 
*
Google Chrome 31.0.165 Google Chrome 31.0.165
Windows XP Windows XP
Предыдущая страница
Следующая страница

Вернуться в 450 модов движка форумов phpBB (до версии 3.0.14)



 • Блок вывода аналогичных по названию других тем нашего форума • 

HTML5 Validated Счетчик ИКС Яндекс.Метрика