Typo3 类型3-将变量从流体传递到对象

Typo3 类型3-将变量从流体传递到对象,typo3,typoscript,fluid,extbase,typo3-7.6.x,Typo3,Typoscript,Fluid,Extbase,Typo3 7.6.x,我正在使用fluidcontent,我想在内容元素中呈现一个插件。因此,我创建了以下COA: form = COA form { 15 < tt_content.list.20.extname_form 15.settings.id = | } 如果将字符串定义为数据,请使用stdWrap的.current=1选项: form = COA form { 15 < tt_content.list.20.extname_form 15.setti

我正在使用fluidcontent,我想在内容元素中呈现一个插件。因此,我创建了以下COA:

form = COA
form {
     15 < tt_content.list.20.extname_form
     15.settings.id = |
}

如果将字符串定义为数据,请使用stdWrap的
.current=1
选项:

form = COA
form {
     15 < tt_content.list.20.extname_form
     15.settings.id.current = 1
}
现在您的settings.id由stdWrap解析,应该包含您的cObjectViewHelper数据。

您可以使用流体模板中的一些帮助(可能):

<f:debug>{_all}</f:debug>

还有一种方法是使用全局变量注册表。TYPO3包含一个所谓的“加载寄存器”,这意味着变量的静态存储。VHS扩展包含与该存储交互的ViewHelper:

使用
set
变量可以添加变量,然后调用
f:cObject
,无论下一个流体模板位于渲染堆栈的多深,都可以使用
get
变量检索该值

例如,如果将内容元素与其他嵌套内容元素一起使用,例如检索或重新定义任何嵌套深度的值,则非常有用


注意:也可以通过TypoScript以及通过TYPO3执行的定制PHP访问,方法是使用。因此,总的来说,它可能比严格传递参数要简单得多,而且肯定更灵活。

谢谢您的帮助。我尝试了这两个版本,但无法将变量传递到表单的流体模板。您的
extname\u表单
扩展中可能有一些内容取决于如何访问变量。仅当
tt\u content.list.20.extname\u form
是流体模板对象时,使用“变量”的示例才有效。在不知道扩展名的情况下,您必须解析控制器中的设置并将它们分配给视图。我无法让它工作。在表单控制器中,我也无法访问变量。表单插件也使用fluidtemplate实现。如果我使用第一个版本,我会在模板中看到变量。这里的问题是没有采用变量内容。我用设置中使用
stdWrap
的示例编辑了我的答案。很抱歉,它不起作用。我不知道变量的内容。我这样称呼打字稿对象:对吗?
form = COA
form {
     15 < tt_content.list.20.extname_form
     15.settings.id.current = 1
}
form = COA
form {
     15 < tt_content.list.20.extname_form
     15.variables.id = TEXT
     15.variables.id.current = 1
}
form = COA
form {
     15 < tt_content.list.20.extname_form
     15.settings.id.current = 1
}
  /** @var \TYPO3\CMS\Extbase\Service\TypoScriptService $typoScriptService */
  $typoScriptService = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Service\TypoScriptService::class);
  $typoScriptSettings = $typoScriptService->convertTypoScriptArrayToPlainArray($this->settings);
  $this->settings['id'] = $this->configurationManager->getContentObject()->stdWrap($typoScriptSettings['id'], $typoScriptSettings['id.']);
<f:debug>{_all}</f:debug>
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($yourVariable);