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


----

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

 Сообщение Создаем свой модуль в Центре пользователя phpbb3 
#1 

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

Всем доброго времени суток, продолжаю делиться магическими вещами в плане phpbb3 :-0=)

Сегодня мы научимся добавлять произвольный модуль в Центр пользователя (это там где пользователи настраивают свой профиль и форум, управляют подписками и прочим). Для чего оно нужно ? Это уж вам решать, лично для себя пока в тестовых целях я создал модуль FAQ по форуму и потихоньку пихаю туда ссылки на обучающие темы. А вы можете выводить туда любую информацию.

Вообщем как обычно, начальные условия:
1. Правильная кодировка - это кодировка UTF-8 без BOOM
2. Изначально создадим модуль с подмодулем
3. Обходимся без языковых файлов для простоты понимания
4. XXX - любое слово, написанное только буквенным латинским алфавитом, никаких пробелов
5. ххх - тот же ХХХ, только в нижнем регистре
6. ууу - любое слово, написанное только буквенным латинским алфавитом, никаких пробелов

Внимательно следите за XXX, ххх, ууу по ходу статьи

1. Модуль с одним подмодулем

Делаем костяк нашего модуля

Создаем файлик ucp_ххх.php с правильной кодировкой и следующим содержимым
<?php
 
class ucp_xxx
{
      function main($id, $mode)
      {
            global $template;
 
            switch ($mode)
            {
           
                case 'yyy':

                     break;
 
            }
         $this->tpl_name = 'ucp_xxx_' . $mode;
      }
 
}
?>
 

Так как мы делаем простой модуль с выводом текста из шаблона, между case 'yyy': и break; пустота, если же нужно использовать какой либо php-код или функцию, она должна быть прописана вместо пустоты. Кстати yyy - это идентификатор (назовем его так) подмодуля.

Сохраняем файл и ложим по адресу includes/ucp/. После этого создаем еще один файл ucp_ххх.php с правильной кодировкой и следующим содержимым (файл содержит в себе инфу о вашем модуле)
<?php
 
class ucp_xxx_info
{
   function module()
   {
                 return array(
                       
         'filename'   => 'ucp_xxx',
         'title'      => 'Имя модуля',       
         'version'   => '1.0.0',               
         'modes'      => array(
            'yyy' => array(
                        'title' => 'Имя подмодуля',
                                  'auth' => '',
                                  'cat' => array('UCP_XXX')
                                  ),
      
            ),
         );
   }
   function install()
   {
   }
 
   function uninstall()
   {
   }
}
?>
 

Вроде бы ничего сложного, но если при установке вашего модуля требуются SQL запросы (а при удалении нужно убрать все данные с нужных полей), то в секцию установки нужно все прописать
   function install()
   {
Тут прописываем все нужное при установке
   }
 

Аналогично для удаления
  function uninstall()
   {
Тут прописываем все нужное при удалении
   }
 

Так же если нужны какие то особые условия доступа к модулю, меняем строку
'auth' => '',
 

На
'auth' => 'тут требования к авторизации либо наличию каких то прав',
 

Сохраняем файл и ложим его в includes/ucp/info/.

Делаем шаблон с информацией для модуля

Костяк сделан, нужно и шаблончик сделать. Создаем файл ucp_xxx_yyy.html с правильной кодировкой и следующим содержанием
<!-- INCLUDE ucp_header.html -->
тута содержимое, любой текст или HTML код
<!-- INCLUDE ucp_footer.html -->
 

И помещаем его в папку template вашего стиля

Устанавливаем модуль

Все приготовления окончены, надо установить модуль. Идем в админку на вкладку Система - Центр пользователя (может называться иначе если локализация другая) и внизу создаем свой модуль (имя я взял произвольное - вам же нужно задавать такое, чтоб пользователь понял для чего модуль)
Вложение :
Комментарий к файлу: Система - Центр пользователя, добавление модуля


Жмем Создать новый модуль и конфигурируем его как на скриншоте
Вложение :
Комментарий к файлу: Конфигурация нового модуля


После этого жмем Отправить, возвращаемся на предыдущую страницу, находим наш модуль в самом низу, кликаем по нему и попадаем на следующую страницу. Слева уже из готовых модулей добавляем наш единственный подмодуль (на скриншоте все отмечено) и жмем Добавить модуль.
Вложение :
Комментарий к файлу: Добавляем подмодуль


