Magic words & parser functions

From Redazione
Jump to navigation Jump to search
Line 136: Line 136:
 
}}|##|ul}}
 
}}|##|ul}}
  
to be noted that both "Page creator" and "Creation date" properties are required, because the parser functions check the affiliation of the page creator within a given time-frame.
+
 
 +
to be noted that both "Page creator" and "Creation date" properties are required, because the parser function checks the affiliation of the page creator within a given time-frame.
  
 
Also, the output produced by the ask query will be a list of page titles separated by the character '##' with the requested properties separated by the '<PROP>' key-word, and the "CI_editors_attribution" parser function will then format it in an unordered list using the same string '##' as divider.
 
Also, the output produced by the ask query will be a list of page titles separated by the character '##' with the requested properties separated by the '<PROP>' key-word, and the "CI_editors_attribution" parser function will then format it in an unordered list using the same string '##' as divider.

Revision as of 11:01, 5 September 2020

Magic words and Parser functions are a way to empower the wiki text (the specific language through which pages of all wikis are written, thus one can also use Visual editor where available) with some programmatic feature, for instance the ability to add the current date to a page (which will update during subsequent access) or to trigger whatever other function available in the wiki on the server side. They are both completely comparable to templates, with the difference that the second ones are always called with a parameter, and that the logics behind them is not placed within a template or module (so that it can be accessed on the wiki) but is coded server side.

Here is a list of the additional magic words provided by our platform (as usual they are prefixed with the string "CI_" to distinguish them easily from other Mediawiki magic words and parser functions)

name what it does
CI_userAffiliatedTo shows the organization to which the logged in user is affiliated
CI_userRealName shows the real name of logged in user (by contrast to the username)
CI_isSysop returns 1 if the logged in user is an admin ("sysop")
CI_loggedIn returns 1 if the page's visitor is logged in
CI_visitorIsoCode returns the iso code of country of the visitor
CI_visitorCountry returns the country name of the visitor


and parser functions:

name what it does
CI_editors_realnames returns the real names from a list of usernames
CI_editors_attribution returns the string "edited by [real name], affiliated to [organization name]" from an ask query returning editors of a page
CI_noparse_isHTML prevents Mediawiki from html encoding output


Instructions of use

Magic words

name return value example result
CI_userAffiliatedTo logged in user affiliation {{CI_userAffiliatedTo}}
CI_userRealName logged in user real name {{CI_userRealName}}
CI_isSysop whether the logged in user is an administrator or not {{CI_isSysop}}
CI_loggedIn whether the user is logged in or not {{CI_loggedIn}}
CI_visitorIsoCode country code of user (based on the ip) {{CI_visitorIsoCode}} US
CI_visitorCountry country of user (based on the ip) {{CI_visitorCountry}} United States


Parser functions

function return value parameter
CI_editors_realnames comma separated real names list
CI_editors_attribution wikicode with links, in the form [[complete path|page name]] followed by a string in the form "created by [editor real name] affiliated to [editor affiliation] list, delimiter, kind of output (ul or comma separated values)

Examples

CI_editors_attribution

{{#CI_editors_attribution: {{#ask:
[[Category:Reading suggestions]]
|format=array
|?Page creator
|?Creation date
|sep=##
}}|##|ul}}

will create the following list:


to be noted that both "Page creator" and "Creation date" properties are required, because the parser function checks the affiliation of the page creator within a given time-frame.

Also, the output produced by the ask query will be a list of page titles separated by the character '##' with the requested properties separated by the '<PROP>' key-word, and the "CI_editors_attribution" parser function will then format it in an unordered list using the same string '##' as divider.



CI_editors_realnames

{{#CI_editors_realnames: {{#ask: 
[[{{PAGENAME}}]] 
|?Page creator
|?Page author
|format=array
|mainlabel=-
|sep=##
}}
}}

will produce the following output:



Likewise as above, the output produced by the ask query, will be a list of usernames separated by the key-word '<MANY>', with properties separated by the '<PROP>' key-word, and the "CI_editors_attribution" parser function will retrieve the related real names and will concatenate them by commas.