首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 v10:如何在后端/调度器任务中访问TSFE?

TYPO3 v10:如何在后端/调度器任务中访问TSFE?
EN

Stack Overflow用户
提问于 2021-06-16 14:46:11
回答 2查看 699关注 0票数 2

现状:

我试图从后端(或者更确切地说是调度器任务)访问前端的TypoScript配置。以前我使用Typo3 v8和v9初始化了整个$GLOBALS"TSFE“对象,但是这已经被黑客攻击了上一次(使用了大多数被废弃的调用),现在它已经全部被v10版本删除了。

我的目标:

从调度程序作业中访问特定页面(站点的根页面)前端的TypoScript配置。

整个项目的背景:

我有一个定期调度任务,发送电子邮件给不同的用户(fe_users)。电子邮件包含指向特定页面(在打字本中配置的UID)的链接,以及文件附件和类似内容(由其他扩展生成,这些扩展也是通过打字本完全配置的)。目前,我基本上是从后端初始化整个前端,但正如我前面所说的,它效率低下,非常讨厌,我怀疑这是解决这个问题的初衷。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-17 13:38:17

在后端获取TypoScript设置很难看,但有可能。

您需要一个页面ID和一个可以传递给\TYPO3\CMS\Core\TypoScript\TemplateService::runThroughTemplates()的根线。

类似于这样的东西:

代码语言:javascript
复制
$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那里得到灵感

票数 4
EN

Stack Overflow用户

发布于 2021-06-16 17:48:59

这不会有任何改善,也不打算这样做。我将使用以下配置:

$GLOBALS['TYPO3_CONF_VARS]`

  • YAML

  • 普通PHP,例如在站点配置中,如果取决于不同的站点,则为

您可以通过使用例如类似的东西来构建链接

代码语言:javascript
复制
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);
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68005010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档