Template:When

From Organic Design wiki
Revision as of 21:27, 26 April 2007 by Nad (talk | contribs)

This template is not actually used, the #when parser-function is used to add time information to articles. Just add a single parameter which can be arbitrarily formatted time information, for example:

{{#when:2009/4/24}} - best to do dates backwards like this otherwise it tries to use some weird American format
{{#when:24 apr 2009}}
{{#when:24 apr, 4:30pm}} - current year is used here since not specified

The function expands to a set of category links to categorise the article into year, month, day-of-month, full-weekday-name and time (24 hour HH:MM:SS format). Articles exhibiting time can then be matched with a DPL query, for example:

{{#dpl:category=2006|category=April}}

The parser function which adds this is very simple consisting of the following when.php code in the LocalSettings.php file. <php><?php

  1. Extension:WhenTemplate:Php
Info.svg These are the MediaWiki extensions we're using and/or developing. Please refer to the information on the mediawiki.org wiki for installation and usage details. Extensions here which have no corresponding mediawiki article are either not ready for use or have been superseded. You can also browse our extension code in our local Subversion repository or our GitHub mirror.
  1. - See http://www.mediawiki.org/Extension:When for installation and usage details
  2. - Started 2007-04-27
  3. - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
  4. - Author: http://www.organicdesign.co.nz/nad

if (!defined('MEDIAWIKI')) die('Not an entry point.');

define('WHEN_VERSION', '1.0.1, 2007-05-10');

$wgExtensionCredits['parserhook'][] = array( 'name' => 'When', 'author' => 'User:Nad', 'description' => 'adds a new parser function called #when which expands to easily queryable time categorisation', 'url' => 'http://www.mediawiki.org/wiki/Extension:When', 'version' => WHEN_VERSION );

$wgExtensionFunctions[] = 'wfSetupWhen'; $wgHooks['LanguageGetMagic'][] = 'wfWhenLanguageGetMagic';

function wfSetupWhen() {

       global $wgParser;
       $wgParser->setFunctionHook('when','wfExpandWhen');
       return true;
       }

function wfExpandWhen(&$parser,$when) {

       $time = strtotime($when);
       $cats = ;
       $formats = array('A','d','B','Y');
       if (ereg(':|[ap]m',$when)) array_unshift($formats,'T');
       foreach($formats as $f) $cats .= ;
       return $cats;
       }

function wfWhenLanguageGetMagic(&$magicWords,$langCode = 0) {

       $magicWords['when'] = array(0,'when');
       return true;
       }</php>