Updating the view files
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 26 Feb 2019 15:18:23 +0000 (10:18 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 26 Feb 2019 15:18:23 +0000 (10:18 -0500)
Next thing is to bring these back into the main plugin.

glm-member-db-events/views/front/events/agenda.html
glm-member-db/views/front/members/list-old.html [new file with mode: 0644]
glm-member-db/views/front/members/list.html [changed mode: 0644->0755]
glm-member-db/views/front/members/listTypeGrid.html [new file with mode: 0644]
inc/custom.php
sidebar-page.php

index b852bc7..171e39f 100644 (file)
@@ -1,8 +1,8 @@
 <div id="glm-event-wrapper">
         <div class="row">
-        {if $smarty.request.s || apply_filters("is_page", 'search')}
+        {if $smarty.request.s || is_page( 'search' )}
                 <hr>
-                <h1 class="page-title event-search-result-title">Related Events for: {$smarty.request.s}</h1>
+                <h1 class="page-title event-search-result-title">Related Events for: {$smarty.request.s|escape|stripslashes}</h1>
         {else}
             {include file='front/events/searchForm.html'}
         {/if}
diff --git a/glm-member-db/views/front/members/list-old.html b/glm-member-db/views/front/members/list-old.html
new file mode 100644 (file)
index 0000000..035f379
--- /dev/null
@@ -0,0 +1,825 @@
+<div class="glm-member-db-list glm-member-db-{$view}-view
+{if $settings.list_map_show_opened}map-opened {else}map-closed {/if}
+{if $settings.list_show_search_filters_opened}filters-opened {else}filters-closed {/if}
+">
+
+            {if $settings.selected_map_interface == 1}
+                <!--  Leaflet Map -->
+                <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
+                <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
+                <link rel="stylesheet" href="{$jsUrl}/LeafletMarkerCluster/dist/MarkerCluster.Default.css" />
+                <script src="{$jsUrl}/LeafletMarkerCluster/dist/leaflet.markercluster-src.js"></script>
+                <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
+                <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
+            {/if}
+
+            {if $settings.selected_map_interface == 2}
+                <!-- Google Map -->
+                <script src="//maps.googleapis.com/maps/api/js?&key={$settings.google_maps_api_key}"></script>
+            {/if}
+
+
+
+{include file='front/members/header.html'}
+    {apply_filters('glm-member-db-front-members-list-pageTop', '')}
+<div class="glm-member-list-inner-wrapper">
+{if $settings.list_show_map}
+    <div id="glm-member-list-map-toggle" class="button glm-button">Map</div>
+{/if}
+{if $settings.list_show_search}
+<div id="glm-member-list-filters-wrapper">
+    <div id="glm-member-list-filters-button" class="button glm-button glm-member-list-filters-toggle">
+        FILTERS
+    </div>
+    <div id="glm-member-list-filters-box">
+        <div id="glm-member-list-filters-close" class="button glm-button glm-member-list-filters-toggle">Close</div>
+        <form action="{$thisUrl}?glm_action=list" method="post" enctype="multipart/form-data">
+            {if isset($smarty.request.s)}
+            <input type="hidden" name="s" value="{$smarty.request.s|escape}">
+            {/if}
+            <div class="small-12 columns glm-member-search glm-member-entry-container glm-member-container">
+                {apply_filters('glm-member-db-front-members-list-searchFormTop', '')}
+                <div>
+                    <h3>Refine Search</h3>
+                </div>
+                {if $settings.list_show_search_category}
+                    <div>
+                    By Category:
+<!-- To enable multi-select, use this code for the category search instead of the code below
+                        <select name="categorySearchMultiple[]" id="categorySelect" multiple>
+                        {if !$singleCategory}
+                            <option value="">(all)</option>
+                        {/if}
+                        {foreach from=$categories item=v}
+                            <option value="{$v.id}"{if $v.default} selected="selected"{/if}>
+                                {if $v.parent}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
+                            </option>
+                        {/foreach}
+                        </select>
+-->
+                        <select name="categorySearch" id="categorySelect">
+                        {if !$singleCategory}
+                            <option value="">(all)</option>
+                        {/if}
+                        {foreach from=$categories item=v}
+                            <option value="{$v.id}"{if $v.default} selected="selected"{/if}>
+                                {if $v.parent}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
+                            </option>
+                        {/foreach}
+                        </select>
+
+                    </div>
+                {/if}
+                {if $settings.list_show_search_amenities}
+                    {if $amenities|@count gt 0}
+                    <div>
+                        By Amenities:
+                        <select name="amenitySearch[]" id="amenitySelect" title="Click to Select Amenities" multiple="multiple">
+                            {foreach from=$amenities item=v}
+                                <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                    {$v.name}
+                                </option>
+                            {/foreach}
+                        </select>
+                    </div>
+                    {/if}
+                {/if}
+                {if $settings.list_show_search_region}
+                    {if $regions|@count gt 0}
+                    <div>
+                        By Regions:
+                        <select name="regionUserSearch[]">
+                            {if $regions|@count gt 1}
+                                <option value"">(all)</option>
+                            {/if}
+                            {foreach from=$regions item=v}
+                                <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                    {$v.name}
+                                </option>
+                            {/foreach}
+                        </select>
+                    </div>
+                    {/if}
+                {/if}
+
+                {if $cities|@count gt 0}
+                <div>
+                    By Cities:
+                    <select name="cityUserSearch[]">
+                        {if $cities|@count gt 1}
+                            <option value"">(all)</option>
+                        {/if}
+                        {foreach from=$cities item=v}
+                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                {$v.name}
+                            </option>
+                        {/foreach}
+                    </select>
+                </div>
+                {/if}
+
+
+                {if $settings.list_show_search_text}
+                    <div>
+                        By Name: <input type="text" name="textSearch" value="{$textSearch}" class="glm-form-text-input">
+                    </div>
+                {/if}
+                <div><input class="button glm-member-button centered" type="submit" value="Search"></div>
+                {apply_filters('glm-member-db-front-members-list-searchFormBottom', '')}
+            </div>
+        </form>
+    </div> <!-- glm-member-list-filters-box -->
+</div> <!-- glm-member-list-wrapper -->
+{/if} {*list_show_search*}
+{if $settings.list_show_map}
+
+        {apply_filters('glm-member-db-front-members-list-mapTop', '')}
+        <div id="glm-locationMap-container">
+
+            {if $settings.selected_map_interface == 1}
+                <!--  Leaflet Map -->
+                <div id="LeafletMapContainer" style="height: 400px; width: 90%; border: 1px black solid; z-index: +0; margin: 0 auto;"></div>
+            {/if}
+
+            {if $settings.selected_map_interface == 2}
+                <!-- Google Map -->
+                <div id="glm-locationMap" class="glm-map">(map loads here)</div>
+            {/if}
+
+        </div>
+        {apply_filters('glm-member-db-front-members-list-mapBottom', '')}
+    {/if}
+    {apply_filters('glm-member-db-front-members-list-listHeaderTop', '')}
+
+
+     <!-- Member information displayed in map bubbles -->
+    <div id="glm-map-bubbles-container"> <!-- endless map bubbles -->
+        {foreach $mapItems as $m}
+            <div id="map_info_{$m.id}" class="glm-hidden">
+                {apply_filters('glm-member-db-front-members-list-mapBubbleTop', '', $m.member)}
+                {if $m.logo && $settings.list_map_show_logo}
+                    <div class="glm-member-list-image">
+                        <img src="{$glmPluginMediaUrl}/images/{$settings.list_map_logo_size}/{$m.logo}">
+                    </div>
+                {/if}
+                <div class="glm-map-member-name">
+                    {if $settings.list_map_show_detaillink && !$m.has_no_profile}
+                        <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">{$m.member_name}</a>
+                    {else}
+                        {$m.member_name}
+                    {/if}
+                </div>
+                {if $settings.list_map_show_address}
+                    <p class="glm-map-member-address">
+                        {if $settings.list_map_show_street}
+                            {if $m.addr1}{$m.addr1}<br>{/if}
+                            {if $m.addr2}{$m.addr2}<br>{/if}
+                        {/if}
+                        {if $settings.memb_info_location && $settings.list_map_show_citystatezip}
+                            {if $m.city}{$m.city}{if $m.state}, {/if}{/if}{if $m.state}{$m.state}{/if}{if $m.zip} {$m.zip}{/if}
+                        {/if}
+                        {if $m.country && $settings.list_map_show_country}
+                            {$m.country}
+                        {/if}
+                    </p>
+                {/if} {*list_map_show_address*}
+                <div class="glm-member-list-info">
+                    <p class="glm-member-list-map-info">
+                        {if $m.phone && $settings.list_map_show_phone}<b>Phone:</b> <a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.phone)}">{apply_filters('glm_associate_phone_filter', $m.phone)}</a><br>{/if}
+                        {if $m.toll_free && $settings.list_map_show_tollfree}<a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.toll_free)}">{apply_filters('glm_associate_phone_filter', $m.toll_free)}</a><br>{/if}
+                        {if $m.email && $settings.list_map_show_email}<b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$m.email}</a><br>{/if}
+                        {if $m.region && $settings.list_map_show_region}<b>Region:</b> {$m.region}<br>{/if}
+                        {if $m.url && $settings.list_map_show_url}<a href="{$m.url}"{if $settings.list_map_show_url_newtarget} target="_blank"{/if}>Website</a><br>{/if}
+                    </p>
+    <!-- Not using Description for now - Use short descr for maps {literal}
+                    {if $m.descr && $settings.list_map_show_descr}{$m.descr|nl2br}<br>{/if}
+    {/literal} -->
+                    {if $m.short_descr && $settings.list_map_show_short_descr}{$m.short_descr|truncate:200}<br>{/if}
+                    {if $settings.list_map_show_detaillink && !$m.has_no_profile}
+                        <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">More Info</a>
+                    {/if}
+                    {if $m.categories && $settings.list_map_show_categories}
+                        <div class="glm-member-list-items">
+                            <b>{$terms.term_member_cap} Categories</b>
+                            <ul>
+                            {foreach $m.categories as $c}
+                                <li>
+                                    {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
+                                </li>
+                            {/foreach}
+                            </ul>
+                        </div>
+                    {/if}
+    <!-- Not using credit cards for now  {literal}
+                    {if $m.cc_type && $settings.list_map_show_creditcards}
+                        <div class="glm-member-list-items">
+                            <b>Credit Cards Accepted:</b>
+                            <ul>
+                            {foreach $m.cc_type.names as $c}
+                                <li>{$c}</li>
+                            {/foreach}
+                            </ul>
+                        </div>
+                    {/if}
+     {/literal} -->
+                    {if $settings.list_map_show_amenities}
+                        <div class="glm-member-list-items">
+                            <b>Amenities:</b>
+                            <ul>
+                            {foreach $m.amenities as $a}
+                                <li>{$a.name}</li>
+                            {/foreach}
+                            </ul>
+                        </div>
+                    {/if}
+                </div>
+                {apply_filters('glm-member-db-front-members-list-mapBubbleBottom', '', $m.member)}
+            </div> <!-- End of information displayed in map bubbles -->
+        {/foreach}
+    </div>
+
+{if $settings.list_show_list && !$blankStart}
+{if $settings.list_header_text}
+    <h3 class="glm-member-db-list-header-title">{$settings.list_header_text}</h3>
+{elseif apply_filters('is_page', 'search')}
+    <h1 class="glm-member-db-list-header-title member-search-page-title">List of {$terms.term_member_plur_cap}</h1>
+{/if}
+
+{if $haveMembers}
+
+    <div id="glm-member-list-terms">{$terms.term_member_plur_cap} found: {$membersFound}<br></div>
+
+    {apply_filters('glm-member-db-front-members-list-listHeaderBottom', '')}
+
+ <!-- Member information displayed in list -->
+
+<div class="glm-member-list-listing-container">
+{if $settings.list_show_search_alpha && !apply_filters("is_page", 'search')}
+    <div class="glm-alpha-links">
+        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $smarty.request.s}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}" class="glm-alpha-link{if !$alphaSelected} glm-alpha-link-selected{/if}">All</a>
+  {foreach $alphaList as $a}
+        <a href="{$thisUrl}?glm_action=list&alpha={$a.alpha}&textSearch={$textSearch}{if $smarty.request.s}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
+  {/foreach}
+   </div>
+{/if}
+
+{if $paging}
+    <br>
+    <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
+    <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>
+    <br>
+    showing {$start} through {$lastDisplayed} of {$filteredMembersFound}
+{/if}
+
+{if $view == grid}
+    <ul class="row">
+    {foreach $members as $member}
+        <li class="glm-member-list-record columns small-12 medium-6 large-4">
+            <a class="anchorWrapper"{if $settings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{else} style="cursor: default;"{/if}>
+                {apply_filters('glm-member-db-front-members-list-memberAbove', '', $member.member_pointer)}
+                <div class="glm-member-db-border-wrap">
+                    {apply_filters('glm-member-db-front-members-list-memberTop', '', $member.member_pointer)}
+
+                    <div class="glm-member-list-image-wrapper"{if $settings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{/if}>
+
+                    {if $member.featured}
+                    <div class="glm-member-list-featured-tag">
+                        featured
+                    </div>
+                    {/if}
+
+                    {if $member.logo && $settings.list_show_logo}
+                        <div class="glm-member-list-has-image">
+                            <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$member.logo}">
+                        </div>
+                    {elseif $settings.list_show_logo_filler}
+                        <div class="glm-member-list-has-image">
+                            <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
+                        </div>
+                    {else}
+                        <div class="glm-member-list-missing-image"></div>
+                    {/if}
+                    </div>
+                    <div class="glm-member-list-info-wrapper">
+                        <h4 class="glm-member-title"> {$member.member} </h4>
+                        <div class="glm-member-list-description small-12 columns">
+                            <div>
+                            {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
+                            {if $member.short_descr && $settings.list_show_short_descr}
+                                {$member.short_descr|nl2br}
+                            {/if}
+                            {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
+                            </div>
+                        </div>
+                        {if $member.city}
+                            <div class="glm-member-list-address-container">
+                                <span class="member-city">{$member.city}{if $member.state.value}{/if}</span><br>
+                            </div>
+                        {/if}
+                        {if $settings.memb_info_location && $member.region && $settings.list_show_region}
+                            <div class="glm-member-list-region-container">
+                                Region: {$member.region}
+                            </div>
+                        {/if}
+                        {if ($settings.memb_info_contact && $member.phone && $settings.list_show_phone) || ($settings.memb_info_contact && $member.toll_free && $settings.list_show_tollfree)}
+                            <div class="glm-member-list-phone-container">
+                                {if $member.phone && $settings.list_show_phone}<span class="glm-member-db-phone">{apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
+                            </div>
+                        {/if}
+
+
+                    </div>
+                </div> <!-- End of glm-member-db-border-wrap -->
+            </a>
+            <div class="glm-member-list-sub-links">
+                <ul>
+                    {if $member.url && $settings.list_show_url}<li><a href="{$member.url}"{if $settings.list_show_url_newtarget} target="_blank"{/if}>Visit Website</a></li>{/if}
+                    {$packageLink = apply_filters('glm-member-db-front-members-list-linksBottom', '', $member.member_pointer)}
+                    {if $packageLink}<li>{$packageLink}</li>{/if}
+                    {if $member.reservation_url}<li><a target="_blank" href="{$member.reservation_url}">Reserve Now</a></li>{/if}
+
+                    {if $settings.list_show_live_cam}
+                        {if $member.live_cam_type.name == "Web Page" && $member.live_cam_url && $settings.list_show_live_cam}
+                            <li><a target="_blank" href="{$member.live_cam_url}">{$terms.term_webcam_cap}</a></li>
+                        {else if $member.live_cam_type.name == "Camera Image"}
+                            <li><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}?expanded=live-cam">{$terms.term_webcam_cap}</a></li>
+                        {/if}
+                    {/if}
+
+                    {apply_filters('glm-member-db-front-members-list-memberBelow', '', $member.member_pointer)}
+                </ul>
+            </div>
+        </li> <!-- end of li.glm-member-list-record -->
+    {/foreach} {*$members*}
+    </ul>
+    <!-- Grid view above -->
+
+    {else}
+
+    <!-- List view below -->
+        {foreach $members as $member}
+        {apply_filters('glm-member-db-front-members-list-memberAbove', '', $member.member_pointer)}
+            <div class="glm-member-list-container glm-member-container small-12 columns">
+                {apply_filters('glm-member-db-front-members-list-memberTop', '', $member.member_pointer)}
+                 <!-- Member Logo - Medium and up-->
+
+                <div class="glm-member-list-data small-12 columns">
+                {if $member.logo && $settings.list_show_logo}
+                    <div class="glm-member-list-image-wrapper right small-12 medium-4 columns {if !$settings.list_logo_for_mobile}mobile-hide{/if}">
+                        <div class="glm-member-list-image-border">
+
+                            {if $member.featured}
+                            <div class="glm-member-list-featured-tag">
+                                featured
+                            </div>
+                            {/if}
+                            <img src="{$glmPluginMediaUrl}/images/{$settings.list_logo_size}/{$member.logo}">
+                        </div>
+                   </div>
+                {/if}
+                    <div class="glm-member-list-active-info small-12 medium-8 columns">
+     <!-- Member name, address, and basic information -->
+                    {apply_filters('glm-member-db-front-members-list-memberInfoTop', '', $member.member_pointer)}
+                    <h4 class="glm-member-title">
+                        {if $settings.list_show_detail_link && !$member.has_no_profile.value}
+                            <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}">{$member.member}</a>
+                        {else}
+                            {$member.member}
+                        {/if}
+                    </h4>
+                    {if $settings.list_show_address}
+                    <div class="glm-member-list-address-wrapper">
+                        {apply_filters('glm-member-db-front-members-list-memberAddressTop', '', $member.member_pointer)}
+                        {if $settings.list_show_street}
+                        {if $member.addr1 && $settings.list_show_address}<div>{$member.addr1}</div>{/if}
+                        {if $member.addr2 && $settings.list_show_address}<div>{$member.addr2}</div>{/if}
+                        {/if}
+                        {if $settings.memb_info_location && $settings.list_show_citystatezip}
+                        <div>
+                            {if $member.city}
+                            <span>{$member.city}{if $member.state.value}, {/if}</span>
+                            {/if}
+                            {if $member.state.value}
+                            <span>{$member.state.value}</span>
+                            {/if}
+                            {if $member.zip}
+                                {$member.zip}
+                            {/if}
+                        </div>
+                        {/if}
+                        {if $member.country.name && $settings.list_show_country}
+                        <div>{$member.country.name}</div>
+                        {/if}
+                        {apply_filters('glm-member-db-front-members-list-memberAddressBottom', '', $member.member_pointer)}
+                    </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-list-memberDetailTop', '', $member.member_pointer)}
+                    {if ($settings.memb_info_contact && $member.phone && $settings.list_show_phone) || ($settings.memb_info_contact && $member.toll_free && $settings.list_show_tollfree)}
+                    <div>
+                        {if $member.phone && $settings.list_show_phone}<span class="glm-member-db-phone">Phone: {apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
+                        {if $member.toll_free && $settings.list_show_tollfree}<span class="glm-member-db-phone-tollfree">{apply_filters('glm_associate_phone_filter', $member.toll_free)}</span>{/if}
+                    </div>
+                    {/if}
+                    {if $settings.memb_info_location && $member.region && $settings.list_show_region}<div><b>Region:</b> {$member.region}</div>{/if}
+
+                    <div class="glm-member-list-links">
+                        {apply_filters('glm-member-db-front-members-list-memberLinksTop', '', $member.member_pointer)}
+                        {if $member.url && $settings.list_show_url}<a class='glm-member-list-website-link' data-member-id="{$member.member_pointer}" data-member-slug="{$member.member_slug}" href="{$member.url}"{if $settings.list_show_url_newtarget} target="_blank"{/if} >Visit Website</a>{/if}
+                        {if $member.email && $settings.list_show_email}<a href="mailto:{$member.email}">Email</a>{/if}
+                        {if $member.reservation_url}<a target="_blank" href="{$member.reservation_url}">Reserve Now</a>{/if}
+                        {if $settings.list_show_live_cam}
+                            {if $member.live_cam_type.name == "Web Page" && $member.live_cam_url && $settings.list_show_live_cam}
+                                <a target="_blank" href="{$member.live_cam_url}">{$terms.term_webcam_cap}</a>
+                            {else if $member.live_cam_type.name == "Camera Image"}
+                                <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}?expanded=live-cam">{$terms.term_webcam_cap}</a>
+                            {/if}
+                        {/if}
+                        {apply_filters('glm-member-db-front-members-list-linksBottom', '', $member.member_pointer)}
+                    </div>
+                    <div class="glm-member-db-socials">
+                       {apply_filters('glm-member-db-front-members-social-list', '', $member.member_pointer)}
+                    </div>
+
+                    <div class="glm-member-list-description small-12 columns">
+                        <div>
+                        {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
+                        {if $member.short_descr && $settings.list_show_short_descr}
+                            {$member.short_descr|nl2br}
+                            {if $settings.list_show_detail_link}
+                                <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}">More</a>
+                            {/if}
+                        {/if}
+                        {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
+                        </div>
+                        {if $member.categories && $settings.list_show_categories}
+                        <div class="glm-member-list-items">
+                            <b>{$terms.term_member_cap} Categories</b>
+                            <ul>
+                                {foreach $member.categories as $c}
+                                    <li>
+                                        {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
+                                    </li>
+                                {/foreach}
+                            </ul>
+                        {/if}
+                        {if $member.cc_type && $settings.list_show_creditcards}
+                            <b>Credit Cards Accepted:</b>
+                            <ul>
+                                {foreach $member.cc_type.names as $c}
+                                    <li>{$c}</li>
+                                {/foreach}
+                            </ul>
+                        {/if}
+                        {if $member.amenities && $settings.list_show_amenities}
+                            <b>{$terms.term_member_cap} Amenities</b>
+                            <ul>
+                                {foreach $member.amenities as $A}
+                                    <li>
+                                        {$A.name}
+                                    </li>
+                                {/foreach}
+                            </ul>
+                        {/if}
+                        </div>
+                    </div>
+                        {apply_filters('glm-member-db-front-members-list-memberDetailBottom', '', $member.member_pointer)}
+                </div>
+
+
+                        <!-- Laury - This is the one that should go underneath all the address and description area -->
+            {apply_filters('glm-member-db-front-members-list-memberDataBelow', '', $member.member_pointer)}
+            {apply_filters('glm-member-db-front-members-list-memberBottom', '', $member.member_pointer)}
+            </div>
+            {apply_filters('glm-member-db-front-members-list-memberBelow', '', $member.member_pointer)}
+    <!-- Member Description -->
+
+         {/foreach} {*$members*}
+        </div>
+
+ {/if} {*end grid view check*}
+
+    {if $paging}
+        <br>
+        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
+        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>
+        <br>
+        showing {$start} through {$lastDisplayed} of {$filteredMembersFound}
+    {/if}
+
+        {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
+ {else}
+        <div>(no {$terms.term_member_plur} listed)</div>
+ {/if}
+
+    {/if} {*list_show_list*}
+    <script type="text/javascript">
+        jQuery(document).ready(function($) {
+
+            jQuery('select[multiple]').asmSelect();
+
+            // Show search filters box
+            {if $settings.list_show_search}
+
+                // Float filter box
+
+                    var fixmeTop = $('#glm-member-list-filters-button').offset().top;
+                    $(window).scroll(function() {
+
+                        var currentScroll = $(window).scrollTop();
+                        if (currentScroll >= fixmeTop-{$settings.list_floating_search_distance_top} && {$settings.list_floating_search}) {
+                            $('#glm-member-list-filters-wrapper').css({
+                                position: 'fixed',
+                                top: '{$settings.list_floating_search_distance_top}px',
+                                transform: 'translateX(0%)'
+                            });
+                        } else {
+                            $('#glm-member-list-filters-wrapper').css({
+                                position: 'relative',
+                                top: '0',
+                                transform: 'translateX(0%)'
+                            });
+                        }
+
+                    });
+                $(".glm-member-list-filters-toggle").click( function() {
+                    $(".glm-member-db-{$view}-view").toggleClass("filters-opened");
+                    $(".glm-member-db-{$view}-view").toggleClass("filters-closed");
+                    $("#glm-locationMap-container").one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",
+                        function() {
+                            var center = map.getCenter();
+                            google.maps.event.trigger(map, "resize");
+                            map.setCenter(center);
+                        });
+                    });
+            {/if} // settings.list_show_search
+
+    {if $settings.list_show_map}
+
+            /*
+             * Map operations
+             */
+
+            var startLat = $('#glmLat').val();
+            var startLon = $('#glmLng').val();
+            var defZoom = Number({$settings.maps_default_zoom});
+
+      {if $settings.selected_map_interface == 1}
+
+            /*
+             *  Leaflet Map
+             *  API reference: https://leafletjs.com/reference-1.3.2.html
+             */
+
+            function initMap() {
+
+                var leafletMap = L.map('LeafletMapContainer').setView([{$settings.maps_default_lat}, {$settings.maps_default_lon}], defZoom);
+                var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
+                var leafletMinZoom = 3;
+                var leafletMaxZoom = 19;
+                var clusterRadiusMax = 40;
+                var geocoder;
+
+                // Loading features
+                var loadingControl = L.Control.loading({
+                    separate: true,
+                    delayIndicator: 500
+                });
+                leafletMap.addControl(loadingControl);
+
+                // Init Map
+                L.tileLayer(leafletTileServer, {
+                   attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Â© <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
+                   minZoom: leafletMinZoom,
+                   maxZoom: leafletMaxZoom,
+                   id: 'nothot'
+                }).addTo(leafletMap);
+
+
+            {if $mapItems}
+
+              {if $settings.use_cluster_markers}
+                var markerGroup = L.markerClusterGroup({
+                    maxClusterRadius: clusterRadiusMax
+                });
+              {else}
+                var markerGroup = L.featureGroup({
+                    maxClusterRadius: clusterRadiusMax
+                });
+              {/if}
+
+                var mapContainerWidth = Number(leafletMap._container.clientWidth);
+                var maxPopupWidth = .65 * mapContainerWidth;
+                if (maxPopupWidth > 600) {
+                    maxPopupWidth = 600;
+                }
+                var mapContainerHeight = Number(leafletMap._container.clientHeight);
+                var maxPopupHeight = .7 * mapContainerHeight;
+
+              {foreach $mapItems as $m}
+                {if $m.lat != 0 && $m.lon != 0}
+
+                // Create marker for this member and and to Feature Group
+                var leafletMarker = L.marker([{$m.lat}, {$m.lon}], { title:  '{$m.member_name|escape:quotes}' })
+                    .bindPopup($('#map_info_' + {$m.id}).html(), {
+                        maxWidth: maxPopupWidth,
+                        maxHeight: maxPopupHeight
+                    })
+                    .addTo(markerGroup);
+
+            {/if}
+              {/foreach}
+
+                leafletMap.addLayer(markerGroup);
+
+                // Get outer bounds of all markers in the Feature Group
+                leafletMap.fitBounds(markerGroup.getBounds());
+
+            {/if} // havemembers
+
+                // When a marker is clicked, display the pop-up near the center of the map.
+
+                leafletMap.on('popupopen', function(e) {
+                    var px = leafletMap.project(e.popup._latlng);
+                    px.x -= 20;                                         // Bump a bit to the right to avoid resize buttons
+                    px.y -= e.popup._container.clientHeight/2;          // Position more toward the center
+                    leafletMap.panTo(leafletMap.unproject(px),{ animate: true });
+                });
+
+
+            }
+
+      {/if}
+
+      {if $settings.selected_map_interface == 2}
+
+            /*
+             * Google Maps
+             *  API reference: https://developers.google.com/maps/documentation/javascript/reference
+             */
+
+             function initMap() {
+
+                // Create a Google Map object
+                var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
+                        center: new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon}),
+                        zoom: {$settings.maps_default_zoom},
+                    disableDefaultUI: false,
+                    mapTypeId: google.maps.MapTypeId.MAP,
+                });
+
+                var center = map.getCenter();
+                google.maps.event.trigger(map, "resize");
+                map.setCenter(center);
+
+                var currentScroll = $(window).scrollTop(); // get current position
+                var mapTop = $("#glm-locationMap-container").offset().top-10;
+                {if $settings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
+                if (currentScroll >= mapTop) {
+                    $('body,html').animate({
+                    scrollTop: $("#glm-locationMap-container").offset().top-100
+                    }, 50);
+                } else {
+                    $('body,html').animate({
+                        scrollTop: $("#glm-locationMap-container").offset().top-100
+                    }, 400);
+               }
+
+                var geocoder = new google.maps.Geocoder();
+                var bounds = new google.maps.LatLngBounds();
+                var infowindow = new google.maps.InfoWindow();
+
+                // Don't Try HTML5 to get user geolocation
+                //if(navigator.geolocation) {
+                    //navigator.geolocation.getCurrentPosition(function(position) {
+                        //var myLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
+                        //var pinIcon = new google.maps.MarkerImage(
+                                //'https://maps.google.com/mapfiles/kml/shapes/man.png',
+                            //null, /* size is determined at runtime */
+                            //null, /* origin is 0,0 */
+                            //null, /* anchor is bottom center of the scaled image */
+                            //new google.maps.Size(30, 30)
+                        //);
+                        //var myMarker = new google.maps.Marker({
+                            //map: map,
+                            //position: myLocation,
+                            //draggable: false,
+                            //animation: google.maps.Animation.DROP,
+                            //title: 'My Location',
+                            //icon: pinIcon,
+                            //zIndex: 100
+                        //});
+                    //});
+                //}
+
+
+            {if $mapItems}
+                var markers = [];
+                {foreach $mapItems as $m}
+                  {if $m.lat != 0 && $m.lon != 0}
+
+                    // Create a marker for this member
+                    var marker = new google.maps.Marker({
+                        map: map,
+                        position: new google.maps.LatLng({$m.lat}, {$m.lon}),
+                        draggable: false,
+                        animation: google.maps.Animation.DROP,
+                        title: '{$m.member_name|escape:quotes}',
+                        descr: $('#map_info_' + {$m.id}).html(),
+                        memberID: {$m.member}
+                    });
+
+                    // Add a click listener for this marker
+                    marker.addListener('click', function() {
+                            infowindow.setOptions({
+                                    content: this.descr
+                            });
+                        infowindow.open(map,this);
+                    });
+
+                    markers.push(marker);
+
+                    // Extend the map bounds to include this marker
+                    bounds.extend(marker.position);
+
+                 {/if}
+                {/foreach}
+
+                {if $settings.use_cluster_markers}
+                    var markerCluster = new MarkerClusterer(map, markers,
+                    {
+                        imagePath: '{$baseUrl}/js/googleMapsMarkerClusterer/images/m',
+                        gridSize: 30,
+                        maxZoom: 14,
+                        minimunClusterSize: 3
+                    });
+                {/if}
+
+                    // Fit map to bounds of all markers
+                    map.fitBounds(bounds);
+
+                    // Check for first map idle (completely loaded) - Check max zoom
+                    var mapLoadedListener = google.maps.event.addListener(map, 'idle', function() {
+                        if (map.getZoom() > 14) {
+                            this.setZoom(14);
+                        }
+                        google.maps.event.removeListener(mapLoadedListener);
+                    });
+
+             } // initMap
+
+        {else}
+
+
+        {/if} // havemembers
+
+      {/if}
+
+    {/if}   // settings.list_show_map
+
+            // Handle Map View/Hide
+            var mapInitialized = false;
+            $("#glm-member-list-map-toggle").click( function() {
+                $(".glm-member-db-{$view}-view").toggleClass("map-opened");
+                $(".glm-member-db-{$view}-view").toggleClass("map-closed");
+                if (!mapInitialized) {
+                    initMap();
+                    mapInitialized = true;
+                }
+                var currentScroll = $(window).scrollTop(); // get current position
+                var mapTop = $("#glm-locationMap-container").offset().top-10;
+                {if $settings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
+                if (currentScroll >= mapTop) {
+                    $('body,html').animate({
+                    scrollTop: $("#glm-locationMap-container").offset().top-100
+                    }, 50);
+                } else {
+                    $('body,html').animate({
+                        scrollTop: $("#glm-locationMap-container").offset().top-100
+                    }, 400);
+               }
+            });
+        {if $settings.list_map_show_opened}
+            // Start with map opened
+            initMap();
+            mapInitialized = true;
+        {/if}
+
+            // Processes click-through counts for website links
+            $('.glm-member-list-website-link').on('click', function() {
+
+                // Get member ID
+                var memberId = $(this).attr('data-member-id');
+                var memberSlug = $(this).attr('data-member-slug');
+
+                // Send AJAX action to record click.
+                $.ajax({
+                   url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberClickThrough&memberId=" + memberId + "&memberSlug=" + memberSlug
+                });
+
+            });
+        });
+            </script>
+
+        </div><!-- glm-member-list-inner-wrapper-->
+    </div><!-- glm-member-db-list-view -->
+{include file='front/footer.html'}
old mode 100644 (file)
new mode 100755 (executable)
index 035f379..f95be26
-<div class="glm-member-db-list glm-member-db-{$view}-view
-{if $settings.list_map_show_opened}map-opened {else}map-closed {/if}
-{if $settings.list_show_search_filters_opened}filters-opened {else}filters-closed {/if}
-">
+{if $haveMessages}
+
+    <div style="color: red !important;">
+        <h2>WARNING:</h2>
+        <ul>
+            {foreach $messages as $m}
+                <li>{$m}</li>
+            {/foreach}
+        </ul>
+    </div>
 
-            {if $settings.selected_map_interface == 1}
-                <!--  Leaflet Map -->
-                <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
-                <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
-                <link rel="stylesheet" href="{$jsUrl}/LeafletMarkerCluster/dist/MarkerCluster.Default.css" />
-                <script src="{$jsUrl}/LeafletMarkerCluster/dist/leaflet.markercluster-src.js"></script>
-                <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
-                <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
-            {/if}
+{else}
 
-            {if $settings.selected_map_interface == 2}
-                <!-- Google Map -->
-                <script src="//maps.googleapis.com/maps/api/js?&key={$settings.google_maps_api_key}"></script>
-            {/if}
 
+    {if $showSettings.list_show_outer_container}
 
+        {include file='front/members/header.html'}
 
-{include file='front/members/header.html'}
-    {apply_filters('glm-member-db-front-members-list-pageTop', '')}
-<div class="glm-member-list-inner-wrapper">
-{if $settings.list_show_map}
-    <div id="glm-member-list-map-toggle" class="button glm-button">Map</div>
-{/if}
-{if $settings.list_show_search}
-<div id="glm-member-list-filters-wrapper">
-    <div id="glm-member-list-filters-button" class="button glm-button glm-member-list-filters-toggle">
-        FILTERS
-    </div>
-    <div id="glm-member-list-filters-box">
-        <div id="glm-member-list-filters-close" class="button glm-button glm-member-list-filters-toggle">Close</div>
-        <form action="{$thisUrl}?glm_action=list" method="post" enctype="multipart/form-data">
-            {if isset($smarty.request.s)}
-            <input type="hidden" name="s" value="{$smarty.request.s|escape}">
-            {/if}
-            <div class="small-12 columns glm-member-search glm-member-entry-container glm-member-container">
-                {apply_filters('glm-member-db-front-members-list-searchFormTop', '')}
-                <div>
-                    <h3>Refine Search</h3>
-                </div>
-                {if $settings.list_show_search_category}
-                    <div>
-                    By Category:
-<!-- To enable multi-select, use this code for the category search instead of the code below
-                        <select name="categorySearchMultiple[]" id="categorySelect" multiple>
-                        {if !$singleCategory}
-                            <option value="">(all)</option>
-                        {/if}
-                        {foreach from=$categories item=v}
-                            <option value="{$v.id}"{if $v.default} selected="selected"{/if}>
-                                {if $v.parent}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
-                            </option>
-                        {/foreach}
-                        </select>
--->
-                        <select name="categorySearch" id="categorySelect">
-                        {if !$singleCategory}
-                            <option value="">(all)</option>
-                        {/if}
-                        {foreach from=$categories item=v}
-                            <option value="{$v.id}"{if $v.default} selected="selected"{/if}>
-                                {if $v.parent}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
-                            </option>
-                        {/foreach}
-                        </select>
 
-                    </div>
-                {/if}
-                {if $settings.list_show_search_amenities}
-                    {if $amenities|@count gt 0}
-                    <div>
-                        By Amenities:
-                        <select name="amenitySearch[]" id="amenitySelect" title="Click to Select Amenities" multiple="multiple">
-                            {foreach from=$amenities item=v}
-                                <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
-                                    {$v.name}
-                                </option>
-                            {/foreach}
-                        </select>
-                    </div>
-                    {/if}
-                {/if}
-                {if $settings.list_show_search_region}
-                    {if $regions|@count gt 0}
-                    <div>
-                        By Regions:
-                        <select name="regionUserSearch[]">
-                            {if $regions|@count gt 1}
-                                <option value"">(all)</option>
-                            {/if}
-                            {foreach from=$regions item=v}
-                                <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
-                                    {$v.name}
-                                </option>
-                            {/foreach}
-                        </select>
-                    </div>
-                    {/if}
-                {/if}
+        <div class="glm-member-db-list glm-member-db-{$view}-view
+            {if $showSettings.list_map_show_opened || $view == 'map'}map-opened {else}map-closed {/if}
+            {if $showSettings.list_show_search_filters_opened}filters-opened{else}filters-closed{/if}
+        ">
+    {/if}
+            {apply_filters('glm-member-db-front-members-list-pageTop', '')}
 
-                {if $cities|@count gt 0}
-                <div>
-                    By Cities:
-                    <select name="cityUserSearch[]">
-                        {if $cities|@count gt 1}
-                            <option value"">(all)</option>
-                        {/if}
-                        {foreach from=$cities item=v}
-                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
-                                {$v.name}
-                            </option>
-                        {/foreach}
-                    </select>
+    {if $showSettings.list_map_show_container}
+            <div class="glm-member-list-inner-wrapper">
+    {/if}
+
+    {if $showSettings.list_show_map}
+
+        {if $settings.selected_map_interface == 1}
+            {* Leaflet Map *}
+            <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
+            <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
+            <link rel="stylesheet" href="{$jsUrl}/LeafletMarkerCluster/dist/MarkerCluster.Default.css" />
+            <script src="{$jsUrl}/LeafletMarkerCluster/dist/leaflet.markercluster-src.js"></script>
+            <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
+            <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
+            <link rel="stylesheet" href="//unpkg.com/leaflet-gesture-handling/dist/leaflet-gesture-handling.min.css" type="text/css">
+            <script src="//unpkg.com/leaflet-gesture-handling"></script>
+        {/if}
+        {if $settings.selected_map_interface == 2}
+            {* Google Map *}
+            <script src="//maps.googleapis.com/maps/api/js?&key={$settings.google_maps_api_key}"></script>
+        {/if}
+
+        {if $showSettings.list_map_show_button}
+            <div id="glm-member-list-map-toggle" class="button glm-button">View Map</div>
+        {/if}
+
+    {/if} {* list_show_map *}
+
+    {if $showSettings.list_show_search}
+
+        <div id="glm-member-list-filters-wrapper">
+            {if $showSettings.list_search_show_button}
+                <div id="glm-member-list-filters-button" class="button glm-button glm-member-list-filters-toggle">
+                    FILTERS
                 </div>
+            {/if}
+            <div id="glm-member-list-filters-box">
+                {if $showSettings.list_search_show_button}
+                    <div id="glm-member-list-filters-close" class="button glm-button glm-member-list-filters-toggle">Close</div>
                 {/if}
+                <form action="{$thisUrl}?glm_action=list#glm-member-list-filters-button" method="post" enctype="multipart/form-data">
+                    {if isset($wpSearch)}<input type="hidden" name="s" value="{$wpSearch|escape:quotes}">{/if}
+                    <div class="glma-small-12 glma-columns glm-member-search glm-member-entry-container glm-member-container">
+                        {apply_filters('glm-member-db-front-members-list-searchFormTop', '')}
+                        <div>
+                            <h3>Refine Search</h3>
+                        </div>
+                        {if $showSettings.list_show_search_category}
+                            <div>
+                                By Category:
+                                <select name="categorySearch" id="categorySelect">
+                                    {if !$singleCategory}
+                                        <option value="">(all)</option>
+                                    {/if}
+                                    {foreach from=$categories item=v}
+                                        <option value="{$v.id}"{if $v.default} selected="selected"{/if}>
+                                            {if $v.parent}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
+                                        </option>
+                                    {/foreach}
+                                </select>
+                            </div>
+                        {/if} {* list_show_search_category *}
+
+                        {if $showSettings.list_show_search_amenities}
+                            {if $amenities|@count gt 0}
+                                <div>
+                                    By Amenities:
+                                    <select name="amenitySearch[]" id="amenitySelect" title="Click to Select Amenities" multiple="multiple">
+                                        {foreach from=$amenities item=v}
+                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                                {$v.name}
+                                            </option>
+                                        {/foreach}
+                                    </select>
+                                </div>
+                            {/if}
+                        {/if} {* list_show_search_amenities *}
+
+                        {if $showSettings.list_show_search_region}
+                            {if $regions|@count gt 0}
+                                <div>
+                                    By Regions:
+                                    <select name="regionUserSearch[]">
+                                        {if $regions|@count gt 1}
+                                            <option value"">(all)</option>
+                                        {/if}
+                                        {foreach from=$regions item=v}
+                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                                {$v.name}
+                                            </option>
+                                        {/foreach}
+                                    </select>
+                                </div>
+                            {/if}
+                        {/if} {* list_show_search_region *}
+
+                        {if $showSettings.list_show_search_city}
+                            {if $cities|@count gt 0}
+                                <div>
+                                    By Cities:
+                                    <select name="cityUserSearch[]">
+                                        {if $cities|@count gt 1}
+                                            <option value"">(all)</option>
+                                        {/if}
+                                        {foreach from=$cities item=v}
+                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                                {$v.name}
+                                            </option>
+                                        {/foreach}
+                                    </select>
+                                </div>
+                            {/if}
+                        {/if} {* list_show_search_city *}
 
+                        {if $showSettings.list_show_search_text}
 
-                {if $settings.list_show_search_text}
-                    <div>
-                        By Name: <input type="text" name="textSearch" value="{$textSearch}" class="glm-form-text-input">
+                            <div>
+                                By Name: <input type="text" name="textSearch" value="{$textSearch}" class="glm-form-text-input">
+                            </div>
+                        {/if}
+                        <div><input class="button glm-member-button centered" type="submit" value="Search"></div>
+                        {apply_filters('glm-member-db-front-members-list-searchFormBottom', '')}
                     </div>
-                {/if}
-                <div><input class="button glm-member-button centered" type="submit" value="Search"></div>
-                {apply_filters('glm-member-db-front-members-list-searchFormBottom', '')}
-            </div>
-        </form>
-    </div> <!-- glm-member-list-filters-box -->
-</div> <!-- glm-member-list-wrapper -->
-{/if} {*list_show_search*}
-{if $settings.list_show_map}
+                </form>
+            </div> {* glm-member-list-filters-box *}
+        </div> {* glm-member-list-filters-wrapper *}
+
+    {/if} {* list_show_search *}
 
+    {if $showSettings.list_show_map}
         {apply_filters('glm-member-db-front-members-list-mapTop', '')}
         <div id="glm-locationMap-container">
-
             {if $settings.selected_map_interface == 1}
-                <!--  Leaflet Map -->
-                <div id="LeafletMapContainer" style="height: 400px; width: 90%; border: 1px black solid; z-index: +0; margin: 0 auto;"></div>
+                {* Leaflet Map *}
+                <div id="LeafletMapContainer" style="height: 400px; width: 100%; border: 1px black solid; z-index: +0; margin: 0 auto;"></div>
             {/if}
-
             {if $settings.selected_map_interface == 2}
-                <!-- Google Map -->
+                {* Google Map *}
                 <div id="glm-locationMap" class="glm-map">(map loads here)</div>
             {/if}
-
         </div>
         {apply_filters('glm-member-db-front-members-list-mapBottom', '')}
-    {/if}
-    {apply_filters('glm-member-db-front-members-list-listHeaderTop', '')}
 
+        {* Member information displayed in map bubbles *}
 
-     <!-- Member information displayed in map bubbles -->
-    <div id="glm-map-bubbles-container"> <!-- endless map bubbles -->
         {foreach $mapItems as $m}
             <div id="map_info_{$m.id}" class="glm-hidden">
                 {apply_filters('glm-member-db-front-members-list-mapBubbleTop', '', $m.member)}
-                {if $m.logo && $settings.list_map_show_logo}
+                {if $m.logo && $showSettings.list_map_show_logo}
                     <div class="glm-member-list-image">
                         <img src="{$glmPluginMediaUrl}/images/{$settings.list_map_logo_size}/{$m.logo}">
                     </div>
                 {/if}
                 <div class="glm-map-member-name">
-                    {if $settings.list_map_show_detaillink && !$m.has_no_profile}
-                        <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">{$m.member_name}</a>
+                    {if $showSettings.list_map_show_detaillink && !$m.has_no_profile}
+                            <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">{$m.member_name}</a>
                     {else}
-                        {$m.member_name}
+                            {$m.member_name}
                     {/if}
                 </div>
-                {if $settings.list_map_show_address}
+                {if $showSettings.list_map_show_address}
                     <p class="glm-map-member-address">
-                        {if $settings.list_map_show_street}
+                        {if $showSettings.list_map_show_street}
                             {if $m.addr1}{$m.addr1}<br>{/if}
                             {if $m.addr2}{$m.addr2}<br>{/if}
                         {/if}
-                        {if $settings.memb_info_location && $settings.list_map_show_citystatezip}
+                        {if $settings.memb_info_location && $showSettings.list_map_show_citystatezip}
                             {if $m.city}{$m.city}{if $m.state}, {/if}{/if}{if $m.state}{$m.state}{/if}{if $m.zip} {$m.zip}{/if}
                         {/if}
-                        {if $m.country && $settings.list_map_show_country}
+                        {if $m.country && $showSettings.list_map_show_country}
                             {$m.country}
                         {/if}
                     </p>
-                {/if} {*list_map_show_address*}
+                {/if} {* list_map_show_address *}
+
                 <div class="glm-member-list-info">
                     <p class="glm-member-list-map-info">
-                        {if $m.phone && $settings.list_map_show_phone}<b>Phone:</b> <a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.phone)}">{apply_filters('glm_associate_phone_filter', $m.phone)}</a><br>{/if}
-                        {if $m.toll_free && $settings.list_map_show_tollfree}<a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.toll_free)}">{apply_filters('glm_associate_phone_filter', $m.toll_free)}</a><br>{/if}
-                        {if $m.email && $settings.list_map_show_email}<b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$m.email}</a><br>{/if}
-                        {if $m.region && $settings.list_map_show_region}<b>Region:</b> {$m.region}<br>{/if}
-                        {if $m.url && $settings.list_map_show_url}<a href="{$m.url}"{if $settings.list_map_show_url_newtarget} target="_blank"{/if}>Website</a><br>{/if}
+                        {if $m.phone && $showSettings.list_map_show_phone}<b>Phone:</b> <a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.phone)}">{apply_filters('glm_associate_phone_filter', $m.phone)}</a><br>{/if}
+                        {if $m.toll_free && $showSettings.list_map_show_tollfree}<a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.toll_free)}">{apply_filters('glm_associate_phone_filter', $m.toll_free)}</a><br>{/if}
+                        {if $m.email && $showSettings.list_map_show_email}<b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$m.email}</a><br>{/if}
+                        {if $m.region && $showSettings.list_map_show_region}<b>Region:</b> {$m.region}<br>{/if}
+                        {if $m.url && $showSettings.list_map_show_url}<a href="{$m.url}"{if $showSettings.list_map_show_url_newtarget} target="_blank"{/if}>Website</a><br>{/if}
                     </p>
