From: Steve Sutton Date: Tue, 13 Jun 2017 18:05:57 +0000 (-0400) Subject: Adding new attributes for the event list shortcode X-Git-Tag: v1.6.47^2~9 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=c9db7a4dcf32b464dff5cddbcfc1e52a1d850f6d;p=WP-Plugins%2Fglm-member-db-events.git Adding new attributes for the event list shortcode One for group_by_day and group_month (bool) The group_by_day so we can turn off this in shortcodes. The group_month so we can set start and end date for search to a month. --- diff --git a/models/front/events/list.php b/models/front/events/list.php index eece508..9af4abc 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -69,6 +69,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $eventDay = null; $pageSlug = 'event-detail'; $customPage = false; + $groupByDay = true; + $groupMonth = false; // If there's a pageslug as attribute then update the pageSlug if ( isset ( $actionData['request']['pageslug'] ) ) { @@ -103,6 +105,12 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $search = true; $action = 'event-detail'; } + if ( isset( $actionData['request']['group_by_day'] ) ) { + $groupByDay = filter_var( $actionData['request']['group_by_day'], FILTER_VALIDATE_BOOLEAN ); + } + if ( isset( $actionData['request']['group_month'] ) ) { + $groupMonth = filter_var( $actionData['request']['group_month'], FILTER_VALIDATE_BOOLEAN ); + } if ( isset( $_REQUEST['category'] ) ) { $categoryId = filter_var( $_REQUEST['category'], FILTER_VALIDATE_INT ); if ( $categoryId ) { @@ -171,7 +179,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction } else { $fromDate = date('m/d/Y'); } - if ( isset($_REQUEST['glm_event_to']) ) { + if ( isset($_REQUEST['glm_event_to']) && !$groupMonth ) { $toDate = filter_var( $_REQUEST['glm_event_to'], FILTER_VALIDATE_REGEXP, @@ -181,6 +189,17 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction ) ) ); + } else if ( $groupMonth ) { + // restrict the date to one month of events + if ( !isset( $_REQUEST['glm_event_from'] ) ) { + // use the first date for this month + $fromDate = date( 'm/d/Y', mktime( 0, 0, 0, date( 'n' ), 1, date( 'Y' ) ) ); + } + if ( !isset( $_REQUEST['glm_event_to'] ) ) { + $toDate = date( 'm/d/Y', mktime( 0, 0, 0, date( 'n' ), date( 't' ), date( 'Y' ) ) ); + } + echo '
$fromDate: ' . print_r( $fromDate, true ) . '
'; + echo '
$toDate: ' . print_r( $toDate, true ) . '
'; } else if ( in_array($action, array( 'event-list-name', 'nameSearch', 'featured' ) ) || $this->config['settings']['use_venue_locations'] ) { $toDate = null; } else { @@ -649,7 +668,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction // group the events by the starting date $eventsByDate = $mainEvents = array(); - if ( $events && $action != 'featured' && $action != 'current' ) { + if ( $events && $action != 'featured' && $action != 'current' && $groupByDay ) { foreach ( $events as $event ) { if ( isset( $event['times'] ) && is_array( $event['times'] ) ) { foreach ( $event['times'] as $eventTime ) { @@ -765,7 +784,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $years = array('current' => $current_year = date("Y"), 'next' => date('Y') +1 ); $months = []; $count = 0; - + foreach($years as $key=>$year){ // if member id we need to limit the dates for month dropdown by member id if($memberId){ @@ -782,7 +801,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction } // otherwise we can just pull all of the dates for the events as usual } else { - + if($current_year == $year){ $sql = 'SELECT MONTH(start_time) as month FROM '. GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX .'times '; $sql .= "WHERE YEAR(start_time) = $year AND MONTH(start_time) >= MONTH(CURDATE()) GROUP BY month"; @@ -793,7 +812,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $results[$year] = $wpdb->get_results($sql, ARRAY_A); } } - + } foreach($results as $year => $month){ foreach($month as $key=>$value){ diff --git a/setup/shortcodes.php b/setup/shortcodes.php index 5d557e8..8b00846 100644 --- a/setup/shortcodes.php +++ b/setup/shortcodes.php @@ -99,15 +99,17 @@ $glmMembersEventsShortcodes = array( 'action' => 'list', 'table' => false, 'attributes' => array( - 'type' => 'all', - 'order' => 'title', - 'member' => false, - 'template' => false, - 'limit' => null, - 'featured' => null, - 'current' => null, - 'category' => null, - 'pageslug' => null, + 'type' => 'all', + 'order' => 'title', + 'member' => false, + 'template' => false, + 'limit' => null, + 'featured' => null, + 'current' => null, + 'category' => null, + 'pageslug' => null, + 'group_by_day' => true, + 'group_month' => false, ) ), 'glm-members-event-detail' => array(