TYPO3 11.5.2下通过TypoScript为felogin配置两套独立模板的咨询
TYPO3 11.5.2 felogin组件双模板独立配置方案
需求说明
当前使用版本为TYPO3 11.5.2,需要实现两项 felogin 组件的模板差异化配置:
- 通过
<f:cObject typoscriptObjectPath="lib.loginBox" />调用的felogin组件使用自定义模板渲染 - 作为页面内容元素添加的felogin组件使用官方原生模板
存在问题的配置方案
方案1:全局配置(不符合需求)
该配置可正常运行,但会全局修改所有felogin实例的视图,无法实现两套模板独立:
plugin.tx_felogin_login { settings.pages = 15 view { templateRootPaths { 0 = fileadmin/template/current/felogin/Resources/Private/Templates/ 10 = {$plugin.tx_felogin_login.view.templateRootPath} } } } lib.loginBox = USER lib.loginBox { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run extensionName = Felogin pluginName = Login }
方案2:lib内嵌套配置(配置不生效)
尝试将视图和配置项写入lib.loginBox内避免全局污染,但配置完全不生效:自定义模板不加载,且settings.pages = 15配置失效导致无法完成登录:
lib.loginBox = USER lib.loginBox { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run extensionName = Felogin pluginName = Login settings < plugin.tx_felogin_login.settings settings.pages = 15 view < plugin.tx_felogin_login.view view { templateRootPaths { 0 = fileadmin/template/current/felogin/Resources/Private/Templates/ 10 = {$plugin.tx_felogin_login.view.templateRootPath} } } }
问题原因
- Extbase 插件通过
Bootstrap->run调用时,默认会优先读取全局plugin.tx_*的配置,直接在lib对象内嵌套的settings不会被自动识别加载,需要将通用配置保留在全局作用域。 - 模板根路径的优先级规则:数字越大优先级越高,之前的配置覆盖了默认的低优先级路径,导致全局生效。
正确可行的配置方案
将通用登录配置保留在全局felogin配置中,仅在lib.loginBox内覆写视图模板路径,自定义模板路径使用更高优先级的数字(如20),避免影响全局内容元素的模板加载:
plugin.tx_felogin_login { settings.pages = 15 } lib.loginBox = USER lib.loginBox { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run extensionName = Felogin pluginName = Login view < plugin.tx_felogin_login.view view { templateRootPaths { 10 = {$plugin.tx_felogin_login.view.templateRootPath} # 自定义模板路径,优先级高于默认路径,仅对当前lib调用生效 20 = EXT:myfelogin/Resources/Private/Templates/ # 也可使用fileadmin路径:20 = fileadmin/template/current/felogin/Resources/Private/Templates/ } } }
内容的提问来源于stack exchange,提问作者oheil
相关产品推荐
相关产品推荐

