是否可以通过 php 包含打字稿文件?通常我会在其中包含打字稿:
<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/templates/typoscript/setup/1.ts">
但我只想用 php 而不是打字稿来做到这一点。那可能吗?
我的目的:我想在我的页面中动态加载打字稿
是否可以通过 php 包含打字稿文件?通常我会在其中包含打字稿:
<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/templates/typoscript/setup/1.ts">
但我只想用 php 而不是打字稿来做到这一点。那可能吗?
我的目的:我想在我的页面中动态加载打字稿
这可以通过在早期调用一致的函数来实现,例如在调用或委托它ext_localconf.php
。例如,bookstrap 包在 PHP 中加载 TypoScript,如下所示:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
'<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY
. '/Configuration/PageTS/Mod/Wizards/newContentElement.txt">'
);
请注意,TypoScript 在实际前端渲染开始之前被缓存。这意味着,如果您是插件类或控制器逻辑已被调用,则不应修改 TypoScript。
可能您需要从 php 函数返回一个值并使用打字稿条件来选择打字稿文件。
您可以尝试以下方法(如果我猜对了):
$typoscriptFile .= file_get_contents($someFile);
$parser = t3lib_div::makeInstance('t3lib_TSparser');
$parser->parse($typoscriptFile);
$tsArray = $parser->setup;
不过,我真的不知道这对与全球排版相关的任何事情会有多好。
t3lib_TStemplate
如果你想要一个完整正确的解析,如果你从上面的代码中填充一个新的实例,$GLOBALS['TSFE']->tmpl
然后运行上面的代码,你可能会得到这样的结果。可能有用,没试过。