-    <!-- Not using Description for now - Use short descr for maps {literal}
-                    {if $m.descr && $settings.list_map_show_descr}{$m.descr|nl2br}<br>{/if}
-    {/literal} -->
-                    {if $m.short_descr && $settings.list_map_show_short_descr}{$m.short_descr|truncate:200}<br>{/if}
-                    {if $settings.list_map_show_detaillink && !$m.has_no_profile}
+                    {if isset($m.descr) && $showSettings.list_map_show_descr}{$m.descr|nl2br}<br>{/if}
+                    {if $m.short_descr && $showSettings.list_map_show_short_descr}{$m.short_descr|truncate:200}<br>{/if}
+                    {if $showSettings.list_map_show_detaillink && !$m.has_no_profile}
                         <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">More Info</a>
                     {/if}
-                    {if $m.categories && $settings.list_map_show_categories}
+                    {if isset($m.categories) && $showSettings.list_map_show_categories}
                         <div class="glm-member-list-items">
                             <b>{$terms.term_member_cap} Categories</b>
                             <ul>
-                            {foreach $m.categories as $c}
-                                <li>
-                                    {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
-                                </li>
-                            {/foreach}
+                                {if isset($m.categories)}
+                                    {foreach $m.categories as $c}
+                                        <li>
+                                            {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
+                                        </li>
+                                    {/foreach}
+                                {/if}
                             </ul>
                         </div>
-                    {/if}
-    <!-- Not using credit cards for now  {literal}
-                    {if $m.cc_type && $settings.list_map_show_creditcards}
-                        <div class="glm-member-list-items">
-                            <b>Credit Cards Accepted:</b>
-                            <ul>
-                            {foreach $m.cc_type.names as $c}
-                                <li>{$c}</li>
-                            {/foreach}
-                            </ul>
-                        </div>
-                    {/if}
-     {/literal} -->
-                    {if $settings.list_map_show_amenities}
+                    {/if} {* categories *}
+
+
+                    {* Not using credit cards for now  {literal}
+                        {if $m.cc_type && $showSettings.list_map_show_creditcards}
+                            <div class="glm-member-list-items">
+                                <b>Credit Cards Accepted:</b>
+                                <ul>
+                            {if isset($m.cc_type)}
+                                {foreach $m.cc_type.names as $c}
+                                    <li>{$c}</li>
+                                {/foreach}
+                            {/if}
+                                </ul>
+                            </div>
+                        {/if}
+                    {/literal} *}
+
+
+                    {if $showSettings.list_map_show_amenities}
                         <div class="glm-member-list-items">
                             <b>Amenities:</b>
                             <ul>
+                        {if isset($m.amenities)}
                             {foreach $m.amenities as $a}
                                 <li>{$a.name}</li>
                             {/foreach}
+                        {/if}
                             </ul>
                         </div>
                     {/if}
                 </div>
                 {apply_filters('glm-member-db-front-members-list-mapBubbleBottom', '', $m.member)}
             </div> <!-- End of information displayed in map bubbles -->
-        {/foreach}
-    </div>
 
-{if $settings.list_show_list && !$blankStart}
-{if $settings.list_header_text}
-    <h3 class="glm-member-db-list-header-title">{$settings.list_header_text}</h3>
-{elseif apply_filters('is_page', 'search')}
-    <h1 class="glm-member-db-list-header-title member-search-page-title">List of {$terms.term_member_plur_cap}</h1>
-{/if}
-
-{if $haveMembers}
-
-    <div id="glm-member-list-terms">{$terms.term_member_plur_cap} found: {$membersFound}<br></div>
-
-    {apply_filters('glm-member-db-front-members-list-listHeaderBottom', '')}
-
- <!-- Member information displayed in list -->
-
-<div class="glm-member-list-listing-container">
-{if $settings.list_show_search_alpha && !apply_filters("is_page", 'search')}
-    <div class="glm-alpha-links">
-        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $smarty.request.s}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}" class="glm-alpha-link{if !$alphaSelected} glm-alpha-link-selected{/if}">All</a>
-  {foreach $alphaList as $a}
-        <a href="{$thisUrl}?glm_action=list&alpha={$a.alpha}&textSearch={$textSearch}{if $smarty.request.s}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
-  {/foreach}
-   </div>
-{/if}
-
-{if $paging}
-    <br>
-    <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
-    <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>
-    <br>
-    showing {$start} through {$lastDisplayed} of {$filteredMembersFound}
-{/if}
-
-{if $view == grid}
-    <ul class="row">
-    {foreach $members as $member}
-        <li class="glm-member-list-record columns small-12 medium-6 large-4">
-            <a class="anchorWrapper"{if $settings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{else} style="cursor: default;"{/if}>
-                {apply_filters('glm-member-db-front-members-list-memberAbove', '', $member.member_pointer)}
-                <div class="glm-member-db-border-wrap">
-                    {apply_filters('glm-member-db-front-members-list-memberTop', '', $member.member_pointer)}
-
-                    <div class="glm-member-list-image-wrapper"{if $settings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{/if}>
-
-                    {if $member.featured}
-                    <div class="glm-member-list-featured-tag">
-                        featured
-                    </div>
-                    {/if}
+        {/foreach} {* mapItems *}
 
-                    {if $member.logo && $settings.list_show_logo}
-                        <div class="glm-member-list-has-image">
-                            <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$member.logo}">
-                        </div>
-                    {elseif $settings.list_show_logo_filler}
-                        <div class="glm-member-list-has-image">
-                            <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
-                        </div>
-                    {else}
-                        <div class="glm-member-list-missing-image"></div>
-                    {/if}
+    {/if} {* list_show_map *}
+
+    {apply_filters('glm-member-db-front-members-list-listHeaderTop', '')}
+
+    {if $haveFeaturedMembers}
+
+        <h3 id="glm-featured-members-title">Featured</h3>
+
+        <ul id="glm-featured-members-grid" class="featured-grid glma-small-block-grid-1 glma-medium-block-grid-2 glma-large-block-grid-3">
+        {foreach $featuredMembers as $fm}
+            <li class="featured-grid-item-wrapper">
+                <a class="featured-grid-item" href="{$siteBaseUrl}{$settings.canonical_member_page}/{$fm.member_slug}/">
+            {if $fm.logo && $showSettings.list_show_logo}
+                    <div class="glm-member-list-has-image">
+                        <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$fm.logo}">
                     </div>
