SemanticMediawiki Extensions
From HackerspaceWiki
Note: this does not work with SMW 1.5.3 or later.
Add weekdayofmonth unit to recurring events[edit]
Explanation[edit]
Instead of having events only recur on specific dates of a month, (i.e. every 6th), this code allows to have them recur on every xth Weekday of a month. (i.e. every first Saturday)
Acceptance into SMW repository is pending.
Code[edit]
Index: SMW_ParserExtensions.php
===================================================================
--- SMW_ParserExtensions.php (revision 63234)
+++ SMW_ParserExtensions.php (working copy)
@@ -416,6 +416,14 @@
$date_str = "$cur_year-$cur_month-$cur_day $cur_time";
$cur_date = SMWDataValueFactory::newTypeIDValue('_dat', $date_str);
$cur_date_jd = $cur_date->getNumericValue();
+ } elseif($unit == 'xofmonth') {
+ $check_month = $cur_date->getMonth();
+ $cur_date_jd += 28 * $period;
+ $cur_date = SMWDataValueFactory::newTypeIDValue('_dat', $cur_date_jd);
+ if ($cur_date->getMonth() != (($check_month + $period) % 12 )){
+ $cur_date_jd += 7; // add another week
+ $cur_date = SMWDataValueFactory::newTypeIDValue('_dat', $cur_date_jd);
+ }
} else { // $unit == 'day' or 'week'
// assume 'day' if it's none of the above
$cur_date_jd += ($unit === 'week') ? 7 * $period : $period;
Example[edit]
Contact[edit]
--Kwisatz 22:12, 9 March 2010 (UTC)