Слайд 2Структура доклада
Основы модульной системы Друпала.
Структура модуля CCK.
Практический пример разработки плагина для CCK.
Слайд 3Структура CMS Drupal
Ядро — базовый набор функций для работы с БД, пользователями,
документами.
Модуль — набор функций, расширяющих возможности CMS Drupal.
Хуки (hooks) — особым образом именованные функции, вызываемые ядром Drupal при возникновении тех или иных событий.
Слайд 4Хуки
Хук — служебная функция вызываемая при возникновении определенного события
Имя хука: имя_модуля_имя_события
В модуле
example, событие user обрабатывается реализацией хука hook_user с именем example_user.
Параметры передаваемые и возвращаемые хуками можно найти в документации api.drupal.org и api.drupal.ru.
Слайд 5API
Scheme API
Database API
Localization API
Node API
Forms API
Cache API
Contributed API (Views, CCK, Panels,
Voting API)
Слайд 6CCK
Что такое CCK? Примеры полей для CCK.
Field — backend. Данные и их
обработка:
запись в БД,
функции валидаторы и сабмиттеры.
Widget — frontend для автора документа (интерфейс для ввода данных пользователем, создающим документ).
Formatter — frontend для читателя (функции для вывода данных читателю).
Слайд 8Документация
Вся доступная документация по разработке для CCK лежит тут: http://drupal.org/node/342987
Слайд 9Хуки Field
hook_field_info — регистрация (объявление) нового поля.
hook_field — поведения поля.
Операции связанные
с сохранение, изменением и удалением данных из поля.
hook_field_settings — глобальные настройки для всех полей этого типа
Слайд 10Хуки Widget
hook_widget_info — объявление виджета.
И его привязка к field.
hook_elements. Forms API hook.
Очень
важный хук, в нем определяется функция, отвечающая за вывод формы редактирования поля.
hook_widget — управление поведением виджета. На вход хук получает данные, хранящиеся в поле и текущую операцию, выполняемую над ним. На выходе должен вернуть этот же элемент, но с внесенными изменениями.
hook_widget_settings — локальные настройки, для конкретного поля.
Слайд 11Хуки Formatter
hook_formatter_info — объявление форматтера.