首页 > 解决方案 > TYPO3 9.5 为所有后端页面包含一个 TypoScript 文件

问题描述

我确实用后端模块编写了一个名为“locationgallery”的 Typo3 扩展。此后端模块应使用以下 TypoScript 配置。

module.tx_locationgallery_web_locationgallerylocationgallerybe {
    view {
        templateRootPaths.0 = EXT:locationgallery/Resources/Private/Backend/Templates/
        partialRootPaths.0 = EXT:locationgallery/Resources/Private/Backend/Partials/
        layoutRootPaths.0 = EXT:locationgallery/Resources/Private/Backend/Layouts/
    }
}

如果我现在包含通过 添加的“locationgallery”静态模板,则ExtensionManagementUtility::addStaticFile在包含此模板的每个页面上都可以正常工作。

我的问题是,我收到错误消息

Sorry, the requested view was not found.

The technical reason is: No template was found. ...

如果我在页面树中选择一个不包含静态模板的页面。

我现在的问题是我不想在根页面中包含静态模板,但是'locationgallery'的后端模块需要在所有页面上都可用。

我确实尝试使用 包含配置的相应部分,ExtensionManagementUtility::addPageTSConfig用于将 TSConfig 添加到$GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPageTSconfig']变量中。但是在视图试图找到模板之前,不会解释这个 Typoscript。(例如,据我所知,在这次运行期间它根本没有被解释,因为我只找到TemplateService::mergeConstantsFromPageTSconfigTypoScriptFrontendController::getPagesTSconfig指的是$GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPageTSconfig']。)

我发现使用ext_typoscript_setup.typoscriptpowermail归档了我想要的内容,但根据https://forge.typo3.org/issues/52364已弃用。

此方法的另一个缺点是“ext_typoscript_setup.typoscript”的解释独立于后端和前端模式。

我想知道是否有任何不推荐使用的方法来为 Typo3 中运行的任何后端包含一些 TypoScript。

感谢您的任何建议。

标签: typo3typo3-9.x

解决方案


您可以将 TS 设置拆分为多个文件以分隔包含。

在中添加以下方法Configuration/TCA/Overrides/sys_template.php

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
  'your_ext_key',
  'Configuration/TypoScript/backend_or_however_you_call_it.typoscript',
  'Your label'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
  'your_ext_key',
  'Configuration/TypoScript/frontendend_or_however_you_call_it.typoscript',
  'Your label'
);

推荐阅读