-                    <div class="glm-member-list-info-wrapper">
-                        <h4 class="glm-member-title"> {$member.member} </h4>
-                        <div class="glm-member-list-description small-12 columns">
-                            <div>
-                            {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
-                            {if $member.short_descr && $settings.list_show_short_descr}
-                                {$member.short_descr|nl2br}
-                            {/if}
-                            {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
-                            </div>
-                        </div>
-                        {if $member.city}
-                            <div class="glm-member-list-address-container">
-                                <span class="member-city">{$member.city}{if $member.state.value}{/if}</span><br>
-                            </div>
-                        {/if}
-                        {if $settings.memb_info_location && $member.region && $settings.list_show_region}
-                            <div class="glm-member-list-region-container">
-                                Region: {$member.region}
-                            </div>
-                        {/if}
-                        {if ($settings.memb_info_contact && $member.phone && $settings.list_show_phone) || ($settings.memb_info_contact && $member.toll_free && $settings.list_show_tollfree)}
-                            <div class="glm-member-list-phone-container">
-                                {if $member.phone && $settings.list_show_phone}<span class="glm-member-db-phone">{apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
+            {elseif $showSettings.list_show_logo_filler}
+                    <div class="glm-member-list-has-image">
+                        <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
+                    </div>
+            {else}
+                    <div class="glm-member-list-missing-image"></div>
+            {/if}
+                    <div class="featured-grid-item-info">
+                        <h4 class="featured-member-title">{$fm.member_name}</h4>
+
+                        {if $fm.short_descr && $settings.list_show_short_descr}
+                            <div class="featured-member-description">
+                                {$fm.short_descr|nl2br}
                             </div>
                         {/if}
+                    </div>
+                </a>
+            </li>
+        {/foreach} {* featuredMembers *}
+        </ul>
+
+    {/if} {* haveFeaturedMembers *}
+
+    {$isSearchPage = is_page('search')}
+
+    {if $showSettings.list_show_list && !$blankStart}
+        {if $showSettings.list_show_sidebar_area}
+            <div id="listing-wrapper" class="row">
+                <div class="glm-member-list-listing-container small-12 large-8 columns">
+        {/if}
+            {if $showSettings.list_show_header_text}
+                {if $settings.list_header_text}
+                    <h3 class="glm-member-db-list-header-title">{$settings.list_header_text}</h3>
+                {elseif $isSearchPage}
+                    <h1 class="glm-member-db-list-header-title member-search-page-title">List of {$terms.term_member_plur_cap}</h1>
+                {else}
+                    <h3 class="glm-member-db-list-header-title">List of {$terms.term_member_plur_cap}</h3>
+                {/if}
+            {/if}
+            {if $haveMembers}
+                {if $showSettings.list_show_entities_found}
+                <div id="glm-member-list-terms">{$terms.term_member_plur_cap} found: {$membersFound}<br></div>
+                {/if}
+
+                {apply_filters('glm-member-db-front-members-list-listHeaderBottom', '')}
 
+                {* Alpha List *}
 
+                {if $showSettings.list_show_search_alpha && !$isSearchPage}
+                    <div class="glm-alpha-links">
+                        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($wpSearch) && $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if !$alphaSelected} glm-alpha-link-selected{/if}">All</a>
+                        {foreach $alphaList as $a}
+                            <a href="{$thisUrl}?glm_action=list&alpha={$a.alpha}&textSearch={$textSearch}{if isset($wpSearch) && $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
+                        {/foreach}
                     </div>
-                </div> <!-- End of glm-member-db-border-wrap -->
-            </a>
-            <div class="glm-member-list-sub-links">
-                <ul>
-                    {if $member.url && $settings.list_show_url}<li><a href="{$member.url}"{if $settings.list_show_url_newtarget} target="_blank"{/if}>Visit Website</a></li>{/if}
-                    {$packageLink = apply_filters('glm-member-db-front-members-list-linksBottom', '', $member.member_pointer)}
-                    {if $packageLink}<li>{$packageLink}</li>{/if}
-                    {if $member.reservation_url}<li><a target="_blank" href="{$member.reservation_url}">Reserve Now</a></li>{/if}
-
-                    {if $settings.list_show_live_cam}
-                        {if $member.live_cam_type.name == "Web Page" && $member.live_cam_url && $settings.list_show_live_cam}
-                            <li><a target="_blank" href="{$member.live_cam_url}">{$terms.term_webcam_cap}</a></li>
-                        {else if $member.live_cam_type.name == "Camera Image"}
-                            <li><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}?expanded=live-cam">{$terms.term_webcam_cap}</a></li>
-                        {/if}
-                    {/if}
+                {/if}
 
-                    {apply_filters('glm-member-db-front-members-list-memberBelow', '', $member.member_pointer)}
-                </ul>
-            </div>
-        </li> <!-- end of li.glm-member-list-record -->
-    {/foreach} {*$members*}
-    </ul>
-    <!-- Grid view above -->
-
-    {else}
-
-    <!-- List view below -->
-        {foreach $members as $member}
-        {apply_filters('glm-member-db-front-members-list-memberAbove', '', $member.member_pointer)}
-            <div class="glm-member-list-container glm-member-container small-12 columns">
-                {apply_filters('glm-member-db-front-members-list-memberTop', '', $member.member_pointer)}
-                 <!-- Member Logo - Medium and up-->
-
-                <div class="glm-member-list-data small-12 columns">
-                {if $member.logo && $settings.list_show_logo}
-                    <div class="glm-member-list-image-wrapper right small-12 medium-4 columns {if !$settings.list_logo_for_mobile}mobile-hide{/if}">
-                        <div class="glm-member-list-image-border">
-
-                            {if $member.featured}
-                            <div class="glm-member-list-featured-tag">
-                                featured
-                            </div>
-                            {/if}
-                            <img src="{$glmPluginMediaUrl}/images/{$settings.list_logo_size}/{$member.logo}">
+                {* Page selection top *}
+
+                {if $paging}
+                    {if ( $prevStart || $nextStart ) && !$settings.list_ajax_pagination}
+                        <br>
+                        <div class="paging-container">
+                            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($wpSearch)}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>< Previous page</a>
+                            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($wpSearch)}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page ></a>
                         </div>
