Изменение содержимого и представления по имени хоста в Sitecore 6.4 - PullRequest
2 голосов
/ 12 января 2012

Сценарий: раздел дерева контента является домашним элементом для сайта, который работает под двумя именами хостов (www.site1.com и www.site2.com

Назначение двух имен хостов состоит в том, чтобыпровести различие между двумя целевыми странами, обслуживаемыми одним и тем же контентом, и одной и той же организацией (отдел маркетинга, веб-редактор и т. д.)

Контент, конечно, идентичен по двум именам хостов.

За исключением ....

В нескольких местах нам нужны небольшие различия: например, контактное электронное письмо или официальное уведомление (это только контент Sitecore). В других местах мы можеммы хотим изменить компонент представления для элемента в зависимости от контекста хоста, в котором он находится. Мы можем сделать это для всех элементов определенного шаблона.

Чтобы усложнить ситуацию, сайт уже клонирован издругой сайт (www.siteA.com), который является источником нескольких клонов (некоторые переведены) для разных стран. Это позволяет нам продвигать новые товарыЗначительные изменения / особенности наших дочерних компаний.Таким образом, все шаблоны и компоненты представления уже распределены между множеством контекстов хоста и множеством частей дерева контента.

Существуют ли какие-либо функциональные возможности Sitecore, которые сделали бы это возможным / простым - или нам нужно тестировать контекстный кодв наши компоненты презентации (предположительно рядом с некоторыми элементами конфигурации в Sitecore, чтобы избежать жестких значений)?

1 Ответ

2 голосов
/ 12 января 2012

Отличный вопрос.Это долгосрочный план, но он может работать:

Почему бы не создать новое устройство для Site2, а в тех случаях, когда необходимо изменить данные презентации Site2, настройте параметры презентации для устройства Site2.Если нет, не устанавливайте их, и устройство по умолчанию будет отображать содержимое.Сложной частью здесь будет настройка способа разрешения устройства.Возможно, вы можете создать собственный преобразователь устройства в конвейере <httpRequestBegin>:

<processor type="Sitecore.Pipelines.HttpRequest.BeginDiagnostics, Sitecore.Kernel"/>
<!--<processor type="Sitecore.Pipelines.HttpRequest.DeviceResolver, Sitecore.Kernel"/>-->
<processor type="YourProject.Pipelines.HttpRequest.DeviceResolver, YourProject"/>
<processor type="Sitecore.Pipelines.HttpRequest.LanguageResolver, Sitecore.Kernel"/>

В вашем процессоре вы можете посмотреть на хост, чтобы определить, какой использовать.

Вы также можете определитьУстройство Site2 на новом узле <site ... />, как упоминает Пол ниже.Примерно так:

<site name="site1" hostName="site1.com" rootPath="/sitecore/content" startItem="/home" ... />
<site name="site2" hostName="site1.com" device="Site2" rootPath="/sitecore/content" startItem="/home" ... />

Как Site1, так и Site2 указывают на одни и те же части дерева, они просто используют разные устройства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...