March 16, 20178 yr Здравствуйте знатоки! У меня пару вопросов касаемо изменения шаблона.Не судите строго, я недавно начал изучать стили в IPB(касаемо своего форума) Кратко о форуме:Форум находится в локальной сети, доступа извне нет, если какая-то информация нужна, спрашивайте, предоставлю.Движок: IPB 2.3.6Шаблон стандартный Вопросы: 1. Хотел добавить блок справа, добавил.Мои действия: Админцентр > Список стилей > Изменение HTML шаблонов skin_boards (главная страница) > PageTopВ самый низ шаблона вставить: <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td> Админцентр > Список стилей > Изменение HTML шаблонов skin_boards (главная страница) > stats_footerВ самый низ шаблона вставить: </td> <td align="left" valign="top" width="20%"> <div class="borderwrap"> <div class="maintitle"><p><!--Блог 1--></p></div> <div class="tablepad"><!--Текст в блоге--></p></div></div> </div> <br /> <div class="borderwrap"> <div class="maintitle"><p><!--Блог 2--></p> <div class="tablepad"><!--Текст в блоге--></p></div> </div> <br /> </td> </tr> </table> Проблема: при отключении статистики блок пропадает. 2. Хочу отключить статистику на главной и добавить показ количество пользователей онлайн в ручную, где см.скриншот №1:Необходимо добавить рядом следующее:Онлайн: число(Пользователей число) Нашел значения которые отвечают за вызов данныхАдминцентр > Список стилей > Изменение HTML шаблонов skin_boards (главная страница) > ActiveUsers <tr> <td class="formsubtitle" colspan="2">{$active['TOTAL']} {$this->ipsclass->lang['active_users']}</td> </tr> <tr> <td class="row1" width="1%"><{F_ACTIVE}></td> <td class="row2"> <b>{$active['GUESTS']}</b> {$this->ipsclass->lang['guests']}, <b>{$active['MEMBERS']}</b> {$this->ipsclass->lang['public_members']}, <b>{$active['ANON']}</b> {$this->ipsclass->lang['anon_members']} <div class="thin">{$active['NAMES']}</div> {$active['links']} </td> </tr> <!--IBF.WHOSCHATTING--> Нашел куда добавлятьАдминцентр > Список стилей > Изменение HTML шаблонов skin_global (глобальные шаблоны) > global_board_footerКак мне его добавить правильно или может быть я его не туда добавляю или надо редактировать сам файл php?Если брать например {$active['GUESTS']} и {$active['MEMBERS']}Который отвечает за вывод количество гостей и пользователей и добавить вот так:<td width="45%" align="right" nowrap="nowrap">Онлайн: {$active['GUESTS']}(Пользователей {$active['MEMBERS']})<% QUICKSTATS %>{$this->ipsclass->lang['global_timeisnow']}: {$time}</td>То ничего не работает, только добавляется текст, как мне это осуществить? Будьте добры подсказать, где мне копать..
March 18, 20178 yr Админцентр > Список стилей > Изменение HTML шаблонов skin_global (глобальные шаблоны) > global_board_footerЕсли в этом шаблоне нет переменной $active, то откуда взяться данным.
March 18, 20178 yr Author Если в этом шаблоне нет переменной $active, то откуда взяться данным.Не подскажите, где эта переменная находится? php файле?
March 20, 20178 yr sources/lib/func_boardstats.phpВ функции active_users формируются данные. Только не массив с данными, а html. Также зависит от настройки показывать активных или нет. - Можно в функцию добавить аргумент, как возвращать данные "массив или html".В sources/lib/func_boardstats.php найти function active_users()Заменить на function active_users($html=true)Найти return $this->ipsclass->compiled_templates['skin_boards']->ActiveUsers($active, $this->ipsclass->vars['au_cutoff']); Заменить на return ($html ? $this->ipsclass->compiled_templates['skin_boards']->ActiveUsers($active, $this->ipsclass->vars['au_cutoff']) : $active); Найти if ($this->ipsclass->vars['allow_online_list'])Заменить на if ($this->ipsclass->vars['allow_online_list'] and $html)Либо, если нужны ссылки (Полный список по: последним действиям, именам пользователей), то if ($this->ipsclass->vars['allow_online_list']) {Заменить на if ($this->ipsclass->vars['allow_online_list']) { if (!isset($this->ipsclass->compiled_templates['skin_boards'])) { $this->ipsclass->load_template('skin_boards'); }- Включить поддержку php в шаблонахinit.phpdefine( 'IPB_ACP_ALLOW_TEMPLATE_PHP', 1 ); - Использовать в шаблонах <php> $boardStats = $this->ipsclass->load_class( ROOT_PATH.'sources/lib/func_boardstats.php', 'func_boardstats' ); $activeUsers = $boardStats->active_users(false); </php> Онлайн: {$activeUsers['GUESTS']}(Пользователей {$activeUsers['MEMBERS']})
March 22, 20178 yr Author Благодарю за информацию, сегодня попробую. Со статистикой поможете?При отключении статистики, боковая панель отключается. Edited March 22, 20178 yr by NetTomsk
March 22, 20178 yr Author После изменения как Вы описали, вываливается ошибка при просмотре профиль пользователя или темы код ошибки 500В логахPHP Fatal error: Call to a member function active_user_links() on a non-object in /var/www/wwwroot/data/www/sources/lib/func_boardstats.php on line 240
March 22, 20178 yr После изменения как Вы описали, вываливается ошибка при просмотре профиль пользователя или темы код ошибки 500Я поправил пост.Со статистикой поможете?При отключении статистики, боковая панель отключается. Не могу воспроизвести проблему.Отключил Показывать статистику форума? (Отображение статистики форума внизу главной страницы.). Сайдбар на месте.
March 22, 20178 yr Author Может есть возможность скрыть статистику от пользователей?Не нашел такой функции в настройках форума
March 23, 20178 yr Author PHP Parse error: syntax error, unexpected '?>', expecting function (T_FUNCTION) in /var/www/wwwroot/data/www/sources/lib/func_boardstats.php on line 611
March 23, 20178 yr PHP Parse error: syntax error, unexpected '?>', expecting function (T_FUNCTION) in /var/www/wwwroot/data/www/sources/lib/func_boardstats.php on line 611 Проверяйте правильность правок.Может есть возможность скрыть статистику от пользователей?Не нашел такой функции в настройках форума sources/action_public/boards.phpСтатистика $this->output .= $this->ipsclass->compiled_templates['skin_boards']->stats_header($this->statfunc->users_online, $this->statfunc->total_posts, $this->statfunc->total_members, $show); $this->output .= $stats_html; $this->output .= $this->ipsclass->compiled_templates['skin_boards']->stats_footer();
March 23, 20178 yr Author Проверил еще раз, скопировал из бэкапа func_boardstats.phpВ sources/lib/func_boardstats.php function active_users() Заменил на function active_users($html=true) Далее return $this->ipsclass->compiled_templates['skin_boards']->ActiveUsers($active, $this->ipsclass->vars['au_cutoff']); Заменил на return ($html ? $this->ipsclass->compiled_templates['skin_boards']->ActiveUsers($active, $this->ipsclass->vars['au_cutoff']) : $active); Далее if ($this->ipsclass->vars['allow_online_list']) Заменил на if ($this->ipsclass->vars['allow_online_list']) { if (!isset($this->ipsclass->compiled_templates['skin_boards'])) { $this->ipsclass->load_template('skin_boards'); } В шаблоне global_board_footer добавил в начале <php> $boardStats = $this->ipsclass->load_class( ROOT_PATH.'sources/lib/func_boardstats.php', 'func_boardstats' ); $activeUsers = $boardStats->active_users(false); </php> И <td width="45%" align="right" nowrap="nowrap">Онлайн: {$activeUsers['GUESTS']}(Пользователей {$activeUsers['MEMBERS']})<% QUICKSTATS %>{$this->ipsclass->lang['global_timeisnow']}: {$time}</td> Верно? После этих действий вываливается ошибка
March 23, 20178 yr Верно?Нет.Смотрите внимательно.Далееif ($this->ipsclass->vars['allow_online_list'])Где открывающая скобка?В моем вариантеЛибо, если нужны ссылки (Полный список по: последним действиям, именам пользователей), то if ($this->ipsclass->vars['allow_online_list']) {
March 24, 20178 yr Статистику закомментировал и блок пропал ЧитаемВашеАдминцентр > Список стилей > Изменение HTML шаблонов skin_boards (главная страница) > stats_footerМое $this->output .= $this->ipsclass->compiled_templates['skin_boards']->stats_footer();Естественно то, что Вы добавили в шаблон, не будет выводиться. Если не принципиально можно скрыть статистику через css. Или искать другой вариант добавления блока в сайдбар. Где даже на форуме был. Но там через редактирование общего шаблона.
Здравствуйте знатоки!
У меня пару вопросов касаемо изменения шаблона.
Не судите строго, я недавно начал изучать стили в IPB(касаемо своего форума)
Кратко о форуме:
Форум находится в локальной сети, доступа извне нет, если какая-то информация нужна, спрашивайте, предоставлю.
Движок: IPB 2.3.6
Шаблон стандартный
Вопросы:
1. Хотел добавить блок справа, добавил.
Мои действия:
Админцентр > Список стилей > Изменение HTML шаблонов skin_boards (главная страница) > PageTop
В самый низ шаблона вставить:
<table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td>Админцентр > Список стилей > Изменение HTML шаблонов skin_boards (главная страница) > stats_footer
В самый низ шаблона вставить:
</td> <td align="left" valign="top" width="20%"> <div class="borderwrap"> <div class="maintitle"><p><!--Блог 1--></p></div> <div class="tablepad"><!--Текст в блоге--></p></div></div> </div> <br /> <div class="borderwrap"> <div class="maintitle"><p><!--Блог 2--></p> <div class="tablepad"><!--Текст в блоге--></p></div> </div> <br /> </td> </tr> </table>Проблема: при отключении статистики блок пропадает.
2. Хочу отключить статистику на главной и добавить показ количество пользователей онлайн в ручную, где см.скриншот №1:
Необходимо добавить рядом следующее:
Нашел значения которые отвечают за вызов данных
Админцентр > Список стилей > Изменение HTML шаблонов skin_boards (главная страница) > ActiveUsers
<tr> <td class="formsubtitle" colspan="2">{$active['TOTAL']} {$this->ipsclass->lang['active_users']}</td> </tr> <tr> <td class="row1" width="1%"><{F_ACTIVE}></td> <td class="row2"> <b>{$active['GUESTS']}</b> {$this->ipsclass->lang['guests']}, <b>{$active['MEMBERS']}</b> {$this->ipsclass->lang['public_members']}, <b>{$active['ANON']}</b> {$this->ipsclass->lang['anon_members']} <div class="thin">{$active['NAMES']}</div> {$active['links']} </td> </tr> <!--IBF.WHOSCHATTING-->Нашел куда добавлять
Админцентр > Список стилей > Изменение HTML шаблонов skin_global (глобальные шаблоны) > global_board_footer
Как мне его добавить правильно или может быть я его не туда добавляю или надо редактировать сам файл php?
Если брать например
{$active['GUESTS']} и {$active['MEMBERS']}Который отвечает за вывод количество гостей и пользователей и добавить вот так:
<td width="45%" align="right" nowrap="nowrap">Онлайн: {$active['GUESTS']}(Пользователей {$active['MEMBERS']})<% QUICKSTATS %>{$this->ipsclass->lang['global_timeisnow']}: {$time}</td>То ничего не работает, только добавляется текст, как мне это осуществить? Будьте добры подсказать, где мне копать..