我有一个问题,是否有人知道如何jh_opengraphprotocol
扩展程序显示tt_news
的第一张图片显示为<meta property="og:image" ...>
?
我尝试过很少的东西,现在我不得不将自定义图像值传递给该扩展程序。
从当前显示tt_news(TypoScript设置)获取第一张图片:
lib.tt_news_image = CONTENT
lib.tt_news_image {
stdWrap.if.isTrue.data = GP:tx_ttnews|tt_news
table = tt_news
select {
pidInList = 20
recursive = 2
where = CHAR_LENGTH(image) > 0
andWhere.cObject = TEXT
andWhere.cObject {
data = GP:tx_ttnews|tt_news
intval = 1
wrap = uid = |
}
}
renderObj = TEXT
renderObj {
field = image
split {
token = ,
cObjNum = 1
max = 1
1.cObject = IMG_RESOURCE
1.cObject {
file {
import = uploads/pics/
import.current = 1
width = 200m
height = 200m
}
stdWrap.wrap = {TSFE:baseUrl}|
stdWrap.insertData = 1
}
}
}
}
这很好用。在FE中显示此值时,我会获得一个很好的URL来调整文件大小 - GREAT!
现在我希望将该值传递给扩展,这里遇到了一些问题。下面很少尝试......
#1 plugin.tx_jhopengraphprotocol.image = lib.tt_news_image
失败 - 没有任何反应,因为plugin.tx_jhopengraphprotocol.image
是常量
#2
经过一番挖掘后,我发现插件正在将USER
对象加载到page.669
中,如下所示:
config.htmlTag_setParams := appendString(xmlns:og="http://ogp.me/ns#")
includeLibs.tx_jhopengraphprotocol = EXT:jh_opengraphprotocol/Classes/Service/OgRendererService.php
temp.tx_jhopengraphprotocol = USER
temp.tx_jhopengraphprotocol {
userFunc = Heilmann\JhOpengraphprotocol\Service\OgRendererService->main
type = {$plugin.tx_jhopengraphprotocol.type}
image = {$plugin.tx_jhopengraphprotocol.image}
sitename = {$plugin.tx_jhopengraphprotocol.sitename}
description = {$plugin.tx_jhopengraphprotocol.description}
}
page.669 < temp.tx_jhopengraphprotocol
所以我试过page.669.image = lib.tt_news_image
这是......
失败我收到了<meta property="og:image" content="http://domainname/lib.tt_news_image"/>
有人可以指导我如何正确地将lib.tt_news_image
值加载到page.669.image
吗?我认为这与USER
类型有某种关系,参数(image
,type
,...)不是由Typo引擎解释的,但我不知道如何克服它
我的一般问题是将第一个图片路径加载到og:image
元标记,因此任何其他解决方案(不修复此代码或其他任何内容都非常受欢迎)。
谢谢!