-                   </div>
-                {/if}
-                    <div class="glm-member-list-active-info small-12 medium-8 columns">
-     <!-- Member name, address, and basic information -->
-                    {apply_filters('glm-member-db-front-members-list-memberInfoTop', '', $member.member_pointer)}
-                    <h4 class="glm-member-title">
-                        {if $settings.list_show_detail_link && !$member.has_no_profile.value}
-                            <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}">{$member.member}</a>
-                        {else}
-                            {$member.member}
-                        {/if}
-                    </h4>
-                    {if $settings.list_show_address}
-                    <div class="glm-member-list-address-wrapper">
-                        {apply_filters('glm-member-db-front-members-list-memberAddressTop', '', $member.member_pointer)}
-                        {if $settings.list_show_street}
-                        {if $member.addr1 && $settings.list_show_address}<div>{$member.addr1}</div>{/if}
-                        {if $member.addr2 && $settings.list_show_address}<div>{$member.addr2}</div>{/if}
-                        {/if}
-                        {if $settings.memb_info_location && $settings.list_show_citystatezip}
-                        <div>
-                            {if $member.city}
-                            <span>{$member.city}{if $member.state.value}, {/if}</span>
-                            {/if}
-                            {if $member.state.value}
-                            <span>{$member.state.value}</span>
-                            {/if}
-                            {if $member.zip}
-                                {$member.zip}
-                            {/if}
+                        <br>
+                    {/if}
+                    <br>
+                    {if $showSettings.list_show_entities_shown}
+                        <div class="glm-members-found">
+                            showing <span class="aStart">{$start}</span> through <span class="aLastDisplayed">{$lastDisplayed}</span> of <span class="aTotal">{$filteredMembersFound}</span>
                         </div>
