TYPO3:如何访问部分或部分中的对象的属性?

问题描述:

我曾经在的TypoScriptTYPO3:如何访问部分或部分中的对象的属性?

page.10 { 
    variables { 
    myObject = COA 
    myObject{ 
    1 = TEXT 
    1.value = yome Text 
    2 = TEXT 
    2.value = 42 
    } 
    } 
} 

定义的对象,我需要在部分

<f:render partial="myPartial" arguments="{content:myObject}" /> 

,看起来像

<section id="myPartial"> 
<h2>{content.1}</h2> 
<p>{content.2}</p> 
</section> 

的myObject的的数据虽然内容是存在的(因为{content}将显示所有属性)我无法访问它,并且h2和p将为空...

我应该如何填充h2和p以及myObject的内容?

这是不可能的。 TypoScript此刻只返回文本字符串,而不是数组。因此,变量myObject包含COA的整个级联字符串,因此yome Text42

注意COA意味着Content Object Array,但整个COA一个被返回一个串单个对象。

+0

我明白了。所以我需要用自己的Controller编写一个View Helper,对吧? – Chakaiko 2012-07-30 20:36:11

+0

或者您需要将数据拆分为多个变量。 – pgampe 2012-08-02 21:54:05

替代方法:使用VHS扩展的v:var.typoscript视图助手:

{namespace v=Tx_Vhs_ViewHelpers} 
{v:var.typoscript(path: 'page.10.variables.myObject') -> v:var.set(name: 'myObject')}

后,你可以在你的模板访问{myObject.1}等。请注意,v:var.set的所谓“链接”用法为可选,,但可以使用中间模板变量而不是更昂贵的调用来访问变量,以便在多个位置完全检索值。另一种方法:在TER

{v:var.typoscript(path: 'page.10.variables.myObject.1')} 
{v:var.typoscript(path: 'page.10.variables.myObject.2')} 
etc.

VHS扩展:http://typo3.org/extensions/repository/view/vhs