2016-10-31 1 views
0

Je travaille sur le wiki où chaque élément a sa propre page et ses moyens d'acquérir répertoriés commepages de listes ayant une seule valeur de la propriété à valeurs multiples

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

La propriété Is acquired a défini le type text.

Ma question principale est: Comment puis-je afficher une liste des éléments ayant affecté un seul moyen de les acquérir (par exemple, une valeur de propriété Is acquired)?

secondaire est: Comment lister ces éléments, qui ont une seule façon de les acquérir et cette façon contient un texte spécifique?

J'ai lu Extension:Arrays et aussi la documentation Count format et Subqueries, mais je n'arrive pas à comprendre comment tout mettre ensemble.

S'il vous plaît noter que, de préférence, je voudrais éviter d'utiliser Extension:Arrays, si elle est possible, comme cela est actuellement pas pris en charge par wiki je travaille.

Répondre

1

Je crois qu'il n'y a aucun moyen dans SMW pour filtrer sur le nombre de valeurs de propriété, donc vous devriez utiliser Extension:Arrays ici.

Introduire une nouvelle propriété qui sera utilisée comme drapeau, par ex. Is only one way avec les valeurs Yes/No. Sur vos pages (contenant Is acquired propriétés) ajouter un code comme celui-ci en bas:

{{#arraydefine:test_arr|{{#show: {{PAGENAME}}|?Is acquired}}|,}} 
{{#ifeq:{{#arraysize:test_arr}}|1|[[Is only one way::Yes]]|[[Is only one way::NO]]}} 

De cette façon, toutes vos pages contiennent une propriété Is only one way avec des valeurs Yes ou No vous pouvez filtrer sur elle:

{{#ask: [[Is acquired::+]] [[Is only one way::Yes]] }} 

Vous donnera des pages avec une seule valeur définie pour la propriété Is acquired.

+0

merci bon monsieur! :) – FurloSK