Help:Calendar format

From semantic-mediawiki.org
Help:Calendar formatCalendar format/zh-hans
Calendar format
Displays time-associated pages on a calendar
Scenarios, examples, demos
Example: Calendar
Further Information
Provided by: Extension "Semantic Result Formats"
Added: 1.4.0
Removed: still supported
Requirements: none
Format name: calendar
Enabled? Indicates whether the result format is enabled by default upon installation of the respective extension. yes
Authors: Yaron Koren
Categories: time
Table of Contents

The result format calendar, part of the Extension "Semantic Result Formats" extension, can be used to display pages that have an associated time, for example events, on a calendar.

Starting with Semantic Result Formats 1.8 the eventcalendar format was introduced as a further alternative.

Parameters[edit]

Format specific
Parameter Type Default Description
lang text no The code for the language in which to display the calendar
template text empty The name of a template with which to display the printouts
userparam text empty A value passed into each template call, if a template is used
color text empty The color to mark calendar entries
colors text empty The color to display for each date property (example: "Start date=>green,End date=>#09c")
startmonth text 3 The month, the calendar display is initialized with (defaults to current month)
startyear text 2024 The year, the calendar display is initialized with (defaults to current year)

NoteNote:  Starting with Semantic Result Formats 2.2 this format also allows to specify a particular year and month to be shown on initial display. Thus the "startmonth" and "startyear" parameters were introduced which default to the current month and year if not specified.[1]

Usage[edit]

A query in calendar format should be called in the following way:

{{#ask:
  [[Category:Events]]
  [[Has date::>{{#calendarstartdate:}}]]
  [[Has date::<{{#calendarenddate:}}]]
  |? Has date
  |format=calendar
}}

...in other words, the date property being queried against should also be used to filter dates: #calendarstartdate and #calendarenddate will return the first and last date (actually, the day after the last date), respectively, for any specific month. This is done so that only those dates that are within the current month, instead of all of them, are passed in to be displayed by the calendar.

Some notes on creating such queries:

  • Make sure to include the colon, ':', in the #calendarstartdate and #calendarenddate parser function calls; otherwise, they won't work.
  • Don't worry that the comparison operators are '<' and '>' instead of '<=' and '>='; the return values of the parser functions are set so that this will not be an issue
  • You can also add a "sort=" parameter, like "sort=Has date", so that events within each day will be sorted according to the time they take place (assuming the "Has date" property in this case also includes a time value.)

Display options[edit]

You can set the color the entries are marked with by adding the color option in the query:

| color=red

Different colors for each set of events can be displayed by using Extension "Semantic Compound Queries".

The option template = <template name>, can be used to alter the display of a calendar item/event display:

| format=calendar
| template= ''<...>''

For more information about the template used, see the help page on the template format

As of SRF 1.6.0, you can also set the day of the week on which weeks begin (by default it's Sunday), across the entire wiki, by setting the variable $srfgFirstDayOfWeek in LocalSettings.php, after the inclusion of Semantic Result Formats. To change it to Monday, for instance, you would add the following, if using an English-language wiki:

$srfgFirstDayOfWeek = 'Monday';
NoteNote: The day has to be set in the language of the wiki. Depending on the language this value may also be capitalised, e.g. for German installations.

Changing the results limit[edit]

The default limit of results displayed by an inline query is 20. If you have more than 20 events in any month, you should add a 'limit=' parameter to the query, with a number greater than the maximum number you have. An example is:

{{#ask:
  [[Category:Events]]
  [[Has date::>{{#calendarstartdate:}}]]
  [[Has date::<{{#calendarenddate:}}]]
  |? Has date
  |format=calendar
  |limit=300
}}

If the number of events you have in any month is greater than 500, though, you will need to take a second step - add the following line to your LocalSettings.php file, after the inclusion of Semantic MediaWiki:

$smwgQMaxInlineLimit = 1000;
NoteNote: The value can be any number greater than the maximum number of events you have per month.

Example[edit]

  • News items displayed using the calendar format

See also[edit]

References
  1. See this pull request for further information.



This documentation page applies to all SMW versions from 1.6.0 to the most current version.
Other versions: 1.4.0 – 1.5.6       Other languages: defrzh-hans