簡體   English   中英

TYPO3 / Fluid:FluidEmail 模板中的內聯 Viewhelper 表示法

[英]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);

參考: https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/10.3/Feature-90266-Fluid-basedTemplatedEmails267FC35EZ3A64Emails.typo356

聽起來像一個流體解析問題。 您的模板中是否有任何{}飛來飛去,可能會弄亂流體解析?

從 php7.2 切換到 php7.4 后,我的一個內部插件遇到了同樣的問題(切換回 php7.2 時,資源路徑再次正確解析)。

事實證明,使用頁面下方大括號的一些內聯 javascript 是罪魁禍首(謝謝丹尼爾)。 把它放在一個單獨的文件中解決了這個問題。 根據所使用的 php 版本,似乎可以在不同程度上容忍使用內聯 JS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM