Модель предоставляет разработчику
интерфейс для доступа к данным. При этом, модель данных не хранит
непосредственно данные, этим занимается модель элемента. Но модель
данных умеет этими данными управлять. Например, выдавать данные в
некотором внешнем формате, а сохранять в удобном внутреннем формате.
Модель данных выполняет следующие роли:
- Создает модель списка
- Создает модель элемента
- Управляет зависимостью моделей (добавление, активация / деактивация)
- Возвращает информацию о модели (столбцы таблицы базы данных, атрибуты файлов и т.п.)
Следует
обратить внимание, что ресурсы моделей списка и элемента можно получить
непосредственно из хранилища ресурсов, но верным является получение
данных моделей через модель данных.
Пример получения модели данных для модуля новостей:
$oNewsTableModel = AMI::getResourceModel( 'news/table' );
|
Результат: экземпляр объекта AmiMultifeeds_News_Table
Примеры использования модели данных
Получение модели списка:
AMI::getResourceModel( $modId . '/table' )->getList();
|
Получение модели элемента:
AMI::getResourceModel( $modId . '/table' )->getItem();
|
Поиск элемента по id:
AMI::getResourceModel( $modId . '/table' )->find( $id );
|
Получение списка доступных полей модели:
AMI::getResourceModel( $modId . '/table' )->getAvailableFields();
|
Общие поля, присутствующие в большинстве моделей:
Поле | Тип | Описание |
Общие поля |
id | целое | Идентификатор |
public | 0/1 | 1 – элемент доступен на сайте, 0 – элемент неопубликован на сайте |
header | строка | Заголовок |
announce | строка | Краткое описание |
body | строка | Полное описание |
lang | строка, 2-3 символа | Принадлежность элемента к локализации (ru, en, de, и т.д.) |
date_created | дата | Дата создания |
date_modified | дата | Дата модификации |
sublink | строка | Собственная часть URL элемента на публичной части сайта |
id_page | Целое | Идентификатор страницы элемента в менеджере сайте (0 – общий элемент) |
id_owner | Целое | Идентификатор владельца элемента |
position | Целое | Позиция для сортировки в ручном режиме |
details_noindex | 0/1 | Флаг, регулирующий запрет индексации поисковыми роботами страницы детальной информации об элементе |
hide_in_list | 0/1 | Флаг, регулирующий скрытие элемента в списках, без запрета на показ по прямой ссылке |
sticky | 0/1 | Флаг, указывающий, что элемент является прикрепленным в списке |
date_sticky_till | строка, дата | Срок действия флага прикрепленности |
Поля расширения изображений |
ext_img | строка | Файл изображения |
ext_img_small | строка | Файл малого изображения |
ext_img_popup | строка | Файл всплывающего изображения |
Поля расширения рейтингов |
ext_rate_count | целое | Число голосов |
ext_rate_rate | целое | Рейтинг элемента |
Поля расширения обсуждения |
ext_dsc_disable | 0/1 | Флаг, регулирующий запрет обсуждения элемента |
Поля расширения категорий (добавляются только при активированном расширении категорий) |
cat_id | целое | Идентификатор категории |
cat_header | строка | Заголовок категории |
cat_sublink | строка | Собственная часть URL категории элемента на публичной части сайта |
При использовании генератора решений можно указать будет ли созданное решение иметь собственные данные.
Полный список методов модели данных доступен в Amiro.CMS API Reference.