我正在开发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 format和Subqueries文档,但我无法弄明白如何将所有内容放在一起。
请注意,最好我希望尽可能避免使用Extension:Arrays
,因为目前我不支持wiki。
答案 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]] }}
属性设置一个值的网页。