Drupal 6.x. Создание модуля – hook_schema
Итак, для того, чтобы через Schema API организовывались поля БД для создаваемых модулей, модуль должен иметь файл .install, в котором используется хук hook_schema() (в предыдущих версиях Друпала hook_schema() объявлялся в файле .schema, но в шестёрке это уже не используется). Приведём пример, файл mymodule.install для модуля mymodule:
<?php
function mymodule_schema() {
$schema['mytable1'] = array(
// Перечисление полей таблицы mytable1
);
$schema['mytable2'] = array(
// Перечисление полей таблицы mytable2
);
return $schema;
}
function mymodule_install() {
// Создание таблиц при инсталляции модуля
drupal_install_schema('mymodule');
}
function mymodule_uninstall() {
// Удаление таблиц
drupal_uninstall_schema('mymodule');
}
?>
<?php
function mymodule_schema() {
$schema['mytable1'] = array(
// Перечисление полей таблицы mytable1
);
$schema['mytable2'] = array(
// Перечисление полей таблицы mytable2
);
return $schema;
}
function mymodule_install() {
// Создание таблиц при инсталляции модуля
drupal_install_schema('mymodule');
}
function mymodule_uninstall() {
// Удаление таблиц
drupal_uninstall_schema('mymodule');
}
?> $schema['mytable1'] = array(
// Перечисление полей таблицы mytable1
); - в первой статье есть более подробный пример, как задаются поля и ключи в таблице - пример из первой статьи.
Для разработчиков модулей есть такой очень полезный модуль . Несколько слов о том, зачем он нужен, впоследствии можно будет остановиться на этом модуле поподробнее:
- - Документация. Отображение в виде гиперссылок всей вложенной документации по Schema API, текст контексной помощи для каждой ссылки.
- - Модуль просматривает БД на сайте и может создавать структуры данных Schema API для всех таблиц в базе данных.
- - Сравнение. Модуль сравнивает структуру БД со структурой таблиц, которые создаются новыми модулями, сообщает обо всех отсутствующих или неправильно объявленных таблицах.
С уважением, Ёж


