TYPO3 FLUID: как использовать более одного шаблона?

в старых версиях TYPO3 был простой способ иметь много разных шаблонов, но, похоже, это больше не работает в TYPO3 9.5.

10 = FLUIDTEMPLATE
10 {
    templateName = TEXT
    templateName.stdWrap.cObject = CASE
    templateName.stdWrap.cObject {
        data = pagelayout

        2 = TEXT
        2.value = 2Col2Row

        default = TEXT
        default.value = Default 
    }
    
    variables{          
        
        pageTitle = TEXT
        pageTitle.data = page:title
        siteTitle = TEXT
        siteTitle.data = TSFE:tmpl|setup|sitetitle
        rootPage = TEXT
        rootPage.data = leveluid:0
        logo = IMAGE
        logo {
            file = EXT:myExt/Resources/Public/Icons/mylogo_icon.png
            height = 73
            width = 60  
            params = class="navbar-brand-logo-normal" style="max-height: 100%;margin-right:15px;"
            alt = Home
            linktitle = 
        }           
    
        content < styles.content.get
        content.select.where = colPos = 0
        topright < styles.content.get
        topright.select.where = colPos = 5
        bottomleft < styles.content.get
        bottomleft.select.where = colPos = 6
        bottomright < styles.content.get
        bottomright.select.where = colPos = 7
    }
    
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        10 { 
            levels = 2
            includeSpacer = 1
            as = mainnavigation             
            #special = directory
            #special.value = 1,193,201          
            special = list
            special.value = 90,194,200,195,201
        }
        20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        20 {
            entryLevel = 1
            levels = 2
            expandAll = 0
            includeSpacer = 1
            as = subnavigation
        }
        30 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        30 {
            special = rootline
            special.range = 0|-1
            includeNotInMenu = 1
            as = breadcrumb
            if {
                value = {$page.theme.breadcrumb.enableLevel}
                value {
                    insertData = 1
                    prioriCalc = 1
                    stdWrap.wrap = |-1
                }
                isGreaterThan {
                    data = level
                }
            }
        }
        40 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        40 {
            levels = 2
            as = footer             
            special = list
            special.value = 196,197,198,199
        }
    }
    
    templateRootPaths {
        0 = EXT:myExt/Resources/Private/Templates/Page/
    }
    partialRootPaths {
        0 = EXT:myExt/Resources/Private/Partials/Page/
    }
    layoutRootPaths {
        0 = EXT:myExt/Resources/Private/Layouts/Page/
    }
}

includeCSS {
    file1 = EXT:myExt/Resources/Public/Css/bootstrap4-theme.min.css
    fule3 = EXT:myExt/Resources/Public/Css/ext/base.css
    file5 = fileadmin/Resource/services/fontawesome582/css/all.css
}

includeJS {
    jquery = EXT:myExt/Resources/Public/Scripts/jquery.min.js
    bootstrap = EXT:myExt/Resources/Public/Scripts/bootstrap.min.js
    bootstrap = EXT:myExt/Resources/Public/Scripts/bootstrap.navbar.min.js
}
}

Пути рабочие для него показывает страницу по умолчанию. Не могу понять, чего мне не хватает, чтобы взять другой шаблон. Все макеты бэкэнда и файлы шаблонов находятся там, где они должны быть.


person Perthe    schedule 18.08.2020    source источник


Ответы (3)


Объекту CASE требуется свойство key.

просто попробуй:

templateName.stdWrap.cObject = CASE
templateName.stdWrap.cObject {
    key.data = pagelayout
    :

РЕДАКТИРОВАТЬ:

вы должны проверить значения для вашего key, чтобы выбрать правильные метки. добавить новую переменную жидкости:

variables {
    pagelayout = TEXT
    pagelayout.data = pagelayout
    :

а затем выведите его в свой шаблон, который выбирается каждый раз:

<f:debug title="pagelayout">{pagelayout}</f:debug>
person Bernd Wilke πφ    schedule 18.08.2020
comment
Спасибо за ответ. Я пробовал это, но тоже не работает. - person Perthe; 19.08.2020
comment
проверьте свою ключевую переменную (пример добавлен к моему ответу) - person Bernd Wilke πφ; 19.08.2020
comment
Спасибо за помощь, подсказка с key.data помогла решить проблему. - person Perthe; 20.08.2020

Посмотрите здесь https://github.com/benjaminkott/bootstrap_package/blob/master/Configuration/TypoScript/setup.typoscript#L92 для логики, не требующей CASE. Удалите split, если вы используете макеты серверной части из базы данных вместо определенных в PageTS.

person Jonas Eberle    schedule 19.08.2020
comment
Спасибо за подсказку. Ссылка очень помогла! - person Perthe; 20.08.2020

Аааааааааааааааааааааааааааааааааааааааааааааадвича, большое спасибо за ваши ответы и подсказки - чтобы я мог искать нужные вещи и найти решение.

key.data = pagelayout
            
pagets__standard = TEXT
pagets__standard.value = Default    

pagets__2_col_2_row = TEXT
pagets__2_col_2_row.value = 2Col2Row

default < .pagets__standard

Мне нужно было только дать альтернативе имя из макета бэкэнда с префиксом pagets__, что кажется очень простым, если подумать.

person Perthe    schedule 20.08.2020