/calendar.php
PHP | 2293 lines | 1901 code | 254 blank | 138 comment | 468 complexity | 0b0829daa7f02c9932ca8dfa778368a2 MD5 | raw file
Possible License(s): LGPL-2.1
Large files files are truncated, but you can click here to view the full file
- <?php
- /**
- * MyBB 1.6
- * Copyright 2010 MyBB Group, All Rights Reserved
- *
- * Website: http://mybb.com
- * License: http://mybb.com/about/license
- *
- * $Id$
- */
- define("IN_MYBB", 1);
- define('THIS_SCRIPT', 'calendar.php');
- $templatelist = "calendar_weekdayheader,calendar_weekrow_day,calendar_weekrow,calendar_eventbit_public,calendar_eventbit_private,calendar";
- $templatelist .= ",calendar_weekview_day,calendar_weekview_day_event,calendar_mini_weekdayheader,calendar_mini_weekrow_day,calendar_mini_weekrow,calendar_mini,calendar_weekview_month,calendar_weekview,calendar_eventbit,calendar_addeventlink";
- $templatelist .= ",calendar_event_editbutton,calendar_event_modoptions,calendar_event,calendar_dayview_event,calendar_dayview,codebuttons,smilieinsert,calendar_editevent,calendar_dayview_birthdays_bday,calendar_dayview_birthdays,calendar_dayview_noevents,calendar_dayview_noevents";
- require_once "./global.php";
- require_once MYBB_ROOT."inc/functions_calendar.php";
- require_once MYBB_ROOT."inc/functions_post.php";
- require_once MYBB_ROOT."inc/class_parser.php";
- $parser = new postParser;
- // Load global language phrases
- $lang->load("calendar");
- if($mybb->settings['enablecalendar'] == 0)
- {
- error($lang->calendar_disabled);
- }
- if($mybb->usergroup['canviewcalendar'] == 0)
- {
- error_no_permission();
- }
- $monthnames = array(
- "offset",
- $lang->alt_month_1,
- $lang->alt_month_2,
- $lang->alt_month_3,
- $lang->alt_month_4,
- $lang->alt_month_5,
- $lang->alt_month_6,
- $lang->alt_month_7,
- $lang->alt_month_8,
- $lang->alt_month_9,
- $lang->alt_month_10,
- $lang->alt_month_11,
- $lang->alt_month_12
- );
- // Make navigation
- add_breadcrumb($lang->nav_calendar, "calendar.php");
- $calendar_jump = build_calendar_jump($mybb->input['calendar']);
- // Add an event
- if($mybb->input['action'] == "do_addevent" && $mybb->request_method == "post")
- {
- $query = $db->simple_select("calendars", "*", "cid='".intval($mybb->input['calendar'])."'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar or post events?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1 || $calendar_permissions['canaddevents'] != 1)
- {
- error_no_permission();
- }
- // Verify incoming POST request
- verify_post_check($mybb->input['my_post_key']);
- $plugins->run_hooks("calendar_do_addevent_start");
- // Set up event handler.
- require_once MYBB_ROOT."inc/datahandler.php";
- require_once MYBB_ROOT."inc/datahandlers/event.php";
- $eventhandler = new EventDataHandler("insert");
- // Prepare an array for the eventhandler.
- $event = array(
- "cid" => $calendar['cid'],
- "uid" => $mybb->user['uid'],
- "name" => $mybb->input['name'],
- "description" => $mybb->input['description'],
- "private" => $mybb->input['private'],
- "type" => $mybb->input['type']
- );
- // Now we add in our date/time info depending on the type of event
- if($mybb->input['type'] == "single")
- {
- $event['start_date'] = array(
- "day" => $mybb->input['single_day'],
- "month" => $mybb->input['single_month'],
- "year" => $mybb->input['single_year']
- );
- }
- else if($mybb->input['type'] == "ranged")
- {
- $event['start_date'] = array(
- "day" => $mybb->input['start_day'],
- "month" => $mybb->input['start_month'],
- "year" => $mybb->input['start_year'],
- "time" => $mybb->input['start_time']
- );
- $event['end_date'] = array(
- "day" => $mybb->input['end_day'],
- "month" => $mybb->input['end_month'],
- "year" => $mybb->input['end_year'],
- "time" => $mybb->input['end_time']
- );
- $event['timezone'] = intval($mybb->input['timezone']);
- $event['ignoretimezone'] = intval($mybb->input['ignoretimezone']);
- $repeats = array();
- switch($mybb->input['repeats'])
- {
- case 1:
- $repeats['repeats'] = 1;
- $repeats['days'] = $mybb->input['repeats_1_days'];
- break;
- case 2:
- $repeats['repeats'] = 2;
- break;
- case 3:
- $repeats['repeats'] = 3;
- $repeats['weeks'] = $mybb->input['repeats_3_weeks'];
- if(!is_array($mybb->input['repeats_3_days']))
- {
- $mybb->input['repeats_3_days'] = array();
- }
- ksort($mybb->input['repeats_3_days']);
- $days = array();
- foreach($mybb->input['repeats_3_days'] as $weekday => $value)
- {
- if($value != 1) continue;
- $days[] = $weekday;
- }
- $repeats['days'] = $days;
- break;
- case 4:
- $repeats['repeats'] = 4;
- if($mybb->input['repeats_4_type'] == 1)
- {
- $repeats['day'] = $mybb->input['repeats_4_day'];
- $repeats['months'] = $mybb->input['repeats_4_months'];
- }
- else
- {
- $repeats['months'] = $mybb->input['repeats_4_months2'];
- $repeats['occurance'] = $mybb->input['repeats_4_occurance'];
- $repeats['weekday'] = $mybb->input['repeats_4_weekday'];
- }
- break;
- case 5:
- $repeats['repeats'] = 5;
- if($mybb->input['repeats_5_type'] == 1)
- {
- $repeats['day'] = $mybb->input['repeats_5_day'];
- $repeats['month'] = $mybb->input['repeats_5_month'];
- $repeats['years'] = $mybb->input['repeats_5_years'];
- }
- else
- {
- $repeats['occurance'] = $mybb->input['repeats_5_occurance'];
- $repeats['weekday'] = $mybb->input['repeats_5_weekday'];
- $repeats['month'] = $mybb->input['repeats_5_month2'];
- $repeats['years'] = $mybb->input['repeats_5_years'];
- }
- break;
- default:
- $repeats['repeats'] = 0;
- }
- $event['repeats'] = $repeats;
- }
- $eventhandler->set_data($event);
- // Now let the eventhandler do all the hard work.
- if(!$eventhandler->validate_event())
- {
- $event_errors = $eventhandler->get_friendly_errors();
- $event_errors = inline_error($event_errors);
- $mybb->input['action'] = "addevent";
- }
- else
- {
- $details = $eventhandler->insert_event();
- $plugins->run_hooks("calendar_do_addevent_end");
- if($details['visible'] == 1)
- {
- redirect(get_event_link($details['eid']), $lang->redirect_eventadded);
- }
- else
- {
- redirect(get_calendar_link($event['cid']), $lang->redirect_eventadded_moderation);
- }
- }
- }
- if($mybb->input['action'] == "addevent")
- {
- $query = $db->simple_select("calendars", "*", "cid='".intval($mybb->input['calendar'])."'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar or post events?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1 || $calendar_permissions['canaddevents'] != 1)
- {
- error_no_permission();
- }
- add_breadcrumb(htmlspecialchars_uni($calendar['name']), get_calendar_link($calendar['cid']));
- add_breadcrumb($lang->nav_addevent);
- $plugins->run_hooks("calendar_addevent_start");
- // If MyCode is on for this forum and the MyCode editor is enabled inthe Admin CP, draw the code buttons and smilie inserter.
- if($mybb->settings['bbcodeinserter'] != 0 && (!$mybb->user['uid'] || $mybb->user['showcodebuttons'] != 0) && $calendar['allowmycode'] == 1)
- {
- $codebuttons = build_mycode_inserter();
- if($calendar['allowsmilies'] == 1)
- {
- $smilieinserter = build_clickable_smilies();
- }
- }
- // Previous selections
- $name = $description = '';
- if(isset($mybb->input['name']))
- {
- $name = htmlspecialchars_uni($mybb->input['name']);
- }
-
- if(isset($mybb->input['description']))
- {
- $description = htmlspecialchars_uni($mybb->input['description']);
- }
-
- if($mybb->request_method == "post")
- {
- $single_day = $mybb->input['single_day'];
- $single_month[$mybb->input['single_month']] = " selected=\"selected\"";
- $single_year = $mybb->input['single_year'];
- $start_day = $mybb->input['start_day'];
- $start_month[$mybb->input['start_month']] = " selected=\"selected\"";
- $start_year = $mybb->input['start_year'];
- $start_time = htmlspecialchars_uni($mybb->input['start_time']);
- $end_day = $mybb->input['end_day'];
- $end_month[$mybb->input['end_month']] = " selected=\"selected\"";
- $end_year = $mybb->input['end_year'];
- $end_time = htmlspecialchars_uni($mybb->input['end_time']);
- if($mybb->input['type'] == "single")
- {
- $type_single = "checked=\"checked\"";
- $type = "single";
- }
- else
- {
- $type_ranged = "checked=\"checked\"";
- $type = "ranged";
- }
- if($mybb->input['repeats'])
- {
- $repeats_sel[$mybb->input['repeats']] = " selected=\"selected\"";
- }
- $repeats_1_days = intval($mybb->input['repeats_1_days']);
- $repeats_3_weeks = intval($mybb->input['repeats_3_weeks']);
- if(is_array($mybb->input['repeats_3_days']))
- {
- foreach($mybb->input['repeats_3_days'] as $day => $val)
- {
- if($val != 1)
- {
- continue;
- }
- $day = intval($day);
- $repeats_3_days[$day] = " checked=\"checked\"";
- }
- }
- if($mybb->input['repeats_4_type'] == 1)
- {
- $repeats_4_type[1] = "checked=\"checked\"";
- }
- else
- {
- $repeats_4_type[2] = "checked=\"checked\"";
- }
- $repeats_4_day = intval($mybb->input['repeats_4_day']);
- $repeats_4_months = intval($mybb->input['repeats_4_months']);
- $repeats_4_occurance[$mybb->input['repeats_4_occurance']] = "selected=\"selected\"";
- $repeats_4_weekday[$mybb->input['repeats_4_weekday']] = "selected=\"selected\"";
- $repeats_4_months2 = intval($mybb->input['repeats_4_months2']);
- if($mybb->input['repeats_5_type'] == 1)
- {
- $repeats_5_type[1] = "checked=\"checked\"";
- }
- else
- {
- $repeats_5_type[2] = "checked=\"checked\"";
- }
- $repeats_5_day = intval($mybb->input['repeats_5_day']);
- $repeats_5_month[$mybb->input['repeats_5_month']] = "selected=\"selected\"";
- $repeats_5_years = intval($mybb->input['repeats_5_years']);
- $repeats_5_occurance[$mybb->input['repeats_5_occurance']] = "selected=\"selected\"";
- $repeats_5_weekday[$mybb->input['repeats_5_weekday']] = "selected=\"selected\"";
- $repeats_5_month2[$mybb->input['repeats_5_month2']] = "selected=\"selected\"";
- $repeats_5_years2 = intval($mybb->input['repeats_5_years2']);
- $timezone = $mybb->input['timezone'];
- }
- else
- {
- if($mybb->input['day'])
- {
- $single_day = $start_day = $end_day = intval($mybb->input['day']);
- }
- else
- {
- $single_day = $start_day = $end_day = my_date("j");
- }
- if($mybb->input['month'])
- {
- $month = intval($mybb->input['month']);
- }
- else
- {
- $month = my_date("n");
- }
- $single_month[$month] = $start_month[$month] = $end_month[$month] = "selected=\"selected\"";
- if($mybb->input['year'])
- {
- $single_year = $start_year = $end_year = intval($mybb->input['year']);
- }
- else
- {
- $single_year = $start_year = $end_year = my_date("Y");
- }
- $start_time = $end_time = "";
- $type_single = "checked=\"checked\"";
- $type = "single";
- $repeats_1_days = 1;
- $repeats_3_weeks = 1;
- $repeats_4_type[1] = "checked=\"checked\"";
- $repeats_4_day = 1;
- $repeats_4_months = 1;
- $repeats_4_occurance[1] = "selected=\"selected\"";
- $repeats_4_weekday[0] = "selected=\"selected\"";
- $repeats_4_months2 = 1;
- $repeats_5_type[1] = "checked=\"checked\"";
- $repeats_5_day = 1;
- $repeats_5_month[1] = "selected=\"selected\"";
- $repeats_5_years = 1;
- $repeats_5_occurance[1] = "selected=\"selected\"";
- $repeats_5_weekday[0] = "selected=\"selected\"";
- $repeats_5_months2[1] = "selected=\"selected\"";
- $repeats_5_years2 = 1;
- $timezone = $mybb->user['timezone'];
- }
- // Construct option list for years
- for($i = my_date('Y'); $i < (my_date('Y') + 5); ++$i)
- {
- if($i == $single_year)
- {
- $single_years .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $single_years .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $start_year)
- {
- $start_years .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $start_years .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $end_year)
- {
- $end_years .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $end_years .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- }
- // Construct option list for days
- for($i = 1; $i <= 31; ++$i)
- {
- if($i == $single_day)
- {
- $single_days .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $single_days .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $start_day)
- {
- $start_days .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $start_days .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $end_day)
- {
- $end_days .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $end_days .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- }
- $timezones = build_timezone_select("timezone", $timezone);
- if($mybb->input['ignoretimezone'] == 1)
- {
- $ignore_timezone = "checked=\"checked\"";
- }
- if($mybb->input['private'] == 1)
- {
- $privatecheck = " checked=\"checked\"";
- }
- // Build calendar select
- $calendar_permissions = get_calendar_permissions();
- $query = $db->simple_select("calendars", "*", "", array("order_by" => "name", "order_dir" => "asc"));
- while($calendar_option = $db->fetch_array($query))
- {
- if($calendar_permissions[$calendar['cid']]['canviewcalendar'] == 1)
- {
- $calendar_option['name'] = htmlspecialchars_uni($calendar_option['name']);
- if($calendar_option['cid'] == $mybb->input['calendar'])
- {
- $calendar_select .= "<option value=\"{$calendar_option['cid']}\" selected=\"selected\">{$calendar_option['name']}</option>\n";
- }
- else
- {
- $calendar_select .= "<option value=\"{$calendar_option['cid']}\">{$calendar_option['name']}</option>\n";
- }
- }
- }
- $plugins->run_hooks("calendar_addevent_end");
- eval("\$addevent = \"".$templates->get("calendar_addevent")."\";");
- output_page($addevent);
- }
- // Edit an event
- if($mybb->input['action'] == "do_editevent" && $mybb->request_method == "post")
- {
- $query = $db->simple_select("events", "*", "eid='".intval($mybb->input['eid'])."'");
- $event = $db->fetch_array($query);
- if(!is_numeric($event['eid']))
- {
- error($lang->error_invalidevent);
- }
- $query = $db->simple_select("calendars", "*", "cid='{$event['cid']}'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar or post events?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1 || $calendar_permissions['canaddevents'] != 1)
- {
- error_no_permission();
- }
- if(($event['uid'] != $mybb->user['uid'] || $mybb->user['uid'] == 0) && $calendar_permissions['canmoderateevents'] != 1)
- {
- error_no_permission();
- }
- // Verify incoming POST request
- verify_post_check($mybb->input['my_post_key']);
- // Are we going to delete this event or just edit it?
- if($mybb->input['delete'] == 1)
- {
- $db->delete_query("events", "eid='{$event['eid']}'");
- // Redirect back to the main calendar view.
- redirect("calendar.php", $lang->redirect_eventdeleted);
- }
- // Have we made a private event public?
- if(!$mybb->input['private'])
- {
- $mybb->input['private'] = 0;
- }
- $plugins->run_hooks("calendar_do_editevent_start");
- // Set up event handler.
- require_once MYBB_ROOT."inc/datahandler.php";
- require_once MYBB_ROOT."inc/datahandlers/event.php";
- $eventhandler = new EventDataHandler("update");
- // Prepare an array for the eventhandler.
- $event = array(
- "eid" => $event['eid'],
- "name" => $mybb->input['name'],
- "description" => $mybb->input['description'],
- "private" => $mybb->input['private'],
- "type" => $mybb->input['type']
- );
-
- // Now we add in our date/time info depending on the type of event
- if($mybb->input['type'] == "single")
- {
- $event['start_date'] = array(
- "day" => $mybb->input['single_day'],
- "month" => $mybb->input['single_month'],
- "year" => $mybb->input['single_year']
- );
- $event['repeats'] = '';
- }
- else if($mybb->input['type'] == "ranged")
- {
- $event['start_date'] = array(
- "day" => $mybb->input['start_day'],
- "month" => $mybb->input['start_month'],
- "year" => $mybb->input['start_year'],
- "time" => $mybb->input['start_time']
- );
- $event['end_date'] = array(
- "day" => $mybb->input['end_day'],
- "month" => $mybb->input['end_month'],
- "year" => $mybb->input['end_year'],
- "time" => $mybb->input['end_time']
- );
- $event['timezone'] = $mybb->input['timezone'];
- $event['ignoretimezone'] = intval($mybb->input['ignoretimezone']);
- $repeats = array();
- switch($mybb->input['repeats'])
- {
- case 1:
- $repeats['repeats'] = 1;
- $repeats['days'] = $mybb->input['repeats_1_days'];
- break;
- case 2:
- $repeats['repeats'] = 2;
- break;
- case 3:
- $repeats['repeats'] = 3;
- $repeats['weeks'] = $mybb->input['repeats_3_weeks'];
- if(!is_array($mybb->input['repeats_3_days']))
- {
- $mybb->input['repeats_3_days'] = array();
- }
- ksort($mybb->input['repeats_3_days']);
- $days = array();
- foreach($mybb->input['repeats_3_days'] as $weekday => $value)
- {
- if($value != 1)
- {
- continue;
- }
- $days[] = $weekday;
- }
- $repeats['days'] = $days;
- break;
- case 4:
- $repeats['repeats'] = 4;
- if($mybb->input['repeats_4_type'] == 1)
- {
- $repeats['day'] = $mybb->input['repeats_4_day'];
- $repeats['months'] = $mybb->input['repeats_4_months'];
- }
- else
- {
- $repeats['months'] = $mybb->input['repeats_4_months2'];
- $repeats['occurance'] = $mybb->input['repeats_4_occurance'];
- $repeats['weekday'] = $mybb->input['repeats_4_weekday'];
- }
- break;
- case 5:
- $repeats['repeats'] = 5;
- if($mybb->input['repeats_5_type'] == 1)
- {
- $repeats['day'] = $mybb->input['repeats_5_day'];
- $repeats['month'] = $mybb->input['repeats_5_month'];
- $repeats['years'] = $mybb->input['repeats_5_years'];
- }
- else
- {
- $repeats['occurance'] = $mybb->input['repeats_5_occurance'];
- $repeats['weekday'] = $mybb->input['repeats_5_weekday'];
- $repeats['month'] = $mybb->input['repeats_5_month2'];
- $repeats['years'] = $mybb->input['repeats_5_years'];
- }
- break;
- default:
- $repeats['repeats'] = 0;
- }
- $event['repeats'] = $repeats;
- }
- $eventhandler->set_data($event);
- // Now let the eventhandler do all the hard work.
- if(!$eventhandler->validate_event())
- {
- $event_errors = $eventhandler->get_friendly_errors();
- $event_errors = inline_error($event_errors);
- $mybb->input['action'] = "editevent";
- }
- else
- {
- $details = $eventhandler->update_event();
- $plugins->run_hooks("calendar_do_editevent_end");
- redirect(get_event_link($event['eid']), $lang->redirect_eventupdated);
- }
- }
- if($mybb->input['action'] == "editevent")
- {
- $query = $db->simple_select("events", "*", "eid='".intval($mybb->input['eid'])."'");
- $event = $db->fetch_array($query);
- if(!is_numeric($event['eid']))
- {
- error($lang->error_invalidevent);
- }
- $query = $db->simple_select("calendars", "*", "cid='{$event['cid']}'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar or post events?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1 || $calendar_permissions['canaddevents'] != 1)
- {
- error_no_permission();
- }
- if(($event['uid'] != $mybb->user['uid'] || $mybb->user['uid'] == 0) && $calendar_permissions['canmoderateevents'] != 1)
- {
- error_no_permission();
- }
- $event['name'] = htmlspecialchars_uni($event['name']);
-
- add_breadcrumb(htmlspecialchars_uni($calendar['name']), get_calendar_link($calendar['cid']));
- add_breadcrumb($event['name'], get_event_link($event['eid']));
- add_breadcrumb($lang->nav_editevent);
- $plugins->run_hooks("calendar_editevent_start");
- // If MyCode is on for this forum and the MyCode editor is enabled inthe Admin CP, draw the code buttons and smilie inserter.
- if($mybb->settings['bbcodeinserter'] != 0 && (!$mybb->user['uid'] || $mybb->user['showcodebuttons'] != 0) && $calendar['allowmycode'] == 1)
- {
- $codebuttons = build_mycode_inserter();
- if($calendar['allowsmilies'] == 1)
- {
- $smilieinserter = build_clickable_smilies();
- }
- }
- // Previous selections
- if($event_errors)
- {
- $name = htmlspecialchars_uni($mybb->input['name']);
- $description = htmlspecialchars_uni($mybb->input['description']);
- $single_day = $mybb->input['single_day'];
- $single_month[$mybb->input['single_month']] = " selected=\"selected\"";
- $single_year = $mybb->input['single_year'];
- $start_day = $mybb->input['start_day'];
- $start_month[$mybb->input['start_month']] = " selected=\"selected\"";
- $start_year = $mybb->input['start_year'];
- $start_time = htmlspecialchars_uni($mybb->input['start_time']);
- $end_day = $mybb->input['end_day'];
- $end_month[$mybb->input['end_month']] = " selected=\"selected\"";
- $end_year = $mybb->input['end_year'];
- $end_time = htmlspecialchars_uni($mybb->input['end_time']);
- if($mybb->input['type'] == "single")
- {
- $type_single = "checked=\"checked\"";
- $type = "single";
- }
- else
- {
- $type_ranged = "checked=\"checked\"";
- $type = "ranged";
- }
- if($mybb->input['repeats'])
- {
- $repeats_sel[$mybb->input['repeats']] = " selected=\"selected\"";
- }
- $repeats_1_days = intval($mybb->input['repeats_1_days']);
- $repeats_3_weeks = intval($mybb->input['repeats_3_weeks']);
- if(is_array($mybb->input['repeats_3_days']))
- {
- foreach($mybb->input['repeats_3_days'] as $day => $val)
- {
- if($val != 1) continue;
- $day = intval($day);
- $repeats_3_days[$day] = " checked=\"checked\"";
- }
- }
- if($mybb->input['repeats_4_type'] == 1)
- {
- $repeats_4_type[1] = "checked=\"checked\"";
- }
- else
- {
- $repeats_4_type[2] = "checked=\"checked\"";
- }
- $repeats_4_day = intval($mybb->input['repeats_4_day']);
- $repeats_4_months = intval($mybb->input['repeats_4_months']);
- $repeats_4_occurance[$mybb->input['repeats_4_occurance']] = "selected=\"selected\"";
- $repeats_4_weekday[$mybb->input['repeats_4_weekday']] = "selected=\"selected\"";
- $repeats_4_months2 = intval($mybb->input['repeats_4_months2']);
- if($mybb->input['repeats_5_type'] == 1)
- {
- $repeats_5_type[1] = "checked=\"checked\"";
- }
- else
- {
- $repeats_5_type[2] = "checked=\"checked\"";
- }
- $repeats_5_day = intval($mybb->input['repeats_5_day']);
- $repeats_5_month[$mybb->input['repeats_5_month']] = "selected=\"selected\"";
- $repeats_5_years = intval($mybb->input['repeats_5_years']);
- $repeats_5_occurance[$mybb->input['repeats_5_occurance']] = "selected=\"selected\"";
- $repeats_5_weekday[$mybb->input['repeats_5_weekday']] = "selected=\"selected\"";
- $repeats_5_month2[$mybb->input['repeats_5_month2']] = "selected=\"selected\"";
- $repeats_5_years2 = intval($mybb->input['repeats_5_years2']);
- if($mybb->input['private'] == 1)
- {
- $privatecheck = " checked=\"checked\"";
- }
-
- if($mybb->input['ignoretimezone'] == 1)
- {
- $ignore_timezone = "checked=\"checked\"";
- }
-
- $timezone = $mybb->input['timezone'];
- }
- else
- {
- $mybb->input['calendar'] = $event['cid'];
- $name = htmlspecialchars_uni($event['name']);
- $description = htmlspecialchars_uni($event['description']);
- if($event['private'] == 1)
- {
- $privatecheck = " checked=\"checked\"";
- }
- $start_date = explode("-", gmdate("j-n-Y-g:i A", $event['starttime']+$event['timezone']*3600));
- $single_day = $start_date[0];
- $single_month[$start_date[1]] = " selected=\"selected\"";
- $single_year = $start_date[2];
- $start_day = $start_date[0];
- $start_month[$start_date[1]] = " selected=\"selected\"";
- $start_year = $start_date[2];
- if($event['usingtime'])
- {
- $start_time = gmdate($mybb->settings['timeformat'], $event['starttime']+$event['timezone']*3600);
- }
- if($event['endtime'])
- {
- $end_date = explode("-", gmdate("j-n-Y-g:i A", $event['endtime']+$event['timezone']*3600));
- $end_day = $end_date[0];
- $end_month[$end_date[1]] = " selected=\"selected\"";
- $end_year = $end_date[2];
- if($event['usingtime'])
- {
- $end_time = gmdate($mybb->settings['timeformat'], $event['endtime']+$event['timezone']*3600);
- }
- $type_ranged = "checked=\"checked\"";
- $type = "ranged";
- $repeats = unserialize($event['repeats']);
- if($repeats['repeats'] >= 0)
- {
- $repeats_sel[$repeats['repeats']] = " selected=\"selected\"";
- switch($repeats['repeats'])
- {
- case 1:
- $repeats_1_days = $repeats['days'];
- $repeats_3_weeks = 1;
- $repeats_4_type[1] = "checked=\"checked\"";
- $repeats_4_day = 1;
- $repeats_4_months = 1;
- $repeats_4_months2 = 1;
- $repeats_5_type[1] = "checked=\"checked\"";
- $repeats_5_day = 1;
- $repeats_5_years = $repeats_5_years2 = 1;
- break;
- case 3:
- $repeats_1_days = 1;
- $repeats_3_weeks = $repeats['weeks'];
- if(is_array($repeats['days']))
- {
- foreach($repeats['days'] as $weekday)
- {
- $repeats_3_days[$weekday] = " checked=\"checked\"";
- }
- }
- $repeats_4_type[1] = "checked=\"checked\"";
- $repeats_4_day = 1;
- $repeats_4_months = 1;
- $repeats_4_months2 = 1;
- $repeats_5_type[1] = "checked=\"checked\"";
- $repeats_5_day = 1;
- $repeats_5_years = $repeats_5_years2 = 1;
- break;
- case 4:
- $repeats_1_days = 1;
- $repeats_3_weeks = 1;
- if($repeats['day'])
- {
- $repeats_4_type[1] = "checked=\"checked\"";
- $repeats_4_day = $repeats['day'];
- $repeats_4_months = $repeats_4_months2 = $repeats['months'];
- }
- else
- {
- $repeats_4_type[2] = "checked=\"checked\"";
- $repeats_4_day = 1;
- $repeats_4_months2 = $repeats_4_months = $repeats['months'];
- $repeats_4_occurance[$repeats['occurance']] = "selected=\"selected\"";
- $repeats_4_weekday[$repeats['weekday']] = "selected=\"selected\"";
- }
- $repeats_5_type[1] = "checked=\"checked\"";
- $repeats_5_day = 1;
- $repeats_5_years = $repeats_5_years2 = 1;
- break;
- case 5:
- $repeats_1_days = 1;
- $repeats_3_weeks = 1;
- $repeats_4_type[1] = "checked=\"checked\"";
- $repeats_4_day = 1;
- $repeats_4_months = 1;
- $repeats_4_months2 = 1;
- if($repeats['day'])
- {
- $repeats_5_type[1] = "checked=\"checked\"";
- $repeats_5_day = $repeats['day'];
- $repeats_5_month[$repeats['month']] = $repeats_5_month2[$repeats['month']] = "selected=\"selected\"";
- $repeats_5_years = $repeats_5_years2 = $repeats['years'];
- }
- else
- {
- $repeats_5_type[2] = "checked=\"checked\"";
- $repeats_5_occurance[$repeats['occurance']] = "selected=\"selected\"";
- $repeats_5_weekday[$repeats['weekday']] = "selected=\"selected\"";
- $repeats_5_month[$repeats['month']] = $repeats_5_month2[$repeats['month']] = "selected=\"selected\"";
- $repeats_5_years = $repeats_5_years2 = $repeats['years'];
- }
- break;
- }
- }
- if($event['ignoretimezone'])
- {
- $timezone = 0;
- $ignore_timezone = "checked=\"checked\"";
- }
- else
- {
- $timezone = $event['timezone'];
- }
- }
- else
- {
- $type_single = "checked=\"checked\"";
- $type = "single";
- // set some defaults if the user wants to make a ranged event
- $end_day = $start_day;
- $end_month = $start_month;
- $end_year = $start_year;
- }
- }
- // Construct option list for years
- for($i = my_date('Y'); $i < (my_date('Y') + 5); ++$i)
- {
- if($i == $single_year)
- {
- $single_years .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $single_years .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $start_year)
- {
- $start_years .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $start_years .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $end_year)
- {
- $end_years .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $end_years .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- }
- // Construct option list for days
- for($i = 1; $i <= 31; ++$i)
- {
- if($i == $single_day)
- {
- $single_days .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $single_days .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $start_day)
- {
- $start_days .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $start_days .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- if($i == $end_day)
- {
- $end_days .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
- }
- else
- {
- $end_days .= "<option value=\"{$i}\">{$i}</option>\n";
- }
- }
- $timezones = build_timezone_select("timezone", $timezone);
- $plugins->run_hooks("calendar_editevent_end");
- eval("\$editevent = \"".$templates->get("calendar_editevent")."\";");
- output_page($editevent);
- }
- // Move an event to another calendar
- if($mybb->input['action'] == "move")
- {
- $query = $db->simple_select("events", "*", "eid='".intval($mybb->input['eid'])."'");
- $event = $db->fetch_array($query);
- if(!is_numeric($event['eid']))
- {
- error($lang->error_invalidevent);
- }
- $query = $db->simple_select("calendars", "*", "cid='{$event['cid']}'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar or post events?
- $calendar_permissions = get_calendar_permissions();
- if($calendar_permissions[$calendar['cid']]['canviewcalendar'] != 1)
- {
- error_no_permission();
- }
- if($calendar_permissions[$calendar['cid']]['canmoderateevents'] != 1)
- {
- error_no_permission();
- }
- $event['name'] = htmlspecialchars_uni($event['name']);
- add_breadcrumb(htmlspecialchars_uni($calendar['name']), get_calendar_link($calendar['cid']));
- add_breadcrumb($event['name'], get_event_link($event['eid']));
- add_breadcrumb($lang->nav_move_event);
- $plugins->run_hooks("calendar_move_start");
- // Build calendar select
- $query = $db->simple_select("calendars", "*", "", array("order_by" => "name", "order_dir" => "asc"));
- while($calendar_option = $db->fetch_array($query))
- {
- if($calendar_permissions[$calendar['cid']]['canviewcalendar'] == 1)
- {
- $calendar_option['name'] = htmlspecialchars_uni($calendar_option['name']);
- $calendar_select .= "<option value=\"{$calendar_option['cid']}\">{$calendar_option['name']}</option>\n";
- }
- }
- $plugins->run_hooks("calendar_move_end");
- eval("\$moveevent = \"".$templates->get("calendar_move")."\";");
- output_page($moveevent);
- }
- // Actually move the event
- if($mybb->input['action'] == "do_move" && $mybb->request_method == "post")
- {
- // Verify incoming POST request
- verify_post_check($mybb->input['my_post_key']);
- $query = $db->simple_select("events", "*", "eid='".intval($mybb->input['eid'])."'");
- $event = $db->fetch_array($query);
- if(!is_numeric($event['eid']))
- {
- error($lang->error_invalidevent);
- }
- $query = $db->simple_select("calendars", "*", "cid='{$event['cid']}'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar?
- $calendar_permissions = get_calendar_permissions();
- if($calendar_permissions[$calendar['cid']]['canviewcalendar'] != 1)
- {
- error_no_permission();
- }
- if($calendar_permissions[$calendar['cid']]['canmoderateevents'] != 1)
- {
- error_no_permission();
- }
- $query = $db->simple_select("calendars", "*", "cid='".intval($mybb->input['new_calendar'])."'");
- $new_calendar = $db->fetch_array($query);
- if(!$new_calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- if($calendar_permissions[$mybb->input['new_calendar']]['canviewcalendar'] != 1)
- {
- error_no_permission();
- }
- $plugins->run_hooks("calendar_do_move_start");
- $updated_event = array(
- "cid" => $new_calendar['cid']
- );
- $db->update_query("events", $updated_event, "eid='{$event['eid']}'");
- $plugins->run_hooks("calendar_do_move_end");
- redirect(get_event_link($event['eid']), $lang->redirect_eventmoved);
- }
- // Approve an event
- if($mybb->input['action'] == "approve")
- {
- // Verify incoming POST request
- verify_post_check($mybb->input['my_post_key']);
- $query = $db->simple_select("events", "*", "eid='".intval($mybb->input['eid'])."'");
- $event = $db->fetch_array($query);
- if(!is_numeric($event['eid']))
- {
- error($lang->error_invalidevent);
- }
- $query = $db->simple_select("calendars", "*", "cid='{$event['cid']}'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1)
- {
- error_no_permission();
- }
- if($calendar_permissions['canmoderateevents'] != 1)
- {
- error_no_permission();
- }
- $plugins->run_hooks("calendar_approve_start");
- $updated_event = array(
- "visible" => 1
- );
- $db->update_query("events", $updated_event, "eid='{$event['eid']}'");
- $plugins->run_hooks("calendar_approve_end");
- redirect(get_event_link($event['eid']), $lang->redirect_eventapproved);
- }
- // Unapprove an event
- if($mybb->input['action'] == "unapprove")
- {
- // Verify incoming POST request
- verify_post_check($mybb->input['my_post_key']);
- $query = $db->simple_select("events", "*", "eid='".intval($mybb->input['eid'])."'");
- $event = $db->fetch_array($query);
- if(!is_numeric($event['eid']))
- {
- error($lang->error_invalidevent);
- }
- $query = $db->simple_select("calendars", "*", "cid='{$event['cid']}'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1)
- {
- error_no_permission();
- }
- if($calendar_permissions['canmoderateevents'] != 1)
- {
- error_no_permission();
- }
- $plugins->run_hooks("calendar_unapprove_start");
- $updated_event = array(
- "visible" => 0
- );
- $db->update_query("events", $updated_event, "eid='{$event['eid']}'");
- $plugins->run_hooks("calendar_unapprove_end");
- redirect(get_event_link($event['eid']), $lang->redirect_eventunapproved);
- }
- // Showing specific event
- if($mybb->input['action'] == "event")
- {
- $query = $db->query("
- SELECT u.*, e.*
- FROM ".TABLE_PREFIX."events e
- LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=e.uid)
- WHERE e.eid='".intval($mybb->input['eid'])."'
- ");
- $event = $db->fetch_array($query);
- if(!is_numeric($event['eid']) || ($event['private'] == 1 && $event['uid'] != $mybb->user['uid']))
- {
- error($lang->error_invalidevent);
- }
- $query = $db->simple_select("calendars", "*", "cid='{$event['cid']}'");
- $calendar = $db->fetch_array($query);
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1 || ($calendar_permissions['canmoderateevents'] != 1 && $event['visible'] == 0))
- {
- error_no_permission();
- }
- $event['name'] = htmlspecialchars_uni($event['name']);
- add_breadcrumb(htmlspecialchars_uni($calendar['name']), get_calendar_link($calendar['cid']));
- add_breadcrumb($event['name'], get_event_link($event['eid']));
- $plugins->run_hooks("calendar_event_start");
- $event_parser_options = array(
- "allow_html" => $calendar['allowhtml'],
- "allow_mycode" => $calendar['allowmycode'],
- "allow_smilies" => $calendar['allowsmilies'],
- "allow_imgcode" => $calendar['allowimgcode'],
- "allow_videocode" => $calendar['allowvideocode']
- );
-
- $event['description'] = $parser->parse_message($event['description'], $event_parser_options);
- // Get the usergroup
- if($event['username'])
- {
- if(!$event['displaygroup'])
- {
- $event['displaygroup'] = $event['usergroup'];
- }
- $user_usergroup = $groupscache[$event['displaygroup']];
- }
- else
- {
- $user_usergroup = $groupscache[1];
- }
- if(!is_array($titles_cache))
- {
- // Get user titles (i guess we should improve this, maybe in version3.
- $query = $db->simple_select("usertitles", "*", "", array('order_by' => 'posts', 'order_dir' => 'DESC'));
- while($usertitle = $db->fetch_array($query))
- {
- $titles_cache[$usertitle['posts']] = $usertitle;
- }
- unset($usertitle);
- }
- // Event made by registered user
- if($event['uid'] > 0 && $event['username'])
- {
- $event['profilelink'] = build_profile_link(format_name($event['username'], $event['usergroup'], $event['displaygroup']), $event['uid']);
-
- if(trim($event['usertitle']) != "")
- {
- $hascustomtitle = 1;
- }
-
- if($user_usergroup['usertitle'] != "" && !$hascustomtitle)
- {
- $event['usertitle'] = $user_usergroup['usertitle'];
- }
- elseif(is_array($titles_cache) && !$user_usergroup['usertitle'])
- {
- reset($titles_cache);
- foreach($titles_cache as $key => $title)
- {
- if($event['postnum'] >= $key)
- {
- if(!$hascustomtitle)
- {
- $event['usertitle'] = $title['title'];
- }
- $event['stars'] = $title['stars'];
- $event['starimage'] = $title['starimage'];
- break;
- }
- }
- }
- if($user_usergroup['stars'])
- {
- $event['stars'] = $user_usergroup['stars'];
- }
- if(!$event['starimage'])
- {
- $event['starimage'] = $user_usergroup['starimage'];
- }
- $event['starimage'] = str_replace("{theme}", $theme['imgdir'], $event['starimage']);
-
- for($i = 0; $i < $post['stars']; ++$i)
- {
- $event['userstars'] .= "<img src=\"".$event['starimage']."\" border=\"0\" alt=\"*\" />";
- }
-
- if($event['userstars'] && $event['starimage'] && $event['stars'])
- {
- $event['userstars'] .= "<br />";
- }
- }
- // Created by a guest or an unknown user
- else
- {
- if(!$event['username'])
- {
- $event['username'] = $lang->guest;
- }
- $event['username'] = $event['username'];
- $event['profilelink'] = format_name($event['username'], 1);
-
- if($user_usergroup['usertitle'])
- {
- $event['usertitle'] = $user_usergroup['usertitle'];
- }
- else
- {
- $event['usertitle'] = $lang->guest;
- }
- }
- if($event['ignoretimezone'] == 0)
- {
- $offset = $event['timezone'];
- }
- else
- {
- $offset = $mybb->user['timezone'];
- }
- $event['starttime_user'] = $event['starttime']+$offset*3600;
- // Events over more than one day
- $time_period = '';
- if($event['endtime'] > 0 && $event['endtime'] != $event['starttime'])
- {
- $event['endtime_user'] = $event['endtime']+$offset*3600;
- $start_day = gmmktime(0, 0, 0, gmdate("n", $event['starttime_user']), gmdate("j", $event['starttime_user']), gmdate("Y", $event['starttime_user']));
- $end_day = gmmktime(0, 0, 0, gmdate("n", $event['endtime_user']), gmdate("j", $event['endtime_user']), gmdate("Y", $event['endtime_user']));
- $start_time = gmdate("Hi", $event['starttime_user']);
- $end_time = gmdate("Hi", $event['endtime_user']);
-
- $event['repeats'] = unserialize($event['repeats']);
-
- // Event only runs over one day
- if($start_day == $end_day && $event['repeats']['repeats'] == 0)
- {
- $time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']);
- // Event runs all day
- if($start_time != 0000 && $end_time != 2359)
- {
- $time_period .= $lang->comma.gmdate($mybb->settings['timeformat'], $event['starttime_user'])." - ".gmdate($mybb->settings['timeformat'], $event['endtime_user']);
- }
- else
- {
- $time_period .= $lang->comma.$lang->all_day;
- }
- }
- else
- {
- $time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']).", ".gmdate($mybb->settings['timeformat'], $event['starttime_user']);
- $time_period .= " - ";
- $time_period .= gmdate($mybb->settings['dateformat'], $event['endtime_user']).", ".gmdate($mybb->settings['timeformat'], $event['endtime_user']);
- }
- }
- else
- {
- $time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']);
- }
- $repeats = fetch_friendly_repetition($event);
- if($repeats)
- {
- $repeats = "<span class=\"smalltext\"><strong>{$lang->repeats}</strong><br />{$repeats}</span>";
- }
- if($calendar_permissions['canmoderateevents'] == 1 || ($mybb->user['uid'] > 0 && $mybb->user['uid'] == $event['uid']))
- {
- eval("\$edit_event = \"".$templates->get("calendar_event_editbutton")."\";");
- if($calendar_permissions['canmoderateevents'] == 1)
- {
- if($event['visible'] == 1)
- {
- $approve = $lang->unapprove_event;
- $approve_value = "unapprove";
- }
- else
- {
- $approve = $lang->approve_event;
- $approve_value = "approve";
- }
- eval("\$moderator_options = \"".$templates->get("calendar_event_modoptions")."\";");
- }
- if($event['visible'] == 0)
- {
- $event_class = " trow_shaded";
- }
- }
- $month = my_date("n");
- $yearsel = '';
- for($i = my_date("Y"); $i < (my_date("Y") + 5); ++$i)
- {
- $yearsel .= "<option value=\"$i\">$i</option>\n";
- }
- if($mybb->usergroup['canaddevents'] == 1)
- {
- eval("\$addevent = \"".$templates->get("calendar_addeventlink")."\";");
- }
- // Now output the page
- $plugins->run_hooks("calendar_event_end");
- eval("\$event = \"".$templates->get("calendar_event")."\";");
- output_page($event);
- }
- // View all events on a specific day.
- if($mybb->input['action'] == "dayview")
- {
- // Showing a particular calendar
- if($mybb->input['calendar'])
- {
- $query = $db->simple_select("calendars", "*", "cid='".intval($mybb->input['calendar'])."'");
- $calendar = $db->fetch_array($query);
- }
- // Showing the default calendar
- else
- {
- $query = $db->simple_select("calendars", "*", "disporder='1'");
- $calendar = $db->fetch_array($query);
- }
- // Invalid calendar?
- if(!$calendar['cid'])
- {
- error($lang->invalid_calendar);
- }
- // Do we have permission to view this calendar?
- $calendar_permissions = get_calendar_permissions($calendar['cid']);
- if($calendar_permissions['canviewcalendar'] != 1)
- {
- error_no_permission();
- }
- // Incoming year?
- if($mybb->input['year'] && $mybb->input['year'] <= my_date("Y")+5)
- {
- $year = intval($mybb->input['year']);
- }
- else
- {
- $year = my_date("Y");
- }
-
- // Then the month
- if($mybb->input['month'] >=1 && $mybb->input['month'] <= 12)
- {
- $month = intval($mybb->input['month']);
- }
- else
- {
- $month = my_date("n");
- }
- // And day?
- if($mybb->input['day'] && $mybb->input['day'] <= gmdate("t", gmmktime(0, 0, 0, $month, 1, $year)))
- {
- $day = intval($mybb->input['day']);
- }
- else
- {
- $day = my_date("j");
- }
- add_breadcrumb(htmlspecialchars_uni($calendar['name']), get_calendar_link($calendar['cid']));
- add_breadcrumb("$day $monthnames[$month] $year", get_calendar_link($calendar['cid'], $year, $month, $day));
- $plugins->run_hooks("calendar_dayview_start");
- // Load Birthdays for this day
- if($calendar['showbirthdays'])
- {
- $birthdays = get_birthdays($month, $day);
- $bdayhidden = 0;
- if(is_array($birthdays))
- {
- foreach($birthdays as $birthday)
- {
- if($birthday['birthdayprivacy'] == 'all')
- {
- $bday = explode("-", $birthday['birthday']);
- if($bday[2] && $bday[2] < $year)
- {
- $age = $year - $bday[2];
- $age = " (".$lang->sprintf($lang->years_old, $age).")";
- }
- else
- {
- $age = '';
- }
-
- $birthday['username'] = format_name($birthday['username'], $birthday['usergroup'], $birthday['displaygroup']);
- $birthday['profilelink'] = build_profile_link($birthday['username'], $birthday['uid']);
- eval("\$birthday_list .= \"".$templates->get("calendar_dayview_birthdays_bday", 1, 0)."\";");
- $comma = $lang->comma;
- }
- else
- {
- ++$bdayhidden;
- }
- }
- }
- if($bdayhidden > 0)
- {
- if($birthday_list)
- {
- $birthday_list .= " - ";
- }
- $birthday_list .= "{$bdayhidden} {$lang->birthdayhidden}";
- }
- if($birthday_list)
- {
- $bdaydate = my_date($mybb->settings['dateformat'], gmmktime(0, 0, 0, $month, $day, $year), 0, 0);
- $lang->birthdays_on_day = $lang->sprintf($lang->birthdays_on_day, $bdaydate);
- eval("\$birthdays = \"".$templates->get("calendar_dayview_birthdays", 1, 0)."\";");
- }
- }
- // So now we fetch events for this month
- $start_timestamp = gmmktime(0, 0, 0, $month, $day, $year);
- $end_timestamp = gmmktime(23, 59, 59, $month, $day, $year);
- $events_cache = get_events($calendar['cid'], $start_timestamp, $end_timestamp, $calendar_permissions['canmoderateevents']);
- if(is_array($events_cache["$day-$month-$year"]))
- {
- foreach($events_cache["$day-$month-$year"] as $event)
- {
- $event['name'] = htmlspecialchars_uni($event['name']);
- $event_parser_options = array(
- "allow_html" => $calendar['allowhtml'],
- "allow_mycode" => $calendar['allowmycode'],
- "allow_smilies" => $calendar['allowsmilies'],
- "allow_imgcode" => $calendar['allowimgcode'],
- "allow_videocode" => $calendar['allowvideocode']
- );
- $event['description'] = $parser->parse_message($event['description'], $event_parser_options);
- // Get the usergroup
- if($event['username'])
- {
- if(!$event['displaygroup'])
- {
- $event['displaygroup'] = $event['usergroup'];
- }
- $user_usergroup = $groupscache[$event['displaygroup']];
- }
- else
- {
- $user_usergroup = $groupscache[1];
- }
- if(!is_array($titles_cache))
- {
- // Get user titles (i guess we should improve this, maybe in version3.
- $query = $db->simple_select("usertitles", "*", "", array('order_by' => 'posts', 'order_dir' => 'DESC'));
- while($usertitle = $db->fetch_array($query))
- {
- $titles_cache[$usertitle['posts']] = $usertitle;
- }
- unset($usertitle);
- }
- // Event made by registered user
- if($event['uid'] > 0 && $event['username'])
- {
- $event['profilelink'] = build_profile_link(format_name($event['username'], $event['usergroup'], $event['displaygroup']), $event['uid']);
-
- if(trim($event['usertitle']) != "")
- {
- $hascustomtitle = 1;
- }
-
- if($user_usergroup['usertitle'] != "" && !$hascustomtitle)
- {
- $event['usertitle'] = $user_usergroup['usertitle'];
- }
- elseif(is_array($titles_cache) && !$user_usergroup['usertitle'])
- {
- reset($titles_cache);
- foreach($titles_cache as $key => $title)
- {
- if($event['postnum'] >= $key)
- {
- if(!$hascustomtitle)
- {
- $event['usertitle'] = $title['title'];
- }
- $event['stars'] = $title['stars'];
- $event['starimage'] = $title['starimage'];
- break;
- }
- }
- }
- if($user_usergroup['stars'])
- {
- $event['stars'] = $user_usergroup['stars'];
- }
- if(!$event['starimage'])
- {
- $event['starimage'] = $user_usergroup['starimage'];
- }
-
- for($i = 0; $i < $post['stars']; ++$i)
- {
- $event['userstars'] .= "<img src=\"".$event['starimage']."\" border=\"0\" alt=\"*\" />";
- }
-
- if($event['userstars'] && $event['starimage'] && $event['stars'])
- {
- $event['userstars'] .= "<br />";
- }
- }
- // Created by a guest or an unknown user
- else
- {
- if(!$event['username'])
- {
- $event['username'] = $lang->guest;
- }
- $event['username'] = $event['username'];
- $event['profilelink'] = format_name($event['username'], 1);
-
- if($user_usergroup['usertitle'])
- {
- $event['usertitle'] = $user_usergroup['usertitle'];
- }
- else
- {
- $event['usertitle'] = $lang->guest;
- }
- }
- if($event['ignoretimezone'] == 0)
- {
- $offset = $event['timezone'];
- }
- else
- {
- $offset = $mybb->user['timezone'];
- }
- $event['starttime_user'] = $event['starttime']+$offset*3600;
- // Events over more than one day
- $time_period = '';
- if($event['endtime'] > 0 && $event['endtime'] != $event['starttime'])
- {
- $event['endtime_user'] = $event['endtime']+$offset*3600;
- $start_day = gmmktime(0, 0, 0, gmdate("n", $event['starttime_user']), gmdate("j", $event['starttime_user']), gmdate("Y", $event['starttime_user']));
- $end_day = gmmktime(0, 0, 0, gmdate("n", $event['endtime_user']), gmdate("j", $event['endtime_user']), gmdate("Y", $event['endtime_user']));
- $start_time = gmdate("Hi", $event['starttime_user']);
- $end_time = gmdate("Hi", $event['endtime_user']);
-
- // Event only runs over one day
- if($start_day == $end_day && $event['repeats']['repeats'] == 0)
- {
- $time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']);
- // Event runs all day
- if($start_time != 0000 && $end_time != 2359)
- {
- $time_period .= $lang->comma.gmdate($mybb->settings['timeformat'], $event['starttime_user'])." - ".gmdate($mybb->settings['timeformat'], $event['endtime_user']);
- }
- else
- {
- $time_period .= $lang->comma.$lang->all_day;
- }
- }
- else
- {
- $time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']).", ".gmdate($mybb->settings['timeformat'], $event['starttime_user']);
- $time_period .= " - ";
- $time_period .= gmdate($mybb->settings['dateformat'], $event['endtime_user']).", ".gmdate($mybb->settings['timeformat'], $event['endtime_user']);
- }
- }
- else
- {
- $time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']);
- }
- $repeats = fetch_friendly_repetition($event);
- if($repeats)
- {
- $repeats = "<span class=\"smalltext\"><strong>{$lang->repeats}</strong><br />{$repeats}</span>";
- }
- $edit_event = $moderator_options = $event_class = "";
- if($calendar_permissions['canmoderateevents'] == 1 || ($mybb->user['uid'] > 0 && $mybb->user['uid'] == $event['uid']))
- {
- eval("\$edit_event = \"".$templates->get("calendar_event_editbutton")."\";");
- if($calendar_permissions['canmoderateevents'] == 1)
- {
- if($event['visible'] == 1)
- {
- $approve = $lang->unapprove_event;
- $approve_value = "unapprove";
- }
- else
- {
- $approve = $lang->approve_event;
- $approve_value = "approve";
- }
- eval("\$moderator_options = \"".$templates->get("calendar_event_modoptions")."\";");
- }
- if($event['visible'] == 0)
- {
- $event_class = " trow_shaded";
- }
- }
- eval("\$events .= \"".$templates->get("calendar_dayview_event")."\";");
- }
- }
- …
Large files files are truncated, but you can click here to view the full file