User Tools

Site Tools


developer:linq:container

Поддержка стандартного поведения Publishing Container

Автоматическая замена плейсхолдеров

Поддержка стандартного поведения Publishing Container (подробнее) Замена плейсхолдеров <%=site_url%> и <%=upload_url%> производится для полей типа String, VisualEdit и Textbox. Замена работает в обе стороны, как при загрузке, так и при сохранении. Включение этого механизма производится на уровне сайта. Там же можно модифицировать поведение механизма замены так, что плейсхолдеры будут заменяться на абсолютные URL, а не на относительные.

Фильтрация по умолчанию

По умолчанию Publishing Container фильтрует статьи следующим образом. На live-версии выводятся статьи, которые:

  1. Видимы (VISIBLE = 1, флаг управляется расписанием показа)
  2. Не находятся в архиве (ARCHIVE = 0)
  3. Имеют максимальный статус по Workflow (в большинстве цепочек Workflow и если Workflow не назначено – STATUS_TYPE_ID = ID статуса Published текущего сайта).

Stage-версия отличается тем, что на ней применяются только первые два условия.

В текущей версии данное поведение для LINQ-to-SQL классов настраивается через включение опции Использовать фильтрацию по умолчанию (Use default filtration) настраивается на уровне контента. При включенной опции LINQ-to-SQL класс отображается не на таблицу CONTENT_NNN, а на представление CONTENT_NNN_LIVE (для stage-режима используется аналогичное представление CONTENT_NNN_STAGE вместо CONTENT_NNN_UNITED). Единственное отличие от Publishing Container в том, что фильтрация по статусу всегда осуществляется по Published, таким образом не поддерживаются цепочки Workflow, у которых максимальный статус не Published.

В предыдущих версиях функциональность реализовывалась через вызов метода расширения ForFrontEnd(). В текущей версии метод оставлен для обратной совместимости, но в случае включенной фильтрации по умолчанию никаких действий не выполняет.

Если генерируемые LINQ-to-SQL классы не используются непосредственно на сайте в папке App_Code, а сначала включаются в некий проект в Visual Studio, то для организации live- и stage- версий сайта имеет смысл воспользоваться режимом генерации, независимым от БД, который настраивается на уровне сайта. В этом случае один и тот же код можно использовать и на live-, и на stage-версии, они будут отличаться только .map-файлом привязки. При такой организации кода потребуется только задать для stage-версии параметр isLive равный false в секции appSettings файла web.config (для live-версии параметр можно не задавать, либо он должен быть равен true).

Discussion

Enter your comment
 
developer/linq/container.txt · Last modified: 2011/05/06 13:39 by celutp