Working on the location and no results if no eventId
authorSteve Sutton <steve@gaslightmedia.com>
Thu, 28 Jul 2016 14:58:37 +0000 (10:58 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Thu, 28 Jul 2016 14:58:37 +0000 (10:58 -0400)
If there's no eventId for the page then give a Sorry, no results.
This will allow the main event-detail page to have the index and follow
set for SEO.
I setup the location so it will only output if each section has content.
Like city state zip. Same with the member location.

models/front/events/detail.php
models/front/events/list.php
views/front/events/detail.html

index 04a2f26..ba06882 100644 (file)
@@ -31,9 +31,16 @@ class GlmMembersFront_events_detail extends GlmMembersFront_events_baseAction
      */
     public function modelAction($actionData = false)
     {
-        $status = null;
-        $action = '';
-        $settings = $event = array();
+        $status     = null;
+        $action     = '';
+        $settings   = $event   = array();
+        $event      = null;
+        $categories = array();
+        $fromDate   = null;
+        $toDate     = null;
+        $eventId    = null;
+        $permalink  = null;
+        $title      = null;
 
         if ( isset($_REQUEST['glm_event_from']) ) {
             $fromDate = filter_var($_REQUEST['glm_event_from'], FILTER_SANITIZE_STRING);
@@ -83,7 +90,7 @@ class GlmMembersFront_events_detail extends GlmMembersFront_events_baseAction
         );
         wp_enqueue_script('event-dashboard-js');
         wp_enqueue_style(
-            'glm-event-detail-print', 
+            'glm-event-detail-print',
             GLM_MEMBERS_EVENTS_PLUGIN_BASE_URL . '/css/print.css',
             null,
             '1.0',
@@ -94,8 +101,9 @@ class GlmMembersFront_events_detail extends GlmMembersFront_events_baseAction
 
         switch ($action) {
         case 'event-detail':
-            $event = $this->getModelEventData($eventId);
-            //echo '<pre>$event: ' . print_r($event, true) . '</pre>';
+            if ( $eventId ) {
+                $event = $this->getModelEventData($eventId);
+            }
             $view = 'detail.html';
             break;
         default:
@@ -108,7 +116,7 @@ class GlmMembersFront_events_detail extends GlmMembersFront_events_baseAction
         }
         $permalink = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
         $title = get_the_title();
-        
+
         // Compile template data
         $toDate = date('m/d/Y', strtotime( '+ 2 weeks' ));
         $templateData = array(
index 57d425e..9352e4a 100644 (file)
@@ -54,10 +54,10 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         if ($memberId == 0) {
             $memberId = null;
         }
-               $limit = filter_var( $actionData['request']['limit'], FILTER_VALIDATE_INT );
-               if ( $limit ) {
-                       $action = 'front-page';
-               }
+        $limit = filter_var( $actionData['request']['limit'], FILTER_VALIDATE_INT );
+        if ( $limit ) {
+            $action = 'front-page';
+        }
 
         if (isset($_REQUEST['eventId']) && $eventId = filter_var($_REQUEST['eventId'], FILTER_VALIDATE_INT)) {
             $search = true;
@@ -144,7 +144,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         }
         //echo '<pre>$this->dateRange: ' . print_r($this->dateRange, true) . '</pre>';
 
-        if (isset($_REQUEST['event_name']) 
+        if (isset($_REQUEST['event_name'])
             && $eventNameSearch = filter_var($_REQUEST['event_name'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES)) {
             $search = true;
             $action = 'event-list-name';
@@ -165,9 +165,9 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
 
 
         switch ($action) {
-               case 'front-page':
+        case 'front-page':
             $events = $this->getModelEventsData($categoryId, $limit);
-                       break;
+            break;
         case 'event-list-name':
             $events = $this->getModelEventsData($eventNameSearch);
             $view = 'agenda.html';
@@ -320,11 +320,19 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
 
                     if ( isset($event['locations']) && !empty($event['locations']) && $event['hide_address']['name'] == 'No' ) {
                         $address   = array();
-                        $address[] = $event['locations']['name'];
+                        if ( $event['locations']['name'] ) {
+                            $address[] = $event['locations']['name'];
+                        }
                         if ( $event['locations']['address'] ) {
                             $address[] = $event['locations']['address'];
+                        }
+                        if ( $event['locations']['city']['name'] ) {
                             $address[] = $event['locations']['city']['name'];
+                        }
+                        if ( $event['locations']['state']['name'] ) {
                             $address[] = $event['locations']['state']['name'];
+                        }
+                        if ( $event['locations']['zip'] ) {
                             $address[] = $event['locations']['zip'];
                         }
                         $location  = new SetaPDF_Core_Text_Block( $font, self::PDF_FONT_SIZE );
@@ -337,11 +345,21 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
                         && $event['hide_address']['name'] == 'No'
                     ) {
                         $address   = array();
-                        $address[] = $event['member']['member'];
-                        $address[] = $event['member']['addr1'];
-                        $address[] = $event['member']['city'];
-                        $address[] = $event['member']['state']['value'];
-                        $address[] = $event['member']['zip'];
+                        if ( $event['member']['member'] ) {
+                            $address[] = $event['member']['member'];
+                        }
+                        if ( $event['member']['addr1'] ) {
+                            $address[] = $event['member']['addr1'];
+                        }
+                        if ( $event['member']['city'] ) {
+                            $address[] = $event['member']['city'];
+                        }
+                        if ( $event['member']['state']['value'] ) {
+                            $address[] = $event['member']['state']['value'];
+                        }
+                        if ( $event['member']['zip'] ) {
+                            $address[] = $event['member']['zip'];
+                        }
                         $location  = new SetaPDF_Core_Text_Block( $font, self::PDF_FONT_SIZE );
 
                         $location->setText(implode(', ', $address));
@@ -513,7 +531,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
             $eventsByDate = $mainEvents;
         }
 
-                // Check for alternate template requests
+         // Check for alternate template requests
         switch($actionData['request']['template']) {
             case 'member-list':
                 wp_enqueue_style('glm-member-db-events-style', GLM_MEMBERS_EVENTS_PLUGIN_URL . 'css/front.css');
@@ -528,40 +546,39 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
             case 'member-detail':
                 $view = 'listForMemberDetail.html';
                 break;
-                       case 'frontPage':
-                               $view = 'eventsFrontPage.html';
-                               // update the $eventsByDate array so it has the limit
-                               $eventCountInArray = 0;
-                               $newEventsByDateArray = array();
-                               if ( $limit ) {
-                                       foreach ( $eventsByDate as $eventDate => &$eventgroup ) {
-                                               foreach ( $eventgroup as $key => &$events ) {
-                                                       $i = 0;
-                                                       foreach ( $events as $time => &$times ) {
-                                                               ++$i;
-                                                               ++$eventCountInArray;
-                                                               $newEventsByDateArray[$eventDate][$i][$time] = $times;
-                                                               if ( $eventCountInArray === $limit ) {
-                                                                       break 3;
-                                                               }
-                                                       }
-                                                       if ( $eventCountInArray === $limit ) {
-                                                               break 2;
-                                                       }
-                                               }
-                                               if ( $eventCountInArray === $limit ) {
-                                                       break 1;
-                                               }
-                                       }
-                               }
-                               $eventsByDate = $newEventsByDateArray;
-                               break;
+            case 'frontPage':
+                $view = 'eventsFrontPage.html';
+                // update the $eventsByDate array so it has the limit
+                $eventCountInArray = 0;
+                $newEventsByDateArray = array();
+                if ( $limit ) {
+                    foreach ( $eventsByDate as $eventDate => &$eventgroup ) {
+                        foreach ( $eventgroup as $key => &$events ) {
+                            $i = 0;
+                            foreach ( $events as $time => &$times ) {
+                                ++$i;
+                                ++$eventCountInArray;
+                                $newEventsByDateArray[$eventDate][$i][$time] = $times;
+                                if ( $eventCountInArray === $limit ) {
+                                    break 3;
+                                }
+                            }
+                            if ( $eventCountInArray === $limit ) {
+                                break 2;
+                            }
+                        }
+                        if ( $eventCountInArray === $limit ) {
+                            break 1;
+                        }
+                    }
+                }
+                $eventsByDate = $newEventsByDateArray;
+                break;
             default:
                 // No changes otherwise
                 break;
         }
 
-               //echo '<pre>$eventsByDate: ' . print_r($eventsByDate, true) . '</pre>';
         // Compile template data
         $templateData = array(
             'assetsUrl'    => GLM_MEMBERS_EVENTS_PLUGIN_URL . 'assets/',
index e974d7c..4c2efd5 100644 (file)
@@ -1,4 +1,4 @@
-<div id="glm-event-wrapper" class="event-detail text-left"><!-- #glm-event-wrapper --> 
+<div id="glm-event-wrapper" class="event-detail text-left"><!-- #glm-event-wrapper -->
     <a id="glm-event-detail-takeback-mini" class="glm-member-db-takeback-mini button glm-member-button" href="javascript:history.go(-1)"><span>Back To Search</span></a>
     <div class="row">
         <div class="small-12 large-8 small-centered column">
@@ -7,7 +7,7 @@
             </div>
         </div>
     </div>
-
+    {if $event}
     <div class="row collapse"><!-- .row #1 -->
         <div class="small-12 large-9 large-centered column"><!-- .small-12 .large-9 .large-centered .columns -->
             <span id="eventShare" class="st_sharethis" st_title="{$event.name}" st_url="{$permalink}">+ Share</span>
                                 {if !$event.use_member_location.value && ($event.locations.name || $event.locations.address)}
                                     <div id="glm-event-detail-location">
                                     {if $event.locations.name}{$event.locations.name}<br>{/if}
-                                    {if $event.locations.address}
-                                        {$event.locations.address}<br>
-                                        {$event.locations.city.name}, {$event.locations.state.value} {$event.locations.zip}
-                                    {/if}
+                                    {if $event.locations.address} {$event.locations.address}<br> {/if}
+                                    {if $event.locations.city.name} {$event.locations.city.name} {/if}
+                                    {if $event.locations.state.value} , {$event.locations.state.value} {/if}
+                                    {if $event.locations.zip} {$event.locations.zip} {/if}
                                     </div>
                                 {elseif $event.use_member_location.value}
                                     <div id="glm-event-detail-location">
-                                    {$event.member.member}<br>
-                                    {$event.member.addr1}<br>
-                                    {$event.member.city}, {$event.member.state.value} {$event.member.zip} 
+                                    {if $event.member.member} {$event.member.member}<br> {/if}
+                                    {if $event.member.addr1} {$event.member.addr1}<br> {/if}
+                                    {if $event.member.city} {$event.member.city} {/if}
+                                    {if $event.member.state.value}, {$event.member.state.value}{/if}
+                                    {if $event.member.zip} {$event.member.zip} {/if}
                                     </div>
                                 {/if}
                             {/if}
@@ -91,7 +93,7 @@
                             {if $event.free.value}
                             <div id="glm-event-detail-cost"><strong>Cost: </strong>FREE</div>
                             {/if}
-                            
+
                             <div id="glm-event-detail-contact"><strong>Contact & More Info</strong><br>
                                 {if $event.url}<a href="{$event.url}" target="_blank">{$event.url}</a><br>{/if}
                                 {if $event.contact_name}Contact: {$event.contact_name}<br>{/if}
             </div><!-- /.row #2 -->
         </div><!-- /.small-12 .large-9 .large-centered -->
     </div><!-- /.row .collapse #1 -->
+    {else}
+    <div>Sorry, No results.</div>
+    {/if}
 </div><!-- /#glm-event-wrapper -->