如何通过TypoScript获取tx_news关联标签页中的视频URL?
解决tx_news中获取YouTube媒体URL的TypoScript调整方案
你遇到的问题很典型:原来的代码是针对本地图片资源设计的,用了IMG_RESOURCE来处理图片的缩略图生成,但YouTube属于外部媒体资源,存储在FAL的sys_file表中type=3(外部文件),并没有本地文件可以生成缩略图,所以IMG_RESOURCE无法生效。
下面是修改后的TypoScript代码,专门用于获取关联的YouTube外部媒体URL:
page.headerData.87 > page.headerData.87 = COA page.headerData.87.1 = COA page.headerData.87.1.1 = TEXT page.headerData.87.1.1.value = <meta property="og:image" content="http://www.MyHomePage.com/ page.headerData.87.1.2 = COA page.headerData.87.1.2 { 5 = RECORDS 5 { dontCheckPid = 1 tables = tx_news_domain_model_news source.data = GP:tx_news_pi1|news source.intval = 1 conf.tx_news_domain_model_news = FILES conf.tx_news_domain_model_news { references { table = tx_news_domain_model_news fieldName = fal_media uid.field = uid // 可选:只筛选外部媒体(YouTube属于这类) where = sys_file.type = 3 } begin = 0 maxItems = 1 renderObj = TEXT renderObj { // 直接输出外部媒体的URL data = file:current:url // 如果需要确保URL是完整的,也可以用这个: // data = file:current:publicUrl } } } } page.headerData.87.1.3 = TEXT page.headerData.87.1.3.value = " />
关键修改点说明:
- 替换
renderObj类型:把原来的IMG_RESOURCE换成TEXT,因为外部媒体不需要生成图片资源,直接输出存储的URL即可。 - 使用正确的数据源:用
file:current:url或者file:current:publicUrl获取外部媒体的链接,这两个属性对于外部FAL文件来说,就是你添加的YouTube地址。 - 可选的筛选条件:在
references里添加where = sys_file.type = 3,可以确保只获取外部媒体类型的资源,避免和图片等其他媒体混淆。
如果你的需求是优先取图片,没有图片时取YouTube链接,可以进一步扩展代码,用if条件判断媒体类型,或者嵌套两个FILES调用(先取图片,再取外部媒体)。
内容的提问来源于stack exchange,提问作者student-uni
相关产品推荐
相关产品推荐

