TYPO3:Typoscript = 渲染温度变量

TYPO3:Typoscript = render temp var

我的 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",使用“=<”,使用 "insertData" 方法...)。顺便说一下 -> 我不能使用常量。 你知道怎么做吗? 感谢您的帮助 =)

尝试以下操作:

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

第一个:
您需要使用复制运算符 < 来使用一些 temp.-objects.
引用(=< 将不起作用,因为 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):

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="|"

temp.my_class {
    field = my_custom_class
    wrap = class="|"
}
:
10.renderObj.renderObj.params < temp.my_class