Как установить мод сворачивания категорий?

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 lepag » 08.09.2012, 23:26

пытался адаптировать мод сворачивания категорий, но правки в последнем файле вызывает проблемы со стилем, расходятся. Как можно исправить?

Вот инструкция, вопросы вызывают в файле forumlist_body.html, что в конце.
В 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="javascriptshow_details(\'cat_'.$row['forum_id'].'\');" title="'.$user->lang['EXPAND_CAT_HIDE'].'">-</a>' : '<a href="javascriptshow_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="javascriptshow_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="javascriptshow_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>

P.S. А код спойлеры тут нет?
lepag
Автор темы
Репутация: 16
С нами: 11 лет 7 месяцев

Сообщение #2 KDit » 09.09.2012, 01:04

lepag, ну там же явно написано - заменить...
P.S. Я то его поставил но состояние категорий не сохраняется в куках если перегрузить страницу, или так должно бить...
KDit
Репутация: 67
С нами: 11 лет 9 месяцев

Сообщение #3 lepag » 09.09.2012, 10:14

Прощу прощения, скрипт немного некорректный выложил, а так у меня работал
Код: Выделить всё
<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="javascriptshow_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 href="javascriptshow_details(\''+id+'\');" title="{L_EXPAND_CAT_DISPLAY}">+</a>';      
      //Create cookie
      document.cookie = '{COOKIE_NAME}_'+id+'_aff_stat=0;';
   }
}
</script>

Нашел на другом сайте инструкции, инструкция точно такая же и все нормально отображается, видимо на старом сайте лишние символы добавляются про копировании. Мод достаточно простой, протестирую и выложу.
lepag
Автор темы
Репутация: 16
С нами: 11 лет 7 месяцев


Вернуться в Поддержка 1.x