我正在使用flexform为html节元素选择背景图像。
看起来像这样: dataWrap = |
dataWrap.override.stdWrap.cObject = COA
dataWrap.override.stdWrap.cObject {
10 = TEXT
10.dataWrap = <section class="content {field:flexform_mdCol1} {field:flexform_mdCol2} {field:flexform_col21class}
20 = TEXT
20.value = " style="background-image: url(/
30 = IMG_RESOURCE
30 {
file.import.data = field:flexform_mdCol3
}
40 = TEXT
40.value = );">|</section>
}
dataWrap.override.if.isTrue.field = flexform_mdCol3
问题是这不适用于视频。我创建了第二个字段(mdCol4),以选择mp4视频和mdCol3字段作为最坏情况的海报和背景。看起来像这样,但是不起作用。
dataWrap.override.stdWrap.cObject = COA
dataWrap.override.stdWrap.cObject {
10 = TEXT
10.dataWrap = <section class="content {field:flexform_mdCol1} {field:flexform_mdCol2} {field:flexform_col21class}
20 = TEXT
20.value = " style="background-image: url(/
30 = IMG_RESOURCE
30 {
file.import.data = field:flexform_mdCol3
}
40 = TEXT
40.value = );">
50 = TEXT
50.value = <video width="1920" height="1080" autoplay loop muted playsinline poster="/
60 = IMG_RESOURCE
60 {
file.import.data = field:flexform_mdCol3
}
70 = TEXT
70.value = ">
80 = TEXT
80.value = <source src="/
90 = IMG_RESOURCE
90 {
file.import.data = field:flexform_mdCol4
}
100 = TEXT
100.value = " type="video/mp4"></video>|</section>
}
dataWrap.override.if.isTrue.field = flexform_mdCol4
出现了海报和背景,但是IMG_RESOURCE似乎不适用于视频,并且我找不到类似的东西。
TYPO3为8.7.18。这是错误还是我只是傻瓜? :)
任何帮助都非常有用。预先感谢!
答案 0 :(得分:1)
感谢伯恩德的方法和帮助,下面是解决方法:
com.github.mjreid.flinkwrapper
答案 1 :(得分:0)
视频没有图像。
建立IMG_RESOURCE
对象首先要分析图像并根据需要调整大小。
如果只需要文件的url,则不需要任何图像处理。只需使用公共网址:
90 = FILES
90 {
// if it is exact one file:
files = flexform_mdCol4
// otherwise use references:
# references {
# table = tt_content
# uid.field = uid
# fieldname = flexform_mdCol4
# }
renderObj = TEXT
renderObj.data = file:current.publicUrl
}
答案 2 :(得分:0)
只为艺术而已:
我忘了注意到您有使用错字产生干净代码的可能性。
您已将换行拆分为数组中的不同对象。这对于阅读和识别应该在一起的东西有点不利。
这是您的解决方案的变体:
我认为30
(您的75
)缺少一些内容,因为它将仅呈现sys_file uid的列表,而无需使用/包装。
dataWrap.override.cObject = COA
dataWrap.override.cObject {
10 = IMG_RESOURCE
10 {
file.import.field = flexform_mdCol3
dataWrap = <section class="content video {field:flexform_mdCol1} {field:flexform_mdCol2} {field:flexform_col21class}" style="background-image: url(|);">
}
20 = IMG_RESOURCE
20 {
file.import.data = field:flexform_mdCol3
wrap = <video width="1920" height="1080" autoplay loop muted playsinline poster="|">
}
30 = CONTENT
30 {
table = tt_content
select {
table = tt_content
uid.data = field:uid
}
renderObj = TEXT
renderObj {
data = flexform: pi_flexform:flexform_mdCol4
}
}
40 = FILES
40 {
files.field = flexform_mdCol4
renderObj = TEXT
renderObj.data = file:current:publicUrl
wrap = <source src="#" type="video/mp4"></video>|</section>
wrap.splitChar= #
}
}
dataWrap.override.if.isTrue.field = flexform_mdCol4
在splitChar
处注意已更改的40
,以便可以按原样使用管道字符。