将TYPO3网站从TYPO3 4.5更新到TYPO3 8.7后,有必要重新集成EXT:solr的前端(因为更改为Fluid模板)。
我必须显示将showInPreview设置为1或2的新闻记录的第一张与FAL相关的图像tx_news_domain_model.fal_media
。
plugin.tx_solr.index.queue.news.fields.
的实际解决方案... 会检索每张图像并将其限制为一个。但这还不够,因为我需要where=showinpreview=1
image_stringS = TEXT
image_stringS {
value = /typo3conf/ext/theme/Resources/Public/Images/solrImageDummy.gif
override.cObject = FILES
override.cObject {
references {
table = tx_news_domain_model_news
uid.data = field:uid
fieldName = fal_media
}
begin = 0
maxItems = 1
renderObj = IMG_RESOURCE
renderObj {
file {
import.dataWrap = {file:current:storage}:{file:current:identifier}
width = 50c
height = 50c
}
stdWrap.wrap = /|
}
}
}
答案 0 :(得分:0)
如果您不希望更改文件的顺序,则可以使用sorting
来获取开始时感兴趣的文件。
否则,您需要省略maxItems
并可能限制文件的数量。
然后,您可以通过一些简单的renderObj
在.stdWrap.if
中进行过滤,哪些文件应该位于流体数组中。
由于没有流体(您想将其送给solr),因此可以使用一个技巧:
如果您有一个数组,则可以将所有相关信息呈现为一个字符串,但是需要一个唯一的分隔符(可以为stdWrap.wrap = /|##!!##
)
然后将其拆分为仅使用第一个条目。
override.cObject {
:
stdWrap.split {
token = ##!!##
## we need only the first, but does indexing start with 0 or 1?
## and will 0 be recognized?
returnKey = 0
}
}
也许您需要这个:
override.cObject {
stdWrap.split {
:
cObjNum {
# render first entry
1 = TEXT
1.current = 1
# ignore all further entries
}
}
}