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