-                        {/if}
-                        {if $member.country.name && $settings.list_show_country}
-                        <div>{$member.country.name}</div>
-                        {/if}
-                        {apply_filters('glm-member-db-front-members-list-memberAddressBottom', '', $member.member_pointer)}
-                    </div>
                     {/if}
-                    {apply_filters('glm-member-db-front-members-list-memberDetailTop', '', $member.member_pointer)}
-                    {if ($settings.memb_info_contact && $member.phone && $settings.list_show_phone) || ($settings.memb_info_contact && $member.toll_free && $settings.list_show_tollfree)}
-                    <div>
-                        {if $member.phone && $settings.list_show_phone}<span class="glm-member-db-phone">Phone: {apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
-                        {if $member.toll_free && $settings.list_show_tollfree}<span class="glm-member-db-phone-tollfree">{apply_filters('glm_associate_phone_filter', $member.toll_free)}</span>{/if}
+                {/if}
+
+                {* Members List *}
+
+                {if $settings.list_ajax_pagination}
+                    <div id="glm-ajax-list">
+                        loading...
                     </div>
+                {else}
+                    {if $view == list || $view == map}
+                        {include file='front/members/listTypeList.html'}
                     {/if}
-                    {if $settings.memb_info_location && $member.region && $settings.list_show_region}<div><b>Region:</b> {$member.region}</div>{/if}
-
-                    <div class="glm-member-list-links">
-                        {apply_filters('glm-member-db-front-members-list-memberLinksTop', '', $member.member_pointer)}
-                        {if $member.url && $settings.list_show_url}<a class='glm-member-list-website-link' data-member-id="{$member.member_pointer}" data-member-slug="{$member.member_slug}" href="{$member.url}"{if $settings.list_show_url_newtarget} target="_blank"{/if} >Visit Website</a>{/if}
-                        {if $member.email && $settings.list_show_email}<a href="mailto:{$member.email}">Email</a>{/if}
-                        {if $member.reservation_url}<a target="_blank" href="{$member.reservation_url}">Reserve Now</a>{/if}
-                        {if $settings.list_show_live_cam}
-                            {if $member.live_cam_type.name == "Web Page" && $member.live_cam_url && $settings.list_show_live_cam}
-                                <a target="_blank" href="{$member.live_cam_url}">{$terms.term_webcam_cap}</a>
-                            {else if $member.live_cam_type.name == "Camera Image"}
-                                <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}?expanded=live-cam">{$terms.term_webcam_cap}</a>
-                            {/if}
-                        {/if}
-                        {apply_filters('glm-member-db-front-members-list-linksBottom', '', $member.member_pointer)}
-                    </div>
-                    <div class="glm-member-db-socials">
-                       {apply_filters('glm-member-db-front-members-social-list', '', $member.member_pointer)}
-                    </div>
+                    {if $view == grid}
+                        {include file='front/members/listTypeGrid.html'}
+                    {/if}
+                    {if $view == uptravel}
+                        {include file='front/members/listTypeUptravel.html'}
+                    {/if}
+                {/if}
 
