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

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

Upload: drupal-camp-kyiv

Post on 04-Jun-2015

1.956 views

Category:

Documents


10 download

TRANSCRIPT

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

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

на примере разработки на примере разработки плагина для модуля плагина для модуля CCKCCK

[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

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