Выключатель для блока в админке на форуме phpbb3эта система очень удобна. у себя здесь, на сайте, я её применяю для оформления праздничного украшения (новый год, 8 марта...). один раз оформление сделал - прописал - заключил в условие показа - а в админке есть разрешение показывать/нет. всё оформление постоянно остаётся прописано в шаблоне - надо только включить...
Большое спасибо за разъяснение данной темы DeaDRoMeO (в конце темы есть ссылка на первоисточник - посмотрите, может быть объяснение там вам больше подойдёт).
Итак, поехали:
Во-первых, небольшое отступление. Я решил сделать сразу блок из 5 переключателей (так сказать задел на будущее) чтобы, при необходимости, можно было сразу задействовать, а не приписывать каждый заново. Как я сказал, у меня первый выключатель сделан для оформления нового года - так и покажу.
У меня в админке вкл/выкл блока выглядит так:
Создание выключателей:
сначала надо прописать поля для работы выключателей в базе
Провести SQL-запрос:
Код: Выделить всё
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_dopp1', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_dopp2', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_dopp3', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_dopp4', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_dopp5', '0');
Если у вас проблемы с проведением запроса - можете скачать скрипт установки
Вложение:
Комментарий к файлу: файл установочный для SQL-запроса
db_update.rar [1.27 КБ]
Скачиваний: 38
распаковать, файл
db_update.php, загрузить его в корень сайта (где файл config.php)
и запустить его через браузер по адресу
после отработки удалить файл с сервера.
// в строке
'enable_dopp1', '0' 0 означает, что по умолчанию модуль выключен, поставите
1 - будет включён.
создание самих выключателей
Открыть
includes/functions.phpНайти
Код: Выделить всё
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
Вставить после найденного
Код: Выделить всё
'S_ENABLE_DOPP1' => ($config['enable_dopp1']) ? true : false ,
'S_ENABLE_DOPP2' => ($config['enable_dopp2']) ? true : false ,
'S_ENABLE_DOPP3' => ($config['enable_dopp3']) ? true : false ,
'S_ENABLE_DOPP4' => ($config['enable_dopp4']) ? true : false ,
'S_ENABLE_DOPP5' => ($config['enable_dopp5']) ? true : false ,
добавление/вывод выключателей в админке
Открыть
includes/acp/acp_board.phpНайти
Код: Выделить всё
legend2' => 'WARNINGS',
'warnings_expire_days' => array('lang' => 'WARNINGS_EXPIRE', 'validate' => 'int', 'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
Вставить после найденного
Код: Выделить всё
'legend4' => 'ENABLE_ELEMENTS',
'enable_dopp1' => array('lang' => 'ENABLE_DOPP1', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'enable_dopp2' => array('lang' => 'ENABLE_DOPP2', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'enable_dopp3' => array('lang' => 'ENABLE_DOPP3', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'enable_dopp4' => array('lang' => 'ENABLE_DOPP4', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'enable_dopp5' => array('lang' => 'ENABLE_DOPP5', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
создание языковых переменных для информации
Открыть
language/ru/acp/board.phpНайти
Вставить перед найденным
Код: Выделить всё
'ENABLE_DOPP1' => 'Включить DOPP1',
'ENABLE_DOPP1_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия',
'ENABLE_DOPP2' => 'Включить DOPP2',
'ENABLE_DOPP2_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия',
'ENABLE_DOPP3' => 'Включить DOPP3',
'ENABLE_DOPP3_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия',
'ENABLE_DOPP4' => 'Включить DOPP4',
'ENABLE_DOPP4_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия',
'ENABLE_DOPP5' => 'Включить DOPP5',
'ENABLE_DOPP5_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия',
Найти
Вставить перед найденным
Код: Выделить всё
'ENABLE_ELEMENTS' => 'Включить или выключить элементы',
Завершение установки:
Всё готово. Теперь, используя условие вида
Код: Выделить всё
<!-- IF S_ENABLE_DOPP1 -->здесь ваш код<!-- ENDIF -->
вы можете включать/выключать блоки. то есть в шаблоне ваш код надо "обернуть" в это условие, очистить кэш и включить блок в админке.
Примечание:
Для работы системы используются переменные (часть строки)
DOPP1 и
dopp1 - можете, если хотите, заменить их на свои. если надо больше переключателей - просто добавьте в список строки с
DOPP6 и
dopp6.
Система установлена здесь и проверена в работе. Успешной установки.
Надеюсь вам пригодится.