Difference between revisions of "Template:When"

From Organic Design wiki
(how to use #when with #dpl)
(#when code)
Line 1: Line 1:
 
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:
 
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:
<tt><nowiki>{{#when:2009/4/24}}</nowiki></tt> ''- best to do dates backwards like this otherwise it tries to use some weird American format''
+
:<tt><nowiki>{{#when:2009/4/24}}</nowiki></tt> ''- best to do dates backwards like this otherwise it tries to use some weird American format''
 +
:<tt><nowiki>{{#when:24 apr 2009}}</nowiki></tt>
 +
:<tt><nowiki>{{#when:24 apr, 4:30pm}}</nowiki></tt> ''- 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:
 +
:<tt><nowiki>{{#dpl:category=2006|category=April}}</nowiki></tt>
 +
The parser function which adds this is very simple consisting of the following code in the ''LocalSettings.php'' file.
 +
<php>
 +
$wgExtensionFunctions[]        = 'wfSetupWhen';
 +
$wgHooks['LanguageGetMagic'][] = 'wfWhenLanguageGetMagic';
  
<tt><nowiki>{{#when:24 apr 2009}}</nowiki></tt>
+
function wfSetupWhen() {
 +
        global $wgParser;
 +
        $wgParser->setFunctionHook('when','wfExpandWhen');
 +
        return true;
 +
        }
  
<tt><nowiki>{{#when:24 apr, 4:30pm}}</nowiki></tt> ''- current year is used here since not specified''
+
function wfExpandWhen(&$parser,$when) {
 
+
        $time = strtotime($when);
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:
+
        $cats = '';
 +
        foreach(array('T','A','d','B','Y') as $f) $cats .= '[[Category:'.strftime("%$f",$time).']]';
 +
        return $cats;
 +
        }
  
<tt><nowiki>{{#dpl:category=2006|category=April}}</nowiki></tt>
+
function wfWhenLanguageGetMagic(&$magicWords,$langCode = 0) {
 +
        $magicWords['when'] = array(0,'when');
 +
        return true;
 +
        }
 +
</php>

Revision as of 11:49, 25 April 2007

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 code in the LocalSettings.php file. <php> $wgExtensionFunctions[] = 'wfSetupWhen'; $wgHooks['LanguageGetMagic'][] = 'wfWhenLanguageGetMagic';

function wfSetupWhen() {

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

function wfExpandWhen(&$parser,$when) {

       $time = strtotime($when);
       $cats = ;
       foreach(array('T','A','d','B','Y') as $f) $cats .= ;
       return $cats;
       }

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

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

</php>