[英]TYPO3 / Fluid: Inline Viewhelper notation in Templates of FluidEmail
我正在使用 TYPO3 v10.3 的新TYPO3\CMS\Core\Mail\FluidEmail
功能來發送 HTML 系統電子郵件。 不幸的是,我在電子郵件模板中遇到了 Viewhelpers 的奇怪行為。 調用像<f:uri.resource extensionName="backend" path="Images/typo3_orange.svg"/>
這樣的常規 Viewhelper 符號可以按預期工作。 但是同一 Viewhelper 的內聯符號(例如{f:uri.resource(extensionName: 'backend', path: 'Images/typo3_orange.svg')}
)根本不會得到處理。
令人驚訝的是,當我在同一個模板中先調用常規表示法並隨后調用內聯表示法時,兩種表示法都得到了解決。
我還經歷過模板中沒有可訪問的流體變量,例如{normalizedParams}
,當您設置像$message->setRequest($GLOBALS['TYPO3_REQUEST']);
這樣的請求時,它應該可用。
有沒有人遇到過類似的行為並對我有提示?
這是我在 Controller 操作中的實現:
$message = GeneralUtility::makeInstance(FluidEmail::class);
$message
->to($email)
->format(FluidEmail::FORMAT_HTML)
->setTemplate('MyTemplate')
->assign('pages', $pages);
if ($GLOBALS['TYPO3_REQUEST'] instanceof ServerRequestInterface) {
$message->setRequest($GLOBALS['TYPO3_REQUEST']);
}
GeneralUtility::makeInstance(Mailer::class)->send($message);
聽起來像一個流體解析問題。 您的模板中是否有任何{
或}
飛來飛去,可能會弄亂流體解析?
從 php7.2 切換到 php7.4 后,我的一個內部插件遇到了同樣的問題(切換回 php7.2 時,資源路徑再次正確解析)。
事實證明,使用頁面下方大括號的一些內聯 javascript 是罪魁禍首(謝謝丹尼爾)。 把它放在一個單獨的文件中解決了這個問題。 根據所使用的 php 版本,似乎可以在不同程度上容忍使用內聯 JS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.