Настройка связей между каталогами DAO



Межкаталожные связи - механизм, позволяющий привязывать объекты одного каталога к другому. Примеров использования этой возможности масса. Например
- Связь между каталогом мест и событиями
- Cвязь между каталогом огранизацией и каталогом вакансий
- Cвязь между каталогом артистов и их музыкой
- Связь между каталогом авторов и хранилищем для книг
- Связь между персоналиями и авторскими статьями/товарами
итп.

Механизм имеет несколько настроек:
- единичная связь или множественная (например вакансия привязана к одной компании, но у самой компании может быть несколько вакансий).
- можно ли привязывать только свои объекты или все объекты каталога
- место вывода (для единичной связи хорошо подходит карточка объекта (пример: привязка к компании), для множественных списков - вкладка (пример: видеообзоры к товару)).

В этой статье рассмотрены два варианта настройки межкаталожных связей для линейки плагинов DAO: базовый и специальная связь "места-события"

1) Настройка базовых связей между каталогами


В данном примере рассмотрим настройку связей между каталогом организаций(каталог созданный с помощью DAOкомпании) и каталогом вакансий.

1)Создаем каталог вакансий (универсальный каталог), каталог компаний (каталог компаний). Добавляем необходимые вам категории для каждого из разделов и производим общие настройки
2)В настройке каталога вакансий идем в раздел связи, нажимаем "добавить связь" и создаем связь с такими настройками:

3)В настройке каталога компаний идем в раздел связи, нажимаем "добавить связь" и создаем связь с такими настройками:


Все готово. Теперь при создании вакансии будет возможность привязать ее к одной из созданных вами компаний. В профиле вакансии это будет выглядеть так, а в профиле компании, например, так (в данном случае для вакансий выбран тип списков - таблица).


2) Настройка связи Места-Расписания



1)В роли каталога мест будет выступать универсальный каталог. В роли афиши - календарь. Создаем оба раздела.
2)Для обоих разделов необходимо создать минимум по одной категории.
3)В настройке связей в каталога создаем связь к календарю с параметрами:

4)В настройке связей календаря создаем обратную связь с параметрами:

5)В общих настройках каталога мест ставим галку "Используется как каталог мест с привязанным каталогом событий", указываем созданную нами связь и настраиваем категорию для импорта по умолчанию:

6)В общих настройках каталога событий ставим галку "Используется как каталог событий с привязанным каталогом мест", указываем созданную нами связь и настраиваем категорию для импорта по умолчанию:


Все готово. Теперь появится возможность указывать расписания для событий (например, расписание кинофильма в различных кинотеатрах города).

Выглядеть это будет примерно так:

Импорт расписаний


Импорт расписаний производится в настройках каталога событий в разделе "Импорт". Импорт производится из файлов в формате JSON ( скачать пример структуры файла ).

В конфиге плагина (/config/config.php) есть настройка $config['import_autocreation']=true; Как себя вести, если в импорте есть новое место ( например, кинотеатр ) - создавать ли новый объект, или делать пропуск обработки несуществующих мест.