Языковой резерв не работает для полей со стандартными значениями (Sitecore 8.1)
У нас была проблема, когда мы включили резервные языковые настройки на уровне элемента в базовом шаблоне, чтобы он применялся ко всем нашим элементам. Он работал примерно для 90% наших элементов, но не для других, хотя редактор контента sitecore показал, что он работает.
Помещая это здесь для всех, кто имеет эту проблему. Я не нашел ничего конкретного. решение этой проблемы в Google, и был достаточно удачлив, чтобы выяснить это. Надеюсь, это поможет кому-то еще тоже.
Наша настройка-Sitecore 8.1 с Habitat Asp.net MVC
1 ответ:
Вот несколько шагов, чтобы сделать язык резервным для всех элементов, применяя настройки уровня элемента к базовому шаблону.
Шаг 1
Первым шагом для включения языкового отката является настройка дерева отката. Мы можем построить иерархическую структуру (или простую линейную) для языков, к которым можно вернуться Пример:
В нашем случае мы бы просто сделали: EN-NZ --> EN
Это делается /Sitecore / System / Languages путем установки резервной копии язык на каждом из языковых узлов:
Шаг 2
Далее мы включаем функцию языкового отката для сайта. На развернутом веб-сайте найдите конфигурационный файл Sitecore.Языковой откат.config И измените конфигурацию таким образом, чтобы применялись следующие настройки:
<setting name="LanguageFieldFallback.AllowVaryFallbackSettingsPerLanguage" value="true" /> … <sites> <site name="shell"> <patch:attribute name="enableItemLanguageFallback">true</patch:attribute> <patch:attribute name="enableFieldLanguageFallback">true</patch:attribute> </site> <site name="website"> <patch:attribute name="enableItemLanguageFallback">true</patch:attribute> <patch:attribute name="enableFieldLanguageFallback">true</patch:attribute> <patch:attribute name="enforceVersionPresence">true</patch:attribute> </site> </sites>
Утилизация пула приложений
Шаг 3
Теперь функция включена для сайта мы должны включить функцию в элементе уровень.
- перейдите к элементу в Редакторе содержимого sitecore и просмотрите раздел Advanced
- Если раздел "Дополнительно" не отображается; выберите вкладку " Вид "и установите флажок" стандартные поля "
- установите флажок Включить резервный вариант элемента. (Отображает элемент из резервного языка, если языковая версия не существует)
- чтобы ограничить страницу определенным языком, установите флажок принудительное присутствие версии. В тех случаях, когда версия не найдена для конкретного языка, По умолчанию Sitecore возвращает пустой элемент. Это происходит при рендеринге элемента или при попытке получить к нему доступ через Sitecore API. В тех случаях, когда нет версии, доступной для запрашиваемого языка, эта опция позволяет вам сказать Sitecore не возвращать элемент. Это приведет к перенаправлению пользователя на страницу 404 (не найдена) или возвращению значения NULL при попытке получить элемент через API.
Мы можем применить эти настройки к стандартному шаблону, и настройка будет применяться ко всем Элементы, которые наследуют его
- перейдите к стандартному шаблону
- создайте стандартные значения, если их не существует
- установите опцию Enable Item Fallback
Это позволит получить 90% наших элементов и полей, работающих, однако есть оговорка; это работает только для полей, которые не наследуют свои значения от стандартных значений.
Вы можете легко идентифицировать эти поля, просмотрев элемент в Редакторе содержимого
Это что-то связанное с тем, что опция включить резервный элемент также наследуется от стандартных значений стандартного шаблона, и Sitecore не будет применять этот параметр к полям, которые также наследуются от стандартных значений.
Для обработки полей / элементов в этом сценарии необходимо выполнить одно из двух действий:
- измените поле элемента таким образом, чтобы оно не наследовалось от стандартных значений Или:
- создайте стандартные значения в шаблоне элемента-он унаследует опцию Включить резервный элемент из стандартных значений стандартного шаблона
- снимите флажок и сохраните
- перепроверьте параметр и сохраните его, чтобы он больше не наследовал настройку
- Теперь, когда опция enable Item Fallback не наследуется, она будет применяться. Поля элемента, которые наследуются от стандартных значений, теперь будут резервными и отрисовывать
Примечание: Я считаю, что это ошибка, потому что редактор содержимого по-прежнему отображает поля как наследующие их содержимое от однако при изменении языка контент не отображается на веб-сайте, пока вы не выполните один из методов, упомянутых выше
Комментарии
- есть также настройки уровня поля для применения той же настройки.
- также стоит отметить, что если вы столкнулись с проблемой выше и применяете настройку на уровне поля, она все равно не будет работать, пока вы не выполните эти шаги выше.