TYPO3:Typoscript =渲染temp var

时间:2017-10-09 14:36:55

标签: typo3 typoscript typo3-6.2.x

我的Typoscript中存在问题,无法找到解决办法。 这是我的typoscript的摘录:

temp.my_class = TEXT
temp.my_class.value = my_custom_class
temp.my_class.wrap = class="|"

10 < styles.content.get

10.select.where = ( deleted = 0 && hidden = 0 && CType = 'image' )
10.select.andWhere = ( tx_gridelements_container = ###whatever### )
10.select.orderBy = sorting ASC
10.select.max = 1
10.select.markers.whatever.field = uid

10.renderObj = FILES
10.renderObj.references.table = tt_content
10.renderObj.references.fieldName = image

10.renderObj.renderObj = IMAGE
10.renderObj.renderObj.file.import.data = file:current:publicUrl
10.renderObj.renderObj.file.width = 200
10.renderObj.renderObj.params.cObject < temp.my_class

我使用多种方式但没有成功(使用“lib”代替“temp”,使用“=&lt;”,使用“insertData”方法...)。顺便说一下 - &gt;我不能使用常量。 你知道怎么做吗? 谢谢你的帮助=)

2 个答案:

答案 0 :(得分:1)

第一:
您需要使用复制运算符<来使用一些temp. - 对象 引用(=<在{$ 1}}对象无法在渲染时工作,仅用于扫描拼写错误。
并且temp.只分配文本而没有对象。

第二:
请记住=仅复制防御。如果将对象定义复制到简单文本属性,则将对象的名称作为值 为避免这种情况,请使用<.stdWrap

第三:
使用包装定义值的包装。

在你的情况下,它会是这样的:

.cObject

这将导致:

temp.my_class = TEXT
temp.my_class.field = my_custom_class
temp.my_class.wrap = class="|"

.... here other lines .....

10.renderObj.renderObj = IMAGE
10.renderObj.renderObj.file.import.data = file:current:publicUrl
10.renderObj.renderObj.file.width = 200
10.renderObj.renderObj.params.cObject < temp.my_class

但我认为你真的想要这个(没有10.renderObj.renderObj = IMAGE 10.renderObj.renderObj.file.import.data = file:current:publicUrl 10.renderObj.renderObj.file.width = 200 10.renderObj.renderObj.params.cObject = TEXT 10.renderObj.renderObj.params.cObject.field = my_custom_class 10.renderObj.renderObj.params.cObject.wrap = class="|" ):

cObject

因此,使用临时对象(模拟常量)提取fieldname可能是:

10.renderObj.renderObj = IMAGE
10.renderObj.renderObj.file.import.data = file:current:publicUrl
10.renderObj.renderObj.file.width = 200
10.renderObj.renderObj.params.field = my_custom_class
10.renderObj.renderObj.params.wrap = class="|"

temp.my_class_field = my_custom_class
:
10.renderObj.renderObj.params.field < temp.my_class_field
10.renderObj.renderObj.params.wrap = class="|"

答案 1 :(得分:0)

请尝试以下操作:

10.renderObj.renderObj.params.cObject < tmp.my_class
10.renderObj.renderObj.params.cObject.wrap = class="|"