现状:
我试图从后端(或者更确切地说是调度器任务)访问前端的TypoScript配置。以前我使用Typo3 v8和v9初始化了整个$GLOBALS"TSFE“对象,但是这已经被黑客攻击了上一次(使用了大多数被废弃的调用),现在它已经全部被v10版本删除了。
我的目标:
从调度程序作业中访问特定页面(站点的根页面)前端的TypoScript配置。
整个项目的背景:
我有一个定期调度任务,发送电子邮件给不同的用户(fe_users)。电子邮件包含指向特定页面(在打字本中配置的UID)的链接,以及文件附件和类似内容(由其他扩展生成,这些扩展也是通过打字本完全配置的)。目前,我基本上是从后端初始化整个前端,但正如我前面所说的,它效率低下,非常讨厌,我怀疑这是解决这个问题的初衷。
发布于 2021-06-17 13:38:17
在后端获取TypoScript设置很难看,但有可能。
您需要一个页面ID和一个可以传递给\TYPO3\CMS\Core\TypoScript\TemplateService::runThroughTemplates()的根线。
类似于这样的东西:
$template = GeneralUtility::makeInstance(TemplateService::class);
$template->tt_track = false;
$rootline = GeneralUtility::makeInstance(
RootlineUtility::class, $pageId
)->get();
$template->runThroughTemplates($rootline, 0);
$template->generateConfig();
$typoScriptSetup = $template->setup;你可以从\TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager::getTypoScriptSetup和\TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController那里得到灵感
发布于 2021-06-16 17:48:59
这不会有任何改善,也不打算这样做。我将使用以下配置:
$GLOBALS['TYPO3_CONF_VARS]`
您可以通过使用例如类似的东西来构建链接
protected function generateUrl(int $pageId, int $recordId)
{
$additionalParams = 'tx_xxxx[action]=show&tx_ixxxx[controller]=Job&tx_xxxx[job]=' . $recordId;
return BackendUtility::getPreviewUrl($pageId, '', null, '', '', $additionalParams);
}https://stackoverflow.com/questions/68005010
复制相似问题