Как создать схему таблиц данных для модуля
Друпал - очень мощная и гибкая система. В ее основе - система так называемых хуков - подпрограмм, реализующих те или иные интерфейсы. Так, к примеру, для того, чтобы реализовать в модуле меню, достаточно объявить функцию modulename_menu() и вернуть правильные данные, и друпал создаст меню в нужном месте.
В этом посте я расскажу, как я использовал хук hook_schema() и для чего он нужен.
Этот хук используется во время установки модуля в систему и при удалении его оттуда. Простейший пример этого хука приведен ниже:
/**
* Implementation of hook_schema().
*/
function mp_dashboard_schema() {
$schema['mp_dashboard'] = array(
‘description’ => t(‘Stores user-specific dashboard information.’),
‘fields’ => array(
‘uid’ => array(
‘type’ => ‘int’,
‘unsigned’ => TRUE,
‘not null’ => TRUE,
‘default’ => 0,
‘description’ => t(“The user’s uid.”)
),
);
}
В этом примере можно увидеть реализацию хука hook_schema() для модуля mp_dashboard. В этом упрощенном примере описано только одно поле, хотя на самом деле их там достаточно много. Впрочем, для одной таблицы из 5-10 полей написать схему полей достаточно просто. Намного сложнее сделать это для 5-10 таблиц. Что же делать? И тут можно использовать вспомогательный модуль Schema, информацию о котором можно прочесть здесь.
Итак, что делает этот модуль. Он позволяет создать описания таблиц в базе данных, к которой “приписан” друпал. Теперь вам не нужно делать описание схемы полей таблиц вручную - достаточно создать таблицу с помощью вашего любимого приложения для работы с мускулом и запустить модуль Schema в работу. Буквально через пару скунд у вас будет полное представление схем полей всех таблиц в вашей базе. Останется только скопировать и перенести сгенерированный код в инсталлятор модуля.



Последние комментарии