-                    <div class="glm-member-list-description small-12 columns">
-                        <div>
-                        {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
-                        {if $member.short_descr && $settings.list_show_short_descr}
-                            {$member.short_descr|nl2br}
-                            {if $settings.list_show_detail_link}
-                                <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}">More</a>
-                            {/if}
-                        {/if}
-                        {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
-                        </div>
-                        {if $member.categories && $settings.list_show_categories}
-                        <div class="glm-member-list-items">
-                            <b>{$terms.term_member_cap} Categories</b>
-                            <ul>
-                                {foreach $member.categories as $c}
-                                    <li>
-                                        {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
-                                    </li>
-                                {/foreach}
-                            </ul>
+                {* Page selection bottom *}
+
+                <div class="paging-container">
+                    {if $paging}
+                        {if ( $prevStart || $nextStart ) && !$settings.list_ajax_pagination}
+                            <br>
+                            <div class="paging-container">
+                                <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($wpSearch)}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>< Previous page</a>
+                                <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($wpSearch)}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page ></a>
+                            </div>
+                            <br>
                         {/if}
-                        {if $member.cc_type && $settings.list_show_creditcards}
-                            <b>Credit Cards Accepted:</b>
-                            <ul>
-                                {foreach $member.cc_type.names as $c}
-                                    <li>{$c}</li>
-                                {/foreach}
-                            </ul>
+                        {if $nextStart && $settings.list_ajax_pagination}
+                            <a href="#" class="glm-show-more test" data-next="{$nextStart}">[ Load More ]</a>
                         {/if}
-                        {if $member.amenities && $settings.list_show_amenities}
-                            <b>{$terms.term_member_cap} Amenities</b>
-                            <ul>
-                                {foreach $member.amenities as $A}
-                                    <li>
-                                        {$A.name}
-                                    </li>
-                                {/foreach}
-                            </ul>
+                        <br>
+                        {if $showSettings.list_show_entities_shown}
+                            <div class="glm-members-found">
+                                showing <span class="aStart">{$start}</span> through <span class="aLastDisplayed">{$lastDisplayed}</span> of <span class="aTotal">{$filteredMembersFound}</span>
+                            </div>
                         {/if}
-                        </div>
-                    </div>
-                        {apply_filters('glm-member-db-front-members-list-memberDetailBottom', '', $member.member_pointer)}
+                    {/if}
                 </div>
+                {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
 
-
-                        <!-- Laury - This is the one that should go underneath all the address and description area -->
-            {apply_filters('glm-member-db-front-members-list-memberDataBelow', '', $member.member_pointer)}
-            {apply_filters('glm-member-db-front-members-list-memberBottom', '', $member.member_pointer)}
+            {else}
+                <div>(no {$terms.term_member_plur} listed)</div>
+            {/if}
+        {if $showSettings.list_show_sidebar_area}
+            </div>
+            <div class="small-12 large-4 columns">
+                {get_sidebar()}
             </div>
-            {apply_filters('glm-member-db-front-members-list-memberBelow', '', $member.member_pointer)}
-    <!-- Member Description -->
-
-         {/foreach} {*$members*}
         </div>
+        {/if}
 
{/if} {*end grid view check*}
   {/if} {* list_show_list *}
 
-    {if $paging}
-        <br>
-        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
-        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if isset($smarty.request.s)}&s={$smarty.request.s|escape}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>
-        <br>
-        showing {$start} through {$lastDisplayed} of {$filteredMembersFound}
+    {if $showSettings.list_map_show_container}
+        </div> {* glm-member-list-inner-wrapper *}
+    {/if}
+    {if $showSettings.list_show_outer_container}
+        </div> {* glm-member-db-list *}
     {/if}
 
