Мод сворачивания форумов

Nikolay90

Пользователь
##############################################################
## Название: Мод сворачивания форумов
## Автор: markus_petrux (Markus)
##
## Адаптировано для TorrentPier II (R482): автор адаптации неизвестен; мелкие правки gerhanovn.
##
## Свёртывает форумы, и разворачивает, очень удобный мод, и красивый вид.
##
## Cложность установки: Средняя
##
## Время, необходимое для установки: ~ 10 минут
##
## Редактируемые файлы:
## index.php
## language/lang_english/lang_main.php
## language/lang_russian/lang_main.php
## includes/functions.php
## templates/default/tpl_config.php
## templates/default/index.tpl
##
##############################################################
Описание:

0. Закинуть файлики из архива на сервак

1. Открыть .../config.php
Вставить в конец файла:
PHP:
 //Начальное значение переменной для Мода сворачивания форумов
$bb_cfg['sub_forum'] = 1;

2. Открыть .../index.php
Найти:
PHP:
'FORUM_IMG' => $images['forum'],
Вставить до:
PHP:
//Мод сворачивания форумов
'U_CFI_JSLIB' => BB_ROOT . 'misc/js/collapsible_forum_index.js',
'CFI_COOKIE_NAME' => get_cfi_cookie_name(),
'COOKIE_PATH' => $bb_cfg['cookie_path'],
'COOKIE_DOMAIN' => $bb_cfg['cookie_domain'],
'COOKIE_SECURE' => $bb_cfg['cookie_secure'],
 
'IMG_UP_ARROW' => $images['up_arrow'],
'IMG_DW_ARROW' => $images['down_arrow'],
'IMG_PLUS' => $images['icon_sign_plus'],
'IMG_MINUS' => $images['icon_sign_minus'],
'SPACER' => BB_ROOT . 'images/spacer.gif',
//Конец мода сворачивания форумов

