Модуль Drupal: создание страницы программным путем
Ниже описано как сделать модуль, который создаёт самую обычную, статичную страницу. Конечно, это не бог весть что, но он может быть основой для создания других страниц, с расширенными возможностями. Например, можно осуществить вывод необходимых вам данных из БД, сделать показ случайного рисунка и пр.
За основу возьмём уже созданный модуль. На этой странице поздравим всех с наступающим новым 2009 годом, до которого осталось какая-то неделя. При создании страницы необходимо реализовать как минимум две вещи:
- Саму страницу, вернее её содержимое
- Привязать страницу к какому-то адресу - т.е. указать Друпалу, что по адресу http://ваш-сервер/new-year следует выводить эту самую страницу
Создание страницы в Drupal
Содержимое страницы возвращается функцией. Для нашего случая её можно сделать следующим образом:
<?php
function examplepage_new_year(){
return "Поздравляем Всех с Новым годом!";
}
?>Создание пути к странице: хук menu
Путь к странице или ее адрес реализуется с помощью хука menu. В нем как раз и указывается сам путь, название ссылки в меню, права доступа и сама функция, обеспечивающая вывод содержимого на страницу. В данном случае это уже определённая нами функция examplepage_new_year.
Для начала нужно создать функцию examplepage_menu, результатом работы которой будет список путей, которые предоставляются данным модулем.
<?php
function examplepage_menu(){
$items['new_year']=array(
'title' => 'С Новым Годом!',
'description' => 'Поздравление к Новому Году!',
'page callback'=>'examplepage_new_year',
'access callback' => 'user_access',
'access arguments' => array('access content'),
'type' => MENU_NORMAL_ITEM
);
return $items;
}
?>Хук меню возвращает массив путей, которые реализуются модулем. Нам нужен только один адрес - задающий адрес к странице.
Каждый элемент массива задаёт одну страницу. Адрес страницы определяется ключом данного элемента. Параметры страницы хранятся в массиве, содержащем параметры этой страницы.
В данном случае используются следующие параметры:
- title - название пункта меню и заголовок страницы.
- description - описание страницы
- page callback - название функции, возвращающей содержимое страницы
- access callback - функция определяющая права доступа к странице, возвращает истину или ложь. В первом случае доступ, понятное дело, разрешён, во втором запрещён. В данном примере используется стандартная функция Drupal - user_access. Если ее возможностей не хватает, то можно написать свою.
- access arguments - список аргументов для функции, описанной в access callback. Содержит список прав, необходимых для доступа к этой странице. Если пользователь обладает хотя бы одним из прав, он может ее просмотреть. В Drupal можно создавать собственные права, но в данном случае нам хватит стандартного access content. Это право определяет доступ к содержимому сайта. Назначить права отдельным группам пользователей можно в разделе "Разрешения" пункта меню "Управление"
- type - тип ссылки. В данном случае используется тип меню по умолчанию - MENU_NORMAL_ITEM. Это обычная ссылка, при создании помещающаяся в меню пользователя, которая может отображается в меню, и может перемещаться в меню администратором или пользователем, обладающим соответствующими правами. Например, на рисунке видно, что данная ссылка помещена в раздел "Конфигурация". Названием ссылки является текст из title, ниже расположен текст из description.

На этом пока все. В данной заметке приведён простейший пример модуля. Этот модуль несовершенен и содержит некоторые неточности. О них будет рассказано в следующий раз.
Сам модуль находится в прикреплённом файле.
| Вложение | Размер |
|---|---|
| examplepage.zip | 1.05 кб |

Комментарии:
Отправить комментарий