Введение
В этом посте мы рассмотрим, почему черновые блоки не показывают в предварительном просмотре страницы по умолчанию, и я покажу вам чистое решение для его исправления. Результат? Редакторы получают более точные «То, что вы видите, это то, что вы публикуете» Опыт – больше нет скрытых черновых блоков.
Проблема: Предварительный просмотр не показывает черновики
По умолчанию, когда вы нажимаете Предварительный просмотр В оптимизированном CMS 12 (без использования проектов) система ведет себя как режим просмотра. Это означает:
ContentAreaRendererТолько режим редактирования как «состояние редактора»IContentAreaLoaderвыводы опубликованные версии даже в предварительном просмотре
Так что черновые блоки исчезают. Это сбивает с толку редакторы.
Примечание на проектах против обычного предварительного просмотра
Если вы когда -либо задумывались, почему черновики иногда уже появляются в предварительном просмотре:
Оптимизированные проекты может предварительно просмотреть проект контента, который является частью активного проекта. Это предварительный просмотр проекта. Внешние проекты, предварительный просмотр по умолчанию ведет себя больше как публичное представление, поэтому неопубликованные блоки не показывают.
Обзор решения
Вот что мы собираемся сделать:
- Сделать предварительный просмотр, как редактировать в
ContentAreaRenderer - Заменять
IContentAreaLoaderТаким образом, он загружает последнюю версию (которая может быть черновиком) в предварительном просмотре/редактировании - Зацепите их в свой контейнер с DI – без внутренних типов, без круглых зависимостей
1) Предварительный просмотр ведет себя как редактирование в рендерере
Это означает, что рендерер перестает пропускать черновые блоки в предварительном просмотре – точно так же, как в редактировании.
2) Погрузчик возвращает последний в предварительном просмотре
Предоставляя свой собственный IContentAreaLoaderты можешь:
- В предварительном просмотре/редактировании: разрешить последнюю версию (черт, если таковой имеется)
- Ввиду: возвращайтесь к опубликованному контенту
Таким образом, предварительный просмотр отражает текущую работу редактора – не устаревший опубликованный контент.
3) Очистите в настройке
Зарегистрировать пользовательский рендеринг и погрузчик после services.AddCms() Используя фабричный метод:
Это избегает попыток разрешить внутренние типы или вызывая DI-петли- все остается простым и надежным.
Исход
- Редакторы смотрите в предварительных просмотрах (даже внешние проекты)
- Общественные пользователи по -прежнему видят только опубликованный контент
- Опыт кажется последовательным и надежным
Ещё по этой теме

