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


----

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

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

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

Всем доброго времени суток, хотите еще немного магии??? :-0=)

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

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

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

Начальные условия:
1. Все выключатели будут располагаться по пути - Личный раздел - Личные настройки - Общие настройки (в зависимости от локализации это может быть и не Личный раздел, а Центр пользователя)
2. По ходу статьи вам будут встречаться такие кусочки XXX, xxx, yyy, где
  • ххх - уникальное название вашего счетчика, в названии нельзя использовать русские символы, знаки и пробелы, только буквенный латинский алфавит.
  • XXX - это уникальное название вашего счетчика ххх, только в верхнем регистре.
  • yyy - альтернативное название вашего счетчика, отличное от ххх, в названии нельзя использовать русские символы, знаки и пробелы, только буквенный латинский алфавит.
Следите внимательно за регистрами и переменными XXX, xxx по ходу статьи, заменяя это на свои названия !!!

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

Чтобы данные переменной где то хранились, надо создать поле в БД форума. Для этого надо выполнить SQL запрос следующего вида
ALTER TABLE  `phpbb_users` ADD  `user_allow_xxx` TINYINT( 1 ) NOT NULL DEFAULT  '0'
 

Помним о переменных !!!
Создаем языковые переменные

Далее мы заранее создадим языковую переменную для нашего выключателя. Открываем файл language/ru/ucp.php и находим (поиск строки не критичен, можете вставить код после любой строки)
'BIRTHDAY'               => 'День рождения',
 

Вставляем после найденного
'SHOW_XXX'       => 'Название выключателя',
 

Где Название выключателя - это подпись к выключателю для Личного раздела, например - Включить скрипт падающих снежинок. Следите за синтаксисом, не теряйте одинарных ковычек ' !!!

Создаем сам выключатель

Теперь нам надо создать костяк и шкурку выключателя для Личного раздела
Для этого открываем includes/ucp/ucp_prefs.php и находим
'allowpm'      => request_var('allowpm', (bool) $user->data['user_allow_pm']),
 

Вставляем после найденного
'allow_yyy'      => request_var('allow_yyy', (bool) $user->data['user_allow_xxx']),
 

Находим
'user_allow_pm'    => $data['allowpm'],
 

Вставляем после найденного
'user_allow_xxx'         => $data['allow_yyy'],
 

Находим
'S_ALLOW_PM'      => $data['allowpm'],
 

Вставляем после найденного
'S_ALLOW_XXX'      => $data['allow_yyy'],
 

Открываем файл includes/functions.php и находим
'S_USER_PM_POPUP'      => $user->optionget('popuppm'),
 

Вставляем после найденного
'S_ALLOW_XXX'      => $user->data['user_allow_xxx'] ,
 


Все, костяк выключателя создан, теперь дадим ему шкурку.
Для стилей на основе сабсильвера открыть шаблон ucp_prefs_personal.html и найти
<tr> 
   <td class="row1" width="50%"><b class="genmed">{L_POPUP_ON_PM}</b></td>
   <td class="row2"><input type="radio" class="radio" name="popuppm" value="1"<!-- IF S_POPUP_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="popuppm" value="0"<!-- IF not S_POPUP_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
</tr>
 

Вставить после найденного
<tr> 
   <td class="row1" width="50%"><b class="genmed">{L_SHOW_XXX}:</b></td>
   <td class="row2"><input type="radio" class="radio" name="allow_yyy" id="allow_yyy1" value="1"<!-- IF S_ALLOW_XXX --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="allow_yyy" id="allow_yyy0" value="0"<!-- IF not S_ALLOW_XXX --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
</tr>
 


Для стилей на основе просильвер открыть шаблон ucp_prefs_personal.html и найти
<dl>
      <dt><label for="popuppm0">{L_POPUP_ON_PM}:</label></dt>
      <dd>
         <label for="popuppm1"><input type="radio" name="popuppm" id="popuppm1" value="1"<!-- IF S_POPUP_PM --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
         <label for="popuppm0"><input type="radio" name="popuppm" id="popuppm0" value="0"<!-- IF not S_POPUP_PM --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
      </dd>
   </dl>
 

Вставить после найденного
<dl>
      <dt><label for="popuppm0">{L_SHOW_XXX}:</label></dt>
      <dd>
         <label for="popuppm1"><input type="radio" name="allow_yyy" id="allow_yyy1" value="1"<!-- IF S_ALLOW_XXX --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
         <label for="popuppm0"><input type="radio" name="allow_yyy" id="allow_yyy0" value="0"<!-- IF not S_ALLOW_XXX --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
      </dd>
   </dl>
 


Вот и все, выключатель создан, чистим кеш и в итоге наше получаемое условие будет иметь вид
<!-- IF S_ALLOW_XXX -->любой код<!-- ENDIF -->
 

Успехов в ковыряниях :ya_hoo_oo:


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

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

#2 

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

Хорошо бы вывести кнопку на главную станицу, ну типа (Украсить форум) а в ней сделать всплывающий список вкл-выкл красивостей! Так было бы как по мне удобнее. В личные настройки редко кто заходит а тут всё на виду. :-00):


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

#3 

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

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


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

#4 

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

DeaDRoMeO писал(а):

Ну там вроде как аналогичные правки надо сделать для той странице,

Это я знаю. Просто не все знают что где править и прописывать,вопросами задавят. Поэтому и выдвинул идею исполнения такого варианта. Себе сделаю кнопку на главную. За идею и описание включателя Спасибо!! :uch_tiv:


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


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

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

DeaDRoMeO

20

1449

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

01 янв 2016, 21:10

DeaDRoMeO

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

DeaDRoMeO

5

1365

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

25 апр 2015, 10:00

petroff

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

DeaDRoMeO

27

3336

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

09 дек 2015, 05:28

DeaDRoMeO

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

DeaDRoMeO

96

10400

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

05 мар 2017, 18:36

DeaDRoMeO

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

DeaDRoMeO

531

21208

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

01 май 2017, 20:26

DeaDRoMeO

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

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

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

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


cron

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