Найти:
PHP:
 $template->assign_block_vars('c', array(

После вставить:
PHP:
 'DISPLAY' => (is_category_collapsed($cid) ? '' : 'none'),

Найти:
PHP:
 $template->assign_block_vars('c.f', array(

После вставить:
PHP:
 'DISPLAY' => (is_category_collapsed($cid) ? 'none' : ''),

3. Открыть language/lang_english/lang_main.php

Вставить в конец файла:
PHP:
 //Мод сворачивания форумов
$lang['CFI_OPTIONS'] = "C.F.I.";
$lang['CFI_OPTIONS_EX'] = "Collapsible Forum Index Options";
$lang['CFI_CLOSE'] = "Close";
$lang['CFI_DELETE'] = "Delete Saved State";
$lang['CFI_RESTORE'] = "Restore Saved State";
$lang['CFI_SAVE'] = "Save State";
$lang['CFI_EXPAND_ALL'] = "Expand All";
$lang['CFI_COLLAPSE_ALL'] = "Collapse All";
//Конец мода сворачивания форумов

4. Открыть language/lang_russian/lang_main.php

Вставить в конец файла:
PHP:
 //Мод сворачивания форумов
$lang['CFI_OPTIONS'] = 'C.F.I.';
$lang['CFI_OPTIONS_EX'] = 'Параметры скрытия форумов';
$lang['CFI_CLOSE'] = 'Закрыть';
$lang['CFI_DELETE'] = 'Удаление сохраненного состояния';
$lang['CFI_RESTORE'] = 'Восстановление сохраненного состояния';
$lang['CFI_SAVE'] = 'Сохранить';
$lang['CFI_EXPAND_ALL'] = 'Развернуть все';
$lang['CFI_COLLAPSE_ALL'] = 'Свернуть все';
//Конец мода сворачивания форумов

5. Открыть includes/functions.php

Вставить в конец файла:
PHP:
 //Мод сворачивания форумов
function get_cfi_cookie_name()
{
global $bb_cfg, $bb_cfg, $_GET;
 
$k = $bb_cfg['cookie_prefix'].'_CFI_cats';
if( isset($bb_cfg['sub_forum']) )
{
$k .= '_'.isset($bb_cfg['sub_forum']);
if( isset($_GET['c']) )
{
$k .= '_'. $_GET['c'];
}
}
return $k;
}
 
function is_category_collapsed($cid)
{
global $bb_cfg, $_COOKIE;
static $collapsed_cats = false;
 
if(!is_array($collapsed_cats))
{
if( isset($_COOKIE[get_cfi_cookie_name()]))
{
$collapsed_cats = explode(':', $_COOKIE[get_cfi_cookie_name()]);
}
else
{
$collapsed_cats = array();
}
}
return in_array($cid, $collapsed_cats) ? true : false;
}
//Конец мода сворачивания форумов

6. Открыть templates/default/tpl_config.php

Вставить в конец файла:
PHP:
//Мод сворачивания форумов
$images['up_arrow'] = $_main .'icon_up_arrow.gif';
$images['down_arrow'] = $_main .'icon_down_arrow.gif';
$images['icon_sign_plus'] = $_main .'icon_sign_plus.gif';
$images['icon_sign_minus'] = $_main .'icon_sign_minus.gif';
//Конец мода сворачивания форумов

7. Открыть templates/default/index.tpl

В самое начало добавить:
PHP:
 <script language="javascript" type="text/javascript" src="{U_CFI_JSLIB}"></script>
<script language="javascript" type="text/javascript">
<!--
 
var CFIG_Version = "DHTML Collapsible Forum Index MOD v1.1.1";
 
var CFIG = new _CFIG('CFIG',
['{IMG_PLUS}', '{IMG_MINUS}'],
['{IMG_DW_ARROW}', '{IMG_UP_ARROW}'],
['{COOKIE_PATH}', '{COOKIE_DOMAIN}', (('{COOKIE_SECURE}' == '0') ? false : true)]);
CFIG.T['cookie'] = '{CFI_COOKIE_NAME}';
CFIG.T['title'] = ['{L_CFI_OPTIONS}', '{L_CFI_OPTIONS_EX}'];
CFIG.T['close'] = '{L_CFI_CLOSE}';
CFIG.T['delete'] = '{L_CFI_DELETE}';
CFIG.T['restore'] = '{L_CFI_RESTORE}';
CFIG.T['save'] = '{L_CFI_SAVE}';
CFIG.T['expand_all'] = '{L_CFI_EXPAND_ALL}';
CFIG.T['collapse_all'] = '{L_CFI_COLLAPSE_ALL}';
CFIG.T['u_index'] = '{U_INDEX}';
CFIG.allowed = true;
 
// -->
</script>

Найти:
PHP:
 <p>{S_TIMEZONE}</p>

После добавить:
PHP:
 <br />
<script language="javascript" type="text/javascript">
<!--
CFIG.writeButton();
// -->
</script>

Найти:
PHP:
 <div class="spacer_4"></div>
<!--bottom_info-->

После добавить:
PHP:
 <script language="javascript" type="text/javascript">
<!--
CFIG.writePanel();
 
<!-- BEGIN c -->
CFIG.C['cat_{c.CAT_ID}'] = new _CFIC('{c.CAT_ID}', '{c.DISPLAY}');
<!-- BEGIN f -->
if( CFIG.C['cat_{c.CAT_ID}'] ) CFIG.C['cat_{c.CAT_ID}'].add('forum_{c.CAT_ID}_{c.f.FORUM_ID}');
<!-- END f -->
<!-- END c -->
 
function CFIG_slideCat(cid, isLink)
{
if( CFIG && CFIG.currentStep <= 0 )
{
if( CFIG.IsEnabled() && CFIG.C['cat_'+cid] )
{
if( isLink ) return false;
CFIG.createQueue();
CFIG.slideForums(cid);
CFIG.execQueue();
CFIG.saveIndexState(CFIG.T['cookie']);
return false; // omit the default action of the link.
}
if( !isLink )
{
var u_index = CFIG.T['u_index'];
u_index += ( u_index.indexOf('?') > 0 ? '&' : '?' ) + 'c=' + parseInt(cid);
window.location.replace(u_index);
return false;
}
}
return true; // let the link do its job.
}
function CFIG_onLoad()
{
if( CFIG_oldOnLoad )
{
CFIG_oldOnLoad();
CFIG_oldOnLoad = null;
}
if( CFIG && CFIG.IsEnabled() )
{
CFIG.restoreIndexState(CFIG.T['cookie']);
}
}
var CFIG_oldOnLoad = window.onload;
window.onload = CFIG_onLoad;
// -->
</script>

Найти:
PHP:
 <h3 class="cat_title">

В конец этой строки добавить:
PHP:
 <img onclick="CFIG_slideCat('{c.CAT_ID}', false);" style="cursor:pointer;cursor:hand;" name="icon_sign_{c.CAT_ID}" src="{SPACER}" border="0" />&nbsp;&nbsp;

Найти:
PHP:
 <tbody>
<!-- BEGIN f -->
<tr>

Указанный tr заменить на:
PHP:
 <tr id="forum_{c.CAT_ID}_{c.f.FORUM_ID}" style="display:{c.f.DISPLAY};">

8. Сохранить все файлы и запихнуть на сервер.
##############################################################
Во вложении ниже: файлики для нулевого шага и текстовый файл с описанием установки.

На скриншотах показано:
1 - общий вид настроек сворачивания форумов в развёрнутом виде на стартовой странице
2 - результат работы мода
 

Вложения

  • Мод сворачивания форумов 1.jpg
    Мод сворачивания форумов 1.jpg
    73.9 KB · Просмотры: 197
  • Мод сворачивания форумов 2.png
    Мод сворачивания форумов 2.png
    12.8 KB · Просмотры: 182
  • [FULL] Сворачивание форумов.rar
    7.3 KB · Просмотры: 49

Nikolay90

Пользователь
Помню нужно было что то ещё в конфиг сунуть, чтобы нотиса не было)
Да, нужно. В config.php задать начальное значение переменной $bb_cfg['sub_forum'].
Поправил инструкцию (см. 1 шаг) и перезалил архив.

Lange, спасибо.
 

Nikolay90

Пользователь
Может заменить? :)
Нету такого в инструкции:
PHP:
Найти <tr>После вставить:
Посмотрите, пожалуйста, внимательно.
В файле index.tpl из 7-ого шага строка кода:
PHP:
<!-- BEGIN f -->
встречается 2 раза. Во избежание недоразумений, для однозначной идентификации, в инструкции чётко написано:
Найти:
PHP:
<tbody>
<!-- BEGIN f -->
После вставить:
PHP:
<tr id="forum_{c.CAT_ID}_{c.f.FORUM_ID}" style="display:{c.f.DISPLAY};">
мегалайн, или я что-то не понял из того о чём вы спросили!?
 
М

мегалайн

Гость
PHP:
<tbody>
<!-- BEGIN f -->
после этого будет обычно стандартный <tr> вот говорю может после нее не добавить а заменить стандартный <tr> с этим <tr id="forum_{c.CAT_ID}_{c.f.FORUM_ID}" style="display:{c.f.DISPLAY};"> . а то не работает )
 

Nikolay90

Пользователь
после этого будет обычно стандартный <tr>
Вы уверены, что он там будет?:) У меня часть файла index.tpl, о которой Вы говорите, выглядит так:
PHP:
<tbody>
        <!-- BEGIN f -->
        <tr id="forum_{c.CAT_ID}_{c.f.FORUM_ID}" style="display:{c.f.DISPLAY};">
            <td class="row1 f_icon">
            <a href="search.php?f={c.f.FORUM_ID}&amp;new=1&amp;dm=1&amp;s=0&amp;o=1"><img class="forum_icon" src="{c.f.FORUM_FOLDER_IMG}" alt="{c.f.FORUM_FOLDER_ALT}" /></a>
            </td>
Проверяйте у себя.
 
Сверху