-        {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
- {else}
-        <div>(no {$terms.term_member_plur} listed)</div>
- {/if}
+    <script>
 
-    {/if} {*list_show_list*}
-    <script type="text/javascript">
         jQuery(document).ready(function($) {
 
+            {if $settings.list_ajax_pagination}
+                // Setup the ajax pagination call.
+                var nextStart    = {if $nextStart}{$nextStart}{else}0{/if};
+                var numberShown  = 0;
+                var totalMembers = {$filteredMembersFound};
+
+                // Call the member list grid content and load in the page.
+                jQuery.ajax({
+                    url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersList&limit={$settings.list_pagination_count}{$ajaxRequest}&alpha={$alphaSelected}',
+                    cache: false,
+                    async: true,
+                    dataType: 'html',
+                    success: function( html ){
+                        $('#glm-ajax-list').html( html );
+                        numberShown += {$settings.list_pagination_count};
+                    },
+                });
+
+                // Show More link
+                $(document).on('click', 'a.glm-show-more', function(e){
+                    e.preventDefault();
+                    var showMoreButton = $(this);
+                    jQuery.ajax({
+                        url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersList&limit={$settings.list_pagination_count}{$ajaxRequest}&pageSelect=Next&nextStart=' + nextStart + '&ajaxNext=1&alpha={$alphaSelected}',
+                        cache: false,
+                        async: true,
+                        dataType: 'html',
+                        success: function( html ){
+                            $('#glm-ajax-list').append( html );
+                            nextStart += {$settings.list_pagination_count};
+                            if ( nextStart > totalMembers ) {
+                                nextStart = totalMembers;
+                                $('.aLastDisplayed').html(nextStart);
+                            } else {
+                                $('.aLastDisplayed').html(nextStart - 1);
+                            }
+                            numberShown += {$settings.list_pagination_count};
+                            if ( numberShown >= totalMembers ) {
+                                showMoreButton.remove();
+                            }
+                        },
+                    });
+                });
+            {/if} {* list_ajax_pagination *}
+
             jQuery('select[multiple]').asmSelect();
 
             // Show search filters box
-            {if $settings.list_show_search}
+            {if $showSettings.list_show_search && $showSettings.list_search_show_button}
 
                 // Float filter box
+                var fixmeTop = $('#glm-member-list-filters-button').offset().top;
+                $(window).scroll(function() {
+
+                    var currentScroll = $(window).scrollTop();
+                    if (currentScroll >= fixmeTop-{$settings.list_floating_search_distance_top} && {$settings.list_floating_search}) {
+                        $('#glm-member-list-filters-wrapper').css({
+                            position: 'fixed',
+                            top: '{$settings.list_floating_search_distance_top}px',
+                            transform: 'translateX(0%)'
+                        });
+                    } else {
+                        $('#glm-member-list-filters-wrapper').css({
+                            position: 'relative',
+                            top: '0',
+                            transform: 'translateX(0%)'
+                        });
+                    }
 
-                    var fixmeTop = $('#glm-member-list-filters-button').offset().top;
-                    $(window).scroll(function() {
-
-                        var currentScroll = $(window).scrollTop();
-                        if (currentScroll >= fixmeTop-{$settings.list_floating_search_distance_top} && {$settings.list_floating_search}) {
-                            $('#glm-member-list-filters-wrapper').css({
-                                position: 'fixed',
-                                top: '{$settings.list_floating_search_distance_top}px',
-                                transform: 'translateX(0%)'
-                            });
-                        } else {
-                            $('#glm-member-list-filters-wrapper').css({
-                                position: 'relative',
-                                top: '0',
-                                transform: 'translateX(0%)'
-                            });
-                        }
-
-                    });
+                });
                 $(".glm-member-list-filters-toggle").click( function() {
                     $(".glm-member-db-{$view}-view").toggleClass("filters-opened");
                     $(".glm-member-db-{$view}-view").toggleClass("filters-closed");
+    /* NEED TO FIX THIS FOR LEAFLET
                     $("#glm-locationMap-container").one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",
                         function() {
                             var center = map.getCenter();
                             google.maps.event.trigger(map, "resize");
                             map.setCenter(center);
                         });
+    */
                     });
             {/if} // settings.list_show_search
 
-    {if $settings.list_show_map}
-
-            /*
-             * Map operations
-             */
+            {if $showSettings.list_show_map}
 
-            var startLat = $('#glmLat').val();
-            var startLon = $('#glmLng').val();
-            var defZoom = Number({$settings.maps_default_zoom});
+                /*
+                 * Map operations
+                 */
 
-      {if $settings.selected_map_interface == 1}
+                var startLat = $('#glmLat').val();
+                var startLon = $('#glmLng').val();
+                var defZoom = Number({$settings.maps_default_zoom});
 
-            /*
-             *  Leaflet Map
-             *  API reference: https://leafletjs.com/reference-1.3.2.html
-             */
+                {if $settings.selected_map_interface == 1}
 
-            function initMap() {
+                    {*
+                     *  Leaflet Map
+                     *  API reference: https://leafletjs.com/reference-1.3.2.html
+                     *}
 
-                var leafletMap = L.map('LeafletMapContainer').setView([{$settings.maps_default_lat}, {$settings.maps_default_lon}], defZoom);
-                var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
-                var leafletMinZoom = 3;
-                var leafletMaxZoom = 19;
-                var clusterRadiusMax = 40;
-                var geocoder;
-
-                // Loading features
-                var loadingControl = L.Control.loading({
-                    separate: true,
-                    delayIndicator: 500
-                });
-                leafletMap.addControl(loadingControl);
-
-                // Init Map
-                L.tileLayer(leafletTileServer, {
-                   attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Â© <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
-                   minZoom: leafletMinZoom,
-                   maxZoom: leafletMaxZoom,
-                   id: 'nothot'
-                }).addTo(leafletMap);
+                    function initMap() {
 
+                        var leafletMap = L.map('LeafletMapContainer', {
+                            gestureHandling: true
+                        });
+                        leafletMap.setView([{$settings.maps_default_lat}, {$settings.maps_default_lon}], defZoom);
+                        var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
+                        var leafletMinZoom = 3;
+                        var leafletMaxZoom = 19;
+                        var clusterRadiusMax = 40;
+                        var geocoder;
+
+                        // Loading features
+                        var loadingControl = L.Control.loading({
+                            separate: true,
+                            delayIndicator: 500
+                        });
+                        leafletMap.addControl(loadingControl);
+
+                        // Init Map
+                        L.tileLayer(leafletTileServer, {
+                           attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Â© <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
+                           minZoom: leafletMinZoom,
+                           maxZoom: leafletMaxZoom,
+                           id: 'nothot'
+                        }).addTo(leafletMap);
+
+
+                        {if $mapItems}
+
+                            {if $settings.use_cluster_markers}
+                                var markerGroup = L.markerClusterGroup({
+                                    maxClusterRadius: clusterRadiusMax
+                                });
+                            {else}
+                                var markerGroup = L.featureGroup({
+                                    maxClusterRadius: clusterRadiusMax
+                                });
+                            {/if}
 
-            {if $mapItems}
+                            var mapContainerWidth = Number(leafletMap._container.clientWidth);
+                            var maxPopupWidth = .65 * mapContainerWidth;
+                            if (maxPopupWidth > 600) {
+                                maxPopupWidth = 600;
+                            }
+                            var mapContainerHeight = Number(leafletMap._container.clientHeight);
+                            var maxPopupHeight = .7 * mapContainerHeight;
+
+                            {foreach $mapItems as $m}
+                                {if $m.lat != 0 && $m.lon != 0}
+                                    // Create marker for this member and and to Feature Group
+                                    var leafletMarker = L.marker([{$m.lat}, {$m.lon}], { title:  '{$m.member_name|escape:quotes}' })
+                                        .bindPopup($('#map_info_' + {$m.id}).html(), {
+                                            maxWidth: maxPopupWidth,
+                                            maxHeight: maxPopupHeight
+                                    }).addTo(markerGroup);
+                                {/if}
+                            {/foreach}
 
-              {if $settings.use_cluster_markers}
-                var markerGroup = L.markerClusterGroup({
-                    maxClusterRadius: clusterRadiusMax
-                });
-              {else}
-                var markerGroup = L.featureGroup({
-                    maxClusterRadius: clusterRadiusMax
-                });
-              {/if}
-
-                var mapContainerWidth = Number(leafletMap._container.clientWidth);
-                var maxPopupWidth = .65 * mapContainerWidth;
-                if (maxPopupWidth > 600) {
-                    maxPopupWidth = 600;
-                }
-                var mapContainerHeight = Number(leafletMap._container.clientHeight);
-                var maxPopupHeight = .7 * mapContainerHeight;
-
-              {foreach $mapItems as $m}
-                {if $m.lat != 0 && $m.lon != 0}
-
-                // Create marker for this member and and to Feature Group
-                var leafletMarker = L.marker([{$m.lat}, {$m.lon}], { title:  '{$m.member_name|escape:quotes}' })
-                    .bindPopup($('#map_info_' + {$m.id}).html(), {
-                        maxWidth: maxPopupWidth,
-                        maxHeight: maxPopupHeight
-                    })
-                    .addTo(markerGroup);
+                            leafletMap.addLayer(markerGroup);
 
-            {/if}
-              {/foreach}
+                            // Get outer bounds of all markers in the Feature Group
+                            leafletMap.fitBounds(markerGroup.getBounds());
 
-                leafletMap.addLayer(markerGroup);
+                        {/if} {* mapItems *}
 
-                // Get outer bounds of all markers in the Feature Group
-                leafletMap.fitBounds(markerGroup.getBounds());
+                        // When a marker is clicked, display the pop-up near the center of the map.
 
-            {/if} // havemembers
+                        leafletMap.on('popupopen', function(e) {
+                            var px = leafletMap.project(e.popup._latlng);
+                            px.x -= 20;                                         // Bump a bit to the right to avoid resize buttons
+                            px.y -= e.popup._container.clientHeight/2;          // Position more toward the center
+                            leafletMap.panTo(leafletMap.unproject(px),{ animate: true });
+                        });
 
-                // When a marker is clicked, display the pop-up near the center of the map.
+                    }
 
-                leafletMap.on('popupopen', function(e) {
-                    var px = leafletMap.project(e.popup._latlng);
-                    px.x -= 20;                                         // Bump a bit to the right to avoid resize buttons
-                    px.y -= e.popup._container.clientHeight/2;          // Position more toward the center
-                    leafletMap.panTo(leafletMap.unproject(px),{ animate: true });
-                });
+                {/if} {* Map interface 1 *}
 
+                {if $settings.selected_map_interface == 2}
 
-            }
+                    {*
+                     * Google Maps
+                     *  API reference: https://developers.google.com/maps/documentation/javascript/reference
+                     *}
 
-      {/if}
+                    function initMap() {
 
-      {if $settings.selected_map_interface == 2}
+                        // Create a Google Map object
+                        var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
+                                center: new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon}),
+                                zoom: {$settings.maps_default_zoom},
+                            disableDefaultUI: false,
+                            mapTypeId: google.maps.MapTypeId.MAP,
+                        });
 
-            /*
-             * Google Maps
-             *  API reference: https://developers.google.com/maps/documentation/javascript/reference
-             */
+                        var center = map.getCenter();
+                        google.maps.event.trigger(map, "resize");
+                        map.setCenter(center);
+
+                        var currentScroll = $(window).scrollTop(); // get current position
+                        var mapTop = $("#glm-locationMap-container").offset().top-10;
+                        {if $showSettings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
+                        if (currentScroll >= mapTop) {
+                            $('body,html').animate({
+                            scrollTop: $("#glm-locationMap-container").offset().top-100
+                            }, 50);
+                        } else {
+                            $('body,html').animate({
+                                scrollTop: $("#glm-locationMap-container").offset().top-100
+                            }, 400);
+                        }
 
-             function initMap() {
+                        var geocoder = new google.maps.Geocoder();
+                        var bounds = new google.maps.LatLngBounds();
+                        var infowindow = new google.maps.InfoWindow();
+
+                        {if $mapItems}
+                            var markers = [];
+                            {foreach $mapItems as $m}
+                                {if $m.lat != 0 && $m.lon != 0}
+
+                                    // Create a marker for this member
+                                    var marker = new google.maps.Marker({
+                                        map: map,
+                                        position: new google.maps.LatLng({$m.lat}, {$m.lon}),
+                                        draggable: false,
+                                        animation: google.maps.Animation.DROP,
+                                        title: '{$m.member_name|escape:quotes}',
+                                        descr: $('#map_info_' + {$m.id}).html(),
+                                        memberID: {$m.member}
+                                    });
+
+                                    // Add a click listener for this marker
+                                    marker.addListener('click', function() {
+                                            infowindow.setOptions({
+                                                    content: this.descr
+                                            });
+                                        infowindow.open(map,this);
+                                    });
+
+                                    markers.push(marker);
+
+                                    // Extend the map bounds to include this marker
+                                    bounds.extend(marker.position);
+
+                                {/if}
+                            {/foreach}
 
-                // Create a Google Map object
-                var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
-                        center: new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon}),
-                        zoom: {$settings.maps_default_zoom},
-                    disableDefaultUI: false,
-                    mapTypeId: google.maps.MapTypeId.MAP,
-                });
+                            {if $settings.use_cluster_markers}
+                                var markerCluster = new MarkerClusterer(map, markers,
+                                {
+                                    imagePath: '{$baseUrl}/js/googleMapsMarkerClusterer/images/m',
+                                    gridSize: 30,
+                                    maxZoom: 14,
+                                    minimunClusterSize: 3
+                                });
+                            {/if}
 
