Upload
drupal-camp-kyiv
View
1.956
Download
10
Embed Size (px)
Citation preview
Разработка модуля Разработка модуля для для CMS DrupalCMS Drupal
на примере разработки на примере разработки плагина для модуля плагина для модуля CCKCCK
Роман АрхаровРоман Архаров
Структура докладаСтруктура доклада
►Основы модульной системы Основы модульной системы ДрупалаДрупала..
►Структура модуля Структура модуля CCK.CCK.►Практический пример разработки Практический пример разработки
плагина для плагина для CCK.CCK.
Структура Структура CMS DrupalCMS Drupal
►Ядро — базовый набор функций для Ядро — базовый набор функций для работы с БД, пользователями, работы с БД, пользователями, документами.документами.
►Модуль — набор функций, Модуль — набор функций, расширяющих возможности расширяющих возможности CMS CMS DrupalDrupal..
►Хуки (Хуки (hookshooks)) — — особым образом особым образом именованные функции, вызываемые именованные функции, вызываемые ядром ядром DrupalDrupal при возникновении тех при возникновении тех или иных событий.или иных событий.
ХукиХуки
► Хук — служебная функция вызываемая при Хук — служебная функция вызываемая при возникновении определенного событиявозникновении определенного события
► Имя хука: Имя хука: имя_модуляимя_модуля_имя_события_имя_события► В модуле В модуле example, example, событие событие user user
обрабатывается реализацией хука обрабатывается реализацией хука hook_user hook_user с именем с именем example_user.example_user.
► ПараметрыПараметры передаваемые и возвращаемые передаваемые и возвращаемые хуками можно найти в документации хуками можно найти в документации api.drupal.org api.drupal.org и и api.drupal.ru.api.drupal.ru.
APIAPI
►Scheme APIScheme API►DatabaDatabase APIse API►Localization API Localization API ►Node APINode API►Forms APIForms API►Cache APICache API►Contributed API (Contributed API (Views, CCK, Panels, Views, CCK, Panels,
Voting Voting API)API)
CCKCCK
►Что такое Что такое CCK?CCK? Примеры полей для Примеры полей для CCKCCK..►Field — backend. Field — backend. Данные и их обработка:Данные и их обработка:
запись в БД, запись в БД,
функции валидаторы и сабмиттерыфункции валидаторы и сабмиттеры..
►WidgetWidget — — frontend frontend для автора документа для автора документа (интерфейс для ввода данных пользователем, создающим (интерфейс для ввода данных пользователем, создающим
документ)документ)..►FormatterFormatter — — frontend frontend для читателя для читателя
(функции для вывода данных читателю)(функции для вывода данных читателю)..
FieldFieldField:· Колонка или таблица в БД· Validators· Submitters
Widget: Formatter
ДокументацияДокументация
►Вся доступная документация по Вся доступная документация по разработке для разработке для CCK CCK лежит тут: лежит тут: http://drupal.org/node/342987http://drupal.org/node/342987
Хуки Хуки FieldField
►hhookook_field_info — _field_info — регистрация регистрация (объявление) нового поля.(объявление) нового поля.
►hook_field — hook_field — поведения поля. поведения поля. Операции связанные с сохранение, изменением и удалением данных из Операции связанные с сохранение, изменением и удалением данных из
поля.поля.
►hook_field_settings — hook_field_settings — глобальные глобальные настройки для всех полей этого настройки для всех полей этого типатипа
Хуки WidgetХуки Widget
►hook_widget_info — hook_widget_info — объявление объявление виджетавиджета..И его привязка к И его привязка к field.field.
►hook_hook_elementelements. Forms API hook.s. Forms API hook.Очень важный хук, в нем определяется функция, отвечающая за вывод Очень важный хук, в нем определяется функция, отвечающая за вывод
формы редактирования поля.формы редактирования поля.
►hook_widget — hook_widget — управление управление поведением виджета. поведением виджета. На вход хук получает На вход хук получает данные, хранящиеся в поле и текущую операцию, выполняемую над данные, хранящиеся в поле и текущую операцию, выполняемую над ним. На выходе должен вернуть этот же элемент, но с внесенными ним. На выходе должен вернуть этот же элемент, но с внесенными изменениями.изменениями.
►hook_widget_settings — hook_widget_settings — локальные локальные настройки, для конкретного поля.настройки, для конкретного поля.
Хуки Хуки FormatterFormatter
►hook_formatter_info — hook_formatter_info — объявление объявление форматтера.форматтера.
Структура модуля Структура модуля filefieldfilefield
►Модуль построен очень грамотно, Модуль построен очень грамотно, теперь, зная его структуру можно теперь, зная его структуру можно подробнее изучить логику его подробнее изучить логику его работы и разработать еще более работы и разработать еще более сложные, интересные и полезные сложные, интересные и полезные плагины.плагины.