列表页面只有一个多值属性值

时间:2016-10-31 09:18:38

标签: semantic-mediawiki

我正在开发wiki,其中每个项目都有自己的页面,其获取方式列为

[[Is acquired::somewhere]]
[[Is acquired::somewhere else]]
[[Is acquired::some third acquisition way, really long one with some [[wiki]] links in it]]

属性Is acquired已定义类型text

我的主要问题是:如何显示仅指定了一种获取方式的项目列表(即一个Is acquired属性值)?

辅助是:如何列出那些只有一种获取方式的项目这种方式包含一些特定的文本?

我已阅读Extension:Arrays以及Count formatSubqueries文档,但我无法弄明白如何将所有内容放在一起。

请注意,最好我希望尽可能避免使用Extension:Arrays ,因为目前我不支持wiki。

1 个答案:

答案 0 :(得分:1)

我相信SMW无法过滤属性值的数量,所以你应该在这里使用Extension:Arrays

引入将用作标志的新属性,例如。值Is only one way / Yes的{​​{1}}。在您的网页上(包含No属性)在底部添加如下代码:

Is acquired

这样,您的所有网页都会包含值为{{#arraydefine:test_arr|{{#show: {{PAGENAME}}|?Is acquired}}|,}} {{#ifeq:{{#arraysize:test_arr}}|1|[[Is only one way::Yes]]|[[Is only one way::NO]]}} Is only one way的属性Yes,因此您可以对其进行过滤:

No

将为您提供仅为{{#ask: [[Is acquired::+]] [[Is only one way::Yes]] }} 属性设置一个值的网页。