Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function em_my_group_shortcode( $args = array(), $format='' ){
- $args['limit'] = (!empty($args['limit']) && is_numeric($args['limit']) )? $args['limit'] : false;
- $args['page'] = (!empty($args['page']) && is_numeric($args['page']) )? $args['page'] : 1;
- $args['page'] = (!empty($_REQUEST['page']) && is_numeric($_REQUEST['page']) )? $_REQUEST['page'] : $args['page'];
- $args['offset'] = ($args['page']-1) * $args['limit'];
- $args['orderby'] = 'event_start_date,event_start_time,event_name'; // must override this to display events in right cronology.
- if( !empty($format) ){ $args['format'] = html_entity_decode($format); } //accept formats
- //Reset some vars for counting events and displaying set arrays of events
- $atts = (array) $args;
- $atts['pagination'] = false;
- $atts['limit'] = false;
- $atts['page'] = false;
- $atts['offset'] = false;
- //decide what form of dates to show
- $EM_Events = EM_Events::get($args);
- $events_count = EM_Events::count($atts);
- ob_start();
- switch ( $args['mode'] ){
- case 'daily':
- $format = (!empty($args['date_format'])) ? $args['date_format']:get_option('date_format');
- $events_dates = array();
- foreach($EM_Events as $EM_Event){
- $events_dates[strtotime($EM_Event->start_date)][] = $EM_Event;
- }
- foreach ($events_dates as $event_day_ts => $events){
- echo '<h2>'.date_i18n($format,$event_day_ts).'</h2>';
- echo EM_Events::output($events, $atts);
- }
- break;
- }
- if( !empty($args['limit']) && $events_count > $args['limit'] && (!empty($args['pagination']) || !isset($args['pagination'])) ){
- //Show the pagination links (unless there's less than $limit events)
- $page_link_template = add_query_arg(array('page'=>'%PAGE%'));
- echo em_paginate( $page_link_template, $events_count, $args['limit'], $args['page']);
- }
- return ob_get_clean();
- }
- add_shortcode ( 'group_events', 'em_my_group_shortcode');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement