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

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

Dec 05, 2014

Download

Technology

Inna Tuyeva

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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►Модуль построен очень грамотно, Модуль построен очень грамотно,

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