Magic words & parser functions link
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 | taking an ask query returning the editors of a page as input, returns the page creator or editors of a given page, and the the affiliated organization for each of them, passing to the function a pattern like "created by [name], affiliated to [organization]" |
CI_subpages | returns the list of sub-pages ("kids" only) of a given page within only 1 depth level, without duplicates |
CI_format_title | returns the actual page title given a path; e.g. "Presepe /1" from "Centro Italiano Barcellona/Posts/Presepe /1" |
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 | wiki-text unordered list with links, in the form [[complete path|page name]] followed by the real name of page creator or editor, and the affiliated organization | list, delimiter, kind of output (ul or comma separated values), pattern with editor and related organization, and "fallback" pattern (optionally) |
CI_subpages | wiki-text unordered list with links, in the form [[/kid page title]] | none |
CI_format_title | raw text | complete page title |
Examples
CI_editors_attribution
{{#CI_editors_attribution: {{#ask: [[Category:Reading suggestions]] |format=array |?Page creator |?Creation date |limit=5 |sep=## }}|##|ul|created by [name], affiliated to [[[organization]]]| by [name] }}
will create the following list:
- Alì Ehsani - Stanotte guardiamo le stelle - by
- Giacomo Scotti, Mario Licciardi - Non si trova cioccolata - by
- Raymond Queneau - Fiori Blu - by
- Viviano Domenici - A cena con i cannibali. Taccuino di un giornalista esploratore - by
- Yambo (Enrico de’ Conti Novelli da Bertinoro) - L'allevatore di dinosauri ovvero L'uovo di pterodattilo - by
Where it can be noted the following:
- 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
- the used separator symbol (## in the example, but could be something else) of the items returned by the ask query shall be provided to the CI_editors_attribution function as 2nd parameter, in order to separate items using the same symbol
- the last 2 parameters of CI_editors_attribution function are the pattern to be used to format results and, the "fallback" pattern": the fallback pattern will be used if a value within squared brackets cannot be found/replaced.
- the replacement value in the pattern is wrapped by single square brackets (i.e. [name] or [organization], at present), in the query [organization] is wrapped with 2 additional brackets in order to create a (wiki) link
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.