User Tools

Site Tools


development:container

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) – по умолчанию сброшено. Позволяет вместе со статьями получать информацию об уровнях доступа пользователей бэкенда к этим статьям, что дает возможность на фронтенде применять правила доступа бэкенда. Возможны два режима работы:

  • Возвращать только подходящие записи (Return Only Matching Records)
  • Возвращать все записи вместе с уровнями доступа (Return All with Specified Permission Level)

При выборе первого варианта в результирующий набор попадут только статьи, для которых текущий пользователь имеет уровень доступа в интервале, заданном контролами Начальный уровень (Start Level) и Конечный уровень (End Level). Текущий пользователь определяется настройками режима интегрированного доступа.

При выборе второго варианта фильтрация по уровням доступа не производится. Предполагается, что это сделает пользовательский код.

Постраничный вывод

  • Показывать, начиная с первой записи (Show from first article) – значение по умолчанию. Если убрать данную галочку, появляется возможность задать Номер первой отображаемой записи (First article number). Чтобы значение было динамическим, рекомендуется передавать его через механизм Values и использовать функцию NumValue.
  • Показывать все (Show All) – значение по умолчанию. Если убрать данную галочку, появляется возможность задать Количество (Count) – ограничение количества записей, которые должен вернуть Publishing Container. Значение может быть динамическим и передано через механизм Values. Рекомендуется использовать функцию NumValue. В сочетании с динамической опцией Номер первой отображаемой записи (First article number) реализует постраничный вывод.
  • Случайная запись (Random position) – можно выбрать данную опцию вместо Номера первой отображаемой записи (First article number). Также в этом режиме необходимо указать Количество (Count). Как результат, из контента будет выбрано заданное число случайных статей.

Сортировка

  • Динамический порядок (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)). Устаревание кэша - абсолютное, то есть по истечении интервала кэширования запись удаляется из кэша вне зависимости от частоты обращений к ней.
  • Разрешить сброс кэша (Enable Cache Invalidation) – данная опция в текущей версии не поддерживается.

Прочие

  • Использовать значения по умолчанию (Use Default Values) – установка данной опции позволяет задать Значения по умолчанию (Default Values) для Publishing Container, то есть пары Имя (Name) – Значение (Value) для элементов коллекции Values, которые используются в Publishing Container, для того случая, когда эти параметры не переданы извне, или их содержимое – пустая строка.
  • Возвращать дату последней модификации (Return Last Modified) – находит наиболее “свежую” дату модификации для набора возвращаемых статей. Эта информация используется для формирования HTTP-заголовка Last-Modified и настраивается на уровне страницы.

Discussion

Enter your comment
 
development/container.txt · Last modified: 2012/06/19 13:59 by celutp