Простой модуль для Drupal 7

Drupal это CMS, но в тоже время и CMF. Это означает что кроме использования готовых модулей или сборок, можно и даже нужно немного программировать. Описывать весь процесс детально я не буду, можно почитать официальную документацию http://drupal.org/developing/modules (англ) — сразу практика!

1. Переходим в папку на сервере
ваш-сайт\sites\all\modules
читаем файл README.txt и создаем папку вашего модуля. Мой модуль будет называться drupal_ua, поэтому также называю и папку.

2. Внутри папки создаем файлы с кодом и описанием модуля:
drupal_ua.info
drupal_ua.module
Это минимально обязательные 2 файла, со временем здесь можно создавать и файлы со стилями или кодом JavaScripta, так же когда много темизации, то ее выносят в отдельный файл.

3. Файл drupal_ua.info это описание проекта http://drupal.org/node/1075072

name = drupal_ua
description = Example module drupal.ua.
package = Example
core = 7.x

Я думаю тут все понятно и так, мы указали имя модуля и его описание, после чего пакет (package) по которому модули группируются на странице модулей, и версию ядра друпал на которой модуль работает.

4. Файл drupal_ua.module

<?php
/**
 * @file
 * Example module drupal.ua.
 */
 
 
/**
* Implements hook_init().
*/
function drupal_ua_init() {
  drupal_set_message("Hello World!");
}

В этом файле пишем хуки и код вашего модуля. В друпале есть стандарт кодирования что бы легко было смотреть модули разных разработчиков http://drupal.org/node/318
У нас тут все очень просто модуль использует hook_init() для вывода статусного сообщения на всех страницах сайта

5. Все!!!
Следующим шагом убираете мой код и программируйте на здоровье!!!

Коментарі

Вот, кстати, есть уже готовый модуль для создания модулей. Там можно указать имя своего модуля, зависимости, хуки и пр. Module Builder Также он может добавлять примеры кода прямо в генерируемый скелет.

http://drupal.org/project/examples
страница с примерами модулей

Пример добавления Help, к модулю.

function drupal_ua_help($path, $arg) {
  switch ($path) {
	case 'admin/help#drupal_ua':
      return t('Это текст помощи!');
  }
}

только текст должен быть на английском
t('This help text!');

Добавление в меню ссылки на страницу, и вывод страницы:

function drupal_ua_menu() {
	// ссылка: examples/user
	$items['examples/user'] = array(
		// название ссылки
		'title' => 'Просмотр профиля',
		// название функция которая будет вызавана при открытии страницы
		'page callback' => 'drupal_ua_view',
		// доступ разрешаем всем
		'access callback' => TRUE,
	);
 
	return $items;
}
 
function drupal_ua_view() {
	// Вывод текста страницы на экран.
	return array('#markup' => t('Просмотр профиля пользователя'));
}

в модуле не должно быть русского текста, даже комментарии желательно писать на английском.
Перевод текста на русский язык делается через файлы po.