Extension:SimpleCalendar

From MediaWiki.org
(Redirected from Extension:Simple Calendar)
Jump to: navigation, search
MediaWiki extensions manual
Crystal Clear action run.png
Simple Calendar

Release status: stable

SimpleCalendar.png
Implementation Parser function
Description Provides a very simple calendar extension which renders a table of all the months in the year with each day being a wiki article.
Author(s) Aran Dunkley (Nadtalk)
Latest version 1.3.0 (2015-06-22)
MediaWiki all versions
License GPL
Download see SimpleCalendar.php for latest version

Translate the SimpleCalendar extension if it is available at translatewiki.net

Check usage and version matrix; code metrics

Introduction[edit | edit source]

This is a very simple calendar extension which renders a table of all the months in the year with each day being a wiki article (see OrganicDesign:Calendar for example). Days which have nothing in them show up as a red link, clicking on it will create a new article as usual. It installs as a parser function, so the following syntax is used:

{{#calendar:}}

When used like this with no parameters, a calendar of all twelve months will be rendered with each day pointing to an article using the date as its title.

Note: in MediaWiki version 1.6.x you need to remove the # character from the syntax.

Installation[edit | edit source]

1. First download the extension:

  • Source code on github:
MediaWiki 1.25+: https://github.com/OrganicDesign/extensions/tree/master/MediaWiki/SimpleCalendar
Older MediaWiki versions: https://github.com/OrganicDesign/extensions/tree/MediaWiki-1.24/MediaWiki/SimpleCalendar
  • Download a copy of the extension from github (note this contains all the Organic Design extensions and you'll need to extract just the SimpleCalendar directory):
MediaWiki 1.25+: https://github.com/OrganicDesign/extensions/archive/master.zip
Older MediaWiki versions: https://github.com/OrganicDesign/extensions/archive/MediaWiki-1.24.zip

2. Clone or extract the SimpleCalendar folder into your wiki extensions folder.

3. Add the following code to your LocalSettings.php (at the bottom).

MediaWiki 1.25+:

wfLoadExtension( 'SimpleCalendar' );


Older versions:

require_once( "$IP/extensions/SimpleCalendar/SimpleCalendar.php" );

Parameters[edit | edit source]

There are a number of parameters which allow calendars for different specific purposes.

title: The name of the article which each day in a calendar table links to is by default the date, eg 27 Jan 2008. If you want to have different calendars for different purposes, then the title parameter will precede the names with a separating slash character, for example, setting title to "Harry" will cause the dates to format as Harry/27 Jan 2008.

year: This changes the year of the calendar table, the default if no year is specified is the current year.

month: If a month is supplied, then only a single month will be rendered instead of a table containing all twelve months.

query: This allows extra query-string information to be appended to the links for days which don't exist. The main use for this would be to allow some preloaded content in the newly created calendar articles. See examples below - the syntax looks a little strange because it has two equals characters in it.

format: The default date format for date-articles linked to from the days in the calendar tables is, eg. 2 February 1972, but can be adjusted by supplying a PHP date format in the format parameter. See PHP Manual - strftime for details about how to specify a date format.

dayformat: This sets the format of the titles of each day of the week at the top of the month tables. The default setting is M T W T F S S, but can be set to %a for abbreviated names in the current language such as Mon Tue..., or %A for full names in the current language.

Examples[edit | edit source]

Example calendar for the month of January 2007

Note: the examples above use the CURRENTUSER variable which is not installed by default. See Extension:MyVariables if you're interested in adding variables.

{{#calendar: title={{CURRENTUSER}} }}
{{#calendar: title={{CURRENTUSER}} | year=2001 }}
{{#calendar: year=2007 | month=jan | title={{CURRENTUSER}} }}


this example renders the May table for the current year

{{#calendar: month=05 }}


this example uses the new query parameter to pre-load the NewDay template article into newly created dates. It looks a little confusing, but what it's saying is: add "preload=template" to the link

{{#calendar: query=preload=Template:NewDay }}

CSS Styles[edit | edit source]

The extension installs its own CSS which formats the tables as shown in the example images. You can add new rules to adjust the tables to your own needs. The default CSS that it installs is as follows.

table.calendar       { margin: 0; padding: 10px; }
table.calendar td    { margin: 0; padding: 2px; vertical-align: top; }
table.calendar th    { padding: 2px; background-color: #ddd; color: #666; text-align: center; font-size: 120%; font-weight: bold; border: none; }
table.month          { border: 2px solid #ccc; }
table.month .dow th  { color: #aaa; text-align: center; font-size: 110%; }
table.month td.today { background-color:#ddd; }
table.month td {
	border: none;
	margin: 0;
	padding: 1pt 1.5pt;
	font-weight: bold;
	font-size: 8pt;
	text-align: right;
	background-color: #eee;
	}
table.month td.day-active a { color: #217A28; }
table.month td.day-empty  a { color: #cc0000; }

Change history[edit | edit source]

  • Version 1.3.0 (2015-06-22): Uses the new Extension registration system for loading.
  • Version 1.2.11 (2015-06-19): Includes the default CSS in the extension now
  • Version 1.2.10 (2015-05-10): Fixed up lazy HTML and fixed default date format to work on Windows servers
  • Version 1.2.4 (2007-10-18): Don't die if generated title is invalid
  • Version 1.2.3 (2007-10-13): Use language settings for day and month names and add dayformat parameter
  • Version 1.2 (2007-05-03): Added format parameter.
  • Version 1.1 (2007-05-02): Changed to named parameters and added the query parameter. The style of the day-links are now handled by two new CSS classes, day-active and day-empty.