Разработка модуля для cms drupal
Post on 04-Jun-2015
1.956 Views
Preview:
TRANSCRIPT
Разработка модуля Разработка модуля для для CMS DrupalCMS Drupal
на примере разработки на примере разработки плагина для модуля плагина для модуля CCKCCK
mne@romka.eu
Роман АрхаровРоман Архаров
Структура докладаСтруктура доклада
►Основы модульной системы Основы модульной системы ДрупалаДрупала..
►Структура модуля Структура модуля 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
►Модуль построен очень грамотно, Модуль построен очень грамотно, теперь, зная его структуру можно теперь, зная его структуру можно подробнее изучить логику его подробнее изучить логику его работы и разработать еще более работы и разработать еще более сложные, интересные и полезные сложные, интересные и полезные плагины.плагины.
top related