Hey, one of our other devs added this to your software and I thought you guys might appreciate it. A number of people had wanted to put bi-weekly events on our calendar and up until now were unable.
I don't have anything handy to make a proper patch file, and the line numbers are only best guesses.
mods for 'includes/calendar.php'
--------------
in:
function get_events_by_date($day, $month, $year)
after lines 296 & 297:
$dom_startdate = $db->SQLDate('d', 'startdate');
$dom_date = $db->SQLDate('d', $date);
put:
// week of year
$woy_startdate = $db->SQLDate('W', 'startdate');
$woy_date = $db->SQLDate('W', $date);
----
then change the sql query on line 299 from:
$query = 'SELECT * FROM '.SQL_PREFIX."events\n"
."WHERE $date >= $startdate AND $date <= $enddate\n"
// find normal events
."AND (eventtype = 1 OR eventtype = 2 OR eventtype = 3 "
."OR eventtype = 4\n"
// find weekly events
."OR (eventtype = 5 AND $dow_startdate = $dow_date)\n"
// find monthly events
."OR (eventtype = 6 AND $dom_startdate = $dom_date)\n"
.")\n"
// in the current calendar
."AND calendar = '$calendar_name'\n"
."ORDER BY starttime";
to:
$query = 'SELECT * FROM '.SQL_PREFIX."events\n"
."WHERE $date >= $startdate AND $date <= $enddate\n"
// find normal events
."AND (eventtype = 1 OR eventtype = 2 OR eventtype = 3 "
."OR eventtype = 4\n"
// find weekly events
."OR (eventtype = 5 AND $dow_startdate = $dow_date)\n"
// find monthly events
."OR (eventtype = 6 AND $dom_startdate = $dom_date)\n"
.")\n"
// find bi-weekly events
."OR (eventtype = 7 AND $dow_startdate = $dow_date AND ($woy_startdate % 2) = ($woy_date % 2))\n"
// in the current calendar
."AND calendar = '$calendar_name'\n"
."ORDER BY starttime";
--------------
next, in 'includes/globals.php'
change line 73 from:
$event_types = array(
1 => _('Normal'),
_('Full Day'),
_('To Be Announced'),
_('No Time'),
_('Weekly'),
_('Monthly'),
);
to:
$event_types = array(
1 => _('Normal'),
_('Full Day'),
_('To Be Announced'),
_('No Time'),
_('Weekly'),
_('Monthly'),
_('Biweekly')
);
-------------