Другой вариант - использовать значение вашего data.layout
для построения имени макета.таким образом, он похож на встроенный f: if-viewhelper.
<f:layout name="layout{data.layout}" />
убедитесь, что обрабатывает неизвестные или пустые значения.Либо с файлами с совпадающими именами, либо с подготовкой переменной в typoscript с .ifEmpty = default
или аналогичной.
мое обычное решение для определения макета (я использую два поля backend_layout
и backend_layout_next_level
, так как они дают опциинаследования и индивидуального переопределения):
templateName = TEXT
templateName.cObject = CASE
templateName.cObject {
key.data = levelfield:-1, backend_layout_next_level, slide
key.override.field = backend_layout
#Default Template
default = TEXT
default.value = Unterseite
pagets__startseite = TEXT
pagets__startseite.value = Startseite
pagets__katalogseite = TEXT
pagets__katalogseite.value = Katalogseite
}
Еще одним способом является оценка макета внутри файла макета.в зависимости от значения макета вы можете визуализировать определенные разделы или частичные фрагменты, которые формируют полный шаблон.
Здесь у вас есть возможность использовать встроенное значение макета для определения раздела / части.
<f:render partial="page-{page.layout}" />
<f:render section="section-{page.layout} />
Или вы используете f:switch
или f:if
-VHs.
как всегда:
какое решение является лучшим?это зависит.
вам необходимо учитывать ваши особые требования, чтобы получить лучшее решение.