Typo3 Fluid Templates - Как настроить разные шаблоны для разных страниц - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь с нуля собрать сайт с typo3 9.5 и настроить разные файлы шаблонов для разных страниц. Как мне этого добиться?

Я следую учебному пособию от https://docs.typo3.org/m/typo3/tutorial-sitepackage/master/en-us/TypoScriptConfiguration/Index.html, а также попробовал решение без успеха, предоставленное на Typo3 Fluid Templates Как добавить несколько шаблонов

Теперь все страницы загружают шаблон по умолчанию, и если я устанавливаю для cObject по умолчанию значение «Альтернатива», он загружает файл Alternative.html для всех страниц, даже если TCA в Typo3 установлен правильно для каждой страницы:

  • Макет всех страниц в [По умолчанию]
  • Контакт установлен на [Альтернатива].

_

page = PAGE
page {
   typeNum = 0

   // Part 1: Fluid template section
   10 = FLUIDTEMPLATE
   10 {
      templateName = TEXT
      templateName.stdWrap.cObject = CASE
      templateName.stdWrap.cObject {
        key.data = pagelayout

        pagets__default = TEXT
        pagets__default.value = Default

        default = TEXT
        default.value = Default

        pagets__alternative = TEXT
        pagets__alternative.value = Alternative

        alternative = TEXT
        alternative.value = Alternative

      }


      templateRootPaths {
         0 = EXT:photo/Resources/Private/Templates/Page/
         1 = {$page.fluidtemplate.templateRootPath}
      }
      partialRootPaths {
         0 = EXT:photo/Resources/Private/Partials/Page/
         1 = {$page.fluidtemplate.partialRootPath}
      }
      layoutRootPaths {
         0 = EXT:photo/Resources/Private/Layouts/Page/
         1 = {$page.fluidtemplate.layoutRootPath}
      }
      dataProcessing {
      10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
      10 {
         levels = 1
         includeSpacer = 1
         as = mainnavigation
         }
      }
   }

Я хочу использовать, например, шаблон default.html для всех страниц, кроме страницы контактов, который будет иметь собственный шаблон (site_template / Resources / Private / Templates / Page / Alternative.html).

1 Ответ

1 голос
/ 03 июля 2019

First
вы должны использовать более высокие числа для путей к вашим шаблонам.
Чем выше число, тем выше приоритет для переопределения файлов с одинаковым именем.

второй
нет поля pagelayout. используйте layout или лучше backend_layout и backend_layout_next_level ( пример конфигурации с полным использованием конфигурации для подстраниц).

Ваши значения ключей (pagets__default и pagets__alternative) уже намекают на использование backend_layout (pagets__* - это обычный ключ для серверных макетов, определенных на странице TSconfig).

Возможно, пример в документации нуждается в некотором исправлении. (Подтверждение запроса выполнено)

...