Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Создаем выключатель для любого элемента в phpbb3 
#1 

Аватар пользователя

Пришло время делиться некоторыми "магическими" фокусами, которые существенно поменяют ваше восприятие phpbb3. Движок phpbb3 и так очень легко подвергается любым изменениям "под себя", легко превращается в неповторимого, легко поддается облегчению администрирования и использования....

Вообщем сегодня пишу очень полезную и занимательную статью, посвященную созданию выключателя для любого элемента (кусок кода, подключение скрипта, картинка, подключение шаблона да и вообще всего что можно придумать). Сложно представить ? Обьясню на примере.

Наступает Новый Год, вы хотите подключить скрипт снегопада. Подключили. Прошла зима, надо вырезать или комментировать код. А ведь можно сделать проще - выключить скрипт через админку.

Собственно, после освоения данной статьи вы сможете добавить в админку форума выключатель для всего что видите на форуме и для того, что требует временного применения.

Начальные условия:
1. Выключатель будет располагаться по пути - Админка - Настройки форума (конференции), после пункта Описание форума (конференции)
2. Далее будет использоваться переменная XXX, вместо нее вы придумываете свою, только на английской раскладке. Внимательно следите за регистром XXX по ходу статьи, допустим, вместо XXX вы придумали TEST, если в статье прописана XXX, то соотвественно заменяем ее на TEST, если xxx - соотвественно test.

Поехали ....
Создаем запись в Базе Данных, где будет храниться значение выключателя

Для этого надо выполнить SQL запрос следующего вида
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_xxx', '0');
 

Надеюсь еще не забыли о своей переменной и ее регистре ??? На всякий выделю ее
enable_xxx
 

А так же, в запросе циферка 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_XXX'      => ($config['enable_xxx']) ? 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_ххх'         => array('lang' => 'ENABLE_ХХХ',         'validate' => 'bool',   'type' => 'radio:yes_no', 'explain' => true),
 

Потом, если вы будете еще добавлять несколько выключателей, то добавлять код
 'enable_ххх'         => array('lang' => 'ENABLE_ХХХ',         'validate' => 'bool',   'type' => 'radio:yes_no', 'explain' => true),
 

После
'legend4'               => 'ENABLE_ELEMENTS',
 

Ибо эта строка создает блок, в котором будут ваши выключатели
Костяк создан, надо его немножко оформить ....

Создаем языковые переменные

Открываем файл language/ru/acp/board.php и находим
'SITE_DESC'
 

Вставляем перед найденным
'ENABLE_XXX'               => 'Включить (а тут пишите имя своего куска или скрипта, вообщем чтоб сами не путались)',
'ENABLE_XXX_EXPLAIN'               => 'Выберите Да для отображения данного элемента либо Нет для его скрытия',
 

Найти
'EDIT_TIME'
 

Вставить перед найденным
'ENABLE_ELEMENTS'             => 'Включить или выключить элементы',
 

Запомните !!! Первая вставка делается при каждом новом выключателе, вторая вставка делается только один раз !!!
Так-с, с языком разобрались, финишный рывок ...

Условие для выключателя

Результатом, сделанных выше правок, стало создание собственного уникального условия, действующего по всему форуму. Вот и само условие
<!-- IF S_ENABLE_XXX -->Ваш код, скрипт либо другой элемент<!-- ENDIF -->
 


Надеюсь моя писанина пригодится кому нибудь :-0=) Успехов в творчестве :jn_pu_sk:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
В данной теме я расскажу о том, как создать выключатель любого элемента на форуме phpbb3, будь то кусок кода, картинка, подключение скрипта и тд. и тп.
          Вернуться наверх  
 

#2 

Аватар пользователя

Ух ты! :cool_cool:

Только я не поняла, каким образом в админке будут появляться нужные для отмечания пункты? Допустим я обернула условием какой-то код, как оно появится в админке?


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 

#3 

Аватар пользователя

DeaDRoMeO писал(а):

Добавляем выключатель в Админку

Это добавляет в админку выключатель же)))


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 

#4 

Аватар пользователя

Это понятно, что добавляет выключатель.
Я другое имею в виду. Короче, покажи мне скриншот, как это выглядит в админке, я тогда лучше смогу объяснить.


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 

#5 

Аватар пользователя

Обычный переключатель да-нет, Админка - Настройки форума - смотри пункт Выключить форум или как там он


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 

#6 

Аватар пользователя

Допустим, я установила этот мод. Потом оборачиваю условием вывод опросов на главной. Оно автоматически появляется в админке что ли, чтобы я могла его включать или выключать?


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 

#7 

Аватар пользователя

