Update to show just the date that was clicked.
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 7 Mar 2017 17:51:44 +0000 (12:51 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 7 Mar 2017 17:51:44 +0000 (12:51 -0500)
This is for recurring event only. If they get shown from admin view
event then the next current event date is used.

classes/data/dataEvents.php
models/admin/ajax/eventsCalMonthAJAX.php
models/front/events/baseAction.php
models/front/events/detail.php
views/front/events/agenda.html
views/front/events/detail.html

index 7ec2b6c..db4f34d 100644 (file)
@@ -839,6 +839,24 @@ class GlmDataEvents extends GlmDataAbstract
 
     }
 
+    public function getNextDate( $id, $fromDate )
+    {
+        // Load the data class for Event Times
+        require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH . '/data/dataTimes.php';
+        $Times = new GlmDataEventsTimes( $this->wpdb, $this->config );
+
+        // Select the first entry by matching min start time
+        $next = $Times->getEntry( 0, 'id', "T.event = $id AND T.start_time >= DATE('" . date( "Y-m-d", strtotime( $fromDate ) ) . "') ORDER BY T.start_time" );
+
+        // If there's a first times entry
+        if ($next) {
+            // Convert to text date
+            $nextDate = date('m/d/Y', $next['start_time']['timestamp']);
+            return $nextDate;
+        }
+        return false;
+    }
+
     /**
      * Get ID/Name list
      *
index 50a55be..eac5483 100644 (file)
@@ -129,7 +129,7 @@ class GlmMembersAdmin_ajax_eventsCalMonthAJAX extends GlmDataEventsTimes
         if( isset( $_REQUEST['date_string'] ) || isset($_REQUEST['all_events'] ) ){
             $image_url = GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/small/';
             if( isset( $_REQUEST['date_string'] ) ){
-                
+
 
                 $date = date_parse($_REQUEST['date_string']);
                 $month = $date['month'];
@@ -147,7 +147,7 @@ class GlmMembersAdmin_ajax_eventsCalMonthAJAX extends GlmDataEventsTimes
                 $events = $this->getModelTimesData();
 //                $sql = "SELECT * FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times WHERE end_time >= CURDATE() GROUP BY event ORDER BY start_time LIMIT 3;";
 //                $events = $wpdb->get_results($sql, 'ARRAY_A');
-                
+
 //                foreach($events_times as $times){
 //                    $sql = "SELECT * FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events WHERE id = " . $times->event.";";
 //                    $event[] = $wpdb->get_results($sql, 'ARRAY_A');
@@ -157,20 +157,20 @@ class GlmMembersAdmin_ajax_eventsCalMonthAJAX extends GlmDataEventsTimes
 //                        $events[] = $e;
 //                    }
 //                }
-            
+
             }
 //                $this->dateRangeTimes = "AND end_time >= CURDATE() ORDER BY start_time LIMIT 3";
 //                $events = $this->getModelTimesData();
-                
 
-    
-    
+
+
+
             $datesArray = array();
-            foreach($events as $event){        
+            foreach($events as $event){
                 $sql = "SELECT * FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events WHERE id = " . $event['event'];
 
                 $event_recur = $wpdb->get_results($sql);
-        
+
                 if($event_recur[0]->image !== ''){
                     $image = $image_url . $event_recur[0]->image;
                 } else {
@@ -185,13 +185,13 @@ class GlmMembersAdmin_ajax_eventsCalMonthAJAX extends GlmDataEventsTimes
                 if($start_timestamp < $end_timestamp){
                     $start_date = $start_date . " - " . $end_date;
                 }
-                
+
                 if(count($event['start_time']['datetime']) > 1){
                     $end_date = date('M d', strtotime(end($event['end_time']['datetime'])->end_time));
                 } else {
                     $end_date = '';
                 }
-                
+
                 $event_data[] = array(
                         "start_date" => $start_date,
                         "end_date"   => $end_date,
@@ -202,9 +202,9 @@ class GlmMembersAdmin_ajax_eventsCalMonthAJAX extends GlmDataEventsTimes
                         'time'       => $time_of_day,
                         'timestamp'  => $start_timestamp,
                         'slug'       => $event->name_slug,
-                        'url'        => GLM_MEMBERS_EVENTS_SITE_BASE_URL . 'event-detail/' . $event_recur[0]->name_slug
+                        'url'        => GLM_MEMBERS_EVENTS_SITE_BASE_URL . 'event-detail/' . $event_recur[0]->name_slug . "/"
                     );
-                
+
                 $datesArray[$event['start_time']['timestamp']][] = $event_data;
             }
 
@@ -267,4 +267,4 @@ class GlmMembersAdmin_ajax_eventsCalMonthAJAX extends GlmDataEventsTimes
         echo json_encode($return);
         wp_die();
     }
-}
\ No newline at end of file
+}
index 43eaa60..d292ba7 100644 (file)
@@ -414,7 +414,7 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
      * @access public
      * @return array The event
      */
-    public function getModelEventData( $eventId )
+    public function getModelEventData( $eventId, $fromDate )
     {
         $this->postAddTimes     = true;
         $this->postAddLocations = true;
@@ -429,11 +429,18 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
                 $event['ticket_url'] = 'http://' . $event['ticket_url'];
             }
         }
