如果变量为空,则回退

时间:2017-04-05 15:14:36

标签: typo3 typoscript

我有一个typoscript IMG_RESOURCE变量,用页面属性中的图像填充url。如果没有找到资源,我希望它回退到某个默认值。 但我无法弄清楚如何在typoscript中做到这一点。这就是我所拥有的:

plugin.metaseo.metaTags.opengraph.image = COA
plugin.metaseo.metaTags.opengraph.image {
    10 = TEXT
    10.if.isFalse.data = lib.opengraphimage
    10.data = lib.opengraphimage
    10.wrap = |

    20 = TEXT
    20.if.isTrue.data = lib.opengraphimage
    20.data = FALLBACK IN HERE
    20.wrap = |
}

lib.opengraphimage是IMG_RESOURCE。这不起作用。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

尝试这样的事情(未经测试):

plugin.metaseo.metaTags.opengraph.image = COA
plugin.metaseo.metaTags.opengraph.image {
    10 = IMAGE
    10.file = fileadmin/path-to-yout-image
    10.override.if.isTrue.data = lib.opengraphimage.file
    10.wrap = <meta property="og:image" content="|">
}

https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Image/Index.html

答案 1 :(得分:0)

我认为你的同意

  *.data = lib.opengraphimage

不正确。正如你所说lib.opengraphimage是一个IMG_RESOURCE,一个typoscript对象,你不能用这种方式将它分配给stdWrap属性(数据)。

.data与字段或变量一起使用。

您可能希望以类似

的方式使用它
 *.if.isTrue.cObject < lib.opengraphimage

以这种方式复制并评估lib.opengraphimage的typoscript定义。

请注意Heinz Schilling试图向您展示的优化:

  • 使用stdWrap.override而不是COA,两个替代品,每个都有.if wrap
  • 您可能不需要整个IMG_RESOURCE但只需要使用的文件来决定使用哪种变体