|
|
|
|
@@ -157,7 +157,7 @@ class portal_calendar_module
|
|
|
|
|
*/
|
|
|
|
|
$events = $this->utf_unserialize($portal_config['board3_calendar_events_' . $module_id]);
|
|
|
|
|
|
|
|
|
|
if(!empty($events))
|
|
|
|
|
if(!empty($events) && $config['board3_display_events_' . $module_id])
|
|
|
|
|
{
|
|
|
|
|
// we sort the $events array by the start time
|
|
|
|
|
foreach($events as $key => $cur_event)
|
|
|
|
|
@@ -168,18 +168,18 @@ class portal_calendar_module
|
|
|
|
|
|
|
|
|
|
foreach($events as $key => $cur_event)
|
|
|
|
|
{
|
|
|
|
|
if($cur_event['start_time'] >= $today_timestamp || $cur_event['end_time'] >= $today_timestamp)
|
|
|
|
|
if($cur_event['start_time'] >= time() || ($cur_event['end_time'] + $user->timezone + $user->dst) >= time() || (($cur_event['start_time'] + 86400) >= $today_timestamp && $cur_event['all_day']))
|
|
|
|
|
{
|
|
|
|
|
// current events
|
|
|
|
|
if(($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] <= $cur_event['start_time']) || ($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] >= $today_timestamp))
|
|
|
|
|
if((($cur_event['start_time'] + 86400) >= time() && $cur_event['all_day']) || ($cur_event['start_time'] <= time() && ($cur_event['end_time'] + $user->timezone + $user->dst) >= time()))
|
|
|
|
|
{
|
|
|
|
|
$template->assign_block_vars('cur_events', array(
|
|
|
|
|
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url(str_replace('&', '&', $cur_event['url'])) : '',
|
|
|
|
|
'EVENT_TITLE' => $cur_event['title'],
|
|
|
|
|
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
|
|
|
|
|
'END_TIME' => $user->format_date($cur_event['end_time'], 'j. M Y, H:i'),
|
|
|
|
|
'END_TIME' => (!empty($cur_event['end_time'])) ? $user->format_date($cur_event['end_time'], 'j. M Y, H:i') : false,
|
|
|
|
|
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
|
|
|
|
|
'ALL_DAY' => (($cur_event['start_time'] - $cur_event['end_time']) == 1) ? true : false,
|
|
|
|
|
'ALL_DAY' => ($cur_event['all_day']) ? true : false,
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
@@ -187,7 +187,6 @@ class portal_calendar_module
|
|
|
|
|
$template->assign_block_vars('upcoming_events', array(
|
|
|
|
|
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url(str_replace('&', '&', $cur_event['url'])) : '',
|
|
|
|
|
'EVENT_TITLE' => $cur_event['title'],
|
|
|
|
|
'CUR_EVENT' => ($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] >= $today_timestamp) ? true : false,
|
|
|
|
|
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
|
|
|
|
|
'END_TIME' => $user->format_date($cur_event['end_time'], 'j. M Y, H:i'),
|
|
|
|
|
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
|
|
|
|
|
@@ -296,7 +295,7 @@ class portal_calendar_module
|
|
|
|
|
* parse the event time
|
|
|
|
|
* first check for obvious errors, we don't want to waste server resources
|
|
|
|
|
*/
|
|
|
|
|
if(strlen($event_start_day) < 9 || strlen($event_start_day) > 10 || strlen($event_start_time) < 4 || strlen($event_start_time) > 5)
|
|
|
|
|
if(strlen($event_start_day) < 9 || strlen($event_start_day) > 10 || (strlen($event_start_time) < 4 && !$event_all_day) || strlen($event_start_time) > 5)
|
|
|
|
|
{
|
|
|
|
|
trigger_error($user->lang['ACP_PORTAL_CALENDAR_START_INCORRECT']. adm_back_link($u_action), E_USER_WARNING);
|
|
|
|
|
}
|
|
|
|
|
@@ -310,9 +309,9 @@ class portal_calendar_module
|
|
|
|
|
$start_colon_pos = strpos($event_start_time, ':', 0);
|
|
|
|
|
$start_day_length = strlen($event_start_day);
|
|
|
|
|
$start_time_length = strlen($event_start_time);
|
|
|
|
|
$start_year = (int) substr($event_start_day, 0, $first_start_hyphen);
|
|
|
|
|
$start_day = (int) substr($event_start_day, 0, $first_start_hyphen);
|
|
|
|
|
$start_month = (int) substr($event_start_day, $first_start_hyphen + 1, ($second_start_hyphen - $first_start_hyphen - 1));
|
|
|
|
|
$start_day = (int) substr($event_start_day, $second_start_hyphen + 1, $start_day_length - $second_start_hyphen);
|
|
|
|
|
$start_year = (int) substr($event_start_day, $second_start_hyphen + 1, $start_day_length - $second_start_hyphen);
|
|
|
|
|
$start_hour = (int) substr($event_start_time, 0, $start_colon_pos);
|
|
|
|
|
$start_minute = (int) substr($event_start_time, $start_colon_pos + 1, ($start_time_length - $start_colon_pos) - 1);
|
|
|
|
|
|
|
|
|
|
@@ -323,17 +322,18 @@ class portal_calendar_module
|
|
|
|
|
$end_colon_pos = strpos($event_end_time, ':', 0);
|
|
|
|
|
$end_day_length = strlen($event_end_day);
|
|
|
|
|
$end_time_length = strlen($event_end_time);
|
|
|
|
|
$end_year = (int) substr($event_end_day, 0, 4);
|
|
|
|
|
$end_month = (int) substr($event_end_day, 5, 2);
|
|
|
|
|
$end_day = (int) substr($event_end_day, 8, 2);
|
|
|
|
|
$end_hour = (int) substr($event_end_time, 0, 2);
|
|
|
|
|
$end_minute = (int) substr($event_end_time, 3, 2);
|
|
|
|
|
$end_day = (int) substr($event_end_day, 0, $first_end_hyphen);
|
|
|
|
|
$end_month = (int) substr($event_end_day, $first_end_hyphen + 1, ($second_end_hyphen - $first_end_hyphen - 1));
|
|
|
|
|
$end_year = (int) substr($event_end_day, $second_end_hyphen + 1, $end_day_length - $second_end_hyphen);
|
|
|
|
|
$end_hour = (int) substr($event_end_time, 0, $end_colon_pos);
|
|
|
|
|
$end_minute = (int) substr($event_end_time, $end_colon_pos + 1, ($end_time_length - $end_colon_pos) - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// UNIX timestamps
|
|
|
|
|
$start_time = mktime($start_hour, $start_minute, 0, $start_month, $start_day, $start_year);
|
|
|
|
|
$end_time = (!$event_all_day) ? mktime($end_hour, $end_minute, 0, $end_month, $end_day, $end_year) : ($start_time - 1);
|
|
|
|
|
if($start_time <= time())
|
|
|
|
|
$start_time = mktime($start_hour, $start_minute, 0, $start_month, $start_day, $start_year) - $user->timezone - $user->dst;
|
|
|
|
|
$end_time = (!$event_all_day) ? mktime($end_hour, $end_minute, 0, $end_month, $end_day, $end_year) - $user->timezone - $user->dst : '';
|
|
|
|
|
|
|
|
|
|
if(($end_time + $user->timezone + $user->dst) <= time() && !(($start_time + 86400) >= time() && $event_all_day))
|
|
|
|
|
{
|
|
|
|
|
trigger_error($user->lang['ACP_PORTAL_CALENDAR_EVENT_PAST']. adm_back_link($u_action), E_USER_WARNING);
|
|
|
|
|
}
|
|
|
|
|
@@ -377,6 +377,7 @@ class portal_calendar_module
|
|
|
|
|
'desc' => $event_desc,
|
|
|
|
|
'start_time' => $start_time,
|
|
|
|
|
'end_time' => $end_time,
|
|
|
|
|
'all_day' => $event_all_day,
|
|
|
|
|
'permission' => $event_permission,
|
|
|
|
|
'url' => htmlspecialchars_decode($event_url),
|
|
|
|
|
);
|
|
|
|
|
@@ -392,6 +393,7 @@ class portal_calendar_module
|
|
|
|
|
'desc' => $event_desc,
|
|
|
|
|
'start_time' => $start_time,
|
|
|
|
|
'end_time' => $end_time,
|
|
|
|
|
'all_day' => $event_all_day,
|
|
|
|
|
'permission' => $event_permission,
|
|
|
|
|
'url' => $event_url, // optional
|
|
|
|
|
);
|
|
|
|
|
@@ -444,14 +446,16 @@ class portal_calendar_module
|
|
|
|
|
// Edit or add menu item
|
|
|
|
|
case 'edit':
|
|
|
|
|
case 'add':
|
|
|
|
|
$event_all_day = (isset($events[$link_id]['all_day']) && $events[$link_id]['all_day'] == true) ? true : false;
|
|
|
|
|
|
|
|
|
|
$template->assign_vars(array(
|
|
|
|
|
'EVENT_TITLE' => (isset($events[$link_id]['title']) && $action != 'add') ? $events[$link_id]['title'] : '',
|
|
|
|
|
'EVENT_DESC' => (isset($events[$link_id]['desc']) && $action != 'add') ? $events[$link_id]['desc'] : '',
|
|
|
|
|
'EVENT_START_DAY' => ($action != 'add') ? $user->format_date($events[$link_id]['start_time'], 'Y-m-d') : '',
|
|
|
|
|
'EVENT_START_TIME' => ($action != 'add') ? $user->format_date($events[$link_id]['start_time'], 'G:i') : '',
|
|
|
|
|
'EVENT_END_DAY' => ($action != 'add' && ($events[$link_id]['start_time'] - $events[$link_id]['end_time']) != true) ? $user->format_date($events[$link_id]['end_time'], 'Y-m-d') : '',
|
|
|
|
|
'EVENT_END_TIME' => ($action != 'add' && ($events[$link_id]['start_time'] - $events[$link_id]['end_time']) != true) ? $user->format_date($events[$link_id]['end_time'], 'G:i') : '',
|
|
|
|
|
'EVENT_ALL_DAY' => (isset($events[$link_id]['start_time']) && ($events[$link_id]['start_time'] - $events[$link_id]['end_time'])) ? true : false,
|
|
|
|
|
'EVENT_START_DAY' => ($action != 'add') ? $user->format_date($events[$link_id]['start_time'] + $user->timezone + $user->dst, 'd-m-Y') : '',
|
|
|
|
|
'EVENT_START_TIME' => ($action != 'add') ? $user->format_date($events[$link_id]['start_time'] + $user->timezone + $user->dst, 'G:i') : '',
|
|
|
|
|
'EVENT_END_DAY' => ($action != 'add' && !$event_all_day) ? $user->format_date($events[$link_id]['end_time'] + $user->timezone + $user->dst, 'd-m-Y') : '',
|
|
|
|
|
'EVENT_END_TIME' => ($action != 'add' && !$event_all_day) ? $user->format_date($events[$link_id]['end_time'] + $user->timezone + $user->dst, 'G:i') : '',
|
|
|
|
|
'EVENT_ALL_DAY' => (isset($events[$link_id]['all_day']) && $events[$link_id]['all_day'] == true) ? true : false,
|
|
|
|
|
'EVENT_URL' => (isset($events[$link_id]['url']) && $action != 'add') ? $events[$link_id]['url'] : '',
|
|
|
|
|
|
|
|
|
|
//'U_BACK' => $u_action,
|
|
|
|
|
@@ -484,15 +488,19 @@ class portal_calendar_module
|
|
|
|
|
|
|
|
|
|
for ($i = 0; $i < sizeof($events); $i++)
|
|
|
|
|
{
|
|
|
|
|
$event_all_day = ($events[$i]['all_day'] == true) ? true : false;
|
|
|
|
|
$start_time_format = (!intval($user->format_date($events[$i]['start_time'] + $user->timezone + $user->dst, 'H')) && !intval($user->format_date($events[$i]['start_time'] + $user->timezone + $user->dst, 'i'))) ? 'j. M Y' : 'j. M Y, H:i';
|
|
|
|
|
$end_time_format = (!intval($user->format_date($events[$i]['end_time'] + $user->timezone + $user->dst, 'H')) && !intval($user->format_date($events[$i]['end_time'] + $user->timezone + $user->dst, 'i'))) ? 'j. M Y' : 'j. M Y, H:i';
|
|
|
|
|
|
|
|
|
|
$template->assign_block_vars('events', array(
|
|
|
|
|
'EVENT_TITLE' => ($action != 'add') ? ((isset($user->lang[$events[$i]['title']])) ? $user->lang[$events[$i]['title']] : $events[$i]['title']) : '',
|
|
|
|
|
'EVENT_DESC' => ($action != 'add') ? $events[$i]['desc'] : '',
|
|
|
|
|
'EVENT_START' => ($action != 'add') ? $user->format_date($events[$i]['start_time'], 'j. M Y, H:i') : '',
|
|
|
|
|
'EVENT_END' => ($action != 'add' && ($events[$i]['start_time'] - $events[$i]['end_time']) != 1) ? $user->format_date($events[$i]['end_time'], 'j. M Y, H:i') : '',
|
|
|
|
|
'EVENT_START' => ($action != 'add') ? $user->format_date($events[$i]['start_time'] + $user->timezone + $user->dst, $start_time_format) : '',
|
|
|
|
|
'EVENT_END' => ($action != 'add' && !$event_all_day) ? $user->format_date($events[$i]['end_time'] + $user->timezone + $user->dst, $end_time_format) : '',
|
|
|
|
|
'EVENT_URL' => ($action != 'add' && isset($events[$i]['url']) && !empty($events[$i]['url'])) ? str_replace('&', '&', $events[$i]['url']) : '',
|
|
|
|
|
'U_EDIT' => $u_action . '&action=edit&id=' . $i,
|
|
|
|
|
'U_DELETE' => $u_action . '&action=delete&id=' . $i,
|
|
|
|
|
'EVENT_ALL_DAY' => ($events[$i]['end_time'] - $events[$i]['start_time']) ? true : false,
|
|
|
|
|
'EVENT_ALL_DAY' => $event_all_day,
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|