Exemplo n.º 1
0
/**
 * 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);
}
Exemplo n.º 2
0
/**
 * 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;
}
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
// 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>";
}