Создание простого модуля HelloWorld

Здесь находятся самые бесполезные и заспамленные темы, а так же закрытые подфорумы. Автоочистка - раз в 30 дней.

Модераторы: Lorem Ipsum, Atlas

Закрыто
Аватара пользователя
Безликий
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 164
Стаж: 11 лет 11 месяцев

Создание простого модуля HelloWorld

Сообщение Безликий »

Внимание!!!Приведенный ниже код сохраняйте в UTF-8!

Для создания рабочего модуля нам необходимо три файла:


1)Файл, содержащий общую информацию о модуле: имя модуля, права доступа к нему, подкатегории и прочее. Его мы расположим в дирректории includes/ucp/info.
2)Файл, в котором будет находится непосредственно код модуля. Его мы расположим в дирректории includes/ucp/.
3)Файл шаблона, в котором будет находиться текст «HelloWorld!». Его мы расположем в дирректории текущей темы оформления. Например, для темы prosilver мы расположим шаблон в styles/prosilver/template/.


Шаг первый

Создадим файл ucp_hello.php, расположенный в дирректории includes/ucp/info, и содержащий информацию о модуле:

Код: Выделить всё

< ?php
 
class ucp_hello_info
{
	// Данная функция возвращает массив, содержащий
	// информацию о текущем модуле.
	function module()
	{
                 return array(
                        // Имя файла основного модуля.
			'filename'	=> 'ucp_hello',
                        // Название модуля.
			// В рабочих модулях указывается языковая переменная, которая впоследствии заменяется
			// на текст соответствующего языка.
			'title'		=> 'Привет, мир!',
                        // Версия модуля.
			'version'	=> '1.0.0',
                        // Список подразделов этого модуля.
			// Определим подраздел main, выводящий строчку "HelloWorld"
			'modes'		=> array(
			   'main' => array(
                                  // Заголовок подраздела.
                                  'title' => 'Вывод строки',
                                  // Необходимые привилегии для доступа к этому подразделу.
				  // Если отсутствуют, то используются привилегии для доступа
				  // к UCP(User Control Panel).
                                  'auth' => '',
                                  // Категория, в которую входит этот подраздел.
                                  'cat' => array('UCP_HELLO')
                                  ),
			   ),
			);
	}
 
        // Данная функция вызывается при установке модуля в
        // администраторской панели.
        // В этом месте Ваш модуль может создавать необходимые
        // ему файлы, таблицы в базе данных и прочие действия.
	function install()
	{
	}
 
        // Эта функция вызывается при деактивации Вашего модуля
        // в администраторской панеле.
        // Позаботьтесь, пожалуйста, чтобы Ваш модуль не оставлял
        // после себя никакого мусора в системе.
	function uninstall()
	{
	}
}
 
?>
Шаг второй

Создадим второй файл ucp_hello.php, расположенный в дирректории includes/ucp/, содержащий непосредственно сам код модуля:

Код: Выделить всё

< ?php
 
class ucp_hello
{
      // Функция, вызываемая ядром phpBB 3
      function main($id, $mode)
      {
            global $template;
 
            // Параметр $mode - это имя подраздела,
            // который запрашивает пользователь.
            switch ($mode)
            {
                // У нас есть только один подраздел: main.
                case 'main':
 
                     // Устанавливаем заголовок страницы
                     page_header('HelloWorld!');
 
                     // Указываем, какие файлы шаблонов нужно подключать.
                     $template->set_filenames(array(
                        'body' => 'helloworld.html',
                     ));
 
                     // Выводим
                     page_footer();
 
                     // Следует заметить, что вот так использовать языковые
                     // конструкции на английском, русском и т.д. прямо в
                     // коде модуля можно только индусам.
 
                     // Всем остальным это категорически запрещается.
 
                     // Я Вам показал такой код лишь для простоты понимания.
                     // В рабочем модуле на этом месте обычно выполняются
                     // какие либо действия, и затем результаты работы модуля
                     // передаются в шаблон, который уже и занимается выводом
                     // информации пользователю, подключая необходимые
                     // языковые файлы.
 
                     break;
 
            }
      }
 
}
 
?>
Шаг третий

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

Например, для темы оформления prosilver нужно перейти в дирректорию styles/prosilver/template/. Создайте в этой дирректории файл helloworld.html со следующим содержимым:

Код: Выделить всё

 
<!-- INCLUDE overall_header.html -->
 
<h2>The HelloWorld page</h2>
 
<div class="panel">
   <div class="inner">
      <div class="content">
            HelloWorld!
      </div>
   </div>
</div>
 
<!-- INCLUDE overall_footer.html -->
Все, на данный момент наш модуль полностью готов к использованию. Но если мы попробуем посмотреть его результат работы по адресу http://ваш_сайт.com/ucp.php?i=hello мы столкнемся со следующей проблемой:

Это вызвано тем, что наш модуль еще не активирован в администраторском аккаунте. Для его активации необходимо перейти в вкладку Система, и в левом меню в подразделе Управления модулями выбрать пункт Личный раздел:

Теперь нужно добавить наш модуль. Для этого введите его название. Например, «Привет, мир!»:

После этого необходимо лишь отредактировать параметры модуля следующим образом:

И нажать кнопку Отправить.

Шаг четвертый

Поздравляю! :bra_vo: Вы успешно прошли все этапы создания модуля для phpBB 3.

Нам теперь осталось лишь посмотреть на результаты его работы. Для этого перейдите по адресу http://ваш_сайт.com/ucp.php?i=hello.

Если Вы все сделали правильно, то должны увидеть приблизительно следующее:


Всем удачи :(
Я бы изменил мир, но Бог не дает исходников...
Жизнь - это как компьютерная игра.
Сюжетная линия так себе, за то какая графика...

#1
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Создание простого модуля HelloWorld

Сообщение DeaDRoMeO »

Отлично, полезная инфа
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#2
Аватара пользователя
Безликий
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 164
Стаж: 11 лет 11 месяцев

Создание простого модуля HelloWorld

Сообщение Безликий »

Рад стараться!!!
Я бы изменил мир, но Бог не дает исходников...
Жизнь - это как компьютерная игра.
Сюжетная линия так себе, за то какая графика...

#3
Закрыто