разработка модуля для cms drupal
DESCRIPTION
TRANSCRIPT
![Page 1: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/1.jpg)
Разработка модуля Разработка модуля для для CMS DrupalCMS Drupalна примере разработки на примере разработки
плагина для модуля плагина для модуля [email protected]Роман АрхаровРоман Архаров
![Page 2: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/2.jpg)
Структура докладаСтруктура доклада►Основы модульной системы Основы модульной системы
ДрупалаДрупала..►Структура модуля Структура модуля CCK.CCK.►Практический пример разработки Практический пример разработки
плагина для плагина для CCK.CCK.
![Page 3: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/3.jpg)
Структура Структура CMS DrupalCMS Drupal►Ядро — базовый набор функций для Ядро — базовый набор функций для
работы с БД, пользователями, работы с БД, пользователями, документами.документами.
►Модуль — набор функций, Модуль — набор функций, расширяющих возможности расширяющих возможности CMS CMS DrupalDrupal..
►Хуки (Хуки (hookshooks)) — — особым образом особым образом именованные функции, вызываемые именованные функции, вызываемые ядром ядром DrupalDrupal при возникновении тех при возникновении тех или иных событий.или иных событий.
![Page 4: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/4.jpg)
ХукиХуки► Хук — служебная функция вызываемая при Хук — служебная функция вызываемая при
возникновении определенного событиявозникновении определенного события► Имя хука: Имя хука: имя_модуляимя_модуля_имя_события_имя_события► В модуле В модуле 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](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/6.jpg)
CCKCCK►Что такое Что такое CCK?CCK? Примеры полей для Примеры полей для CCKCCK..►Field — backend. Field — backend. Данные и их обработка:Данные и их обработка:
запись в БД, запись в БД, функции валидаторы и сабмиттерыфункции валидаторы и сабмиттеры..
►WidgetWidget — — frontend frontend для автора документа для автора документа (интерфейс для ввода данных пользователем, создающим (интерфейс для ввода данных пользователем, создающим документ)документ)..
►FormatterFormatter — — frontend frontend для читателя для читателя (функции для вывода данных читателю)(функции для вывода данных читателю)..
![Page 7: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/7.jpg)
FieldFieldField:· Колонка или таблица в БД· Validators· Submitters
Widget: Formatter
![Page 8: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/8.jpg)
ДокументацияДокументация►Вся доступная документация по Вся доступная документация по
разработке для разработке для CCK CCK лежит тут: лежит тут: http://drupal.org/node/342987http://drupal.org/node/342987
![Page 9: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/9.jpg)
Хуки Хуки FieldField►hhookook_field_info — _field_info — регистрация регистрация
(объявление) нового поля.(объявление) нового поля.►hook_field — hook_field — поведения поля. поведения поля.
Операции связанные с сохранение, изменением и удалением данных из Операции связанные с сохранение, изменением и удалением данных из поля.поля.
►hook_field_settings — hook_field_settings — глобальные глобальные настройки для всех полей этого настройки для всех полей этого типатипа
![Page 10: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/10.jpg)
Хуки 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](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/11.jpg)
Хуки Хуки FormatterFormatter►hook_formatter_info — hook_formatter_info — объявление объявление
форматтера.форматтера.
![Page 12: разработка модуля для Cms Drupal](https://reader031.vdocuments.net/reader031/viewer/2022013105/5484930fb47959fb0c8b4c5a/html5/thumbnails/12.jpg)
Структура модуля Структура модуля filefieldfilefield►Модуль построен очень грамотно, Модуль построен очень грамотно,
теперь, зная его структуру можно теперь, зная его структуру можно подробнее изучить логику его подробнее изучить логику его работы и разработать еще более работы и разработать еще более сложные, интересные и полезные сложные, интересные и полезные плагины.плагины.