0

还有我和这个 Typoscript...

Project 常量中可能定义了 companyId,如果有 XML 则应过滤到它。

[$plugin.xml_path.companyId = '']
  plugin.xml_xpath.conf.xpath.path   = /jobs/job/company
[else]
  plugin.xml_xpath.conf.xpath.path   = /jobs/job/company[@id={$plugin.xml_path.companyId}]
[global]

只要定义了 ID,此代码就可以工作,如果没有定义,我会得到一个仅带有标记的输出。

该公司有大约 10 个子公司,应该只显示与其相关的职位。但是在母公司的页面上(没有给出 ID 常数)应该列出所有工作。每个工作都与 1 个子公司相关。

我已经阅读过,stdWrap.ifEmpty但我不知道这对我的情况有何帮助?

有人可以指出我正确的方向吗?

4

2 回答 2

0

你不需要那个if,你可以在一个小的 XPath 表达式中完成所有这些。

/jobs/job/company[@id={$plugin.xml_path.companyId} or @id="" or not(@id)]

解释:

  1. @id={$plugin.xml_path.companyId}寻找具有匹配 ID 的公司
  2. @id=""查找 ID 为空的公司
  3. not(@id)寻找没有身份证的公司

我不确定2和3,所以我把两者都包括在内。根据需要删除。


更新到更具体的问题:

这也很容易做到。

/jobs/job/company[{$plugin.xml_path.companyId}="" or @id={$plugin.xml_path.companyId}]
于 2013-01-15T10:30:12.230 回答
0

请尝试以下排版:

plugin.xml_xpath.conf.xpath.path   = /jobs/job/company[@id={$plugin.xml_path.companyId}]
[globalVar = LIT: {$plugin.xml_xpath.conf.xpath.path} = ]
plugin.xml_xpath.conf.xpath.path   = /jobs/job/company
[end]

如果“plugin.xml_xpath.conf.xpath.path”为空,则路径将替换为“/jobs/job/company”。

于 2013-01-15T11:46:53.323 回答