function gce_print_calendar($feed_ids, $display = 'grid', $args = array(), $widget = false)
{
    $defaults = array('title_text' => '', 'max_events' => 25, 'sort' => 'asc', 'grouped' => 0, 'month' => null, 'year' => null, 'widget' => 0);
    $args = array_merge($defaults, $args);
    extract($args);
    $ids = explode('-', $feed_ids);
    //Create new display object, passing array of feed id(s)
    $d = new GCE_Display($ids, $title_text, $max_events, $sort);
    $markup = '';
    if ('grid' == $display) {
        $markup = '<script type="text/javascript">jQuery(document).ready(function($){gce_ajaxify("' . ($widget == 1 ? 'gce-widget-' : 'gce-page-grid-') . $feed_ids . '", "' . $feed_ids . '", "' . absint($max_events) . '", "' . $title_text . '", "' . ($widget == 1 ? 'widget' : 'page') . '");});</script>';
        if ($widget == 1) {
            $markup .= '<div class="gce-widget-grid" id="gce-widget-' . $feed_ids . '">';
        } else {
            $markup .= '<div class="gce-page-grid" id="gce-page-grid-' . $feed_ids . '">';
        }
        $markup .= $d->get_grid($year, $month, $widget);
        $markup .= '</div>';
    } else {
        if ('list' == $display || 'list-grouped' == $display) {
            $markup = '<div class="gce-page-list">' . $d->get_list($grouped) . '</div>';
        }
    }
    return $markup;
}
示例#2
0
function gce_print_calendar($feed_ids, $display = 'grid', $args = array(), $widget = false, $uid = null)
{
    // Set static unique ID for setting id attributes
    if ($uid == null) {
        static $uid = 1;
    }
    $defaults = array('title_text' => '', 'sort' => 'asc', 'grouped' => 0, 'month' => null, 'year' => null, 'widget' => 0, 'paging_interval' => null, 'max_events' => null, 'start_offset' => null, 'paging_type' => null, 'paging' => null, 'max_num' => null, 'range_start' => null, 'show_tooltips' => null);
    $args = array_merge($defaults, $args);
    extract($args);
    $ids = explode('-', str_replace(' ', '', $feed_ids));
    //Create new display object, passing array of feed id(s)
    $d = new GCE_Display($ids, $title_text, $sort);
    $markup = '';
    $start = current_time('timestamp');
    if ($widget) {
        foreach ($ids as $f) {
            $paging = get_post_meta($f, 'gce_paging_widget', true);
            $old_paging[] = get_post_meta($f, 'gce_paging', true);
            if ($paging) {
                update_post_meta($f, 'gce_paging', true);
            }
            $paging_interval = get_post_meta($f, 'gce_widget_paging_interval', true);
        }
    }
    // If paging is not set then we need to set it now
    foreach ($ids as $id) {
        if ($paging === null) {
            $paging = get_post_meta($id, 'gce_paging', true);
        }
        if (empty($show_tooltips) && $show_tooltips != 0) {
            $tooltips = get_post_meta($id, 'gce_show_tooltips', true);
        } else {
            $tooltips = $show_tooltips;
        }
        if (!empty($tooltips) && ($tooltips === true || $tooltips == 'true' || $tooltips == '1' || $tooltips == 1)) {
            $show_tooltips = 'true';
        } else {
            $show_tooltips = 'false';
        }
        if ('date-range-grid' === $display) {
            $start = get_post_meta($id, 'gce_feed_range_start', true);
            $start = gce_date_unix($start);
            $year = date('Y', $start);
            $month = date('n', $start);
        }
    }
    if ('grid' == $display) {
        global $localize;
        $target = 'gce-' . $uid;
        $localize[$target] = array('target_element' => $target, 'feed_ids' => $feed_ids, 'title_text' => $title_text, 'type' => $widget == 1 ? 'widget' : 'page', 'show_tooltips' => $show_tooltips == 'true' || $show_tooltips == '1' ? 'true' : 'false');
        $data_attr = sprintf('data-feed="%s"', htmlspecialchars(json_encode($localize), ENT_QUOTES, 'UTF-8'));
        if ($widget == 1) {
            $markup .= '<div class="gce-widget-grid gce-widget-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '" ' . $data_attr . '>';
        } else {
            $markup .= '<div class="gce-page-grid gce-page-grid-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '" ' . $data_attr . '>';
        }
        $markup .= $d->get_grid($year, $month, $widget, $paging);
        $markup .= '</div>';
    } else {
        if ('list' == $display || 'list-grouped' == $display) {
            if ($widget) {
                $markup = '<div class="gce-widget-list gce-widget-list-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '">' . $d->get_list($grouped, $start + $start_offset, $paging, $paging_interval, $start_offset, $max_events, $paging_type, $max_num) . '</div>';
            } else {
                $markup = '<div class="gce-page-list gce-page-list-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '">' . $d->get_list($grouped, $start + $start_offset, $paging, $paging_interval, $start_offset, $max_events, $paging_type) . '</div>';
            }
        } else {
            if ('date-range-list' == $display) {
                $paging_interval = 'date-range';
                if ($widget) {
                    $markup = '<div class="gce-widget-list gce-widget-list-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '">' . $d->get_list($grouped, $range_start, false, $paging_interval, $start_offset, INF, $paging_type, $max_num) . '</div>';
                } else {
                    $markup = '<div class="gce-page-list gce-page-list-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '">' . $d->get_list($grouped, $range_start, false, $paging_interval, $start_offset, INF, $paging_type, INF) . '</div>';
                }
            } elseif ('date-range-grid' == $display) {
                global $localize;
                $target = 'gce-' . $uid;
                $localize[$target] = array('target_element' => $target, 'feed_ids' => $feed_ids, 'title_text' => $title_text, 'type' => $widget == 1 ? 'widget' : 'page', 'show_tooltips' => $show_tooltips == 'true' || $show_tooltips == '1' ? 'true' : 'false');
                $data_attr = sprintf('data-feed="%s"', htmlspecialchars(json_encode($localize), ENT_QUOTES, 'UTF-8'));
                if ($widget) {
                    $markup = '<div class="gce-widget-grid gce-widget-grid-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '"' . $data_attr . '>' . $d->get_grid($year, $month, $widget, $paging) . '</div>';
                } else {
                    $markup = '<div class="gce-page-grid gce-page-grid-' . esc_attr($feed_ids) . '" id="gce-' . $uid . '"' . $data_attr . '>' . $d->get_grid($year, $month, $widget, $paging) . '</div>';
                }
            }
        }
    }
    // Reset post meta
    if ($widget) {
        $i = 0;
        foreach ($ids as $f) {
            update_post_meta($f, 'gce_paging', $old_paging[$i]);
            $i++;
        }
    }
    $uid++;
    return $markup;
}