/** * Get a list of calendar IDs the user is not allowed to view. * */ function google_seo_get_unviewable_calendars() { // Calendar specific permission check. require_once MYBB_ROOT . "inc/functions_calendar.php"; $calendars = get_calendar_permissions(); $unviewablecalendars = array(); foreach ($calendars as $cid => $permissions) { if ($cid == (int) $cid && $permissions['canviewcalendar'] == 0) { $unviewablecalendars[] = (int) $cid; } } return implode(",", $unviewablecalendars); }
/** * Build a calendar select list to jump between calendars * * @param int The selected calendar ID * @return string The calendar select */ function build_calendar_jump($selected = 0) { global $db, $mybb, $templates, $lang, $gobutton; $calendar_permissions = get_calendar_permissions(); $calendars = cache_calendars(); if (!is_array($calendars)) { return; } $jump_options = ''; foreach ($calendars as $calendar) { if ($calendar_permissions[$calendar['cid']]['canviewcalendar'] == 0) { continue; } $calendar['name'] = htmlspecialchars_uni($calendar['name']); $sel = ""; if ($selected == $calendar['cid'] || $selected == 0 && $calendar['disporder'] == 1) { $sel = "selected=\"selected\""; } eval("\$jump_options .= \"" . $templates->get("calendar_jump_option") . "\";"); } eval("\$calendar_jump = \"" . $templates->get("calendar_jump") . "\";"); return $calendar_jump; }
/** * Insert an event into the database. * * @return array Array of new event details, eid and private. */ function insert_event() { global $db, $mybb, $plugins; // Yes, validating is required. if (!$this->get_validated()) { die("The event needs to be validated before inserting it into the DB."); } if (count($this->get_errors()) > 0) { die("The event is not valid."); } $event =& $this->data; $query = $db->simple_select("calendars", "*", "cid='" . (int) $event['cid'] . "'"); $calendar_moderation = $db->fetch_field($query, "moderation"); if ($calendar_moderation == 1 && (int) $event['private'] != 1) { $visible = 0; if ($event['uid'] == $mybb->user['uid']) { $calendar_permissions = get_calendar_permissions($event['cid']); if ($calendar_permissions['canbypasseventmod'] == 1) { $visible = 1; } } } else { $visible = 1; } // Prepare an array for insertion into the database. $this->event_insert_data = array('cid' => (int) $event['cid'], 'uid' => (int) $event['uid'], 'name' => $db->escape_string($event['name']), 'description' => $db->escape_string($event['description']), 'visible' => $visible, 'private' => (int) $event['private'], 'dateline' => TIME_NOW, 'starttime' => (int) $event['starttime'], 'endtime' => (int) $event['endtime']); if (isset($event['timezone'])) { $this->event_insert_data['timezone'] = $db->escape_string((double) $event['timezone']); } if (isset($event['ignoretimezone'])) { $this->event_insert_data['ignoretimezone'] = (int) $event['ignoretimezone']; } if (isset($event['usingtime'])) { $this->event_insert_data['usingtime'] = (int) $event['usingtime']; } if (isset($event['repeats'])) { $this->event_insert_data['repeats'] = $db->escape_string(my_serialize($event['repeats'])); } else { $this->event_insert_data['repeats'] = ''; } $plugins->run_hooks("datahandler_event_insert", $this); $this->eid = $db->insert_query("events", $this->event_insert_data); // Return the event's eid and whether or not it is private. $this->return_values = array('eid' => $this->eid, 'private' => $event['private'], 'visible' => $visible); $plugins->run_hooks("datahandler_event_insert_end", $this); return $this->return_values; }
// Showing a calendar if (!$mybb->input['action']) { // Showing a particular calendar if ($mybb->input['calendar']) { $query = $db->simple_select("calendars", "*", "cid='" . intval($mybb->input['calendar']) . "'"); $calendar = $db->fetch_array($query); } else { $query = $db->simple_select("calendars", "*", "", array('order_by' => 'disporder', 'limit' => 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 month/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"); }
/** * Build a calendar select list to jump between calendars * * @param int The selected calendar ID * @return string The calendar select */ function build_calendar_jump($selected = 0) { global $db, $mybb; $calendar_permissions = get_calendar_permissions(); $calendars = cache_calendars(); if (!is_array($calendars)) { return; } foreach ($calendars as $calendar) { if ($calendar_permissions[$calendar['cid']]['canviewcalendar'] == 0) { continue; } $calendar['name'] = htmlspecialchars_uni($calendar['name']); $sel = ""; if ($selected == $calendar['cid'] || $selected == 0 && $calendar['disporder'] == 1) { $sel = "selected=\"selected\""; } $jump_options .= "<option value=\"{$calendar['cid']}\" {$sel}>{$calendar['name']}</option>\n"; } return "<select name=\"calendar\">\n{$jump_options}</select>"; }