9. Bundle
С точки зрения системы: набор полей
присоединенных к какой-то сущности
С точки зрения пользователя: сущность с
полями
10. Виджеты
Функции проверки данных
Формы ввода данных
11. Форматтеры
Темизация вывода информации для полей
12. Field API
Field Types API
Field Info API
Field CRUD API
Field Storage API
Field API bulk data deletion
Field Language API
13. Field Types API
Схема
Информация
Загрузка
Хранение
Виджеты
Форматтеры
14. Field Info API
Предоставление информации для других
модулей о полях, виджетах и т.п.
15. Field CRUD API
Расширенный набор функций для
Создания
Удаления
Очистки
Обновления
полей, виджетов и т.п.
16. Field Attach API
Используется для связки сущностей и полей
Выполняется перед функциями Field Storage
API и Field Type API
17. Field Storage API
Позволяет реализовывать собственные
механизмы хранения полей
Базовый механизм в Drupal
field_sql_storage.module
18. Field API bulk data deletion
field_attach_delete()
– hook_field_delete()
– hook_field_storage_delete()
– hook_field_attach_delete()
Поля и данные не удаляются сразу
19. Field Language API
Поля имеют поддержку многоязычности “из
коробки”
Для непереводимых добавлен язык
LANGUAGE_NONE
25. Типичное решение
Используем тип контента
Добавляем поля
Используем механизмы CCK для хранения и
обработки
В шаблоне/препроцесс функциях
обрабатываем вывод
26. Возможные усложнения задачи
Форму мы делаем руками
У нас не одна форма, а несколько
У нас нужно ввести несколько фамилий на
одной форме
27. Field API/Drupal way
Смотрим на Drupal.org
Создаем свой тип поля
Делаем свой форматтер
Делаем свой виджет
Контрибутим на d.org или складываем в
копилочку
28. Завершение
Field API это не только создание
собственных полей
Будьте ленивы
29. Что получаем взамен
Поддерживаемость
Расширяемость
Облегчение работы
Славу у уважение собратьев-разработчиков