Finished calendar block
This commit is contained in:
@@ -17,14 +17,14 @@
|
||||
<form id="acp_portal_links" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_PORTAL_MENU_LINK}</legend>
|
||||
<legend>{L_ACP_PORTAL_EVENTS}</legend>
|
||||
<dl>
|
||||
<dt><label for="event_title">{L_EVENT_TITLE}:</label></dt>
|
||||
<dd><input name="event_title" type="text" id="event_title" value="{EVENT_TITLE}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="event_desc">{L_EVENT_DESC}:</label></dt>
|
||||
<dd><input name="event_desc" type="text" id="event_desc" value="{EVENT_TITLE}" maxlength="255" /></dd>
|
||||
<dd><input name="event_desc" type="text" id="event_desc" value="{EVENT_DESC}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
@@ -72,8 +72,8 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="permission-setting">{L_ACP_PORTAL_MENU_PERMISSION}:</label><br />
|
||||
<span>{L_ACP_PORTAL_MENU_PERMISSION_EXP}</span>
|
||||
<label for="permission-setting">{L_ACP_PORTAL_CALENDAR_PERMISSION}:</label><br />
|
||||
<span>{L_ACP_PORTAL_CALENDAR_PERMISSION_EXP}</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<select id="permission-setting" size="10" multiple="multiple" name="permission-setting[]">
|
||||
@@ -109,9 +109,27 @@
|
||||
</dl>
|
||||
</fieldset>
|
||||
<!-- ENDIF -->
|
||||
<!-- BEGIN options -->
|
||||
<!-- IF options.S_LEGEND -->
|
||||
<!-- IF not options.S_FIRST_ROW -->
|
||||
</fieldset>
|
||||
<!-- ENDIF -->
|
||||
<fieldset>
|
||||
<legend>{options.LEGEND}</legend>
|
||||
<!-- ELSE -->
|
||||
|
||||
<dl>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{options.CONTENT}</dd>
|
||||
</dl>
|
||||
|
||||
<!-- ENDIF -->
|
||||
<!-- END options -->
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_PORTAL_EVENTS}</legend>
|
||||
<fieldset class="tabulated">
|
||||
<legend>{L_ACP_PORTAL_CALENDAR}</legend>
|
||||
|
||||
<p class="quick">
|
||||
<input class="button2" name="add" type="submit" value="{L_ADD_LINK}" />
|
||||
@@ -132,7 +150,7 @@
|
||||
<!-- IF events.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
|
||||
<td style="text-align: center;">{events.EVENT_TITLE}</td>
|
||||
<td style="text-align: center;">{events.EVENT_DESC}</td>
|
||||
<td style="text-align: center;"><!-- IF events.EVENT_END -->{L_EVENT_START}: {events.EVENT_START} | {L_EVENT_END}: {events.EVENT_END}<!-- ELSE -->{L_EVENT_TIME}: {events.EVENT_START}<!-- ENDIF --></td>
|
||||
<td style="text-align: center;"><!-- IF events.EVENT_END -->{L_EVENT_START}: {events.EVENT_START} | {L_EVENT_END}: {events.EVENT_END}<!-- ELSE -->{L_EVENT_TIME}: {events.EVENT_START}<!-- IF events.EVENT_ALL_DAY --> | {L_EVENT_ALL_DAY}<!-- ENDIF --><!-- ENDIF --></td>
|
||||
<td style="text-align: center;">{events.LINK_URL}</td>
|
||||
<td style="text-align: center;">
|
||||
<a href="{events.U_EDIT}">{ICON_EDIT}</a> <a href="{events.U_DELETE}">{ICON_DELETE}</a>
|
||||
@@ -151,6 +169,7 @@
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
@@ -88,14 +88,15 @@ $lang = array_merge($lang, array(
|
||||
// ACP
|
||||
'ACP_PORTAL_CALENDAR' => 'Calendar settings',
|
||||
'ACP_PORTAL_CALENDAR_EXP' => 'This is where you customize the calendar block.',
|
||||
'ACP_PORTAL_EVENTS' => 'Calendar events',
|
||||
'PORTAL_CALENDAR_TODAY_COLOR' => 'Active day color',
|
||||
'PORTAL_CALENDAR_TODAY_COLOR_EXPLAIN' => 'HEX or named colors are allowed such as #FFFFFF for white, or color names like violet.',
|
||||
'PORTAL_CALENDAR_TODAY_COLOR_EXP' => 'HEX or named colors are allowed such as #FFFFFF for white, or color names like violet.',
|
||||
'PORTAL_CALENDAR_SUNDAY_COLOR' => 'Color for sunday',
|
||||
'PORTAL_CALENDAR_SUNDAY_COLOR_EXPLAIN' => 'HEX or named colors are allowed such as #FFFFFF for white, or color names like violet.',
|
||||
'PORTAL_CALENDAR_SUNDAY_COLOR_EXP' => 'HEX or named colors are allowed such as #FFFFFF for white, or color names like violet.',
|
||||
'PORTAL_LONG_MONTH' => 'Show full month names',
|
||||
'PORTAL_LONG_MONTH_EXPLAIN' => 'If disabled the months will be shortened e.g. Aug. instead of August.',
|
||||
'PORTAL_LONG_MONTH_EXP' => 'If disabled the months will be shortened e.g. Aug. instead of August.',
|
||||
'PORTAL_SUNDAY_FIRST' => 'First day of the week',
|
||||
'PORTAL_SUNDAY_FIRST_EXPLAIN' => 'If disabled the calendar will show Mo. --> Su., else Su. --> Sa.',
|
||||
'PORTAL_SUNDAY_FIRST_EXP' => 'If disabled the calendar will show Mo. --> Su., else Su. --> Sa.',
|
||||
'PORTAL_DISPLAY_EVENTS' => 'Display events',
|
||||
'PORTAL_DISPLAY_EVENTS_EXP' => 'Display events that have been created in the calendar block',
|
||||
'PORTAL_EVENTS_MANAGE' => 'Manage events',
|
||||
@@ -121,6 +122,8 @@ $lang = array_merge($lang, array(
|
||||
'ACP_PORTAL_EVENT_END_TIME' => 'Event end time',
|
||||
'ACP_PORTAL_EVENT_END_TIME_EXP' => 'Enter the time when the event starts. The time has to be in a 24 hour format, i.e. 23:12',
|
||||
'ACP_PORTAL_CALENDAR_EVENT_START_FIRST' => 'The end of the event has to be after the start of the event.',
|
||||
'ACP_PORTAL_CALENDAR_PERMISSION' => 'Event permissions',
|
||||
'ACP_PORTAL_CALENDAR_PERMISSION_EXP' => 'Select the groups that should be authorized to view the event. If you want all users to be able to view the event, don´t select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
|
||||
|
||||
|
||||
// Logs
|
||||
|
||||
@@ -167,15 +167,6 @@ class portal_calendar_module
|
||||
*/
|
||||
$events = $this->utf_unserialize($portal_config['board3_calendar_events_' . $module_id]);
|
||||
|
||||
/*
|
||||
* this is what the events array should look like
|
||||
$events[0] = array(
|
||||
'title' => '',
|
||||
'desc' => '',
|
||||
'start_time' => '',
|
||||
'end_time' => '',
|
||||
'url' => '', // optional
|
||||
);*/
|
||||
if(!empty($events))
|
||||
{
|
||||
// we sort the $events array by the start time
|
||||
@@ -307,7 +298,7 @@ class portal_calendar_module
|
||||
$event_end_day = trim(request_var('event_end_day', ''));
|
||||
$event_end_time = trim(request_var('event_end_time', ''));
|
||||
$event_all_day = request_var('event_all_day', false); // default to false
|
||||
$event_url = str_replace('&', '&', request_var('event_url', ' ')); // @todo: check if we need the str_replace when using serialize
|
||||
$event_url = request_var('event_url', ' '); // @todo: check if we need the str_replace when using serialize
|
||||
$event_permission = request_var('permission-setting', array(0 => ''));
|
||||
$groups_ary = array();
|
||||
|
||||
@@ -317,23 +308,37 @@ class portal_calendar_module
|
||||
*/
|
||||
if(strlen($event_start_day) < 9 || strlen($event_start_day) > 10 || strlen($event_start_time) < 4 || strlen($event_start_time) > 5)
|
||||
{
|
||||
echo 'what';
|
||||
trigger_error($user->lang['ACP_PORTAL_CALENDAR_START_INCORRECT']. adm_back_link($u_action), E_USER_WARNING);
|
||||
}
|
||||
elseif((strlen($event_end_day) < 9 || strlen($event_end_day) > 10 || strlen($event_end_time) < 4 || strlen($event_end_time) > 5) && !$event_all_day)
|
||||
{
|
||||
trigger_error($user->lang['ACP_PORTAL_CALENDAR_END_INCORRECT']. adm_back_link($u_action), E_USER_WARNING);
|
||||
}
|
||||
$start_year = (int) substr($event_start_day, 0, 4);
|
||||
$start_month = (int) substr($event_start_day, 5, 2);
|
||||
$start_day = (int) substr($event_start_day, 8, 2);
|
||||
$start_hour = (int) substr($event_start_time, 0, 2);
|
||||
$start_minute = (int) substr($event_start_time, 3, 2);
|
||||
$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);
|
||||
// Now get the needed numbers out of the entered information
|
||||
$first_start_hyphen = strpos($event_start_day, '-', 0);
|
||||
$second_start_hyphen = strpos($event_start_day, '-', $first_start_hyphen + 1);
|
||||
$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_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_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);
|
||||
|
||||
if(!$event_all_day)
|
||||
{
|
||||
$first_end_hyphen = strpos($event_end_day, '-', 0);
|
||||
$second_end_hyphen = strpos($event_end_day, '-', $first_end_hyphen + 1);
|
||||
$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);
|
||||
}
|
||||
|
||||
// UNIX timestamps
|
||||
$start_time = mktime($start_hour, $start_minute, 0, $start_month, $start_day, $start_year);
|
||||
@@ -380,23 +385,13 @@ class portal_calendar_module
|
||||
$events[$link_id] = array(
|
||||
'title' => $event_title,
|
||||
'desc' => $event_desc,
|
||||
'start_time' => $event_start,
|
||||
'end_time' => $event_end,
|
||||
'start_time' => $start_time,
|
||||
'end_time' => $end_time,
|
||||
'permission' => $event_permission,
|
||||
'url' => htmlspecialchars_decode($event_url),
|
||||
);
|
||||
/*
|
||||
* this is what the events array should look like
|
||||
$events[0] = array(
|
||||
'title' => '',
|
||||
'desc' => '',
|
||||
'start_time' => '',
|
||||
'end_time' => '',
|
||||
'permission' => '',
|
||||
'url' => '', // optional
|
||||
);*/
|
||||
|
||||
add_log('admin', 'LOG_PORTAL_EVENT_UPDATED', $link_title);
|
||||
add_log('admin', 'LOG_PORTAL_EVENT_UPDATED', $event_title);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -413,6 +408,12 @@ class portal_calendar_module
|
||||
add_log('admin', 'LOG_PORTAL_EVENT_ADDED', $event_title);
|
||||
}
|
||||
|
||||
// we sort the $events array by the start time
|
||||
foreach($events as $key => $cur_event)
|
||||
{
|
||||
$time_ary[$key] = $cur_event['start_time'];
|
||||
}
|
||||
array_multisort($time_ary, SORT_NUMERIC, $events);
|
||||
$board3_events_array = serialize($events);
|
||||
set_portal_config('board3_calendar_events_' . $module_id, $board3_events_array);
|
||||
|
||||
@@ -454,8 +455,14 @@ class portal_calendar_module
|
||||
case 'edit':
|
||||
case 'add':
|
||||
$template->assign_vars(array(
|
||||
'EVENT_TITLE' => (isset($events[$link_id]['title']) && $action != 'add') ? $events[$link_id]['title'] : '',
|
||||
'LINK_URL' => (isset($events[$link_id]['url']) && $action != 'add') ? str_replace('&', '&', $events[$link_id]['url']) : '',
|
||||
'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' => ($events[$link_id]['start_time'] - $events[$link_id]['end_time']) ? true : false,
|
||||
'EVENT_URL' => (isset($events[$link_id]['url']) && $action != 'add') ? $events[$link_id]['url'] : '',
|
||||
|
||||
//'U_BACK' => $u_action,
|
||||
'U_ACTION' => $u_action . '&id=' . $link_id,
|
||||
@@ -492,7 +499,7 @@ class portal_calendar_module
|
||||
'EVENT_DESC' => ($action != 'add') ? $events[$i]['desc'] : '',
|
||||
'EVENT_URL' => ($action != 'add') ? str_replace('&', '&', $events[$i]['url']) : '',
|
||||
'EVENT_START' => ($action != 'add') ? $user->format_date($events[$i]['start_time'], 'j. M Y, H:i') : '',
|
||||
'EVENT_END' => ($action != 'add' && ($events[$i]['end_time'] - $events[$i]['start_time']) != 1) ? $user->format_date($events[$i]['end_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') : '',
|
||||
'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,
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<span style="font-weight: bold;">{upcoming_events.EVENT_TITLE}:</span><br />
|
||||
<!-- IF not upcoming_events.ALL_DAY and not upcoming_events.END_TIME -->{L_EVENT_TIME}: {upcoming_events.START_TIME}<br />
|
||||
<!-- ELSEIF not upcoming_events.ALL_DAY and upcoming_events.END_TIME -->{L_EVENT_START}: {upcoming_events.START_TIME}<br />{L_EVENT_END}: {upcoming_events.END_TIME}<br />
|
||||
<!-- ELSE -->{L_EVENT_ALL_DAY}<br />
|
||||
<!-- ELSE -->{L_EVENT_TIME}: {upcoming_events.START_TIME}<br />{L_EVENT_ALL_DAY}<br />
|
||||
<!-- ENDIF -->
|
||||
<!-- IF upcoming_events.EVENT_DESC --><span style="font-style: italic;">{upcoming_events.EVENT_DESC}</span><!-- ENDIF -->
|
||||
<!-- IF upcoming_events.EVENT_URL --></a><!-- ENDIF -->
|
||||
|
||||
Reference in New Issue
Block a user