Вас спрашивают Вы уверены, что хотите добавить выбранный модуль с указанным методом использования? - отвечаете ДА. Идет перенаправление на другую страницу, мы видим наш подмодуль, жмем зеленую шестеренку напротив него и конфигурируем следующим образом
Вложение :
Комментарий к файлу: Конфигурируем наш подмодуль


Жмем Отправить и готово. Если вернуться на страницу Система - Центр пользователя, то можно поперемещать наш модуль, дабы он шел как вам надо по списку в Центре пользователя
Вложение :
Комментарий к файлу: Перемещение модуля по списку


После всего этого можем проверить наш модуль в Центре пользователя (в настройках своего профиля если локализация форума другая)
Вложение :
Комментарий к файлу: Наш модуль работает


Красоту вы сами наводите средствами CSS и HTML, наш модуль готов и работает !!!

2. Модуль с двумя и более подмодулями

Впринципе сделать модуль с более чем одним подмодулем очень легко, делается это по аналогии с первой частью, главное нужно понять логику - не поймете - бросьте дурное тогда. Вообщем создайте по инструкции с первой части модуль с подмодулем, но файлы не грузите на сервер. В части Делаем костяк нашего модуля после
 case 'yyy':

                     break;
 

Вставить
 case 'yyy1':

                     break;
 

Где yyy1 - это совсем другой идентификатор, отличный от yyy. Тобишь этот кусочек добавляет еще один подмодуль (ну не только этот, далее нужно еще сделать несколько правок). Вы можете добавить еще несколько таких частей. Далее, в той же части, но уже в другом файле найти
'yyy' => array(
                        'title' => 'Имя подмодуля',
                                  'auth' => '',
                                  'cat' => array('UCP_XXX')
                                  ),
 

Вставить после найденного
'yyy1' => array(
                        'title' => 'Имя второго подмодуля',
                                  'auth' => '',
                                  'cat' => array('UCP_XXX')
                                  ),
 

Этот кусочек так же отвечает за второй подмодуль, далее, так как у нас 2 подмодуля, нужно второму сделать шаблон с именем ucp_xxx_yyy1.html, с правильной кодировкой и содержанием
<!-- INCLUDE ucp_header.html -->
тута содержимое, любой текст или HTML код для второго подмодуля
<!-- INCLUDE ucp_footer.html -->
 

И потом в админпанели добавить все наши модули (в примере их 2) аналогично инструкциям из первой части


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

Теги темы
Создаем свой модуль в Центре пользователя phpbb3, свой модуль в phpbb3
          Вернуться наверх  
 

#2 

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

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


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

#3 

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

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


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

#4 

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

Серёжа спасибо. Всё работает.
Сделай пометочку о том, что этим способом можно добавить собственный модуль не только в Пользовательский раздел, но и в Модераторский, и даже в Администраторский.
Отличия только в том, что нужно изменить в названиях файлов ucp на mcp и acp соответственно, и разложить их в соответствующие папки в /includies
В случае с Админским разделом, файл шаблона будет лежать в /adm/style/файл_шаблона


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

#5 

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

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


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

#6 

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

petroff писал(а):

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

Для новичков не на поверхности. Ещё пол года назад я читал всё буквально и всю голову бы себе сломал над этим вопросом :-00):


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


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

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

DeaDRoMeO

20

1449

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

01 янв 2016, 21:10

DeaDRoMeO

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

DeaDRoMeO

27

3336

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

09 дек 2015, 05:28

DeaDRoMeO

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

DeaDRoMeO

3

625

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

22 окт 2013, 13:04

Олег В

Аватар пользователя Phpbb3. Модуль для выгрузки данных пользователей.
Phpbb3. Модуль для выгрузки данных пользователей.

Slovyn

11

218

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

25 фев 2017, 20:44

DeaDRoMeO

Аватар пользователя Как добавить свой фавикон в phpbb3
Мини-статейка по добавлению своего фавикона на форумы phpbb3

DeaDRoMeO

19

3660

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

24 ноя 2015, 05:18

DeaDRoMeO

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

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

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

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


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