Add Events By Day Drop Down.
authorSteve Sutton <steve@gaslightmedia.com>
Mon, 7 Nov 2016 18:02:21 +0000 (13:02 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Mon, 7 Nov 2016 18:02:21 +0000 (13:02 -0500)
Adding to the search so it will only show events by the day of the
search.

models/front/events/baseAction.php
models/front/events/list.php
views/front/events/searchFormBeerweek.html

index c6eb54a..4e48495 100644 (file)
@@ -157,6 +157,34 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
         return $venues;
     }
 
+    /**
+     * getEventDayList
+     *
+     * Get the days the current event are on.
+     * This will mainly be used for Kalamazoobeerweek
+     *
+     * @access public
+     * @return void
+     */
+    public function getEventDayList()
+    {
+        $days = array();
+
+        $sql = "
+        SELECT DISTINCT UNIX_TIMESTAMP(DATE(start_time)) as event_date
+          FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times
+         WHERE event IN (
+             SELECT id
+               FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events
+              WHERE status = 10)
+           AND start_time >= CURRENT_DATE()
+        ORDER BY event_date";
+
+        $days = $this->wpdb->get_results( $sql, ARRAY_A );
+
+        return $days;
+    }
+
     /**
      * getModelEventsData
      *
index 74ed09f..82f9b3f 100644 (file)
@@ -63,6 +63,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         $members      = array();
         $venues       = array();
         $venueId      = null;
+        $eventDays    = array();
+        $eventDay     = null;
 
         // If a memberID has been specified, limit to that member
         if ( isset( $actionData['request']['member'] ) ) {
@@ -194,6 +196,24 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
                   FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times
                  WHERE DATE(start_time) >= '{$from}')";
         }
+        if ( $this->config['settings']['use_venue_locations'] ) {
+            if ( isset( $_REQUEST['event_day']) ) {
+                $eventDay = filter_var(
+                    $_REQUEST['event_day'],
+                    FILTER_VALIDATE_REGEXP,
+                    array(
+                        'options' => array(
+                            'regexp' => '%[0-9]{2}/[0-9]{2}/[0-9]{4}%'
+                        )
+                    )
+                );
+                if ( $eventDay ) {
+                    $fromDate = $toDate = $eventDay;
+                    $from = $to = date( 'Y-m-d', strtotime( $eventDay ) );
+                }
+            }
+            $this->dateRange = "start_time BETWEEN CAST('{$from}' AS DATE) AND CAST('{$to}' as DATE)";
+        }
 
         if ( isset( $_REQUEST['event_name'] )
             && $eventNameSearch = filter_var( $_REQUEST['event_name'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES ) ) {
@@ -209,11 +229,11 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         }
         // get venues only if use_venue_locations is turned on
         if ( $this->config['settings']['use_venue_locations'] ) {
-            $members = $this->getMembers();
-            $venues  = $this->getVenues();
+            $members   = $this->getMembers();
+            $venues    = $this->getVenues();
+            $eventDays = $this->getEventDayList();
         }
 
-
         wp_register_script(
             'event-dashboard-js',
             GLM_MEMBERS_EVENTS_PLUGIN_BASE_URL . '/js/dashboard.js',
@@ -685,6 +705,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         }
         // Compile template data
         $templateData = array(
+            'eventDays'    => $eventDays,
+            'eventDay'     => $eventDay,
             'assetsUrl'    => GLM_MEMBERS_EVENTS_PLUGIN_URL . 'assets/',
             'siteBaseUrl'  => GLM_MEMBERS_EVENTS_SITE_BASE_URL,
             'currentUrl'   => GLM_MEMBERS_EVENTS_PLUGIN_CURRENT_URL,
index a1c7f76..2b7954f 100644 (file)
                     </select>
                 </div>
             {/if}
-<!--                <input class="glm-search-icon right" type="image" alt="Search" src="{$assetsUrl}search-icon-24x24.png">-->
         </div>
         <div class="row">
+            {if $settings.use_venue_locations}
             <div class="small-6 medium-3 column">
-                <div class="row collapse prefix-radius">
-                    <div class="small-3 columns">
-                        <span class="prefix">From</span>
-                    </div>
-                    <div class="small-9 columns">
-                        <input id="glm-event-from" name="glm_event_from" value="{$fromDate}">
-                    </div>
-                </div>
-            </div>
-            <div class="small-6 medium-3 column">
-                <div class="row collapse prefix-radius">
-                    <div class="small-3 columns">
-                        <span class="prefix">To</span>
-                    </div>
-                    <div class="small-9 columns">
-                        <input id="glm-event-to" name="glm_event_to" value="{$toDate}">
-                    </div>
-                </div>
-
+                <label class="brewery-label">Events By Day</label>
+                <select id="glmEventDay" name="event_day">
+                    <option>-- Choose Day --</option>
+                    {foreach $eventDays as $day}
+                    <option value="{$day.event_date|date_format:"%m/%d/%Y"}"{if $eventDay == $day.event_date|date_format:"%m/%d/%Y"} selected{/if}>{$day.event_date|date_format}</option>
+                    {/foreach}
+                </select>
             </div>
+            {/if}
             <div class="small-12 medium-6 column">
 
                 {if !$eventId}
@@ -88,7 +77,7 @@
         </div>
     </form>
 </div>
-<div class="small-7 medium-3 columns view-select" style="margin-right: 15px;">
+<div class="small-7 medium-3 columns view-select glm-hide" style="margin-right: 15px;">
     <select id="glm-event-view-select">
         <option id="agenda-view-option" value="agenda"> Agenda View </option>
         <option id="calendar-view-option" value="calendar"> Calendar View </option>