1 заметка с тегом: Data Sources
1 заметка с тегом

Data Sources

Symphony. Источники данных

Источники данных служат для выборки, фильтрации, сортировки и представления данных в виде XML для шаблонов страниц.

Обзор

Источники данных являются своего рода проводниками, между данными и интерфейсом проектов Symphony. Это может быть внутренний контент (например, даты записей любого раздела) или внешний контент (например, данные из RSS ленты или XML API). Источники данных привязываются к определённым страницам и передают шаблонам этих страниц данные в виде XML.

Имеется три основных типа источников данных. Основанные на разделах и генерируемые системой источники данных — оба эти типа извлекают данные из самой системы Symphony, имеют возможность очень гибкой настройки, фильтрации, сортировки, ограничения, группировки и связывания с другими источниками данных. Так же для них имеется возможность организации постраничной навигации и фильтрации данных, посредством передачи им динамических параметров через URL.

Пользовательские XML источники данных — это валидные XML документы, которые являются статическими (сохранены локально) или динамическими (данные выбираются по указанному URL адресу). Содержимое этих файлов не управляется Symphony, но для полученных XML данных имеется возможность создания шаблонов страниц для представления в необходимом виде. Поскольку динамические данные вибираются на лету в Symphony имеется возможность кеширования этих данных, через заданные промежутки времени. Хорошим примером динамических XML данных, является RSS лента твиттера.

Использование

Управление источниками данных осуществляется через меню управления компонентами (Blueprints > Components) в панели управления.

Детали

Редактор источников данных Symphony.

Редактор источников данных Symphony.

Все источники данных имеют два обязательных атрибута:

Атрибут Описание
Name (Имя) Уникальное имя источника данных.
Source (Источник) Источник из которого будут выбираться данные.

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

Источники данных основанные на разделах

При выборе одного из разделов в качестве источника на панели управления появяться три дополнительные катеогрии управления данными: «Filter Results (фильтрация результата)», «Sorting and Limiting (сортировка и играничение)» и «Output options (параметры вывода)».

Атрибут Описание
Filter Results
Filter Rules (Правила фильтрации) Добавление любого количества правил фильтрации данных. Для получения дополнительной информациисм. ниже.
Sorting and Limiting
Sort By (сортировка по) Выбор поля, по которому будет проводиться сортировка.
Sort Order (порядок сортировки) По возрастанию, по убывания или произвольно.
Limit (ограничение) Максимальное количество выводимых записей. Можможет принимать параметры.
Page (страница) Номер страницы с результатами выборки. Может принимать параметры.
Required URL Parameter (необходимый URL параметр) URL параметр необходимый для проведения выборки данных.
Redirect (переадресация) Параметр отвечает за переадресацию на страницу с ошибкой 404 (страница не найдена) в случае если получить данные от источника не удалось.
Output options
Parameter Output (Выходной параметр) Выбирается поле, которое будет использоваться в качестве выходного параметра источника данных. Используется для связывания источников данных.
Group Output (Группировка) Поле по которому будет производиться группировка XML данных.
Included Elements (Включенные элементы) Указываются поля, которые должны быть включены в источник данных, а так же указывается наличие или отсутствие постраничной навигации. Включение постраничной навигации снижает производительность.
Include Associated (Включение ассоциаций) Включение или отключение вывода количества записей для каждой отдельной записи. Включение данной опции может снизить производительность.
HTML-encode (HTML-парсер) Включение или отключение параметра отвечает за HTML кодирование текста.

Добавление правил фильтрации в источник данных, приводит с фильтрации выводимых данных по одному или нескольким параметрам. Например, мы можете сделать выборку опубликованых звписей за 2009 год. Источники данных основанные на разделах имеют полную поддержку объединений, пересечений и перечислений записей, а так имеется возможность работы с регулярными выражениями, динамическими параметрами и многие другие возможности, поэтому советуем внимательно ознакомиться с фильтрами источнииков данных.

Источники данных генерируемые системой

Выбор источника данных Authors (Авторы) приведёт к появлению того же списка параметров, как и выбор источника данных основанного на разделе (Рис. 2). При выборе источника данных Navigation (Навигация) раздел параметров сортировки будет таким же как и в предыдущих случаях, но параметры «Сортировки и органичения» будут перестроены в соответствии с принимаемыми параметрами и обработчиками событий. Раздел выходных параметров при этом отсутствует (Рис. 3).

Рисунок 2. Источник данных с данными об авторах. Рисунок 3. Источник данных с данными о навигации.

Пользовательские XML источники данных

Есть два типа пользовательских XML источников данных: статическиие и динамические XML данные. При выборе «Static XML (Статический XML)» в качестве источника становиться активнм большое поле для ввода XML данных (Рис. 4). Введёные XML данные будут храниться локально, а при выборке представляться «как есть» без каких либо изменений. Источник данных «Dynamic XML (Динамический XML)» получет данные из указанного URI «на лету» (например RSS лента является ярким примером динамического XML). Symphony позволяет использовать XPath для поиска необходимых данных, так же вы можете указать свои пространства имён и задать интервал кэширования. См. рис. 5:

Рисунок 4. Источник данных с выбранным статическим XML источником. Рисунок 5. Источник данных с выбранным динамическим XML источником.
Редактор источников данных. Простое правило фильтрации, возвращающее записи блога, поле