Ну епрст, как же тебе обьяснить, все шаги до заключительного этапа и добавляют переключатель. ДУмай в обратном порядке - После правок появится переключатель и ты можешь использовать условие


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 

#8 

Аватар пользователя

Тю, я эту строчку пропустила при чтении. То-то никак понять не могла.


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 

#9 

Аватар пользователя

Фуфф, я то думал что с тобой случилось)))


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Отлично. Сделала включалку, вернее, выключалку для опросов на главной. Иногда они не нужны, но для этого нужно было лезть в в файлы и прописывать другие значения, а это ужасно. А щас то, что доктор прописал.
Спасибо большое!


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

На здоровьице, классная это штука))


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Мне показалось, что Включалка находится в опасной близости к "Отключить конференцию", сама несколько раз чуть не отключала форум. Да и если выключателей будет много, то они растянут страницу по высоте. Поэтому у себя перенесла в самый низ, под "Предупреждения".
Для того, чтобы Включалка стояла отдельным блоком, нужно создать legend. В этом случае будет legend4, поскольку три уже существуют.
Итак, в 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_ххх'         => array('lang' => 'ENABLE_ХХХ',         'validate' => 'bool',   'type' => 'radio:yes_no', 'explain' => true),
 

Затем создаём языковую переменную для legend. В файле language/ru/acp/board.php найти:
'EDIT_TIME'                  => 'Ограничение времени на редактирование',
 

После добавить:
'ENABLE_ELEMENTS'             => 'Включить или выключить элементы',
 


В результате будет выглядеть так:

Вложение :



_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

Браво, перенесу в первый пост


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Потом, если вы будете еще добавлять несколько выключателей, то добавлять код

Перед

'legend4'

После!


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

Пасиб, попутал)


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Блин жутко хочется себе такую попробовать прикрутить, а для чего применить никак не придумывается... ))


          Вернуться наверх  
 


Аватар пользователя

Завтра уже 3.1 выйдет, наберетесь опыта и это при создании расширений пригодится


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Вопрос не совсем по теме, но всё таки.
Если добавлять выключатель в существующий раздел, то всё понятно.
'legend4'               => 'ENABLE_ELEMENTS',
                  'enable_ххх'         => array('lang' => 'ENABLE_ХХХ',         'validate' => 'bool',   'type' => 'radio:yes_no', 'explain' => true),
 

А если усложнить задачу, и попытаться сделать собственный раздел в админке и заменить выключатель на текстовое поле. Админ должен ввести целое число. (ну вот такой загон)
Делать по аналогии с:
          legend2'            => 'WARNINGS',  'warnings_expire_days'   => array('lang' => 'WARNINGS_EXPIRE',      'validate' => 'int',   'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
 

Я правильно понимаю, 'validate' => 'int' - проверка на целое число?
'type' => 'text:3:4' -А что здесь?
как правильно прописать для целого числа?


          Вернуться наверх  
 


Аватар пользователя

Я еще долго не появлюсь за компом, погуглите type в языке php


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

спасибо, интересная и нужная штука. :-00):


_________________
Подпись:
три головы - это хорошо. но как же трудно придти к согласию...
* белк может помочь, но ставить за кого-то моды не будет... ни платно, ни бесплатно. *
          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя Создаем пользовательский выключатель любого элемента phpbb3
В данной статье я расскажу каким образом добавить пользовательский выключатель любого элемента на форуме, будь то скрипт, картинка, кусок кода.

DeaDRoMeO

3

624

Аватар пользователя

22 окт 2013, 13:04

Олег В

Аватар пользователя Создаем свой модуль в Центре пользователя phpbb3
Статья о том, как создать произвольный модуль в Центре пользователя

DeaDRoMeO

5

1365

Аватар пользователя

25 апр 2015, 10:00

petroff

Аватар пользователя Создаем свои страницы в стиле форума phpbb3
Статейка о создании страниц в стиле вашего форума

DeaDRoMeO

27

3334

Аватар пользователя

09 дек 2015, 05:28

DeaDRoMeO

Аватар пользователя BB3Topics phpbb3
BB3Topics - модификация для phpbb3, добавляющая блок на главную страницу форума со следущим содержимым - Новые темы, Последние обьявления, Популярные темы, Обсуждаемые темы, Случайные темы, Темы с опросами

DeaDRoMeO

96

10398

Аватар пользователя

05 мар 2017, 18:36

DeaDRoMeO

Аватар пользователя phpBB3 для чайников ;)
Вводная статья для начинающих админов phpbb3, в ней будут рассмотрены основные положения и настройки phpbb3

DeaDRoMeO

531

21192

Аватар пользователя

01 май 2017, 20:26

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P