@@ -40,16 +40,14 @@ discard block |
||
| 40 | 40 | ', template_show_upcoming_list('main'), ' |
| 41 | 41 | </div> |
| 42 | 42 | '; |
| 43 | - } |
|
| 44 | - elseif ($context['calendar_view'] == 'viewweek') |
|
| 43 | + } elseif ($context['calendar_view'] == 'viewweek') |
|
| 45 | 44 | { |
| 46 | 45 | echo ' |
| 47 | 46 | <div id="main_grid"> |
| 48 | 47 | ', template_show_week_grid('main'), ' |
| 49 | 48 | </div> |
| 50 | 49 | '; |
| 51 | - } |
|
| 52 | - else |
|
| 50 | + } else |
|
| 53 | 51 | { |
| 54 | 52 | echo ' |
| 55 | 53 | <div id="main_grid"> |
@@ -75,8 +73,9 @@ discard block |
||
| 75 | 73 | global $context, $scripturl, $txt; |
| 76 | 74 | |
| 77 | 75 | // Bail out if we have nothing to work with |
| 78 | - if (!isset($context['calendar_grid_' . $grid_name])) |
|
| 79 | - return false; |
|
| 76 | + if (!isset($context['calendar_grid_' . $grid_name])) { |
|
| 77 | + return false; |
|
| 78 | + } |
|
| 80 | 79 | |
| 81 | 80 | // Protect programmer sanity |
| 82 | 81 | $calendar_data = &$context['calendar_grid_' . $grid_name]; |
@@ -113,11 +112,13 @@ discard block |
||
| 113 | 112 | <li class="windowbg"> |
| 114 | 113 | <b class="event_title">', $event['link'], '</b>'; |
| 115 | 114 | |
| 116 | - if ($event['can_edit']) |
|
| 117 | - echo ' <a href="' . $event['modify_href'] . '"><span class="generic_icons calendar_modify" title="', $txt['calendar_edit'], '"></span></a>'; |
|
| 115 | + if ($event['can_edit']) { |
|
| 116 | + echo ' <a href="' . $event['modify_href'] . '"><span class="generic_icons calendar_modify" title="', $txt['calendar_edit'], '"></span></a>'; |
|
| 117 | + } |
|
| 118 | 118 | |
| 119 | - if ($event['can_export']) |
|
| 120 | - echo ' <a href="' . $event['export_href'] . '"><span class="generic_icons calendar_export" title="', $txt['calendar_export'], '"></span></a>'; |
|
| 119 | + if ($event['can_export']) { |
|
| 120 | + echo ' <a href="' . $event['export_href'] . '"><span class="generic_icons calendar_export" title="', $txt['calendar_export'], '"></span></a>'; |
|
| 121 | + } |
|
| 121 | 122 | |
| 122 | 123 | echo ' |
| 123 | 124 | <br>'; |
@@ -125,14 +126,14 @@ discard block |
||
| 125 | 126 | if (!empty($event['allday'])) |
| 126 | 127 | { |
| 127 | 128 | echo '<time datetime="' . $event['start_iso_gmdate'] . '">', trim($event['start_date_local']), '</time>', ($event['start_date'] != $event['end_date']) ? ' – <time datetime="' . $event['end_iso_gmdate'] . '">' . trim($event['end_date_local']) . '</time>' : ''; |
| 128 | - } |
|
| 129 | - else |
|
| 129 | + } else |
|
| 130 | 130 | { |
| 131 | 131 | // Display event info relative to user's local timezone |
| 132 | 132 | echo '<time datetime="' . $event['start_iso_gmdate'] . '">', trim($event['start_date_local']), ', ', trim($event['start_time_local']), '</time> – <time datetime="' . $event['end_iso_gmdate'] . '">'; |
| 133 | 133 | |
| 134 | - if ($event['start_date_local'] != $event['end_date_local']) |
|
| 135 | - echo trim($event['end_date_local']) . ', '; |
|
| 134 | + if ($event['start_date_local'] != $event['end_date_local']) { |
|
| 135 | + echo trim($event['end_date_local']) . ', '; |
|
| 136 | + } |
|
| 136 | 137 | |
| 137 | 138 | echo trim($event['end_time_local']); |
| 138 | 139 | |
@@ -141,23 +142,27 @@ discard block |
||
| 141 | 142 | { |
| 142 | 143 | echo '</time> (<time datetime="' . $event['start_iso_gmdate'] . '">'; |
| 143 | 144 | |
| 144 | - if ($event['start_date_orig'] != $event['start_date_local'] || $event['end_date_orig'] != $event['end_date_local'] || $event['start_date_orig'] != $event['end_date_orig']) |
|
| 145 | - echo trim($event['start_date_orig']), ', '; |
|
| 145 | + if ($event['start_date_orig'] != $event['start_date_local'] || $event['end_date_orig'] != $event['end_date_local'] || $event['start_date_orig'] != $event['end_date_orig']) { |
|
| 146 | + echo trim($event['start_date_orig']), ', '; |
|
| 147 | + } |
|
| 146 | 148 | |
| 147 | 149 | echo trim($event['start_time_orig']), '</time> – <time datetime="' . $event['end_iso_gmdate'] . '">'; |
| 148 | 150 | |
| 149 | - if ($event['start_date_orig'] != $event['end_date_orig']) |
|
| 150 | - echo trim($event['end_date_orig']) . ', '; |
|
| 151 | + if ($event['start_date_orig'] != $event['end_date_orig']) { |
|
| 152 | + echo trim($event['end_date_orig']) . ', '; |
|
| 153 | + } |
|
| 151 | 154 | |
| 152 | 155 | echo trim($event['end_time_orig']), ' ', $event['tz_abbrev'], '</time>)'; |
| 153 | 156 | } |
| 154 | 157 | // Event is scheduled in the user's own timezone? Let 'em know, just to avoid confusion |
| 155 | - else |
|
| 156 | - echo ' ', $event['tz_abbrev'], '</time>'; |
|
| 158 | + else { |
|
| 159 | + echo ' ', $event['tz_abbrev'], '</time>'; |
|
| 160 | + } |
|
| 157 | 161 | } |
| 158 | 162 | |
| 159 | - if (!empty($event['location'])) |
|
| 160 | - echo '<br>', $event['location']; |
|
| 163 | + if (!empty($event['location'])) { |
|
| 164 | + echo '<br>', $event['location']; |
|
| 165 | + } |
|
| 161 | 166 | |
| 162 | 167 | echo ' |
| 163 | 168 | </li>'; |
@@ -189,8 +194,9 @@ discard block |
||
| 189 | 194 | |
| 190 | 195 | $birthdays = array(); |
| 191 | 196 | |
| 192 | - foreach ($date as $member) |
|
| 193 | - $birthdays[] = '<a href="' . $scripturl . '?action=profile;u=' . $member['id'] . '">' . $member['name'] . (isset($member['age']) ? ' (' . $member['age'] . ')' : '') . '</a>'; |
|
| 197 | + foreach ($date as $member) { |
|
| 198 | + $birthdays[] = '<a href="' . $scripturl . '?action=profile;u=' . $member['id'] . '">' . $member['name'] . (isset($member['age']) ? ' (' . $member['age'] . ')' : '') . '</a>'; |
|
| 199 | + } |
|
| 194 | 200 | |
| 195 | 201 | echo implode(', ', $birthdays); |
| 196 | 202 | |
@@ -221,8 +227,9 @@ discard block |
||
| 221 | 227 | $date_local = $date['date_local']; |
| 222 | 228 | unset($date['date_local']); |
| 223 | 229 | |
| 224 | - foreach ($date as $holiday) |
|
| 225 | - $holidays[] = $holiday . ' (' . $date_local . ')'; |
|
| 230 | + foreach ($date as $holiday) { |
|
| 231 | + $holidays[] = $holiday . ' (' . $date_local . ')'; |
|
| 232 | + } |
|
| 226 | 233 | } |
| 227 | 234 | |
| 228 | 235 | echo implode(', ', $holidays); |
@@ -245,17 +252,19 @@ discard block |
||
| 245 | 252 | global $context, $txt, $scripturl, $modSettings; |
| 246 | 253 | |
| 247 | 254 | // If the grid doesn't exist, no point in proceeding. |
| 248 | - if (!isset($context['calendar_grid_' . $grid_name])) |
|
| 249 | - return false; |
|
| 255 | + if (!isset($context['calendar_grid_' . $grid_name])) { |
|
| 256 | + return false; |
|
| 257 | + } |
|
| 250 | 258 | |
| 251 | 259 | // A handy little pointer variable. |
| 252 | 260 | $calendar_data = &$context['calendar_grid_' . $grid_name]; |
| 253 | 261 | |
| 254 | 262 | // Some conditions for whether or not we should show the week links *here*. |
| 255 | - if (isset($calendar_data['show_week_links']) && ($calendar_data['show_week_links'] == 3 || (($calendar_data['show_week_links'] == 1 && $is_mini === true) || $calendar_data['show_week_links'] == 2 && $is_mini === false))) |
|
| 256 | - $show_week_links = true; |
|
| 257 | - else |
|
| 258 | - $show_week_links = false; |
|
| 263 | + if (isset($calendar_data['show_week_links']) && ($calendar_data['show_week_links'] == 3 || (($calendar_data['show_week_links'] == 1 && $is_mini === true) || $calendar_data['show_week_links'] == 2 && $is_mini === false))) { |
|
| 264 | + $show_week_links = true; |
|
| 265 | + } else { |
|
| 266 | + $show_week_links = false; |
|
| 267 | + } |
|
| 259 | 268 | |
| 260 | 269 | // Assuming that we've not disabled it, show the title block! |
| 261 | 270 | if (empty($calendar_data['disable_title'])) |
@@ -294,8 +303,9 @@ discard block |
||
| 294 | 303 | } |
| 295 | 304 | |
| 296 | 305 | // Show the controls on main grids |
| 297 | - if ($is_mini === false) |
|
| 298 | - template_calendar_top($calendar_data); |
|
| 306 | + if ($is_mini === false) { |
|
| 307 | + template_calendar_top($calendar_data); |
|
| 308 | + } |
|
| 299 | 309 | |
| 300 | 310 | // Finally, the main calendar table. |
| 301 | 311 | echo '<table class="calendar_table">'; |
@@ -306,8 +316,9 @@ discard block |
||
| 306 | 316 | echo '<tr>'; |
| 307 | 317 | |
| 308 | 318 | // If we're showing week links, there's an extra column ahead of the week links, so let's think ahead and be prepared! |
| 309 | - if ($show_week_links === true) |
|
| 310 | - echo '<th> </th>'; |
|
| 319 | + if ($show_week_links === true) { |
|
| 320 | + echo '<th> </th>'; |
|
| 321 | + } |
|
| 311 | 322 | |
| 312 | 323 | // Now, loop through each actual day of the week. |
| 313 | 324 | foreach ($calendar_data['week_days'] as $day) |
@@ -354,27 +365,29 @@ discard block |
||
| 354 | 365 | // Additional classes are given for events, holidays, and birthdays. |
| 355 | 366 | if (!empty($day['events']) && !empty($calendar_data['highlight']['events'])) |
| 356 | 367 | { |
| 357 | - if ($is_mini === true && in_array($calendar_data['highlight']['events'], array(1, 3))) |
|
| 358 | - $classes[] = 'events'; |
|
| 359 | - elseif ($is_mini === false && in_array($calendar_data['highlight']['events'], array(2, 3))) |
|
| 360 | - $classes[] = 'events'; |
|
| 368 | + if ($is_mini === true && in_array($calendar_data['highlight']['events'], array(1, 3))) { |
|
| 369 | + $classes[] = 'events'; |
|
| 370 | + } elseif ($is_mini === false && in_array($calendar_data['highlight']['events'], array(2, 3))) { |
|
| 371 | + $classes[] = 'events'; |
|
| 372 | + } |
|
| 361 | 373 | } |
| 362 | 374 | if (!empty($day['holidays']) && !empty($calendar_data['highlight']['holidays'])) |
| 363 | 375 | { |
| 364 | - if ($is_mini === true && in_array($calendar_data['highlight']['holidays'], array(1, 3))) |
|
| 365 | - $classes[] = 'holidays'; |
|
| 366 | - elseif ($is_mini === false && in_array($calendar_data['highlight']['holidays'], array(2, 3))) |
|
| 367 | - $classes[] = 'holidays'; |
|
| 376 | + if ($is_mini === true && in_array($calendar_data['highlight']['holidays'], array(1, 3))) { |
|
| 377 | + $classes[] = 'holidays'; |
|
| 378 | + } elseif ($is_mini === false && in_array($calendar_data['highlight']['holidays'], array(2, 3))) { |
|
| 379 | + $classes[] = 'holidays'; |
|
| 380 | + } |
|
| 368 | 381 | } |
| 369 | 382 | if (!empty($day['birthdays']) && !empty($calendar_data['highlight']['birthdays'])) |
| 370 | 383 | { |
| 371 | - if ($is_mini === true && in_array($calendar_data['highlight']['birthdays'], array(1, 3))) |
|
| 372 | - $classes[] = 'birthdays'; |
|
| 373 | - elseif ($is_mini === false && in_array($calendar_data['highlight']['birthdays'], array(2, 3))) |
|
| 374 | - $classes[] = 'birthdays'; |
|
| 384 | + if ($is_mini === true && in_array($calendar_data['highlight']['birthdays'], array(1, 3))) { |
|
| 385 | + $classes[] = 'birthdays'; |
|
| 386 | + } elseif ($is_mini === false && in_array($calendar_data['highlight']['birthdays'], array(2, 3))) { |
|
| 387 | + $classes[] = 'birthdays'; |
|
| 388 | + } |
|
| 375 | 389 | } |
| 376 | - } |
|
| 377 | - else |
|
| 390 | + } else |
|
| 378 | 391 | { |
| 379 | 392 | // Default Classes (either compact or comfortable and disabled). |
| 380 | 393 | $classes[] = !empty($calendar_data['size']) && $calendar_data['size'] == 'small' ? 'compact' : 'comfortable'; |
@@ -392,19 +405,21 @@ discard block |
||
| 392 | 405 | $title_prefix = !empty($day['is_first_of_month']) && $context['current_month'] == $calendar_data['current_month'] && $is_mini === false ? (!empty($calendar_data['short_month_titles']) ? $txt['months_short'][$calendar_data['current_month']] . ' ' : $txt['months_titles'][$calendar_data['current_month']] . ' ') : ''; |
| 393 | 406 | |
| 394 | 407 | // The actual day number - be it a link, or just plain old text! |
| 395 | - if (!empty($modSettings['cal_daysaslink']) && $context['can_post']) |
|
| 396 | - echo '<a href="', $scripturl, '?action=calendar;sa=post;year=', $calendar_data['current_year'], ';month=', $calendar_data['current_month'], ';day=', $day['day'], ';', $context['session_var'], '=', $context['session_id'], '"><span class="day_text">', $title_prefix, $day['day'], '</span></a>'; |
|
| 397 | - elseif ($is_mini) |
|
| 398 | - echo '<a href="', $scripturl, '?action=calendar;', $context['calendar_view'], ';year=', $calendar_data['current_year'], ';month=', $calendar_data['current_month'], ';day=', $day['day'], '"><span class="day_text">', $title_prefix, $day['day'], '</span></a>'; |
|
| 399 | - else |
|
| 400 | - echo '<span class="day_text">', $title_prefix, $day['day'], '</span>'; |
|
| 408 | + if (!empty($modSettings['cal_daysaslink']) && $context['can_post']) { |
|
| 409 | + echo '<a href="', $scripturl, '?action=calendar;sa=post;year=', $calendar_data['current_year'], ';month=', $calendar_data['current_month'], ';day=', $day['day'], ';', $context['session_var'], '=', $context['session_id'], '"><span class="day_text">', $title_prefix, $day['day'], '</span></a>'; |
|
| 410 | + } elseif ($is_mini) { |
|
| 411 | + echo '<a href="', $scripturl, '?action=calendar;', $context['calendar_view'], ';year=', $calendar_data['current_year'], ';month=', $calendar_data['current_month'], ';day=', $day['day'], '"><span class="day_text">', $title_prefix, $day['day'], '</span></a>'; |
|
| 412 | + } else { |
|
| 413 | + echo '<span class="day_text">', $title_prefix, $day['day'], '</span>'; |
|
| 414 | + } |
|
| 401 | 415 | |
| 402 | 416 | // A lot of stuff, we're not showing on mini-calendars to conserve space. |
| 403 | 417 | if ($is_mini === false) |
| 404 | 418 | { |
| 405 | 419 | // Holidays are always fun, let's show them! |
| 406 | - if (!empty($day['holidays'])) |
|
| 407 | - echo '<div class="smalltext holiday"><span>', $txt['calendar_prompt'], '</span> ', implode(', ', $day['holidays']), '</div>'; |
|
| 420 | + if (!empty($day['holidays'])) { |
|
| 421 | + echo '<div class="smalltext holiday"><span>', $txt['calendar_prompt'], '</span> ', implode(', ', $day['holidays']), '</div>'; |
|
| 422 | + } |
|
| 408 | 423 | |
| 409 | 424 | // Happy Birthday Dear, Member! |
| 410 | 425 | if (!empty($day['birthdays'])) |
@@ -422,14 +437,16 @@ discard block |
||
| 422 | 437 | echo '<a href="', $scripturl, '?action=profile;u=', $member['id'], '"><span class="fix_rtl_names">', $member['name'], '</span>', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] || ($count == 10 && $use_js_hide) ? '' : ', '; |
| 423 | 438 | |
| 424 | 439 | // 9...10! Let's stop there. |
| 425 | - if ($birthday_count == 10 && $use_js_hide) |
|
| 426 | - // !!TODO - Inline CSS and JavaScript should be moved. |
|
| 440 | + if ($birthday_count == 10 && $use_js_hide) { |
|
| 441 | + // !!TODO - Inline CSS and JavaScript should be moved. |
|
| 427 | 442 | echo '<span class="hidelink" id="bdhidelink_', $day['day'], '">...<br><a href="', $scripturl, '?action=calendar;month=', $calendar_data['current_month'], ';year=', $calendar_data['current_year'], ';showbd" onclick="document.getElementById(\'bdhide_', $day['day'], '\').style.display = \'\'; document.getElementById(\'bdhidelink_', $day['day'], '\').style.display = \'none\'; return false;">(', sprintf($txt['calendar_click_all'], count($day['birthdays'])), ')</a></span><span id="bdhide_', $day['day'], '" style="display: none;">, '; |
| 443 | + } |
|
| 428 | 444 | |
| 429 | 445 | ++$birthday_count; |
| 430 | 446 | } |
| 431 | - if ($use_js_hide) |
|
| 432 | - echo '</span>'; |
|
| 447 | + if ($use_js_hide) { |
|
| 448 | + echo '</span>'; |
|
| 449 | + } |
|
| 433 | 450 | |
| 434 | 451 | echo '</div>'; |
| 435 | 452 | } |
@@ -439,8 +456,9 @@ discard block |
||
| 439 | 456 | { |
| 440 | 457 | // Sort events by start time (all day events will be listed first) |
| 441 | 458 | uasort($day['events'], function($a, $b) { |
| 442 | - if ($a['start_timestamp'] == $b['start_timestamp']) |
|
| 443 | - return 0; |
|
| 459 | + if ($a['start_timestamp'] == $b['start_timestamp']) { |
|
| 460 | + return 0; |
|
| 461 | + } |
|
| 444 | 462 | return ($a['start_timestamp'] < $b['start_timestamp']) ? -1 : 1; |
| 445 | 463 | }); |
| 446 | 464 | |
@@ -456,17 +474,19 @@ discard block |
||
| 456 | 474 | |
| 457 | 475 | echo '<div class="event_wrapper', $event['starts_today'] == true ? ' event_starts_today' : '', $event['ends_today'] == true ? ' event_ends_today' : '', $event['allday'] == true ? ' allday' : '', $event['is_selected'] ? ' sel_event' : '', '">', $event['link'], '<br><span class="event_time', empty($event_icons_needed) ? ' floatright' : '', '">'; |
| 458 | 476 | |
| 459 | - if (!empty($event['start_time_local']) && $event['starts_today'] == true) |
|
| 460 | - echo trim(str_replace(':00 ', ' ', $event['start_time_local'])); |
|
| 461 | - elseif (!empty($event['end_time_local']) && $event['ends_today'] == true) |
|
| 462 | - echo strtolower($txt['ends']), ' ', trim(str_replace(':00 ', ' ', $event['end_time_local'])); |
|
| 463 | - elseif (!empty($event['allday'])) |
|
| 464 | - echo $txt['calendar_allday']; |
|
| 477 | + if (!empty($event['start_time_local']) && $event['starts_today'] == true) { |
|
| 478 | + echo trim(str_replace(':00 ', ' ', $event['start_time_local'])); |
|
| 479 | + } elseif (!empty($event['end_time_local']) && $event['ends_today'] == true) { |
|
| 480 | + echo strtolower($txt['ends']), ' ', trim(str_replace(':00 ', ' ', $event['end_time_local'])); |
|
| 481 | + } elseif (!empty($event['allday'])) { |
|
| 482 | + echo $txt['calendar_allday']; |
|
| 483 | + } |
|
| 465 | 484 | |
| 466 | 485 | echo '</span>'; |
| 467 | 486 | |
| 468 | - if (!empty($event['location'])) |
|
| 469 | - echo '<br><span class="event_location', empty($event_icons_needed) ? ' floatright' : '', '">' . $event['location'] . '</span>'; |
|
| 487 | + if (!empty($event['location'])) { |
|
| 488 | + echo '<br><span class="event_location', empty($event_icons_needed) ? ' floatright' : '', '">' . $event['location'] . '</span>'; |
|
| 489 | + } |
|
| 470 | 490 | |
| 471 | 491 | if ($event['can_edit'] || $event['can_export']) |
| 472 | 492 | { |
@@ -503,10 +523,11 @@ discard block |
||
| 503 | 523 | // Otherwise, assuming it's not a mini-calendar, we can show previous / next month days! |
| 504 | 524 | elseif ($is_mini === false) |
| 505 | 525 | { |
| 506 | - if (empty($current_month_started) && !empty($context['calendar_grid_prev'])) |
|
| 507 | - echo '<a href="', $scripturl, '?action=calendar;year=', $context['calendar_grid_prev']['current_year'], ';month=', $context['calendar_grid_prev']['current_month'], '">', $context['calendar_grid_prev']['last_of_month'] - $calendar_data['shift']-- +1, '</a>'; |
|
| 508 | - elseif (!empty($current_month_started) && !empty($context['calendar_grid_next'])) |
|
| 509 | - echo '<a href="', $scripturl, '?action=calendar;year=', $context['calendar_grid_next']['current_year'], ';month=', $context['calendar_grid_next']['current_month'], '">', $current_month_started + 1 == $count ? (!empty($calendar_data['short_month_titles']) ? $txt['months_short'][$context['calendar_grid_next']['current_month']] . ' ' : $txt['months_titles'][$context['calendar_grid_next']['current_month']] . ' ') : '', $final_count++, '</a>'; |
|
| 526 | + if (empty($current_month_started) && !empty($context['calendar_grid_prev'])) { |
|
| 527 | + echo '<a href="', $scripturl, '?action=calendar;year=', $context['calendar_grid_prev']['current_year'], ';month=', $context['calendar_grid_prev']['current_month'], '">', $context['calendar_grid_prev']['last_of_month'] - $calendar_data['shift']-- +1, '</a>'; |
|
| 528 | + } elseif (!empty($current_month_started) && !empty($context['calendar_grid_next'])) { |
|
| 529 | + echo '<a href="', $scripturl, '?action=calendar;year=', $context['calendar_grid_next']['current_year'], ';month=', $context['calendar_grid_next']['current_month'], '">', $current_month_started + 1 == $count ? (!empty($calendar_data['short_month_titles']) ? $txt['months_short'][$context['calendar_grid_next']['current_month']] . ' ' : $txt['months_titles'][$context['calendar_grid_next']['current_month']] . ' ') : '', $final_count++, '</a>'; |
|
| 530 | + } |
|
| 510 | 531 | } |
| 511 | 532 | |
| 512 | 533 | // Close this day and increase var count. |
@@ -532,8 +553,9 @@ discard block |
||
| 532 | 553 | global $context, $txt, $scripturl, $modSettings; |
| 533 | 554 | |
| 534 | 555 | // We might have no reason to proceed, if the variable isn't there. |
| 535 | - if (!isset($context['calendar_grid_' . $grid_name])) |
|
| 536 | - return false; |
|
| 556 | + if (!isset($context['calendar_grid_' . $grid_name])) { |
|
| 557 | + return false; |
|
| 558 | + } |
|
| 537 | 559 | |
| 538 | 560 | // Handy pointer. |
| 539 | 561 | $calendar_data = &$context['calendar_grid_' . $grid_name]; |
@@ -568,8 +590,9 @@ discard block |
||
| 568 | 590 | } |
| 569 | 591 | |
| 570 | 592 | // The Month Title + Week Number... |
| 571 | - if (!empty($calendar_data['week_title'])) |
|
| 572 | - echo $calendar_data['week_title']; |
|
| 593 | + if (!empty($calendar_data['week_title'])) { |
|
| 594 | + echo $calendar_data['week_title']; |
|
| 595 | + } |
|
| 573 | 596 | |
| 574 | 597 | echo ' |
| 575 | 598 | </h3> |
@@ -608,10 +631,11 @@ discard block |
||
| 608 | 631 | <tr class="days_wrapper"> |
| 609 | 632 | <td class="', implode(' ', $classes), ' act_day">'; |
| 610 | 633 | // Should the day number be a link? |
| 611 | - if (!empty($modSettings['cal_daysaslink']) && $context['can_post']) |
|
| 612 | - echo '<a href="', $scripturl, '?action=calendar;sa=post;month=', $month_data['current_month'], ';year=', $month_data['current_year'], ';day=', $day['day'], ';', $context['session_var'], '=', $context['session_id'], '">', $txt['days'][$day['day_of_week']], ' - ', $day['day'], '</a>'; |
|
| 613 | - else |
|
| 614 | - echo $txt['days'][$day['day_of_week']], ' - ', $day['day']; |
|
| 634 | + if (!empty($modSettings['cal_daysaslink']) && $context['can_post']) { |
|
| 635 | + echo '<a href="', $scripturl, '?action=calendar;sa=post;month=', $month_data['current_month'], ';year=', $month_data['current_year'], ';day=', $day['day'], ';', $context['session_var'], '=', $context['session_id'], '">', $txt['days'][$day['day_of_week']], ' - ', $day['day'], '</a>'; |
|
| 636 | + } else { |
|
| 637 | + echo $txt['days'][$day['day_of_week']], ' - ', $day['day']; |
|
| 638 | + } |
|
| 615 | 639 | |
| 616 | 640 | echo '</td> |
| 617 | 641 | <td class="', implode(' ', $classes), '', empty($day['events']) ? (' disabled' . ($context['can_post'] ? ' week_post' : '')) : ' events', ' event_col" data-css-prefix="' . $txt['events'] . ' ', (empty($day['events']) && empty($context['can_post'])) ? $txt['none'] : '', '">'; |
@@ -620,8 +644,9 @@ discard block |
||
| 620 | 644 | { |
| 621 | 645 | // Sort events by start time (all day events will be listed first) |
| 622 | 646 | uasort($day['events'], function($a, $b) { |
| 623 | - if ($a['start_timestamp'] == $b['start_timestamp']) |
|
| 624 | - return 0; |
|
| 647 | + if ($a['start_timestamp'] == $b['start_timestamp']) { |
|
| 648 | + return 0; |
|
| 649 | + } |
|
| 625 | 650 | return ($a['start_timestamp'] < $b['start_timestamp']) ? -1 : 1; |
| 626 | 651 | }); |
| 627 | 652 | |
@@ -633,15 +658,17 @@ discard block |
||
| 633 | 658 | |
| 634 | 659 | echo $event['link'], '<br><span class="event_time', empty($event_icons_needed) ? ' floatright' : '', '">'; |
| 635 | 660 | |
| 636 | - if (!empty($event['start_time_local'])) |
|
| 637 | - echo trim($event['start_time_local']), !empty($event['end_time_local']) ? ' – ' . trim($event['end_time_local']) : ''; |
|
| 638 | - else |
|
| 639 | - echo $txt['calendar_allday']; |
|
| 661 | + if (!empty($event['start_time_local'])) { |
|
| 662 | + echo trim($event['start_time_local']), !empty($event['end_time_local']) ? ' – ' . trim($event['end_time_local']) : ''; |
|
| 663 | + } else { |
|
| 664 | + echo $txt['calendar_allday']; |
|
| 665 | + } |
|
| 640 | 666 | |
| 641 | 667 | echo '</span>'; |
| 642 | 668 | |
| 643 | - if (!empty($event['location'])) |
|
| 644 | - echo '<br><span class="event_location', empty($event_icons_needed) ? ' floatright' : '', '">' . $event['location'] . '</span>'; |
|
| 669 | + if (!empty($event['location'])) { |
|
| 670 | + echo '<br><span class="event_location', empty($event_icons_needed) ? ' floatright' : '', '">' . $event['location'] . '</span>'; |
|
| 671 | + } |
|
| 645 | 672 | |
| 646 | 673 | if (!empty($event_icons_needed)) |
| 647 | 674 | { |
@@ -678,8 +705,7 @@ discard block |
||
| 678 | 705 | </div> |
| 679 | 706 | <br class="clear">'; |
| 680 | 707 | } |
| 681 | - } |
|
| 682 | - else |
|
| 708 | + } else |
|
| 683 | 709 | { |
| 684 | 710 | if (!empty($context['can_post'])) |
| 685 | 711 | { |
@@ -692,8 +718,9 @@ discard block |
||
| 692 | 718 | echo '</td> |
| 693 | 719 | <td class="', implode(' ', $classes), !empty($day['holidays']) ? ' holidays' : ' disabled', ' holiday_col" data-css-prefix="' . $txt['calendar_prompt'] . ' ">'; |
| 694 | 720 | // Show any holidays! |
| 695 | - if (!empty($day['holidays'])) |
|
| 696 | - echo implode('<br>', $day['holidays']); |
|
| 721 | + if (!empty($day['holidays'])) { |
|
| 722 | + echo implode('<br>', $day['holidays']); |
|
| 723 | + } |
|
| 697 | 724 | |
| 698 | 725 | echo '</td> |
| 699 | 726 | <td class="', implode(' ', $classes), '', !empty($day['birthdays']) ? ' birthdays' : ' disabled', ' birthday_col" data-css-prefix="' . $txt['birthdays'] . ' ">'; |
@@ -751,8 +778,7 @@ discard block |
||
| 751 | 778 | <input type="text" name="end_date" id="end_date" maxlength="10" value="', $calendar_data['end_date'], '" tabindex="', $context['tabindex']++, '" class="input_text date_input end" data-type="date"> |
| 752 | 779 | <input type="submit" class="button_submit" style="float:none" id="view_button" value="', $txt['view'], '"> |
| 753 | 780 | </form>'; |
| 754 | - } |
|
| 755 | - else |
|
| 781 | + } else |
|
| 756 | 782 | { |
| 757 | 783 | echo' |
| 758 | 784 | <form action="', $scripturl, '?action=calendar" id="calendar_navigation" method="post" accept-charset="', $context['character_set'], '"> |
@@ -794,8 +820,9 @@ discard block |
||
| 794 | 820 | echo ' |
| 795 | 821 | <form action="', $scripturl, '?action=calendar;sa=post" method="post" name="postevent" accept-charset="', $context['character_set'], '" onsubmit="submitonce(this);smc_saveEntities(\'postevent\', [\'evtitle\']);" style="margin: 0;">'; |
| 796 | 822 | |
| 797 | - if (!empty($context['event']['new'])) |
|
| 798 | - echo '<input type="hidden" name="eventid" value="', $context['event']['eventid'], '">'; |
|
| 823 | + if (!empty($context['event']['new'])) { |
|
| 824 | + echo '<input type="hidden" name="eventid" value="', $context['event']['eventid'], '">'; |
|
| 825 | + } |
|
| 799 | 826 | |
| 800 | 827 | // Start the main table. |
| 801 | 828 | echo ' |
@@ -845,9 +872,10 @@ discard block |
||
| 845 | 872 | { |
| 846 | 873 | echo ' |
| 847 | 874 | <optgroup label="', $category['name'], '">'; |
| 848 | - foreach ($category['boards'] as $board) |
|
| 849 | - echo ' |
|
| 875 | + foreach ($category['boards'] as $board) { |
|
| 876 | + echo ' |
|
| 850 | 877 | <option value="', $board['id'], '"', $board['selected'] ? ' selected' : '', '>', $board['child_level'] > 0 ? str_repeat('==', $board['child_level'] - 1) . '=>' : '', ' ', $board['name'], ' </option>'; |
| 878 | + } |
|
| 851 | 879 | echo ' |
| 852 | 880 | </optgroup>'; |
| 853 | 881 | } |
@@ -883,9 +911,10 @@ discard block |
||
| 883 | 911 | <span class="label">', $txt['calendar_timezone'], '</span> |
| 884 | 912 | <select name="tz" id="tz"', !empty($context['event']['allday']) ? ' disabled' : '', '>'; |
| 885 | 913 | |
| 886 | - foreach ($context['all_timezones'] as $tz => $tzname) |
|
| 887 | - echo ' |
|
| 914 | + foreach ($context['all_timezones'] as $tz => $tzname) { |
|
| 915 | + echo ' |
|
| 888 | 916 | <option value="', $tz, '"', $tz == $context['event']['tz'] ? ' selected' : '', '>', $tzname, '</option>'; |
| 917 | + } |
|
| 889 | 918 | |
| 890 | 919 | echo ' |
| 891 | 920 | </select> |
@@ -900,9 +929,10 @@ discard block |
||
| 900 | 929 | echo ' |
| 901 | 930 | <input type="submit" value="', empty($context['event']['new']) ? $txt['save'] : $txt['post'], '" class="button_submit">'; |
| 902 | 931 | // Delete button? |
| 903 | - if (empty($context['event']['new'])) |
|
| 904 | - echo ' |
|
| 932 | + if (empty($context['event']['new'])) { |
|
| 933 | + echo ' |
|
| 905 | 934 | <input type="submit" name="deleteevent" value="', $txt['event_delete'], '" data-confirm="', $txt['calendar_confirm_delete'], '" class="button_submit you_sure">'; |
| 935 | + } |
|
| 906 | 936 | |
| 907 | 937 | echo ' |
| 908 | 938 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -946,9 +976,10 @@ discard block |
||
| 946 | 976 | |
| 947 | 977 | foreach ($context['clockicons'] as $t => $v) |
| 948 | 978 | { |
| 949 | - foreach ($v as $i) |
|
| 950 | - echo ' |
|
| 979 | + foreach ($v as $i) { |
|
| 980 | + echo ' |
|
| 951 | 981 | icons[\'', $t, '_', $i, '\'] = document.getElementById(\'', $t, '_', $i, '\');'; |
| 982 | + } |
|
| 952 | 983 | } |
| 953 | 984 | |
| 954 | 985 | echo ' |
@@ -973,13 +1004,14 @@ discard block |
||
| 973 | 1004 | |
| 974 | 1005 | foreach ($context['clockicons'] as $t => $v) |
| 975 | 1006 | { |
| 976 | - foreach ($v as $i) |
|
| 977 | - echo ' |
|
| 1007 | + foreach ($v as $i) { |
|
| 1008 | + echo ' |
|
| 978 | 1009 | if (', $t, ' >= ', $i, ') |
| 979 | 1010 | { |
| 980 | 1011 | turnon.push("', $t, '_', $i, '"); |
| 981 | 1012 | ', $t, ' -= ', $i, '; |
| 982 | 1013 | }'; |
| 1014 | + } |
|
| 983 | 1015 | } |
| 984 | 1016 | |
| 985 | 1017 | echo ' |
@@ -1043,9 +1075,10 @@ discard block |
||
| 1043 | 1075 | |
| 1044 | 1076 | foreach ($context['clockicons'] as $t => $v) |
| 1045 | 1077 | { |
| 1046 | - foreach ($v as $i) |
|
| 1047 | - echo ' |
|
| 1078 | + foreach ($v as $i) { |
|
| 1079 | + echo ' |
|
| 1048 | 1080 | icons[\'', $t, '_', $i, '\'] = document.getElementById(\'', $t, '_', $i, '\');'; |
| 1081 | + } |
|
| 1049 | 1082 | } |
| 1050 | 1083 | |
| 1051 | 1084 | echo ' |
@@ -1062,13 +1095,14 @@ discard block |
||
| 1062 | 1095 | |
| 1063 | 1096 | foreach ($context['clockicons'] as $t => $v) |
| 1064 | 1097 | { |
| 1065 | - foreach ($v as $i) |
|
| 1066 | - echo ' |
|
| 1098 | + foreach ($v as $i) { |
|
| 1099 | + echo ' |
|
| 1067 | 1100 | if (', $t, ' >= ', $i, ') |
| 1068 | 1101 | { |
| 1069 | 1102 | turnon.push("', $t, '_', $i, '"); |
| 1070 | 1103 | ', $t, ' -= ', $i, '; |
| 1071 | 1104 | }'; |
| 1105 | + } |
|
| 1072 | 1106 | } |
| 1073 | 1107 | |
| 1074 | 1108 | echo ' |
@@ -1127,9 +1161,10 @@ discard block |
||
| 1127 | 1161 | |
| 1128 | 1162 | foreach ($context['clockicons'] as $t => $v) |
| 1129 | 1163 | { |
| 1130 | - foreach ($v as $i) |
|
| 1131 | - echo ' |
|
| 1164 | + foreach ($v as $i) { |
|
| 1165 | + echo ' |
|
| 1132 | 1166 | icons[\'', $t, '_', $i, '\'] = document.getElementById(\'', $t, '_', $i, '\');'; |
| 1167 | + } |
|
| 1133 | 1168 | } |
| 1134 | 1169 | |
| 1135 | 1170 | echo ' |
@@ -1150,13 +1185,14 @@ discard block |
||
| 1150 | 1185 | |
| 1151 | 1186 | foreach ($context['clockicons'] as $t => $v) |
| 1152 | 1187 | { |
| 1153 | - foreach ($v as $i) |
|
| 1154 | - echo ' |
|
| 1188 | + foreach ($v as $i) { |
|
| 1189 | + echo ' |
|
| 1155 | 1190 | if (', $t, ' >= ', $i, ') |
| 1156 | 1191 | { |
| 1157 | 1192 | turnon.push("', $t, '_', $i, '"); |
| 1158 | 1193 | ', $t, ' -= ', $i, '; |
| 1159 | 1194 | }'; |
| 1195 | + } |
|
| 1160 | 1196 | } |
| 1161 | 1197 | |
| 1162 | 1198 | echo ' |
@@ -14,8 +14,9 @@ discard block |
||
| 14 | 14 | * @version 2.1 Beta 3 |
| 15 | 15 | */ |
| 16 | 16 | |
| 17 | -if (!defined('SMF')) |
|
| 17 | +if (!defined('SMF')) { |
|
| 18 | 18 | die('No direct access...'); |
| 19 | +} |
|
| 19 | 20 | |
| 20 | 21 | /** |
| 21 | 22 | * Show the calendar. |
@@ -47,12 +48,14 @@ discard block |
||
| 47 | 48 | 'post' => 'CalendarPost', |
| 48 | 49 | ); |
| 49 | 50 | |
| 50 | - if (isset($_GET['sa']) && isset($subActions[$_GET['sa']])) |
|
| 51 | - return call_helper($subActions[$_GET['sa']]); |
|
| 51 | + if (isset($_GET['sa']) && isset($subActions[$_GET['sa']])) { |
|
| 52 | + return call_helper($subActions[$_GET['sa']]); |
|
| 53 | + } |
|
| 52 | 54 | |
| 53 | 55 | // You can't do anything if the calendar is off. |
| 54 | - if (empty($modSettings['cal_enabled'])) |
|
| 55 | - fatal_lang_error('calendar_off', false); |
|
| 56 | + if (empty($modSettings['cal_enabled'])) { |
|
| 57 | + fatal_lang_error('calendar_off', false); |
|
| 58 | + } |
|
| 56 | 59 | |
| 57 | 60 | // This is gonna be needed... |
| 58 | 61 | loadTemplate('Calendar'); |
@@ -88,22 +91,25 @@ discard block |
||
| 88 | 91 | $context['page_title'] = $txt['calendar']; |
| 89 | 92 | |
| 90 | 93 | // Ensure a default view is defined |
| 91 | - if (empty($modSettings['calendar_default_view'])) |
|
| 92 | - $modSettings['calendar_default_view'] = 'viewlist'; |
|
| 94 | + if (empty($modSettings['calendar_default_view'])) { |
|
| 95 | + $modSettings['calendar_default_view'] = 'viewlist'; |
|
| 96 | + } |
|
| 93 | 97 | |
| 94 | 98 | // What view do we want? |
| 95 | - if (isset($_GET['viewweek'])) |
|
| 96 | - $context['calendar_view'] = 'viewweek'; |
|
| 97 | - elseif (isset($_GET['viewmonth'])) |
|
| 98 | - $context['calendar_view'] = 'viewmonth'; |
|
| 99 | - elseif (isset($_GET['viewlist'])) |
|
| 100 | - $context['calendar_view'] = 'viewlist'; |
|
| 101 | - else |
|
| 102 | - $context['calendar_view'] = $modSettings['calendar_default_view']; |
|
| 99 | + if (isset($_GET['viewweek'])) { |
|
| 100 | + $context['calendar_view'] = 'viewweek'; |
|
| 101 | + } elseif (isset($_GET['viewmonth'])) { |
|
| 102 | + $context['calendar_view'] = 'viewmonth'; |
|
| 103 | + } elseif (isset($_GET['viewlist'])) { |
|
| 104 | + $context['calendar_view'] = 'viewlist'; |
|
| 105 | + } else { |
|
| 106 | + $context['calendar_view'] = $modSettings['calendar_default_view']; |
|
| 107 | + } |
|
| 103 | 108 | |
| 104 | 109 | // Don't let search engines index the non-default calendar pages |
| 105 | - if ($context['calendar_view'] !== $modSettings['calendar_default_view']) |
|
| 106 | - $context['robot_no_index'] = true; |
|
| 110 | + if ($context['calendar_view'] !== $modSettings['calendar_default_view']) { |
|
| 111 | + $context['robot_no_index'] = true; |
|
| 112 | + } |
|
| 107 | 113 | |
| 108 | 114 | // Get the current day of month... |
| 109 | 115 | require_once($sourcedir . '/Subs-Calendar.php'); |
@@ -164,16 +170,19 @@ discard block |
||
| 164 | 170 | ); |
| 165 | 171 | |
| 166 | 172 | // Make sure the year and month are in valid ranges. |
| 167 | - if ($curPage['month'] < 1 || $curPage['month'] > 12) |
|
| 168 | - fatal_lang_error('invalid_month', false); |
|
| 169 | - if ($curPage['year'] < $modSettings['cal_minyear'] || $curPage['year'] > $modSettings['cal_maxyear']) |
|
| 170 | - fatal_lang_error('invalid_year', false); |
|
| 173 | + if ($curPage['month'] < 1 || $curPage['month'] > 12) { |
|
| 174 | + fatal_lang_error('invalid_month', false); |
|
| 175 | + } |
|
| 176 | + if ($curPage['year'] < $modSettings['cal_minyear'] || $curPage['year'] > $modSettings['cal_maxyear']) { |
|
| 177 | + fatal_lang_error('invalid_year', false); |
|
| 178 | + } |
|
| 171 | 179 | // If we have a day clean that too. |
| 172 | 180 | if ($context['calendar_view'] != 'viewmonth') |
| 173 | 181 | { |
| 174 | 182 | $isValid = checkdate($curPage['month'], $curPage['day'], $curPage['year']); |
| 175 | - if (!$isValid) |
|
| 176 | - fatal_lang_error('invalid_day', false); |
|
| 183 | + if (!$isValid) { |
|
| 184 | + fatal_lang_error('invalid_day', false); |
|
| 185 | + } |
|
| 177 | 186 | } |
| 178 | 187 | |
| 179 | 188 | // Load all the context information needed to show the calendar grid. |
@@ -195,23 +204,26 @@ discard block |
||
| 195 | 204 | ); |
| 196 | 205 | |
| 197 | 206 | // Load up the main view. |
| 198 | - if ($context['calendar_view'] == 'viewlist') |
|
| 199 | - $context['calendar_grid_main'] = getCalendarList($curPage['start_date'], $curPage['end_date'], $calendarOptions); |
|
| 200 | - elseif ($context['calendar_view'] == 'viewweek') |
|
| 201 | - $context['calendar_grid_main'] = getCalendarWeek($curPage['month'], $curPage['year'], $curPage['day'], $calendarOptions); |
|
| 202 | - else |
|
| 203 | - $context['calendar_grid_main'] = getCalendarGrid($curPage['month'], $curPage['year'], $calendarOptions); |
|
| 207 | + if ($context['calendar_view'] == 'viewlist') { |
|
| 208 | + $context['calendar_grid_main'] = getCalendarList($curPage['start_date'], $curPage['end_date'], $calendarOptions); |
|
| 209 | + } elseif ($context['calendar_view'] == 'viewweek') { |
|
| 210 | + $context['calendar_grid_main'] = getCalendarWeek($curPage['month'], $curPage['year'], $curPage['day'], $calendarOptions); |
|
| 211 | + } else { |
|
| 212 | + $context['calendar_grid_main'] = getCalendarGrid($curPage['month'], $curPage['year'], $calendarOptions); |
|
| 213 | + } |
|
| 204 | 214 | |
| 205 | 215 | // Load up the previous and next months. |
| 206 | 216 | $context['calendar_grid_current'] = getCalendarGrid($curPage['month'], $curPage['year'], $calendarOptions); |
| 207 | 217 | |
| 208 | 218 | // Only show previous month if it isn't pre-January of the min-year |
| 209 | - if ($context['calendar_grid_current']['previous_calendar']['year'] > $modSettings['cal_minyear'] || $curPage['month'] != 1) |
|
| 210 | - $context['calendar_grid_prev'] = getCalendarGrid($context['calendar_grid_current']['previous_calendar']['month'], $context['calendar_grid_current']['previous_calendar']['year'], $calendarOptions, true); |
|
| 219 | + if ($context['calendar_grid_current']['previous_calendar']['year'] > $modSettings['cal_minyear'] || $curPage['month'] != 1) { |
|
| 220 | + $context['calendar_grid_prev'] = getCalendarGrid($context['calendar_grid_current']['previous_calendar']['month'], $context['calendar_grid_current']['previous_calendar']['year'], $calendarOptions, true); |
|
| 221 | + } |
|
| 211 | 222 | |
| 212 | 223 | // Only show next month if it isn't post-December of the max-year |
| 213 | - if ($context['calendar_grid_current']['next_calendar']['year'] < $modSettings['cal_maxyear'] || $curPage['month'] != 12) |
|
| 214 | - $context['calendar_grid_next'] = getCalendarGrid($context['calendar_grid_current']['next_calendar']['month'], $context['calendar_grid_current']['next_calendar']['year'], $calendarOptions); |
|
| 224 | + if ($context['calendar_grid_current']['next_calendar']['year'] < $modSettings['cal_maxyear'] || $curPage['month'] != 12) { |
|
| 225 | + $context['calendar_grid_next'] = getCalendarGrid($context['calendar_grid_current']['next_calendar']['month'], $context['calendar_grid_current']['next_calendar']['year'], $calendarOptions); |
|
| 226 | + } |
|
| 215 | 227 | |
| 216 | 228 | // Basic template stuff. |
| 217 | 229 | $context['allow_calendar_event'] = allowedTo('calendar_post'); |
@@ -231,8 +243,9 @@ discard block |
||
| 231 | 243 | $context['blocks_disabled'] = !empty($modSettings['cal_disable_prev_next']) ? 1 : 0; |
| 232 | 244 | |
| 233 | 245 | // Set the page title to mention the month or week, too |
| 234 | - if ($context['calendar_view'] != 'viewlist') |
|
| 235 | - $context['page_title'] .= ' - ' . ($context['calendar_view'] == 'viewweek' ? $context['calendar_grid_main']['week_title'] : $txt['months'][$context['current_month']] . ' ' . $context['current_year']); |
|
| 246 | + if ($context['calendar_view'] != 'viewlist') { |
|
| 247 | + $context['page_title'] .= ' - ' . ($context['calendar_view'] == 'viewweek' ? $context['calendar_grid_main']['week_title'] : $txt['months'][$context['current_month']] . ' ' . $context['current_year']); |
|
| 248 | + } |
|
| 236 | 249 | |
| 237 | 250 | // Load up the linktree! |
| 238 | 251 | $context['linktree'][] = array( |
@@ -245,17 +258,19 @@ discard block |
||
| 245 | 258 | 'name' => $txt['months'][$context['current_month']] . ' ' . $context['current_year'] |
| 246 | 259 | ); |
| 247 | 260 | // If applicable, add the current week to the linktree. |
| 248 | - if ($context['calendar_view'] == 'viewweek') |
|
| 249 | - $context['linktree'][] = array( |
|
| 261 | + if ($context['calendar_view'] == 'viewweek') { |
|
| 262 | + $context['linktree'][] = array( |
|
| 250 | 263 | 'url' => $scripturl . '?action=calendar;viewweek;year=' . $context['current_year'] . ';month=' . $context['current_month'] . ';day=' . $context['current_day'], |
| 251 | 264 | 'name' => $context['calendar_grid_main']['week_title'], |
| 252 | 265 | ); |
| 266 | + } |
|
| 253 | 267 | |
| 254 | 268 | // Build the calendar button array. |
| 255 | 269 | $context['calendar_buttons'] = array(); |
| 256 | 270 | |
| 257 | - if ($context['can_post']) |
|
| 258 | - $context['calendar_buttons']['post_event'] = array('text' => 'calendar_post_event', 'image' => 'calendarpe.png', 'url' => $scripturl . '?action=calendar;sa=post;month=' . $context['current_month'] . ';year=' . $context['current_year'] . ';' . $context['session_var'] . '=' . $context['session_id']); |
|
| 271 | + if ($context['can_post']) { |
|
| 272 | + $context['calendar_buttons']['post_event'] = array('text' => 'calendar_post_event', 'image' => 'calendarpe.png', 'url' => $scripturl . '?action=calendar;sa=post;month=' . $context['current_month'] . ';year=' . $context['current_year'] . ';' . $context['session_var'] . '=' . $context['session_id']); |
|
| 273 | + } |
|
| 259 | 274 | |
| 260 | 275 | // Allow mods to add additional buttons here |
| 261 | 276 | call_integration_hook('integrate_calendar_buttons'); |
@@ -284,14 +299,16 @@ discard block |
||
| 284 | 299 | require_once($sourcedir . '/Subs.php'); |
| 285 | 300 | |
| 286 | 301 | // Cast this for safety... |
| 287 | - if (isset($_REQUEST['eventid'])) |
|
| 288 | - $_REQUEST['eventid'] = (int) $_REQUEST['eventid']; |
|
| 302 | + if (isset($_REQUEST['eventid'])) { |
|
| 303 | + $_REQUEST['eventid'] = (int) $_REQUEST['eventid']; |
|
| 304 | + } |
|
| 289 | 305 | |
| 290 | 306 | // We want a fairly compact version of the time, but as close as possible to the user's settings. |
| 291 | - if (preg_match('~%[HkIlMpPrRSTX](?:[^%]*%[HkIlMpPrRSTX])*~', $user_info['time_format'], $matches) == 0 || empty($matches[0])) |
|
| 292 | - $time_string = '%k:%M'; |
|
| 293 | - else |
|
| 294 | - $time_string = str_replace(array('%I', '%H', '%S', '%r', '%R', '%T'), array('%l', '%k', '', '%l:%M %p', '%k:%M', '%l:%M'), $matches[0]); |
|
| 307 | + if (preg_match('~%[HkIlMpPrRSTX](?:[^%]*%[HkIlMpPrRSTX])*~', $user_info['time_format'], $matches) == 0 || empty($matches[0])) { |
|
| 308 | + $time_string = '%k:%M'; |
|
| 309 | + } else { |
|
| 310 | + $time_string = str_replace(array('%I', '%H', '%S', '%r', '%R', '%T'), array('%l', '%k', '', '%l:%M %p', '%k:%M', '%l:%M'), $matches[0]); |
|
| 311 | + } |
|
| 295 | 312 | |
| 296 | 313 | $js_time_string = str_replace( |
| 297 | 314 | array('%H', '%k', '%I', '%l', '%M', '%p', '%P', '%r', '%R', '%S', '%T', '%X'), |
@@ -305,12 +322,14 @@ discard block |
||
| 305 | 322 | checkSession(); |
| 306 | 323 | |
| 307 | 324 | // Validate the post... |
| 308 | - if (!isset($_POST['link_to_board'])) |
|
| 309 | - validateEventPost(); |
|
| 325 | + if (!isset($_POST['link_to_board'])) { |
|
| 326 | + validateEventPost(); |
|
| 327 | + } |
|
| 310 | 328 | |
| 311 | 329 | // If you're not allowed to edit any events, you have to be the poster. |
| 312 | - if ($_REQUEST['eventid'] > 0 && !allowedTo('calendar_edit_any')) |
|
| 313 | - isAllowedTo('calendar_edit_' . (!empty($user_info['id']) && getEventPoster($_REQUEST['eventid']) == $user_info['id'] ? 'own' : 'any')); |
|
| 330 | + if ($_REQUEST['eventid'] > 0 && !allowedTo('calendar_edit_any')) { |
|
| 331 | + isAllowedTo('calendar_edit_' . (!empty($user_info['id']) && getEventPoster($_REQUEST['eventid']) == $user_info['id'] ? 'own' : 'any')); |
|
| 332 | + } |
|
| 314 | 333 | |
| 315 | 334 | // New - and directing? |
| 316 | 335 | if (isset($_POST['link_to_board']) || empty($modSettings['cal_allow_unlinked'])) |
@@ -333,8 +352,9 @@ discard block |
||
| 333 | 352 | } |
| 334 | 353 | |
| 335 | 354 | // Deleting... |
| 336 | - elseif (isset($_REQUEST['deleteevent'])) |
|
| 337 | - removeEvent($_REQUEST['eventid']); |
|
| 355 | + elseif (isset($_REQUEST['deleteevent'])) { |
|
| 356 | + removeEvent($_REQUEST['eventid']); |
|
| 357 | + } |
|
| 338 | 358 | |
| 339 | 359 | // ... or just update it? |
| 340 | 360 | else |
@@ -357,15 +377,13 @@ discard block |
||
| 357 | 377 | $year = $d['year']; |
| 358 | 378 | $month = $d['month']; |
| 359 | 379 | $day = $d['day']; |
| 360 | - } |
|
| 361 | - elseif (isset($_POST['start_datetime'])) |
|
| 380 | + } elseif (isset($_POST['start_datetime'])) |
|
| 362 | 381 | { |
| 363 | 382 | $d = date_parse($_POST['start_datetime']); |
| 364 | 383 | $year = $d['year']; |
| 365 | 384 | $month = $d['month']; |
| 366 | 385 | $day = $d['day']; |
| 367 | - } |
|
| 368 | - else |
|
| 386 | + } else |
|
| 369 | 387 | { |
| 370 | 388 | $today = getdate(); |
| 371 | 389 | $year = isset($_POST['year']) ? $_POST['year'] : $today['year']; |
@@ -399,13 +417,13 @@ discard block |
||
| 399 | 417 | $context['event'] = array_merge($context['event'], $eventDatetimes); |
| 400 | 418 | |
| 401 | 419 | $context['event']['last_day'] = (int) strftime('%d', mktime(0, 0, 0, $context['event']['month'] == 12 ? 1 : $context['event']['month'] + 1, 0, $context['event']['month'] == 12 ? $context['event']['year'] + 1 : $context['event']['year'])); |
| 402 | - } |
|
| 403 | - else |
|
| 420 | + } else |
|
| 404 | 421 | { |
| 405 | 422 | $context['event'] = getEventProperties($_REQUEST['eventid']); |
| 406 | 423 | |
| 407 | - if ($context['event'] === false) |
|
| 408 | - fatal_lang_error('no_access', false); |
|
| 424 | + if ($context['event'] === false) { |
|
| 425 | + fatal_lang_error('no_access', false); |
|
| 426 | + } |
|
| 409 | 427 | |
| 410 | 428 | // If it has a board, then they should be editing it within the topic. |
| 411 | 429 | if (!empty($context['event']['topic']['id']) && !empty($context['event']['topic']['first_msg'])) |
@@ -416,10 +434,11 @@ discard block |
||
| 416 | 434 | } |
| 417 | 435 | |
| 418 | 436 | // Make sure the user is allowed to edit this event. |
| 419 | - if ($context['event']['member'] != $user_info['id']) |
|
| 420 | - isAllowedTo('calendar_edit_any'); |
|
| 421 | - elseif (!allowedTo('calendar_edit_any')) |
|
| 422 | - isAllowedTo('calendar_edit_own'); |
|
| 437 | + if ($context['event']['member'] != $user_info['id']) { |
|
| 438 | + isAllowedTo('calendar_edit_any'); |
|
| 439 | + } elseif (!allowedTo('calendar_edit_any')) { |
|
| 440 | + isAllowedTo('calendar_edit_own'); |
|
| 441 | + } |
|
| 423 | 442 | } |
| 424 | 443 | |
| 425 | 444 | // An all day event? Set up some nice defaults in case the user wants to change that |
@@ -453,8 +472,7 @@ discard block |
||
| 453 | 472 | { |
| 454 | 473 | // You can post new events but can't link them to anything... |
| 455 | 474 | $context['event']['categories'] = array(); |
| 456 | - } |
|
| 457 | - else |
|
| 475 | + } else |
|
| 458 | 476 | { |
| 459 | 477 | // Load the list of boards and categories in the context. |
| 460 | 478 | require_once($sourcedir . '/Subs-MessageIndex.php'); |
@@ -541,12 +559,14 @@ discard block |
||
| 541 | 559 | global $smcFunc, $sourcedir, $forum_version, $modSettings, $webmaster_email, $mbname; |
| 542 | 560 | |
| 543 | 561 | // You can't export if the calendar export feature is off. |
| 544 | - if (empty($modSettings['cal_export'])) |
|
| 545 | - fatal_lang_error('calendar_export_off', false); |
|
| 562 | + if (empty($modSettings['cal_export'])) { |
|
| 563 | + fatal_lang_error('calendar_export_off', false); |
|
| 564 | + } |
|
| 546 | 565 | |
| 547 | 566 | // Goes without saying that this is required. |
| 548 | - if (!isset($_REQUEST['eventid'])) |
|
| 549 | - fatal_lang_error('no_access', false); |
|
| 567 | + if (!isset($_REQUEST['eventid'])) { |
|
| 568 | + fatal_lang_error('no_access', false); |
|
| 569 | + } |
|
| 550 | 570 | |
| 551 | 571 | // This is kinda wanted. |
| 552 | 572 | require_once($sourcedir . '/Subs-Calendar.php'); |
@@ -554,15 +574,17 @@ discard block |
||
| 554 | 574 | // Load up the event in question and check it exists. |
| 555 | 575 | $event = getEventProperties($_REQUEST['eventid']); |
| 556 | 576 | |
| 557 | - if ($event === false) |
|
| 558 | - fatal_lang_error('no_access', false); |
|
| 577 | + if ($event === false) { |
|
| 578 | + fatal_lang_error('no_access', false); |
|
| 579 | + } |
|
| 559 | 580 | |
| 560 | 581 | // Check the title isn't too long - iCal requires some formatting if so. |
| 561 | 582 | $title = str_split($event['title'], 30); |
| 562 | 583 | foreach ($title as $id => $line) |
| 563 | 584 | { |
| 564 | - if ($id != 0) |
|
| 565 | - $title[$id] = ' ' . $title[$id]; |
|
| 585 | + if ($id != 0) { |
|
| 586 | + $title[$id] = ' ' . $title[$id]; |
|
| 587 | + } |
|
| 566 | 588 | $title[$id] .= "\n"; |
| 567 | 589 | } |
| 568 | 590 | |
@@ -575,8 +597,7 @@ discard block |
||
| 575 | 597 | { |
| 576 | 598 | $datestart = date_format($start_date, 'Ymd\THis'); |
| 577 | 599 | $dateend = date_format($end_date, 'Ymd\THis'); |
| 578 | - } |
|
| 579 | - else |
|
| 600 | + } else |
|
| 580 | 601 | { |
| 581 | 602 | $datestart = date_format($start_date, 'Ymd'); |
| 582 | 603 | |
@@ -597,15 +618,18 @@ discard block |
||
| 597 | 618 | $filecontents .= 'DTSTART' . (!empty($event['start_time']) ? ';TZID=' . $event['tz'] : ';VALUE=DATE') . ':' . $datestart . "\n"; |
| 598 | 619 | |
| 599 | 620 | // event has a duration |
| 600 | - if ($event['start_iso_gmdate'] != $event['end_iso_gmdate']) |
|
| 601 | - $filecontents .= 'DTEND' . (!empty($event['end_time']) ? ';TZID=' . $event['tz'] : ';VALUE=DATE') . ':' . $dateend . "\n"; |
|
| 621 | + if ($event['start_iso_gmdate'] != $event['end_iso_gmdate']) { |
|
| 622 | + $filecontents .= 'DTEND' . (!empty($event['end_time']) ? ';TZID=' . $event['tz'] : ';VALUE=DATE') . ':' . $dateend . "\n"; |
|
| 623 | + } |
|
| 602 | 624 | |
| 603 | 625 | // event has changed? advance the sequence for this UID |
| 604 | - if ($event['sequence'] > 0) |
|
| 605 | - $filecontents .= 'SEQUENCE:' . $event['sequence'] . "\n"; |
|
| 626 | + if ($event['sequence'] > 0) { |
|
| 627 | + $filecontents .= 'SEQUENCE:' . $event['sequence'] . "\n"; |
|
| 628 | + } |
|
| 606 | 629 | |
| 607 | - if (!empty($event['location'])) |
|
| 608 | - $filecontents .= 'LOCATION:' . str_replace(',', '\,', $event['location']) . "\n"; |
|
| 630 | + if (!empty($event['location'])) { |
|
| 631 | + $filecontents .= 'LOCATION:' . str_replace(',', '\,', $event['location']) . "\n"; |
|
| 632 | + } |
|
| 609 | 633 | |
| 610 | 634 | $filecontents .= 'SUMMARY:' . implode('', $title); |
| 611 | 635 | $filecontents .= 'UID:' . $event['eventid'] . '@' . str_replace(' ', '-', $mbname) . "\n"; |
@@ -614,23 +638,26 @@ discard block |
||
| 614 | 638 | |
| 615 | 639 | // Send some standard headers. |
| 616 | 640 | ob_end_clean(); |
| 617 | - if (!empty($modSettings['enableCompressedOutput'])) |
|
| 618 | - @ob_start('ob_gzhandler'); |
|
| 619 | - else |
|
| 620 | - ob_start(); |
|
| 641 | + if (!empty($modSettings['enableCompressedOutput'])) { |
|
| 642 | + @ob_start('ob_gzhandler'); |
|
| 643 | + } else { |
|
| 644 | + ob_start(); |
|
| 645 | + } |
|
| 621 | 646 | |
| 622 | 647 | // Send the file headers |
| 623 | 648 | header('Pragma: '); |
| 624 | 649 | header('Cache-Control: no-cache'); |
| 625 | - if (!isBrowser('gecko')) |
|
| 626 | - header('Content-Transfer-Encoding: binary'); |
|
| 650 | + if (!isBrowser('gecko')) { |
|
| 651 | + header('Content-Transfer-Encoding: binary'); |
|
| 652 | + } |
|
| 627 | 653 | header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 525600 * 60) . ' GMT'); |
| 628 | 654 | header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . 'GMT'); |
| 629 | 655 | header('Accept-Ranges: bytes'); |
| 630 | 656 | header('Connection: close'); |
| 631 | 657 | header('Content-Disposition: attachment; filename="' . $event['title'] . '.ics"'); |
| 632 | - if (empty($modSettings['enableCompressedOutput'])) |
|
| 633 | - header('Content-Length: ' . $smcFunc['strlen']($filecontents)); |
|
| 658 | + if (empty($modSettings['enableCompressedOutput'])) { |
|
| 659 | + header('Content-Length: ' . $smcFunc['strlen']($filecontents)); |
|
| 660 | + } |
|
| 634 | 661 | |
| 635 | 662 | // This is a calendar item! |
| 636 | 663 | header('Content-Type: text/calendar'); |
@@ -669,20 +696,17 @@ discard block |
||
| 669 | 696 | $context['sub_template'] = 'bcd'; |
| 670 | 697 | $context['linktree'][] = array('url' => $scripturl . '?action=clock;bcd', 'name' => 'BCD'); |
| 671 | 698 | $context['clockicons'] = safe_unserialize(base64_decode('YTo2OntzOjI6ImgxIjthOjI6e2k6MDtpOjI7aToxO2k6MTt9czoyOiJoMiI7YTo0OntpOjA7aTo4O2k6MTtpOjQ7aToyO2k6MjtpOjM7aToxO31zOjI6Im0xIjthOjM6e2k6MDtpOjQ7aToxO2k6MjtpOjI7aToxO31zOjI6Im0yIjthOjQ6e2k6MDtpOjg7aToxO2k6NDtpOjI7aToyO2k6MztpOjE7fXM6MjoiczEiO2E6Mzp7aTowO2k6NDtpOjE7aToyO2k6MjtpOjE7fXM6MjoiczIiO2E6NDp7aTowO2k6ODtpOjE7aTo0O2k6MjtpOjI7aTozO2k6MTt9fQ==')); |
| 672 | - } |
|
| 673 | - elseif (!$omfg && !isset($_REQUEST['time'])) |
|
| 699 | + } elseif (!$omfg && !isset($_REQUEST['time'])) |
|
| 674 | 700 | { |
| 675 | 701 | $context['sub_template'] = 'hms'; |
| 676 | 702 | $context['linktree'][] = array('url' => $scripturl . '?action=clock', 'name' => 'Binary'); |
| 677 | 703 | $context['clockicons'] = safe_unserialize(base64_decode('YTozOntzOjE6ImgiO2E6NTp7aTowO2k6MTY7aToxO2k6ODtpOjI7aTo0O2k6MztpOjI7aTo0O2k6MTt9czoxOiJtIjthOjY6e2k6MDtpOjMyO2k6MTtpOjE2O2k6MjtpOjg7aTozO2k6NDtpOjQ7aToyO2k6NTtpOjE7fXM6MToicyI7YTo2OntpOjA7aTozMjtpOjE7aToxNjtpOjI7aTo4O2k6MztpOjQ7aTo0O2k6MjtpOjU7aToxO319')); |
| 678 | - } |
|
| 679 | - elseif ($omfg) |
|
| 704 | + } elseif ($omfg) |
|
| 680 | 705 | { |
| 681 | 706 | $context['sub_template'] = 'omfg'; |
| 682 | 707 | $context['linktree'][] = array('url' => $scripturl . '?action=clock;omfg', 'name' => 'OMFG'); |
| 683 | 708 | $context['clockicons'] = safe_unserialize(base64_decode('YTo2OntzOjQ6InllYXIiO2E6Nzp7aTowO2k6NjQ7aToxO2k6MzI7aToyO2k6MTY7aTozO2k6ODtpOjQ7aTo0O2k6NTtpOjI7aTo2O2k6MTt9czo1OiJtb250aCI7YTo0OntpOjA7aTo4O2k6MTtpOjQ7aToyO2k6MjtpOjM7aToxO31zOjM6ImRheSI7YTo1OntpOjA7aToxNjtpOjE7aTo4O2k6MjtpOjQ7aTozO2k6MjtpOjQ7aToxO31zOjQ6ImhvdXIiO2E6NTp7aTowO2k6MTY7aToxO2k6ODtpOjI7aTo0O2k6MztpOjI7aTo0O2k6MTt9czozOiJtaW4iO2E6Njp7aTowO2k6MzI7aToxO2k6MTY7aToyO2k6ODtpOjM7aTo0O2k6NDtpOjI7aTo1O2k6MTt9czozOiJzZWMiO2E6Njp7aTowO2k6MzI7aToxO2k6MTY7aToyO2k6ODtpOjM7aTo0O2k6NDtpOjI7aTo1O2k6MTt9fQ==')); |
| 684 | - } |
|
| 685 | - elseif (isset($_REQUEST['time'])) |
|
| 709 | + } elseif (isset($_REQUEST['time'])) |
|
| 686 | 710 | { |
| 687 | 711 | $context['sub_template'] = 'thetime'; |
| 688 | 712 | $time = getdate($_REQUEST['time'] == 'now' ? time() : (int) $_REQUEST['time']); |
@@ -736,12 +760,13 @@ discard block |
||
| 736 | 760 | ), |
| 737 | 761 | ); |
| 738 | 762 | |
| 739 | - foreach ($context['clockicons'] as $t => $vs) |
|
| 740 | - foreach ($vs as $v => $dumb) |
|
| 763 | + foreach ($context['clockicons'] as $t => $vs) { |
|
| 764 | + foreach ($vs as $v => $dumb) |
|
| 741 | 765 | { |
| 742 | 766 | if ($$t >= $v) |
| 743 | 767 | { |
| 744 | 768 | $$t -= $v; |
| 769 | + } |
|
| 745 | 770 | $context['clockicons'][$t][$v] = true; |
| 746 | 771 | } |
| 747 | 772 | } |