разработка модуля для cms drupal

12
Разработка модуля Разработка модуля для для CMS Drupal CMS Drupal на примере разработки на примере разработки плагина для модуля плагина для модуля CCK CCK [email protected] Роман Архаров Роман Архаров

Upload: inna-tuyeva

Post on 05-Dec-2014

1.672 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: разработка модуля для Cms Drupal

Разработка модуля Разработка модуля для для CMS DrupalCMS Drupalна примере разработки на примере разработки

плагина для модуля плагина для модуля [email protected]Роман АрхаровРоман Архаров

Page 2: разработка модуля для Cms Drupal

Структура докладаСтруктура доклада►Основы модульной системы Основы модульной системы

ДрупалаДрупала..►Структура модуля Структура модуля CCK.CCK.►Практический пример разработки Практический пример разработки

плагина для плагина для CCK.CCK.

Page 3: разработка модуля для Cms Drupal

Структура Структура CMS DrupalCMS Drupal►Ядро — базовый набор функций для Ядро — базовый набор функций для

работы с БД, пользователями, работы с БД, пользователями, документами.документами.

►Модуль — набор функций, Модуль — набор функций, расширяющих возможности расширяющих возможности CMS CMS DrupalDrupal..

►Хуки (Хуки (hookshooks)) — — особым образом особым образом именованные функции, вызываемые именованные функции, вызываемые ядром ядром DrupalDrupal при возникновении тех при возникновении тех или иных событий.или иных событий.

Page 4: разработка модуля для Cms Drupal

ХукиХуки► Хук — служебная функция вызываемая при Хук — служебная функция вызываемая при

возникновении определенного событиявозникновении определенного события► Имя хука: Имя хука: имя_модуляимя_модуля_имя_события_имя_события► В модуле В модуле example, example, событие событие user user

обрабатывается реализацией хука обрабатывается реализацией хука hook_user hook_user с именем с именем example_user.example_user.

► ПараметрыПараметры передаваемые и возвращаемые передаваемые и возвращаемые хуками можно найти в документации хуками можно найти в документации api.drupal.org api.drupal.org и и api.drupal.ru.api.drupal.ru.

Page 5: разработка модуля для Cms Drupal

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)

Page 6: разработка модуля для Cms Drupal

CCKCCK►Что такое Что такое CCK?CCK? Примеры полей для Примеры полей для CCKCCK..►Field — backend. Field — backend. Данные и их обработка:Данные и их обработка:

запись в БД, запись в БД, функции валидаторы и сабмиттерыфункции валидаторы и сабмиттеры..

►WidgetWidget — — frontend frontend для автора документа для автора документа (интерфейс для ввода данных пользователем, создающим (интерфейс для ввода данных пользователем, создающим документ)документ)..

►FormatterFormatter — — frontend frontend для читателя для читателя (функции для вывода данных читателю)(функции для вывода данных читателю)..

Page 7: разработка модуля для Cms Drupal

FieldFieldField:· Колонка или таблица в БД· Validators· Submitters

Widget: Formatter

Page 8: разработка модуля для Cms Drupal

ДокументацияДокументация►Вся доступная документация по Вся доступная документация по

разработке для разработке для CCK CCK лежит тут: лежит тут: http://drupal.org/node/342987http://drupal.org/node/342987

Page 9: разработка модуля для Cms Drupal

Хуки Хуки FieldField►hhookook_field_info — _field_info — регистрация регистрация

(объявление) нового поля.(объявление) нового поля.►hook_field — hook_field — поведения поля. поведения поля.

Операции связанные с сохранение, изменением и удалением данных из Операции связанные с сохранение, изменением и удалением данных из поля.поля.

►hook_field_settings — hook_field_settings — глобальные глобальные настройки для всех полей этого настройки для всех полей этого типатипа

Page 10: разработка модуля для Cms Drupal

Хуки 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 — локальные локальные настройки, для конкретного поля.настройки, для конкретного поля.

Page 11: разработка модуля для Cms Drupal

Хуки Хуки FormatterFormatter►hook_formatter_info — hook_formatter_info — объявление объявление

форматтера.форматтера.

Page 12: разработка модуля для Cms Drupal

Структура модуля Структура модуля filefieldfilefield►Модуль построен очень грамотно, Модуль построен очень грамотно,

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