-                var center = map.getCenter();
-                google.maps.event.trigger(map, "resize");
-                map.setCenter(center);
-
-                var currentScroll = $(window).scrollTop(); // get current position
-                var mapTop = $("#glm-locationMap-container").offset().top-10;
-                {if $settings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
-                if (currentScroll >= mapTop) {
-                    $('body,html').animate({
-                    scrollTop: $("#glm-locationMap-container").offset().top-100
-                    }, 50);
-                } else {
-                    $('body,html').animate({
-                        scrollTop: $("#glm-locationMap-container").offset().top-100
-                    }, 400);
-               }
-
-                var geocoder = new google.maps.Geocoder();
-                var bounds = new google.maps.LatLngBounds();
-                var infowindow = new google.maps.InfoWindow();
-
-                // Don't Try HTML5 to get user geolocation
-                //if(navigator.geolocation) {
-                    //navigator.geolocation.getCurrentPosition(function(position) {
-                        //var myLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
-                        //var pinIcon = new google.maps.MarkerImage(
-                                //'https://maps.google.com/mapfiles/kml/shapes/man.png',
-                            //null, /* size is determined at runtime */
-                            //null, /* origin is 0,0 */
-                            //null, /* anchor is bottom center of the scaled image */
-                            //new google.maps.Size(30, 30)
-                        //);
-                        //var myMarker = new google.maps.Marker({
-                            //map: map,
-                            //position: myLocation,
-                            //draggable: false,
-                            //animation: google.maps.Animation.DROP,
-                            //title: 'My Location',
-                            //icon: pinIcon,
-                            //zIndex: 100
-                        //});
-                    //});
-                //}
-
-
-            {if $mapItems}
-                var markers = [];
-                {foreach $mapItems as $m}
-                  {if $m.lat != 0 && $m.lon != 0}
-
-                    // Create a marker for this member
-                    var marker = new google.maps.Marker({
-                        map: map,
-                        position: new google.maps.LatLng({$m.lat}, {$m.lon}),
-                        draggable: false,
-                        animation: google.maps.Animation.DROP,
-                        title: '{$m.member_name|escape:quotes}',
-                        descr: $('#map_info_' + {$m.id}).html(),
-                        memberID: {$m.member}
-                    });
+                            // Fit map to bounds of all markers
+                            map.fitBounds(bounds);
 
-                    // Add a click listener for this marker
-                    marker.addListener('click', function() {
-                            infowindow.setOptions({
-                                    content: this.descr
+                            // Check for first map idle (completely loaded) - Check max zoom
+                            var mapLoadedListener = google.maps.event.addListener(map, 'idle', function() {
+                                if (map.getZoom() > 14) {
+                                    this.setZoom(14);
+                                }
+                                google.maps.event.removeListener(mapLoadedListener);
                             });
-                        infowindow.open(map,this);
-                    });
 
-                    markers.push(marker);
+                        {/if} {* mapItems *}
 
-                    // Extend the map bounds to include this marker
-                    bounds.extend(marker.position);
+                    } {* initMap *}
 
-                 {/if}
-                {/foreach}
+                {/if} {* Map interface 2 *}
 
-                {if $settings.use_cluster_markers}
-                    var markerCluster = new MarkerClusterer(map, markers,
-                    {
-                        imagePath: '{$baseUrl}/js/googleMapsMarkerClusterer/images/m',
-                        gridSize: 30,
-                        maxZoom: 14,
-                        minimunClusterSize: 3
-                    });
+                // Handle Map View/Hide
+                var mapInitialized = false;
+                $("#glm-member-list-map-toggle").click( function() {
+                    $(".glm-member-db-{$view}-view").toggleClass("map-opened");
+                    $(".glm-member-db-{$view}-view").toggleClass("map-closed");
+                    if (!mapInitialized) {
+                        initMap();
+                        mapInitialized = true;
+                    }
+                });
+                {if $showSettings.list_show_map}
+                    {if $showSettings.list_map_show_opened || $view == 'map'}
+                        // Start with map opened
+                        initMap();
+                        mapInitialized = true;
+                    {/if}
                 {/if}
 
-                    // Fit map to bounds of all markers
-                    map.fitBounds(bounds);
+                // Processes click-through counts for website links
+                $('.glm-member-list-website-link').on('click', function() {
 
-                    // Check for first map idle (completely loaded) - Check max zoom
-                    var mapLoadedListener = google.maps.event.addListener(map, 'idle', function() {
-                        if (map.getZoom() > 14) {
-                            this.setZoom(14);
-                        }
-                        google.maps.event.removeListener(mapLoadedListener);
-                    });
+                    // Get member ID
+                    var memberId = $(this).attr('data-member-id');
+                    var memberSlug = $(this).attr('data-member-slug');
 
-             } // initMap
-
-        {else}
-
-
-        {/if} // havemembers
-
-      {/if}
-
-    {/if}   // settings.list_show_map
-
-            // Handle Map View/Hide
-            var mapInitialized = false;
-            $("#glm-member-list-map-toggle").click( function() {
-                $(".glm-member-db-{$view}-view").toggleClass("map-opened");
-                $(".glm-member-db-{$view}-view").toggleClass("map-closed");
-                if (!mapInitialized) {
-                    initMap();
-                    mapInitialized = true;
-                }
-                var currentScroll = $(window).scrollTop(); // get current position
-                var mapTop = $("#glm-locationMap-container").offset().top-10;
-                {if $settings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
-                if (currentScroll >= mapTop) {
-                    $('body,html').animate({
-                    scrollTop: $("#glm-locationMap-container").offset().top-100
-                    }, 50);
-                } else {
-                    $('body,html').animate({
-                        scrollTop: $("#glm-locationMap-container").offset().top-100
-                    }, 400);
-               }
-            });
-        {if $settings.list_map_show_opened}
-            // Start with map opened
-            initMap();
-            mapInitialized = true;
-        {/if}
-
-            // Processes click-through counts for website links
-            $('.glm-member-list-website-link').on('click', function() {
-
-                // Get member ID
-                var memberId = $(this).attr('data-member-id');
-                var memberSlug = $(this).attr('data-member-slug');
+                    // Send AJAX action to record click.
+                    $.ajax({
+                       url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberClickThrough&memberId=" + memberId + "&memberSlug=" + memberSlug
+                    });
 
-                // Send AJAX action to record click.
-                $.ajax({
-                   url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberClickThrough&memberId=" + memberId + "&memberSlug=" + memberSlug
                 });
 
-            });
+            {/if}   // settings.list_show_map
+
         });
-            </script>
+    </script>
+
+    {if $showSettings.list_show_outer_container}
+        {include file='front/footer.html'}
+    {/if}
 
-        </div><!-- glm-member-list-inner-wrapper-->
-    </div><!-- glm-member-db-list-view -->
-{include file='front/footer.html'}
+{/if} {* have messages *}
diff --git a/glm-member-db/views/front/members/listTypeGrid.html b/glm-member-db/views/front/members/listTypeGrid.html
new file mode 100644 (file)
index 0000000..545bb9a
--- /dev/null
@@ -0,0 +1,82 @@
+{* List Type Grid *}
+<ul class="row">
+    {foreach $members as $member}
+        <li class="glm-member-list-record columns small-12 medium-6 large-4">
+            <a class="anchorWrapper"{if $showSettings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{else} style="cursor: default;"{/if}>
+                {apply_filters('glm-member-db-front-members-list-memberAbove', '', $member.member_pointer)}
+                <div class="glm-member-db-border-wrap">
+                    {apply_filters('glm-member-db-front-members-list-memberTop', '', $member.member_pointer)}
+
+                    <div class="glm-member-list-image-wrapper"{if $settings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{/if}>
+
+                        {if $member.featured}
+                            <div class="glm-member-list-featured-tag">
+                                featured
+                            </div>
+                        {/if}
+
+                        {if $member.logo && $showSettings.list_show_logo}
+                            <div class="glm-member-list-has-image">
+                                {apply_filters('glm-member-db-front-members-list-memberImageTop', '', $member.member_pointer)}
+                                <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$member.logo}">
+                            </div>
+                        {elseif $showSettings.list_show_logo_filler}
+                            <div class="glm-member-list-has-image">
+                                {apply_filters('glm-member-db-front-members-list-memberImageTop', '', $member.member_pointer)}
+                                <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
+                            </div>
+                        {else}
+                            <div class="glm-member-list-missing-image"></div>
+                        {/if}
+                    </div>
+                    <div class="glm-member-list-info-wrapper">
+                        <h4 class="glm-member-title"> {$member.member} </h4>
+                        <div class="glm-member-list-description small-12 columns">
+                            <div>
+                            {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
+                            {if $member.short_descr && $showSettings.list_show_short_descr}
+                                {$member.short_descr|nl2br}
+                            {/if}
+                            {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
+                            </div>
+                        </div>
+                        {if $member.city}
+                            <div class="glm-member-list-address-container">
+                                <span class="member-city">{$member.city}{if $member.state.value}{/if}</span><br>
+                            </div>
+                        {/if}
+                        {if $showSettings.memb_info_location && $member.region && $showSettings.list_show_region}
+                            <div class="glm-member-list-region-container">
+                                Region: {$member.region}
+                            </div>
+                        {/if}
+                        {if ($showSettings.memb_info_contact && $member.phone && $showSettings.list_show_phone) || ($showSettings.memb_info_contact && $member.toll_free && $showSettings.list_show_tollfree)}
+                            <div class="glm-member-list-phone-container">
+                                {if $member.phone && $showSettings.list_show_phone}<span class="glm-member-db-phone">{apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
+                            </div>
+                        {/if}
+                    </div>
+                </div> {* End of glm-member-db-border *}
+            </a>
+            <div class="glm-member-list-sub-links">
+                <ul>
+                    {if $member.url && $showSettings.list_show_url}<li><a href="{$member.url}"{if $showSettings.list_show_url_newtarget} target="_blank"{/if}>Website</a></li>{/if}
+                    {* {if $member.phone && $showSettings.list_map_show_phone}<a href="tel:+{$member.phone}">Phone</a>{/if} *}
+                    {$packageLink = apply_filters('glm-member-db-front-members-list-linksBottom', '', $member.member_pointer)}
+                    {if $packageLink}<li>{$packageLink}</li>{/if}
+                    {if $member.reservation_url}<li><a target="_blank" href="{$member.reservation_url}">Reserve Now</a></li>{/if}
+
+                    {if $showSettings.list_show_live_cam}
+                        {if $member.live_cam_type.name == "Web Page" && $member.live_cam_url && $showSettings.list_show_live_cam}
+                            <li><a target="_blank" href="{$member.live_cam_url}">{$terms.term_webcam_cap}</a></li>
+                        {else if $member.live_cam_type.name == "Camera Image"}
+                            <li><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}?expanded=live-cam">{$terms.term_webcam_cap}</a></li>
+                        {/if}
+                    {/if}
+
+                    {apply_filters('glm-member-db-front-members-list-memberBelow', '', $member.member_pointer)}
+                </ul>
+            </div>
+        </li> {* end of li.glm-member-list-record *}
+    {/foreach} {*$members*}
+</ul>
index b9ad0be..3fa1e5e 100644 (file)
@@ -21,7 +21,7 @@ add_shortcode('year', 'footerYear');
 add_action( 'admin_init', 'hide_editor' );
 function hide_editor() {
     // Get the Post ID.
-    $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
+    $post_id = isset( $_GET['post'] ) ? $_GET['post'] : isset( $_POST['post_ID'] ) ? $_POST['post_ID'] : false ;
     if( !isset( $post_id ) ) return;
     // Hide the editor on the page titled 'Homepage'
     $homepgname = get_the_title($post_id);
@@ -689,13 +689,13 @@ function select_dropdown_cities() {
 wp_reset_postdata();
 
 
-add_filter('admin_footer_text', remove_admin_footer_text, 1000);
+add_filter('admin_footer_text', 'remove_admin_footer_text', 1000);
 
 function remove_admin_footer_text($footer_text =''){
     return '';
 }
 
-add_filter('update_footer', remove_admin_footer_upgrade, 1000);
+add_filter('update_footer', 'remove_admin_footer_upgrade', 1000);
 
 function remove_admin_footer_upgrade($footer_text =''){
     return '';
index b191d4e..1440798 100644 (file)
@@ -52,7 +52,10 @@ if ( ! is_active_sidebar( 'sidebar-2' ) ) {
 
        <section class="widget sidebar">
                <h2 class="widget-title news-feed-title">What's Happening</h2>
-               <div class="widget-container"><?php echo get_new_royalslider(2); ?></div>
+        <div class="widget-container"><?php if( function_exists('get_new_royalslider') ){
+            echo get_new_royalslider(2);
+        }
+        ?></div>
        </section>
 
        <?php dynamic_sidebar( 'sidebar-signup' ); ?>