Наверх

Создание модуля Drupal

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

В конце статьи лежит прямая ссылка на исходники.Пожалуйста качайте, изучайте, задавайте свои вопросы.

Написать свой модуль не так сложно.
Необходимы хоть какие то знания php, хотя бы синтаксис и понимание Drupal API.
Почти в каждом модуле используется hook_menu , для создания страниц на сайте.hook_permission позволит установить уровень доступа к вашим страницам.
Это минимум.

Как использовать эти хуки?
В каждом хуке необходимо изменить слово hook на название вашего модуля. Таким образом вы получите название функции,которая сработает в том или ином случае(в зависимости от того какой хук вы используете).

Назовем наш модуль test. Тогда в файле этого модуля напишем функцию test_menu. Эта функция должна возвратить элементы меню(адреса страниц).
Например:

function hook_menu(){
 $items['my_custom_url']=array(
   'title'		=>	t('Заголовок страницы'),
   'description'	=>	t('Эта страница скрыта от посторонних.'),
   'page callback'	=>	'first_test_custom_page',
   'access arguments'	=>	array('access test module'),
   'type'		=>	MENU_NORMAL_ITEM,
  );
 return $items;
}

Кто знаком с php-понимают что это обыкновенный массив.

my_custom_url - адрес нашей страницы.
title - заголовок страницы
description - описание
page callback - функция,которая будет вызвана при открытии этой страницы
access arguments - аргумент, необходимый для определения уровня доступа к странице
type - тип страницы

Функция для установки прав будет выглядеть так:

function test_permission() {
    return array(
        'access test module' => array(
              'title'           => t('Access my test module'),
              'description'     => t('Доступ к первой кастомной странице моего модуля')
            ),
        );
}

И наконец функция вывода самой страницы:
Внимание,эта функция уже не является хуком и начинаться она может как угодно.

function first_test_custom_page(){
	return 'Содержимое страницы';
}

Помещаем эти три функции в файл test.module
Также создаем файл test.info - он необходим друпалу для распознания модуля.

В дальнейшие подробности я вдаваться не стану-качайте исходники-там всё более подробно о создании табов и всего прочего, но ничего лишнего;)

Скачать: 

 Читайте также:


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

Войти используя Loginza Vkontakte Facebook livejournal Google Account Yandex Mail.ru API Rambler Last.fm Twitter WebMoney
  • Строки и параграфы переносятся автоматически.
  • Доступные HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

Подробнее о форматировании

- ноль = шесть
Решите этот математический пример.Решение введите цифрой.Например для "один * четыре=?" введите "4"