Как динамически выбирать шаблон с помощью жидкостных страниц - PullRequest
0 голосов
/ 07 мая 2018

Я использовал fluidpages для построения шаблона и хотел бы выбрать шаблон динамически на основе поля в таблице fe_users. Например, большинство людей увидят шаблон EXT:default по умолчанию, а некоторые увидят шаблон EXT:advanced вместо этого, поскольку они помечены как специальные.

Я пытался

plugin.tx_template {
    view {
        templateRootPaths {
            0 = EXT:default/Resources/Private/Templates/
            10 {
                data = TSFE:fe_user|user|template
                wrap = EXT: | /Resources/Private/Templates/
            }
        }
    }
}

Но кажется, что TS не анализируется и используется непосредственно fluid, поэтому не удалось.

Любая идея или подсказка приветствуется!

1 Ответ

0 голосов
/ 07 мая 2018

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

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

Если вы найдете возможность переопределить это, вы можете использовать настройку TS следующим образом:

EXT: template_package / Configuration / TypoScript / constants.txt:

plugin.tx_templatepackage {
    view {
        templateRootPaths.default = EXT:template_package/Resources/Private/Templates/
        partialRootPaths.default = EXT:template_package/Resources/Private/Partials/
        layoutRootPaths.default = EXT:template_package/Resources/Private/Layouts/
    }
}

EXT: template_package / Конфигурация / TypoScript / Setup.txt:

plugin.tx_templatepackage {
    view {
        templateRootPaths.default = {$plugin.tx_templatepackage.view.templateRootPaths.default}
        partialRootPaths.default = {$plugin.tx_templatepackage.view.partialRootPaths.default}
        layoutRootPaths.default = {$plugin.tx_templatepackage.view.layoutRootPaths.default}
    }
}

Выше приведены настройки ваших глобальных путей. После этого вы определите свои подпакеты для шаблонов.

EXT: template_package / Configuration / TypoScript / Basic / Setup.txt

plugin.tx_templatepackage {
    view {
        templateRootPaths.10 = {$plugin.tx_templatepackage.view.templateRootPaths.0}Basic/
        partialRootPaths.10 = {$plugin.tx_templatepackage.view.partialRootPaths.0}Basic/
        layoutRootPaths.10 = {$plugin.tx_templatepackage.view.layoutRootPaths.0}Basic/
    }
}

И

EXT: template_package / Configuration / TypoScript / Дополнительно / Setup.txt

plugin.tx_templatepackage {
    view {
        templateRootPaths.20 = {$plugin.tx_templatepackage.view.templateRootPaths.0}Advanced/
        partialRootPaths.20 = {$plugin.tx_templatepackage.view.partialRootPaths.0}Advanced/
        layoutRootPaths.20 = {$plugin.tx_templatepackage.view.layoutRootPaths.0}Advanced/
    }
}

Конечно, вы должны сделать их доступными в TYPO3:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'Template Package: Base');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript/Basic', 'Template Package: Basic');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript/Advanced', 'Template Package: Advanced');

После всего этого вы можете переопределить значение - IDK, которое - через:

[usergroup = group1-uid]
// override option, which defines the default template
[usergroup = group2-uid]
// override option, which defines the default template

Извините, я не могу вам больше помочь. Я попытался копнуть глубже в EXT: поток и EXT: страницы жидкости. Но я не вижу такой возможности.

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