Parser Functions: Difference between revisions

From SemanticOrganization
Jump to: navigation, search
Line 57: Line 57:
|-
|-
|<code><nowiki>{{#semorg-list:group}}</nowiki></code>
|<code><nowiki>{{#semorg-list:group}}</nowiki></code>
|{{#semorg-list:group}}
|{{#semorg-list:group|row template=test|?semorg-group-host.semorg-person-email=email}}
|}
|}


Line 79: Line 79:
|row template
|row template
|The parser function constructs a query that calls a template for every row. The default value is the same as the name of the feature. The actual name of the template called should be <code>semorg-<row template>-row</code>. You'll have to provide it on your own if you want to replace the default.
|The parser function constructs a query that calls a template for every row. The default value is the same as the name of the feature. The actual name of the template called should be <code>semorg-<row template>-row</code>. You'll have to provide it on your own if you want to replace the default.
|-
|query
|You can add additional query conditions using Semantic MediaWiki's syntax. For example, if you would like to list only active groups, just add <code><nowiki>query=[[semorg-group-active::true]]</nowiki></code>.
|-
|?<field-name>
|By default, the parser function queries all fields that are defined for the feature and passes them on to the row template as [Help:Template_format#Usage_for_template_arguments.3D.5Bnamed.7Clegacy.5D_.28named_args.29 named args]. You can add custom lines to query for your custom fields or for chained properties. For example, if you would like to use the city of the group's host in the row template you could add <code><nowiki>|?semorg-group-host.semorg-person-email=email</nowiki></code>.
In order for this to work, you will need to use the <code>row template</code> parameter to call your custom template, where you can then use <code><nowiki>{{{?email|}}}</nowiki></code> to get the value. You can customize the headers if you also create a <code><nowiki>semorg-list-<row template>-headers</nowiki></code> system message. If a message of that name doesn't exist, the default <code><nowiki>semorg-list-<feature>-headers</nowiki></code> message will be used.
|-
|sort, order, default, limit
|These are the standard parameters for <code><nowiki>{{#ask}}</nowiki></code> queries.
|}
|}



Revision as of 17:11, 11 December 2018

#semorg-person

called like this (preferably via template):

{{#semorg-person:
 |ref={{FULLPAGENAME}}
 |prefix={{{prefix|}}}
 |firstname={{{firstname|}}}
 |lastname={{{lastname|}}}
 |name={{{firstname|}}} {{{lastname|}}}
 |suffix={{{suffix|}}}
 |workstreet={{{workstreet|}}}
 |workpostalcode={{{workpostalcode|}}}
 |worklocality={{{worklocality|}}}
 |email={{{email|}}}
 |workphone={{{workphone|}}}
 |homepage={{{homepage|}}}
 |note={{{note|}}}
 |organization={{{organization|}}}
 |gender={{{gender|}}}
}}

sets all the attributes and spits out a nicely formatted table with all the contact information and also a download link for a .vcard file

#semorg-person-ref

#semorg-form

#semorg-field

#semorg-fields

#semorg-field-rows

#semorg-set

#semorg-set-list

#semorg-table

#semorg-subobject

#semorg-network

#semorg-cooperation

#semorg-circles

#semorg-toggle

#semorg-list

This parser function is used to show lists of pages belonging to a certain category.

Markup Result
{{#semorg-list:group}}
NameHostMembers
Former Group this group isn't active any more John Doe
Testgroup describing the group John Doe john.doe@acme.com Jane Doe
Testgroup 2 Group for testing purposes Jane Doe Jane Doe, John Doe
Groups/1 Jane Doe John Doe, Jane Doe
Groups/2 Group's description Jane Doe Ad Min
Former Group
inactive
this group isn't active any more
Testgroup
describing the group
Testgroup 2
Group for testing purposes
Testing numbered group names
Testing numbered groups
Group's description

The following system messages control the appearance of the list:

Message Function
semorg-list-<feature>-headers Should contain a list of message keys that contain the texts for the table headers. For the example above the content of semorg-list-group-headers is “group-name, group-description, group-host, group-members“. The elements of the list should have the general form of <feature>-<field>. The list is used to reference another set of messages following the naming convention semorg-field-<feature>-<field>-name. So semorg-field-group-name-name is used to populate the heading of the first column in the example above.

The following parameters are available:

Parameter Description
category The default category is the content of semorg-<feature>-category. If you want to use a different category, you can overwrite the default using this parameter.
row template The parser function constructs a query that calls a template for every row. The default value is the same as the name of the feature. The actual name of the template called should be semorg-<row template>-row. You'll have to provide it on your own if you want to replace the default.
query You can add additional query conditions using Semantic MediaWiki's syntax. For example, if you would like to list only active groups, just add query=[[semorg-group-active::true]].
?<field-name> By default, the parser function queries all fields that are defined for the feature and passes them on to the row template as [Help:Template_format#Usage_for_template_arguments.3D.5Bnamed.7Clegacy.5D_.28named_args.29 named args]. You can add custom lines to query for your custom fields or for chained properties. For example, if you would like to use the city of the group's host in the row template you could add |?semorg-group-host.semorg-person-email=email.

In order for this to work, you will need to use the row template parameter to call your custom template, where you can then use {{{?email|}}} to get the value. You can customize the headers if you also create a semorg-list-<row template>-headers system message. If a message of that name doesn't exist, the default semorg-list-<feature>-headers message will be used.

sort, order, default, limit These are the standard parameters for {{#ask}} queries.

#semorg-user-create

#semorg-formlink

#semorg-forminput

#semorg-meetings