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

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




Ответить на тему
Пред. тема | След. тема 
Автор Сообщение
Местный тролль

Карма
0
Стаж: 5 лет 4 месяца
Сообщения: 12
Украина

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

Существует мод под названием Expand categories (https://www.phpbb.com/customise/db/mod/ ... ategories/) для форума phpBB3 который позволяет сворачивать категории форума, с возможностью сохранения состояния в куках пользователя, а так-же в опции каждой из категорий указывать начальное состояние категории (свёрнута/развёрнута), текущая версия мода 1.4.1, под phpBB версии 3.0.5 и только для стиля prosilver, доработанный вариант этого мода под последнюю версию phpBB3 (3.0.9) + инструкция для стиля subsliver2:

В phpmyadmin выполнить

ALTER TABLE phpbb_forums ADD default_display tinyint(1) NOT NULL DEFAULT 1;


adm/style/acp_forums.html после

            <label><input type="radio" class="radio" name="display_active" value="0"<!-- IF not S_ENABLE_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
      </dl>


добавить

      <dl>
         <dt><label for="forum_style">{L_DEFAULT_DISPLAY}:</label><br /><span>{L_DEFAULT_DISPLAY_EXPLAIN}</span></dt>
         <dd><label><input type="radio" class="radio" name="default_display" value="1"<!-- IF S_DEFAULT_DISPLAY --> id="default_display" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
            <label><input type="radio" class="radio" name="default_display" value="0"<!-- IF not S_DEFAULT_DISPLAY --> id="default_display" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
      </dl>


includes/acp/acp_forums.php после

                  'forum_password_confirm'=> request_var('forum_password_confirm', '', true),
                  'forum_password_unset'   => request_var('forum_password_unset', false),


добавить

                  'default_display'      => request_var('default_display', true),


после

                     'forum_password'      => '',
                     'forum_password_confirm'=> '',


добавить

                     'default_display'      => true,


после

               'S_ENABLE_QUICK_REPLY'      => ($forum_data['forum_flags'] & FORUM_FLAG_QUICK_REPLY) ? true : false,
               'S_CAN_COPY_PERMISSIONS'   => ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false,


добавить

               'S_DEFAULT_DISPLAY'         => ($forum_data['default_display']) ? true : false,


includes/functions_display.php после

      // Empty category
      if ($row['parent_id'] == $root_data['forum_id'] && $row['forum_type'] == FORUM_CAT)
      {


добавить

         $cat_aff_stat = request_var($config['cookie_name'].'_cat_'.$row['forum_id'].'_aff_stat', intval($row['default_display']),false,true);


после

         $template->assign_block_vars('forumrow', array(
            'S_IS_CAT'            => true,


добавить

            'DISPLAY_CAT'         => ($cat_aff_stat) ? '' : 'none',
            'DISPLAY_CAT_LINK'      => ($cat_aff_stat) ? '<a href="javascript:show_details(\'cat_'.$row['forum_id'].'\');" title="'.$user->lang['EXPAND_CAT_HIDE'].'">-</a>' : '<a href="javascript:show_details(\'cat_'.$row['forum_id'].'\');" title="'.$user->lang['EXPAND_CAT_DISPLAY'].'">+</a>',


index.php после

// Assign index specific vars
$template->assign_vars(array(


добавить

   'COOKIE_NAME'      => $config['cookie_name'],


language/ru/acp/forums.php перед



добавить

   'DEFAULT_DISPLAY'         => 'Показывать форумы развёрнутыми',
   'DEFAULT_DISPLAY_EXPLAIN'   => 'Настройки показа/скрытия форумов',


language/ru/common.php перед


добавить

$lang = array_merge($lang, array(
   'EXPAND_CAT_DISPLAY'   => 'Показать форумы',
   'EXPAND_CAT_HIDE'      => 'Скрыть форумы',
));


styles/prosilver/template/forumlist_body.html перед

<!-- BEGIN forumrow -->
   <!-- IF (forumrow.S_IS_CAT and not forumrow.S_FIRST_ROW) or forumrow.S_NO_CAT  -->


добавить

<script type="text/javascript">
function show_details(id)
{
   if(document.getElementById(id).style.display == 'none')
   {
      //Display
      document.getElementById(id).style.display = 'block';
      //Change link
      document.getElementById('phpbb_'+id).innerHTML = '<a href="javascript:show_details(\''+id+'\');" title="{L_EXPAND_CAT_HIDE}">-</a>';
      //Delete cookie
      createCookie('{COOKIE_NAME}_'+id+'_aff_stat', 1, 365);
   }
   else
   {
      //Don't display
      document.getElementById(id).style.display = 'none';
      //Change link
      document.getElementById('phpbb_'+id).innerHTML = '<a href="javascript:show_details(\''+id+'\');" title="{L_EXPAND_CAT_DISPLAY}">+</a>';
      //Create cookie
      createCookie('{COOKIE_NAME}_'+id+'_aff_stat', 0, 365);
   }
}
</script>


после

<!-- BEGIN forumrow -->
   <!-- IF (forumrow.S_IS_CAT and not forumrow.S_FIRST_ROW) or forumrow.S_NO_CAT  -->
         </ul>


добавить

         </div>

заменить

                  <dt><!-- IF forumrow.S_IS_CAT --><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a><!-- ELSE -->{L_FORUM}<!-- ENDIF --></dt>


на

                  <dt><!-- IF forumrow.S_IS_CAT --><span id="phpbb_cat_{forumrow.FORUM_ID}" style="font-size:18px;margin-right:8px;">{forumrow.DISPLAY_CAT_LINK}</span><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a><!-- ELSE -->{L_FORUM}<!-- ENDIF --></dt>


перед

         <ul class="topiclist forums">
   <!-- ENDIF -->


добавить

            <div id="cat_{forumrow.FORUM_ID}" style="display:{forumrow.DISPLAY_CAT};">


после

   <!-- IF forumrow.S_LAST_ROW -->
         </ul>


добавить

         </div>


styles/subsilver2/template/forumlist_body.html перед

<table class="tablebg" cellspacing="1" width="100%">


добавить

<script type="text/javascript">
function show_details(id)
{
   if(document.getElementById(id).style.display == 'none')
   {
      //Display
      document.getElementById(id).style.display = '';
      //Change link
      document.getElementById('phpbb_'+id).innerHTML = '<a class="wo_title" href="javascript:show_details(\''+id+'\');" title="{L_EXPAND_CAT_HIDE}">-</a>';
      //Delete cookie
      document.cookie = '{COOKIE_NAME}_'+id+'_aff_stat=1;';
   }
   else
   {
      //Don't display
      document.getElementById(id).style.display = 'none';
      //Change link
      document.getElementById('phpbb_'+id).innerHTML = '<a class="wo_title" href="javascript:show_details(\''+id+'\');" title="{L_EXPAND_CAT_DISPLAY}">+</a>';
      //Create cookie
      document.cookie = '{COOKIE_NAME}_'+id+'_aff_stat=0;';
   }
}
</script>


<!-- BEGIN forumrow -->

   <!-- IF (forumrow.S_IS_CAT and not forumrow.S_FIRST_ROW) or forumrow.S_NO_CAT  -->
      </tbody>

</table>
   <!-- ENDIF -->

   <!-- IF forumrow.S_IS_CAT or forumrow.S_FIRST_ROW  or forumrow.S_NO_CAT  -->


после

<table class="tablebg" cellspacing="1" width="100%">


добавить

<!-- IF forumrow.S_FIRST_ROW -->


перед

<tr>
   <th colspan="2">&nbsp;{L_FORUM}&nbsp;</th>


добавить

   <!-- ENDIF -->


удалить

<!-- BEGIN forumrow -->
   <!-- IF forumrow.S_IS_CAT -->


заменить

         <td class="cat" colspan="2"><h4><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></h4></td>


на

            <td class="cat" colspan="2"><h4><span id="phpbb_cat_{forumrow.FORUM_ID}" style="font-size:18px;margin-right:8px;">{forumrow.DISPLAY_CAT_LINK}</span><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></h4></td>


заменить

   <!-- ELSEIF forumrow.S_IS_LINK -->
      <tr>
         <td class="row1" width="50" align="center">{forumrow.FORUM_FOLDER_IMG}</td>
         <td class="row1">
            <!-- IF forumrow.FORUM_IMAGE -->
               <div style="float: {S_CONTENT_FLOW_BEGIN}; margin-{S_CONTENT_FLOW_END}: 5px;">{forumrow.FORUM_IMAGE}</div>


на

   <tbody id="cat_{forumrow.FORUM_ID}" style="display:{forumrow.DISPLAY_CAT};">


заменить

            <a class="forumlink" href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
            <p class="forumdesc">{forumrow.FORUM_DESC}</p>
         </td>
         <!-- IF forumrow.CLICKS -->
            <td class="row2" colspan="3" align="center"><span class="genmed">{L_REDIRECTS}: {forumrow.CLICKS}</span></td>
         <!-- ELSE -->
            <td class="row2" colspan="3" align="center">&nbsp;</td>
         <!-- ENDIF -->
      </tr>
   <!-- ELSE -->
      <!-- IF forumrow.S_NO_CAT -->
         <tr>
            <td class="cat" colspan="2"><h4>{L_FORUM}</h4></td>
            <td class="catdiv" colspan="3">&nbsp;</td>
         </tr>
      <!-- ENDIF -->


на

   <!-- IF not forumrow.S_IS_CAT -->


перед

<!-- BEGINELSE -->
   <tr>


добавить

   <!-- IF forumrow.S_LAST_ROW -->
      </tbody>
   <!-- ENDIF -->


Очистить кеш, обновить переделанные стили.

Результат, скриншоты, опция в адм. разделе:
#992

Свёрнутые/развёрнутые категории форумов:
#992

#992

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

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

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

cron