-        $event['dates'] = $this->getEventDate(
-            strtotime( $event['starting_date'] ),
-            strtotime( $event['ending_date'] ),
-            'timestamp'
-        );
+        if ( $event['recurrences'][0]['recurring']['value'] ) {
+            $nextDate = $this->getNextDate( $event['id'], $fromDate );
+            $event['dates'] = ( $nextDate )
+                ? strftime( '%b %e, %Y', strtotime( $nextDate ) )
+                : strftime( '%b %e, %Y', strtotime( $event['ending_date'] ) );
+        } else {
+            $event['dates'] = $this->getEventDate(
+                strtotime( $event['starting_date'] ),
+                strtotime( $event['ending_date'] ),
+                'timestamp'
+            );
+        }
         $event['recurDays'] = $this->getEventRecurDays( $event );
         $this->postAddTimes     = false;
         $this->postAddLocations = false;
index bc4dfa7..78ceee5 100644 (file)
@@ -118,12 +118,13 @@ class GlmMembersFront_events_detail extends GlmMembersFront_events_baseAction
         case 'event-detail':
             if ( $eventId ) {
                 $this->postAddRecurrences = true;
-                $event                    = $this->getModelEventData($eventId);
+                $event                    = $this->getModelEventData( $eventId, $fromDate );
                 $this->postAddRecurrences = false;
                 // Check the end date to see if this event has expired.
                 if ( $event['ending_timestamp'] < strtotime( 'today' ) ) {
                     $expired = true;
                 }
+                // Check the times array for this event and find the next event date.
             }
             $view = 'detail.html';
             break;
@@ -147,6 +148,7 @@ class GlmMembersFront_events_detail extends GlmMembersFront_events_baseAction
         if ( !$this->config['settings']['use_venue_locations'] ) {
             $toDate = date('m/d/Y', strtotime( '+ 2 weeks' ));
         }
+
         $templateData = array(
             'eventDays'   => $eventDays,
             'eventDay'    => $eventDay,
@@ -158,7 +160,6 @@ class GlmMembersFront_events_detail extends GlmMembersFront_events_baseAction
             'venueId'     => $venueId,
             'assetsUrl'   => GLM_MEMBERS_EVENTS_PLUGIN_URL . 'assets/',
             'siteBaseUrl' => GLM_MEMBERS_EVENTS_SITE_BASE_URL,
-            //'currentUrl'  => $_SERVER['HTTP_REFERER'],
             'categories'  => $categories,
             'fromDate'    => $fromDate,
             'toDate'      => $toDate,
index ff2f2d1..81a0814 100644 (file)
@@ -63,7 +63,7 @@
                                         {if $event.image}<img style="float:right;" src="{$imgUrl}{$event.image}">{/if}
                                         {$event.intro}
                                         <div>
-                                            <a class="glm-read-more" href="{$siteBaseUrl}event-detail/{$event.name_slug}/">Read More</a>
+                                            <a class="glm-read-more" href="{$siteBaseUrl}event-detail/{$event.name_slug}/{if $event.recurrences.0.recurring.value}?glm_event_from={$date|date_format:"%m/%d/%Y"|escape:"url"}{/if}">Read More</a>
                                         </div>
                                     </div>
                                 </div>
         var event_search        = $(".glm-search-icon");
         var main_content        = $("#main-content");
         var view                = '{$cal_view}';
-        
+
 //        console.log(sessionStorage.view + " : " + sessionStorage.override);
         event_search.on('click', function(){
             sessionStorage.override = 'yes';
         } else if( sessionStorage.override === 'yes'){
             view = 'agenda';
         }
-        
+
         // AJAX FUNCTION ************************************************
         // Get calendar month via AJAX
         function eventsCalMonthAJAX(month) {
                             start:   i.start,
                             end:     i.last,
                             allDay:  i.all_day,
-                            url:     i.url
+                            url:     i.url,
+                            recurs:  i.recurs
                         };
                     });
                     $("#eventCalendar").fullCalendar('removeEvents');
             handleWindowResize: true,
             lazyFetching: true,
             eventClick : function (event){
-                location.href = event.url;
+                console.log(event);
+                //location.href = event.url + '?glm_event_from=' + event.start.format();
+                return false;
             },
             eventLimit: true,
             views: {
         $(document).on("click", "button.fc-button", function () {
             eventsCalMonthAJAX(month_obj);
         });
-       
+
        $('#eventCalendar').find('.fc-today-button').on("click", function(){
            eventsCalMonthAJAX(month_obj);
        });
index 42ad590..2575515 100644 (file)
                         <div class="small-12 medium-{if $event.locations || $event.use_member_location.value || $event.other_ref_dest}7{else}12{/if} column">
                             <div id="glm-event-detail-dates">
                                 <div>
-                                    {if $event.recurrences.0.recurring.value}
-                                    <div style="width: 100%; height:auto;display:inline-block;clear:both;">
-                                        {foreach $event.times as $time}
-                                            {if $time.start_time.timestamp >= date('U')}
-                                                <div style="font-size: 12px;display: block;width:72px;height: 25px;float:left;background-color:grey; border: solid black 1px; border-radius: 5px;margin:2px;padding: 1px 2px;">{$time.start_time.timestamp|date_format:"%m/%d/%Y"}</div>
-                                            {/if}
-                                        {/foreach}
-                                    </div>
-                                    {else}
-                                        <strong>{$event.dates}</strong>
-                                    {/if}
-                                    {if $event.recurDays}<span>{$event.recurDays}</span>{/if}
+                                    <strong>{$event.dates}</strong>
                                     {if $expired} <span style="color:red;">(Expired)</span>{/if}
                                 </div>
                                 {if !$event.all_day}