3 回答

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
我建議您將“執(zhí)行 ViewHelper 的操作”的函數(shù)提取到一個(gè)單獨(dú)的方法中,并使其可以將此方法作為公共方法調(diào)用,并使其接收所需的 PHP 函數(shù)參數(shù)(例如,用戶電子郵件地址) *包裹在一個(gè)array $parameters
.
然后可以從 ViewHelper 和 TypoScript 調(diào)用此方法。TypoScript 類似于:
lib.myGravatarObject = USER lib.myGravatarObject.userFunc = MyVendor\ExtensionName\GravatarRenderer lib.myGravatarObject.userEmail = foo@bar.com
如果您命名的屬性與array $parameters
您的 ViewHelper 參數(shù)相同,您可以簡(jiǎn)單地傳遞$this->arguments
或$arguments
從 ViewHelper 內(nèi)部傳遞(前者如果您正在實(shí)施render()
,后者如果您正在實(shí)施renderStatic()
)。它還使您在 TS 中使用與用于 ViewHelper 參數(shù)相同的屬性名稱變得更加透明。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用帶有最小模板的 FLUIDTEMPLATE cObject(例如通過(guò)模板屬性):
10 = FLUIDTEMPLATE
10 {
template.cObject = TEXT
template.cObject.value(
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:mv="http://typo3.org/ns/MyVendor/BlogExample/ViewHelpers" data-namespace-typo3-fluid="true">
<mv:GravatarViewHelper />
)
}
這似乎是可能的。但正如 Bernd 已經(jīng)問(wèn)過(guò)的:為什么要那樣做?

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
你為什么要這樣做?(請(qǐng)描述您的用例)
Viewhelpers 用于 FLUID 模板,那里有正確且匹配的上下文。
如果您想直接在 typoscript 中調(diào)用 PHP 函數(shù),您可以選擇userfunc
(手動(dòng))。但是您需要提供必要的上下文。
- 3 回答
- 0 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)