Difference between revisions of "Template:smwAsk CountPropertyRepetitionsOnSinglePage"

From TDWG Terms Wiki
Jump to: navigation, search
m (Layout)
Line 1: Line 1:
 
<noinclude>This template counts the number of separate values (repeated occurrences with values) of a single property on a single page.
 
<noinclude>This template counts the number of separate values (repeated occurrences with values) of a single property on a single page.
  
Parameters: Pagename, Propertyname
+
Parameters:  
: Test: using Pagename=dcterms:accessRights and Propertyname=skos:definition
+
* Pagename
: Result: {{smwAsk_CountPropertyRepetitionsOnSinglePage|Pagename=dcterms:accessRights|Propertyname=skos:definition}}
+
* Propertyname
 +
Test: using <div class="no-pre-border no-pre-margin">
 +
<nowiki>{{smwAsk_CountPropertyRepetitionsOnSinglePage | Pagename=dcterms:accessRights | Propertyname=skos:definition}}</nowiki>
 +
</div>
 +
Result: {{smwAsk_CountPropertyRepetitionsOnSinglePage|Pagename=dcterms:accessRights|Propertyname=skos:definition}}
 
: (at time of writing, the correct result was "4")
 
: (at time of writing, the correct result was "4")
  
Line 9: Line 13:
  
 
[[Category: SMW ask template]]
 
[[Category: SMW ask template]]
</noinclude>{{
+
</noinclude><includeonly>{{
 
#expr:{{#len:{{#ask: [[{{{Pagename}}}]] [[{{{Propertyname}}}::+]]
 
#expr:{{#len:{{#ask: [[{{{Pagename}}}]] [[{{{Propertyname}}}::+]]
 
| ?{{{Propertyname}}} #-
 
| ?{{{Propertyname}}} #-
Line 25: Line 29:
 
| limit=500
 
| limit=500
 
}}}}
 
}}}}
}}
+
}}</includeonly>

Revision as of 08:45, 16 October 2012

This template counts the number of separate values (repeated occurrences with values) of a single property on a single page.

Parameters:

  • Pagename
  • Propertyname
Test: using
{{smwAsk_CountPropertyRepetitionsOnSinglePage | Pagename=dcterms:accessRights | Propertyname=skos:definition}}

Result: 4

(at time of writing, the correct result was "4")

Problem: with list, ol, ul, the separator sep= used for multiple values of a single property on a single page. However, no template can be called for each value, the template is called only once per page (original ideas was to use a template). Since we know due to the ask query that all property values are from a single page, we measure the string length once with a 1-char separator, then a 2-char separator, and calculate the difference.