Pavel Makhrinsky.Field API.DrupalCamp Kyiv 2011

2,021 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,021
On SlideShare
0
From Embeds
0
Number of Embeds
965
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Pavel Makhrinsky.Field API.DrupalCamp Kyiv 2011

  1. 1. Field APIэто не страшно
  2. 2. Gold Sponsor ofDrupalCamp Kyiv 2011
  3. 3. Silver Sponsors ofDrupalCamp Kyiv 2011
  4. 4. Что такое Field API? Наследник модуля CCK Серьезно переработанный модуль CCK Механизмы хранения ввода и отображения полей в Drupal 7
  5. 5. Организация работы с данным в Drupal 7 Entities Field Types Field Instances Bundles Widgets Formatters
  6. 6. Сущности Базовый механизм хранения информации в D7 Это не ноды
  7. 7. Типы полей Механизмы хранения и проверки Функции ввода данных Функции отображения данныхСходны с типами в языках программирования
  8. 8. Поля (Field Instances) Экземпляр поля Хранит реальные данные Связан с конкретной сущностью
  9. 9. Bundle С точки зрения системы: набор полей присоединенных к какой-то сущности С точки зрения пользователя: сущность с полями
  10. 10. Виджеты Функции проверки данных Формы ввода данных
  11. 11. Форматтеры Темизация вывода информации для полей
  12. 12. Field API Field Types API Field Info API Field CRUD API Field Storage API Field API bulk data deletion Field Language API
  13. 13. Field Types API Схема Информация Загрузка Хранение Виджеты Форматтеры
  14. 14. Field Info API Предоставление информации для других модулей о полях, виджетах и т.п.
  15. 15. Field CRUD APIРасширенный набор функций для Создания Удаления Очистки Обновленияполей, виджетов и т.п.
  16. 16. Field Attach API Используется для связки сущностей и полей Выполняется перед функциями Field Storage API и Field Type API
  17. 17. Field Storage API Позволяет реализовывать собственные механизмы хранения полей Базовый механизм в Drupal field_sql_storage.module
  18. 18. Field API bulk data deletion field_attach_delete() – hook_field_delete() – hook_field_storage_delete() – hook_field_attach_delete() Поля и данные не удаляются сразу
  19. 19. Field Language API Поля имеют поддержку многоязычности “из коробки” Для непереводимых добавлен язык LANGUAGE_NONE
  20. 20. Use cases
  21. 21. WidgetНеобходимые хукиhook_field_widget_form()hook_field_widget_info()hook_field_is_empty()#process, #value_callback, #element_validate $field = field_widget_field($element, $form_state); $instance = field_widget_instance($element, $form_state);
  22. 22. ФорматтерНеобходимые хукиhook_field_formatter_info()hook_field_formatter_view()hook_field_formatter_prepare_view()
  23. 23. Собственная обработка многоязычностиhook_field_prepare_translation()
  24. 24. Собственные поля
  25. 25. Типичное решение Используем тип контента Добавляем поля Используем механизмы CCK для хранения и обработки В шаблоне/препроцесс функциях обрабатываем вывод
  26. 26. Возможные усложнения задачи Форму мы делаем руками У нас не одна форма, а несколько У нас нужно ввести несколько фамилий на одной форме
  27. 27. Field API/Drupal way Смотрим на Drupal.org Создаем свой тип поля Делаем свой форматтер Делаем свой виджет Контрибутим на d.org или складываем в копилочку
  28. 28. Завершение Field API это не только создание собственных полей Будьте ленивы
  29. 29. Что получаем взамен Поддерживаемость Расширяемость Облегчение работы Славу у уважение собратьев-разработчиков
  30. 30. Полезные ссылки api.drupal.org
  31. 31. Вопросы к докладчикуПавелМахринскийSkype: gumanistaFacebook: facebook.com/gumanist

×