Кожемякин Артём Дмитриевич Технический директор (совладелец) Исполнительный директор (совладелец) Эксперт консультант [интернет магазин][образовательный центр] [поставщик и интегратор ]
Организатор конференции DrupalConf 2011
Бронзовый спонсор: Генеральный информационный спонсор: drupal.ru
Пользователь Материал Термин такс. Тип мат. 1 Тип мат. 2 Тип мат.N Заказ в Ubercart ……
Пользователь Материал Термин такс. Тип мат. 1 Тип мат. N Заказ в Ubercart …… Сущность Словарь. 1 Словарь. N Типы сущностейБандлы
Drupal 6 Drupal 7 Пользователь Материал Термин такс. Тип мат. 1 Тип мат. 2 Тип мат.N Заказ в Ubercart …… Сущность Пользователь Материал Термин такс. Заказ в Ubercart …… Словарь 1 Словарь N Тип мат. 1 Тип мат.N
Возможность «из коробки» расширять с помощью различных полей: Пользователей (замена модулю Profile). Материалы (замена модулю CCK). Термины таксономии в зависимости от словаря. Комментарии к материалам. Возможность создать тип поля 1 раз и использовать его в неограниченном числе бандлов разных типов сущностей в дальнейшем.
Новый уровень абстракции. Устранение неприятной дилеммы «Реализовать ли X как тип материала или как самостоятельную единицу». Единый интерфейс для написания модулей расширяющих возможности сразу всех (или нескольких) типов сущностей. Возможность использовать множество сторонних модулей для расширения возможностей своих типов сущностей. Field API + Field UI для расширения любого типа сущностей механизмом полей. Entity API для автоматического оснащения любого типа сущностей CRUD интерфейсом и интеграции с Futures. Bundle Inherit API для возможности реализации иерархической системы бандлов внутри любого типа сущности и их наследования. …
1. Определить hook_entity_info() с минимальным набором ключей: 1. label – Human readable название сущности (переведенное). 2. controller class – Класс контроллера сущности. 3. uri callback – Функция обратного вызова принимающая в качестве аргумента сущность и возвращающая фрагменты ее URL (array(path => )).
2. Определить класс контроллер типа сущности реализующий интерфейс DrupalEntityControllerInterface. __construct($entityType); resetCache(array $ids = NULL); load($ids = array(), $conditions = array());
Разделение на поля (fields) и экземпляры полей (fields instances) Абстрактное хранилище. По умолчанию – каждое поле в своей таблице в которой хранятся все его экземпляры.
Позволяет наследовать любые типы сущностей создавая иерархическую структуру. Состоит из 2х модулей: bundle_inherit – модуль предоставляющий API для оснащения других сущностей механизмом наследования bundle_inherit_node – реализует наследование в модуле node с помощью Bundle Inherit API
МягкоеСтрогое Копирование экземпляров полей из родительского в дочерний бандл. + + Поддержка синхронизации на всем времени жизни бандла. - + Типы наследования.
Кожемякин Артём lemark.habrahabr.ru
Организатор конференции DrupalConf 2011
Бронзовый спонсор: Генеральный информационный спонсор: drupal.ru