Cвойства Publishing Container
Настройки данного раздела предназначены для выбора источника статей (контента), фильтрации этих статей по различным критериям, а также их сортировки
Выбор источника
Контент (Контент) - контент, из которого будут выводиться данные. В случае динамического изменения контента данная опция представляет контент по умолчанию.
Разрешить динамическое изменение контента (Allow Dynamic Content Change) – галочка, включающая режим динамического изменения контента. При ее установке появляется возможность задать следующую опцию.
Переменная, содержащая название контента (
Dynamic Content Variable) – задается название параметра из коллекции
Values, который содержит имя контента. Поддерживается кросс-сайтовый вызов контентов в формате
SiteName.ContentName
. В целях защиты от SQL-иньекции вводятся следующие ограничения: параметр с данным именем не должен существовать в коллекциях HttpRequest.QueryString и HttpRequest.Form, то есть он должен быть добавлен программно c помощью
AddValue. Крайне не рекомендуется подставлять в эту переменную данные полученные от пользователя, желательна проверка данных по
принципу белого списка. В случае, если переданное значение не соответствует действительному имени контента, будет выведена информация из контента по умолчанию (который задается в поле
Контент). Во избежение нежелательных ошибок рекомендуется, чтобы структура контентов, между которыми осуществляется динамическое переключение, была одинаковой.
Замечания по SQL-инъекции
Общая фильтрация
Фильтр (
Filter) – данное поле позволяет настроить выборку из статей из контента согласно критерию, который задает разработчик. Фильтр может быть как статический, так и динамический. Фильтр представляет собой часть предложения WHERE SQL-запроса, другая часть предложения WHERE формируется на основании прочих полей и служебной информации. При динамическом формировании фильтра обычно используется
механизм Values. Рекомендуется для поля, по которому осуществляется фильтрация,
создавать индекс.
Статус (
Status) – возможность выбора данного поля появляется, когда в качестве источника данных выбран контент, на который
назначен Workflow. Можно выбрать один или несколько статусов, так чтобы на сайте показывались статьи, которые имеют его или их. Данная настройка относится только к Live-режиму, так как в Stage-режиме показываются показываются все статьи независимо от их статуса.
Использовать расписание статей (
Use Articles Schedule) – по умолчанию включено. Сброс данного флажка позволяет игнорировать поле Visible, которое использует для своих целей
модуль расписания. Таким образом статья будет отображаться на сайте вне зависимости от значения этого поля.
Показать архивированные (
Show archived) – позволяет включить в результат статьи из
архива (игнорировать значение поля Archive). По умолчанию архивные статьи не попадают в результирующий набор.
Фильтрация по правилам доступа
Использование данных опций требует дополнительной настройки.
Использовать правила доступа бэкенда (Use Backend Integrated Security) – по умолчанию сброшено. Позволяет вместе со статьями получать информацию об уровнях доступа пользователей бэкенда к этим статьям, что дает возможность на фронтенде применять правила доступа бэкенда. Возможны два режима работы:
При выборе первого варианта в результирующий набор попадут только статьи, для которых текущий пользователь имеет уровень доступа в интервале, заданном контролами Начальный уровень (Start Level) и Конечный уровень (End Level). Текущий пользователь определяется настройками режима интегрированного доступа.
При выборе второго варианта фильтрация по уровням доступа не производится. Предполагается, что это сделает пользовательский код.
Постраничный вывод
Показывать, начиная с первой записи (
Show from first article) – значение по умолчанию. Если убрать данную галочку, появляется возможность задать
Номер первой отображаемой записи (
First article number). Чтобы значение было динамическим, рекомендуется передавать его через
механизм Values и использовать функцию
NumValue.
Показывать все (
Show All) – значение по умолчанию. Если убрать данную галочку, появляется возможность задать
Количество (
Count) – ограничение количества записей, которые должен вернуть Publishing Container. Значение может быть динамическим и передано через
механизм Values. Рекомендуется использовать функцию
NumValue. В сочетании с динамической опцией
Номер первой отображаемой записи (
First article number) реализует постраничный вывод.
Сортировка
Динамический порядок (
Allow dynamic order) – переключатель между динамической и статической сортировкой. По умолчанию галочка сброшена, что соответствует статической сортиовке. Статическая сортировка задается набором контролов
Порядок по умолчанию (
Default order), в котором можно задать одно или несколько полей контента, по которым будут отсортированы данные и направление сортировки. При установленной галочке Publishing Container будет использовать
Выражение динамической сортировки (
Dynamic order expression), которое обычно передается через
механизм Values. По умолчанию данные сортируются по CONTENT_ITEM_ID в порядке возрастания. Для поля, по которому осуществляется сортировка, рекомендуется
создавать индекс.
Кэширование
Разрешить кэширование данных (Enable Data Caching) – разрешает кэширование набора данных, возвращаемых Publishing Container. Ключ кэширования формируется на основе ID формата и предложения WHERE SQL-запроса. Таким образом для одного Publishing Container может существовать несколько записей в кэше. Интервал кэширования задается полем Длительность (мин) (Duration (min)). Устаревание кэша - абсолютное, то есть по истечении интервала кэширования запись удаляется из кэша вне зависимости от частоты обращений к ней.
Прочие
Использовать значения по умолчанию (
Use Default Values) – установка данной опции позволяет задать
Значения по умолчанию (
Default Values) для Publishing Container, то есть пары
Имя (
Name) –
Значение (
Value) для элементов коллекции
Values, которые используются в Publishing Container, для того случая, когда эти параметры не переданы извне, или их содержимое – пустая строка.
Возвращать дату последней модификации (
Return Last Modified) – находит наиболее “свежую” дату модификации для набора возвращаемых статей. Эта информация используется для формирования HTTP-заголовка
Last-Modified и настраивается
на уровне страницы.
Discussion