Using plugin view files.
+++ /dev/null
-{include file='front/members/header.html'}
-
-{apply_filters('glm-member-db-front-members-detail-pageTop', '', $member.id)}
-
-{if $haveMember}
-
- {if $settings.detail_show_map}
-<!-- <div id="glm-locationMap-container" class="row">
- <div id="glm-locationMap" class="glm-map small-12 columns">(map loads here)</div>
- </div>-->
- {/if}
- {if $settings.detail_show_directions}
-<!-- <div id="glm-directionsMap-container" class="glm-hidden">
- <div id="glm-directionsMap" class="glm-map">(directions load here)</div>
- <div id="directions-panel"></div>
- </div>
-
- <div class="row">
- <div id="glm-directions" class="small-12 columns glm-member-entry-container">
- <div class="row">
- <div class="small-12 medium-4 columns">
- Directions type:
- <select id="directionsType" name="directionsType">
- <option value="DRIVING">Driving</option>
- <option value="WALKING">Walking</option>
- <option value="BICYCLING">Bicycling</option>
- <option value="TRANSIT">Transit Services</option> - Doesn't seem to work
- </select>
- </div>
- <div class="small-12 medium-8 columns">
- Enter address to show directions ...
- <input id="glm-startLocation" type="text" name="startLocation" class="glm-form-text-input" placeholder=""><br>
- </div>
- </div>
- <div class="row">
- <div style="text-align: center;">
- <input type="submit" id="glm-showDirectionsButton" class="button button-secondary glm-button glm-member-button" value="Show Directions">
- <input type="submit" id="glm-showLocationButton" class="button button-secondary glm-button glm-hidden glm-member-button" value="Show {$terms.term_member_cap} Location">
- </div>
- </div>
- </div>
- </div>-->
- {/if}
-<a id="topAnchor"></a>
-
-<!-- <h3>{$terms.term_member_cap} Detail</h3>-->
- <div class="">
- <script>//document.write('<a id="glm-member-detail-takeback-mini" class="button glm-member-button" href="' + document.referrer + '"><span>Back to listing</span></a>');</script>
- <a id="glm-member-detail-takeback-mini" class="glm-member-db-takeback-mini button glm-member-button" href="javascript:history.go(-1)"><span>Back to listing</span></a>
- <div id="glm-member-detail-container" class="columns glm-member-container">
- <div id="glm-member-detail-top-box" class="">
- {if $member.logo && $settings.detail_show_logo}
-<!-- <div class="glm-member-detail-logo-wrapper">
- <img class="glm-member-list-image-left" src="{$glmPluginMediaUrl}/images/{$settings.detail_logo_size}/{$member.logo}">
- </div>-->
- {/if}
- {if $member.url && $settings.detail_show_url}
- <input type="hidden" id="glm-member-detail-click-logged" value="0">
- {/if}
-
- <div id="glm-member-detail-contact-info" class="">
- <h4 class="glm-member-title"> {$member.member}</h4>
- <!-- Member name, address, and basic information -->
-
- {if $settings.detail_show_address}
- <div class="glm-member-detail-address-wrapper">
- {apply_filters('glm-member-db-front-members-detail-addressTop', '', $member.id)}
- {if $settings.detail_show_street}
- {if $member.addr1}<div>{$member.addr1}</div>{/if}
- {if $member.addr2}<div>{$member.addr2}</div>{/if}
- {/if}
- {if $settings.memb_info_location && $settings.detail_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.detail_show_country}
- <div>{$member.country.name}</div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-addressBottom', '', $member.id)}
- </div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-otherDetailTop', '', $member.id)}
- {if $settings.memb_info_location && $member.region && $settings.detail_show_region}
- <div class="glm-member-detail-region-wrapper">
- {$terms.term_admin_menu_configure_regions}: {$member.region}
- </div>
- {/if}
- {if $settings.memb_info_location}
- <div class="glm-member-detail-phone-wrapper">
- {if $member.phone && $settings.detail_show_phone}
- <div class="glm-member-detail-contact-phone">
- <div class="glm-field-value">Phone: {apply_filters('glm_associate_phone_filter', $member.phone)}</div>
- </div>
- {/if}
- {if $member.toll_free && $settings.detail_show_tollfree}
- <div>
- <div class="glm-field-value">Toll Free: {apply_filters('glm_associate_phone_filter', $member.toll_free)}</div>
- </div>
- {/if}
- </div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-otherDetailBottom', '', $member.id)}
- <div id="glm-member-detail-links">
- {apply_filters('glm-member-db-front-members-detail-linksTop', '', $member.id)}
- {if $settings.detail_show_url}<a id="glm-member-detail-website-link" class="small-12" data-member-id="{$member.member_pointer}" data-member-slug="{$member.member_slug}" href="{$member.url}"{if $settings.detail_show_url_newtarget} target="_blank"{/if}>Visit Website</a>{/if}
- {if $member.email && $settings.detail_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.detail_show_coupons && $coupons}<a href="#glm-member-detail-coupons">Coupons</a>{/if}
- {if $member.live_cam_type.value==1 && $member.live_cam_url != "" && $settings.detail_show_live_cam}
- <a target="_blank" href="{$member.live_cam_url}">
- {$terms.term_webcam_cap}
- </a>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-linksBottom', '', $member.id)}
- </div>
-
- <div class="glm-member-db-socials">
- {apply_filters('glm-member-db-front-members-list-memberDetailBottom', '', $member.id)}
- {apply_filters('glm-member-db-front-members-social-list', '', $member.id)}
- </div>
- </div>
-
- {if $settings.detail_show_map}
- <div id="glm-member-detail-map-wrapper" class="">
- <div id="glm-locationMap-container" style="height: 140px;">
- {if $settings.selected_map_interface == 1}
- <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}/Leaflet.loading/src/Control.Loading.css" />
- <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
- <div id="LeafletMapContainer" style="height: 250px; width: 100%;">(map loads here)</div>
- {/if}
- {if $settings.selected_map_interface == 2}
- <script src="//maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>
- <script type="text/javascript">var enableDraggable = true;</script>
- <div id="glm-locationMap" class="glm-map glmgrid-small-12 glmgrid-columns">(map loads here)</div>
- {/if}
- </div>
- <div id="glm-member-detail-map-button" class="button map-button">view map</div>
-
- <div id="member-lat" rel="{$member.lat}"></div>
- <div id="member-lon" rel="{$member.lon}"></div>
- <form id="MemberDrivingDirectionsForm" name="MemberDrivingDirectionsForm" method="post" action="">
- <input type="hidden" id="MemberLocation" name="MemberLocation" value="{$member.member_name|escape}">
- <input type="hidden" id="MemberLat" name="MemberLat" value="{$member.lat}">
- <input type="hidden" id="MemberLon" name="MemberLon" value="{$member.lon}">
- <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmit" name="MemberDrivingDirectionSubmit" value="Directions">
- <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmitMobile" name="MemberDrivingDirectionSubmit" value="Driving Directions">
- </form>
- </div>
- {/if}
- </div>
-
-
-<!-- Attributes: amenitities, credit cards, etc -->
- <div id="glm-member-detail-descr-row" class="small-12 columns">
- {apply_filters('glm-member-db-front-members-detail-attributesTop', '', $member.id)}
-<!-- {if $featuredImage}
- <div class="glm-member-detail-featured-image-wrapper small-12 columns">
- <img src="{$glmPluginMediaUrl}/images/large/{$featuredImage}">
- {if $featuredImageCaption}
- <div class="glm-member-detail-featured-image-caption">
- {$featuredImageCaption}
- </div>
- {/if}
- </div>
- {/if}-->
- <div id="glm-member-detail-intro-desc">
- {if $member.short_descr && $settings.detail_show_short_descr}{$member.short_descr|nl2br}{/if}
- </div>
- <div id="glm-member-detail-fullprofile-toggle">Expand All</div>
- <div id="glm-member-detail-data-container">
- {apply_filters('glm-member-db-front-members-detail-packages', '', $member.id)}
- <div id="glm-member-detail-description-toggle" class="glm-member-detail-content-toggle">Description</div>
- <div id="glm-member-detail-description-container" class="glm-member-detail-content-data">
- <div id="glm-member-detail-description" >
- {if $member.descr && $settings.detail_show_descr}
- {apply_filters('glm-member-db-front-members-detail-descriptionTop', '', $member.id)}
- {$member.descr|nl2br}
- {apply_filters('glm-member-db-front-members-detail-descriptionBottom', '', $member.id)}
- {/if}
- </div>
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
-
- {apply_filters('glm-member-db-front-members-detail-events', '', $member.id)}
-
- {apply_filters('glm-member-db-front-members-detail-couponsBefore', '', $member.id)}
- {if $settings.detail_show_coupons && $coupons}
- <div id="glm-member-detail-coupons-toggle" class="glm-member-detail-content-toggle">Coupons</div>
- <div id="glm-member-detail-coupons-container" class="glm-member-detail-content-data small-12">
- <a name="glm-member-detail-coupons"></a>
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-couponsAfter', '', $member.id)}
-
- {apply_filters('glm-member-db-front-members-detail-amenitiesBefore', '', $member.id)}
- {if $member.amenities && $settings.detail_show_amenities}
- <div id="glm-member-detail-amenities-toggle" class="glm-member-detail-content-toggle">Amenities & Services</div>
- <div id="glm-member-detail-amenities-container" class="glm-member-detail-content-data small-12">
- <table class="glm-member-detail-table">
- {foreach $member.amenities as $a}
- <tr>
- <td>
- {$a.name}
- </td>
- </tr>
- {/foreach}
- </table>
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-amenitiesAfter', '', $member.id)}
-<!-- Not using credit cards for now
- {apply_filters('glm-member-db-front-members-detail-creditcardsBefore', '', $member.id)}
- {if $member.cc_type && $settings.detail_show_creditcards}
- <div id="glm-member-detail-creditcards-toggle" class="glm-member-detail-content-toggle">Credit Cards</div>
- <div id="glm-member-detail-creditcards-container" class="glm-member-detail-content-data small-12">
- <table class="glm-member-detail-table">
- <tr><th>Credit Cards Accepted:</th></tr>
- {foreach $member.cc_type.names as $c}
- <tr><td>{$c}</td></tr>
- {/foreach}
- </table>
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-creditcardsAfter', '', $member.id)}
--->
- {apply_filters('glm-member-db-front-members-detail-categoriesBefore', '', $member.id)}
- {if $member.categories && $settings.detail_show_categories}
- <div id="glm-member-detail-categories-toggle" class="glm-member-detail-content-toggle">Categories</div>
- <div id="glm-member-detail-categories-container" class="glm-member-detail-content-data small-12">
- <table class="glm-member-detail-table">
-<!-- <tr><th>{$terms.term_member_cap} Categories</th></tr>-->
- {foreach $member.categories as $c}
- <tr>
- <td>
- {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
- </td>
- </tr>
- {/foreach}
- </table>
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-categoriesAfter', '', $member.id)}
- {apply_filters('glm-member-db-front-members-detail-videoBefore', '', $member.id)}
- {if $member.video_url && $settings.detail_show_video}
- <div id="glm-member-detail-video-toggle" class="glm-member-detail-content-toggle">Video</div>
- <div id="glm-member-detail-video-container" class="glm-member-detail-content-data small-12">
- <table class="glm-member-detail-table">
- <div><h3 class="glm-member-detail-video-title">{$member.video_title}</h3></div>
- <div class="glm-member-detail-video-embed">{$member.video_embed}</div>
- <div class="glm-member-detail-video-descr"><p>{$member.video_descr}</p></div>
- </table>
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
-
- {apply_filters('glm-member-db-front-members-detail-videoAfter', '', $member.id)}
-
- {apply_filters('glm-member-db-front-members-detail-liveCamBefore', '', $member.id)}
- {if $member.live_cam_type.value!=1 && $member.live_cam_url && $settings.detail_show_live_cam}
- <div id="glm-member-detail-live-cam-toggle" class="glm-member-detail-content-toggle">{$terms.term_webcam_cap}</div>
- <div id="glm-member-detail-live-cam-container" class="glm-member-detail-content-data small-12">
- <table class="glm-member-detail-table">
- <div><h3 class="glm-member-detail-live-cam-title">{$member.live_cam_title}</h3></div>
- {if $member.live_cam_type.value == 2}
- <img width="auto" max-height="315" src="{$member.live_cam_url}">
- {/if}
- <div class="glm-member-detail-live-cam-descr"><p>{$member.live_cam_descr}</p></div>
- </table>
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
-
- {if $haveFiles}
- <div id='glm-member-detail-files-toggle' class='glm-member-detail-content-toggle'>Files</div>
- <div id='glm-member-detail-files-container' class='glm-member-detail-content-data small-12'>
- {foreach $files as $file}
- <a class="glm-file-detail" href="{$glmPluginMediaUrl}/files/{$file.file_name}" target="_blank">{if $file.caption}{$file.caption}{else}{$file.name}{/if}</a>
- {/foreach}
- <div class='glm-member-detail-sub-data-links row'>
- <a class='glm-member-detail-content-toggle'>Collapse</a>
- <a class='glm-member-detail-link-to-top'>Back to top</a>
- </div>
- </div>
- {/if}
-
- {apply_filters('glm-member-db-front-members-detail-liveCamAfter', '', $member.id)}
-
- {$customFields = apply_filters('get_glm_custom_fields','glm-member-db',$member.memberInfoId)}
- {if !empty($customFields[0].field_data)}
- <div id="glm-member-detail-hours-toggle" class="glm-member-detail-content-toggle">Hours</div>
- <div id="glm-member-detail-hours-container" class="glm-member-detail-content-data">
- <div id="glm-member-detail-hours" >
-
- {foreach $customFields as $field}
- {if $field.field_data}
- <div class="glm-member-detail-custom-field">
- <div class="row">
- <span class="glm-member-detail-custom-field-name small-12 medium-5 columns" >{$field.field_name}</span>
- <span class="glm-member-detail-custom-field-data small-12 medium-7 columns">{$field.field_data}</span>
- </div>
-
- </div>
- {/if}
- {/foreach}
- </div>
-
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
-
- {apply_filters('glm-member-db-front-members-detail-imageGalleryBefore', '', $member.id)}
- {if $settings.detail_show_imagegallery && $haveImageGallery}
- <div id="glm-member-detail-images-toggle" class="glm-member-detail-content-toggle">Photos</div>
- <div id="glm-member-detail-images-container" class="glm-member-detail-content-data small-12">
- {apply_filters('glm-member-db-front-members-detail-galleryTop', '', $member.id)}
-<!-- <h2>Photo Gallery</h2>-->
-
- <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3">
- {foreach $imageGallery as $i}
- <li>
- <a class="glm-member-detail-images-thumb fancybox" data-fancybox="images" rel="gallery1" href="{$glmPluginMediaUrl}/images/large/{$i.file_name}" style="background-image: url('{$glmPluginMediaUrl}/images/small/{$i.file_name}')">
- <img class="glm-member-filler-image" src="{$assetsUrl}/filler_s.gif" alt="{$i.caption}">
- </a>
- </li>
- {/foreach}
- </ul>
- {apply_filters('glm-member-db-front-members-detail-galleryBottom', '', $member.id)}
- <div class="glm-member-detail-sub-data-links row">
- <a class="glm-member-detail-content-toggle">Collapse</a>
- <a class="glm-member-detail-link-to-top">Back to top</a>
- </div>
- </div>
- {/if}
- {apply_filters('glm-member-db-front-members-detail-imageGalleryAfter', '', $member.id)}
-
- {apply_filters('glm-member-db-front-members-detail-dataBottom','',$member.id)}
- </div>
- </div>
- {apply_filters('glm-member-db-front-members-detail-attributesBottom', '', $member.id)}
-<!-- Image Gallery -->
-
- </div>
- </div>
- {apply_filters('glm-member-db-front-members-detail-pageBottom', '', $member.id)}
-
- <div id="findingYourLocationDialog" title="Your present location">
- <p>
- We would like to lookup your present location so we can provide accurate directions.
- </p><p>
- Your browser may ask for your permission to determine your location
- (possibly at the top of this page).
- </p><p>
- If you agree, we will use your current location as the starting point for
- directions. If you don't agree, you may enter a starting location when the map is displayed.
- </p>
- </div>
-
- <script type="text/javascript">
- {apply_filters('glm-member-db-front-members-detail-jqueryScriptTop', '', $member.id)}
-
- jQuery(document).ready(function($) {
-
- // Dialog box to show when submitting checkout page
- $( "#findingYourLocationDialog" ).dialog({
- autoOpen: false,
- width: 600
- });
- $( "#lookingUpYourLocationDialog" ).dialog({
- autoOpen: false,
- width: 600
- });
-
- var trackToConsole = true; // Send debug/progress messages to developers console (Firefox)
- var trackPositionInterval = 60000; // Time interval for getting user's current geolocation - 1 Min
- var highAccuracyPoisition = true; // Request high-accuracy user geolocation from user's device
- var postionTimeout = 15000; // Maximum amount of time we'll wait for geolocation result - 15 Sec
-
- // Process form for sending user to Google Maps for driving directions
- $("#MemberDrivingDirectionsForm").submit(function(){
-
- var stopGeolocation = false;
- var myCurrentLocation = false;
-
- // If we already have a location
- if (myCurrentLocation) {
- sendToGoogleMaps(myCurrentLocation);
- } else {
-
- // We don't yet have a location, so try to get it
- if (navigator.geolocation) {
-
- $( "#findingYourLocationDialog" ).dialog("open");
-
- // Get the user's location
- navigator.geolocation.getCurrentPosition(function(position) {
-
- // Save their current location
- myCurrentLocation = {
- lat: position.coords.latitude,
- lon: position.coords.longitude
- };
-
- $( "#findingYourLocationDialog" ).dialog("close");
- sendToGoogleMaps(myCurrentLocation);
-
- // If we can't get the location, then go without it
- },
- function(err) {
- $( "#findingYourLocationDialog" ).dialog("close");
- sendToGoogleMaps(false);
- },
- {
- enableHighAccuracy: highAccuracyPoisition,
- timeout: postionTimeout,
- maximumAge: trackPositionInterval - 100 // Allows cached position resulting from other requests during interval
- });
-
- }
-
- }
-
- return false;
-
- });
-
- function sendToGoogleMaps(myLocation) {
- var lat = plusifyMyValue(jQuery("#MemberLat").val());
- var lon = plusifyMyValue(jQuery("#MemberLon").val());
- var dest = '&destination=' + lat + '%2C+' + lon;
-
- var origin = '';
- if (myLocation) {
- var myLat = plusifyMyValue(myLocation.lat);
- var myLon = plusifyMyValue(myLocation.lon);
- origin = '&origin=' + myLat + '%2C+' + myLon;
- }
-
- var url = "https://www.google.com/maps/dir/?api=1" + origin + dest;
- window.open(url, '_blank');
- }
-
- function plusifyMyValue(v) {
- if (v > 0) {
- v = '+' + v;
- }
- return v;
- }
-
- // change the member detail photos grid structure depending
- var images_container = $("#glm-member-detail-images-container");
- // Check if Foundation exists first
- if ( typeof window.Foundation != 'undefined' ) {
- var foundation_version = window.Foundation.version;
-
- if( foundation_version.charAt(0) === "6" ){
- images_container.children('ul').removeClass('small-block-grid-1 medium-block-grid-2 large-block-grid-3');
- images_container.children('ul').addClass('row small-up-1 medium-up-2 large-up-3');
- images_container.children('ul').find('li').addClass('column');
- }
- }
-
- // Replace all non-number special characters in a phone number with the designated infix
- {if $settings.phone_infix}
- //var processedPhone = $('.glm-member-detail-contact-phone .glm-field-value').text().trim().replace(/[^a-zA-Z0-9 ]/g, '{$settings.phone_infix}');
- //$('.glm-member-detail-contact-phone .glm-field-value').text(processedPhone);
- {/if}
-
- // Check a hidden field to see if this is a page refresh (doesn't detect forced reload)
- var isRefresh = $("#glm-member-detail-click-logged").val();
-
- // Also check the HTML 5 performance.navigation.type value (1 = reload, 2 = via history)
- if(window.performance && (performance.navigation.type == 1 || performance.navigation.type == 2)) {
- isRefresh = 1;
- }
-
- // If this is not a refresh or reload, send AJAX action to record click.
- if (isRefresh == 0) {
- $.ajax({
- url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberDetailClick&memberId={$member.member_pointer}&memberSlug={$member.member_slug}"
- });
- $("#glm-member-detail-click-logged").val(1);
- }
-
- // Processes click-through counts for website links
- $('#glm-member-detail-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
- });
-
- });
-
- // Automatically zoom and expand the relevant
- $('html').addClass('glmassociatememberdetail glmassociatetop');
- if ("{$expanded}" != "") {
- var expandTarget = "glm-member-detail-{$expanded}";
- if ($("#"+expandTarget+"-container").length) {
- $("#"+expandTarget+"-container").show("fast", "swing", function() {});
- $("#"+expandTarget+"-toggle").addClass("selected");
- fullProfileCheck(expandTarget);
- $('html, body').animate({
- scrollTop: $("#"+expandTarget+"-toggle").offset().top-10
- }, 500);
- }
- }
-
- $("a.glm-member-detail-images-thumb").fancybox({
-
- helpers: {
- overlay: { locked: false },
- title: { type: 'inside'},
- },
- afterLoad: function(){
- this.title = $(this.element).find('img').attr('alt');
- }
- });
-
- $("a.glm-member-detail-images-thumb").click(function(e) {
- e.preventDefault();
- });
-
- $('.glm-member-detail-link-to-top').click(function () {
- $('body,html').animate({
- scrollTop: $("#glm-member-detail-takeback-mini").offset().top-10
- }, 75);
- });
-
- // Open the appropriate section if a link is clicked
- $('.link-open-detail-content-data').click(function(e) {
- var target = $(this).attr("id").slice(0, -5);
- // e.g.: #glm-member-detail-packages-link
- $("#"+target+"-container").show("fast", "swing", function() {});
- $("#"+target+"-toggle").addClass("selected");
- fullProfileCheck(target);
- $('html, body').animate({
- scrollTop: $("#"+target+"-toggle").offset().top-{$settings.detail_top_offset_autoscroll}
- }, 500);
- });
-
- // Open the following sections by default
- if ($(window).width() >= 1024) {
-
- if( $("#glm-member-detail-packages-container").length > 0 && $("#glm-member-detail-packages-toggle").length > 0){
- $("#glm-member-detail-packages-container").slideToggle("fast", "swing", function() {});
- $("#glm-member-detail-packages-toggle").toggleClass("selected");
- }
-
- if( $("#glm-member-detail-images-container").length > 0 && $("#glm-member-detail-description-toggle").length > 0){
- $("#glm-member-detail-images-container").slideToggle("fast", "swing", function() {});
- $("#glm-member-detail-images-toggle").toggleClass("selected");
- }
-
- }
-
- // Open or close the appropriate section if a toggle is clicked
- $(".glm-member-detail-content-toggle").not("#glm-member-detail-fullprofile-toggle").click(function() {
- if($(this).parents('.glm-member-detail-sub-data-links').length) {
- var target = $(this).parent().parent().attr("id").slice(0, -10);
- } else {
- var target = $(this).attr("id").slice(0, -7);
- }
- $("#"+target+"-container").slideToggle("fast", "swing", function() {});
- $("#"+target+"-toggle").toggleClass("selected");
- fullProfileCheck(target);
- });
-
- // Change the toggle button based on whether all the content sections are expanded
- function fullProfileCheck(target) {
- if ($("#glm-member-detail-data-container > .glm-member-detail-content-toggle.selected").length == $("#glm-member-detail-data-container > .glm-member-detail-content-toggle").length) {
- $("#glm-member-detail-fullprofile-toggle").addClass("selected");
- } else {
- $("#glm-member-detail-fullprofile-toggle").removeClass("selected");
- }
- }
-
- // Open or close every data container if the fullprofile toggle is clicked
- $("#glm-member-detail-fullprofile-toggle").click(function() {
- if ($(this).hasClass("selected")) {
- $(".glm-member-detail-content-data").slideUp(175, "swing", function() {});
- $(".glm-member-detail-content-toggle").removeClass("selected");
- $(this).toggleClass("selected");
- } else {
- $(".glm-member-detail-content-data").not($(this)).slideDown(350, "swing", function() {});
- $(".glm-member-detail-content-toggle").addClass("selected");
- $(this).toggleClass("selected");
- }
- });
-
- // Expand the takeback button on hover. Progressively add ellipses when clicked and loading
- $("#glm-member-detail-takeback-mini").click(function() {
- $("#glm-member-detail-takeback-mini span").html("Loading");
- $("#glm-member-detail-takeback-mini").css('min-width','170px');
- var count = 0;
- setInterval(function(){
- count++;
- var dots = new Array(count % 5).join(' .');
- $('#glm-member-detail-takeback-mini span').html("Loading ." + dots);
- }, 500);
- });
-
-
- {if $settings.detail_show_map}
-
- // Expand/contract map container and change the toggle button
- $("#glm-member-detail-map-button").click(function() {
- var mapC = "#glm-locationMap-container";
- var map = "#glm-locationMap";
- var mapNewH = 0;
- var mapOverflow = 'hidden';
- var mapBtnTxt = 'view map';
- if ($(mapC).height() == 0) {
- mapNewH = 140;
- mapV = 'visible';
- mapBtnTxt = 'hide map'
- }
- $(mapC).animate({
- overflow: mapOverflow,
- height: mapNewH
- }, 140, "swing", function() {
-
- });
- $(this).html(mapBtnTxt);
- });
-
- {if $settings.selected_map_interface == 1}
-
- /*
- * Leaflet Map
- * API reference: https://leafletjs.com/reference-1.3.2.html
- */
-
- // Get member location if available, otherwise use this site's default locatgion
- var myLocation = false;
- {if $member.lat != 0 && $member.lon != 0}
- var memberLat = {$member.lat};
- var memberLon = {$member.lon};
- {else}
- var memberLat = {$settings.maps_default_lat}};
- var memberLon = {$settings.maps_default_lon}};
- {/if}
-
- function initMap() {
-
- var leafletMap = L.map('LeafletMapContainer').setView([memberLat, memberLon], {$settings.maps_default_zoom});
- var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
- var leafletMinZoom = 5;
- var leafletMaxZoom = 18;
- var geocoder;
-
-
- // Tile server
- L.tileLayer(leafletTileServer, {
- attribution: 'Map data © <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);
-
- var loadingControl = L.Control.loading({
- separate: true,
- delayIndicator: 500
- });
- leafletMap.addControl(loadingControl);
-
- // Marker
- var leafletMarker = L.marker([memberLat, memberLon]).addTo(leafletMap);
-
- }
-
- {/if}
-
- {if $settings.selected_map_interface == 2}
-
- /*
- * Google Maps
- * API reference: https://developers.google.com/maps/documentation/javascript/reference
- */
-
- var myLocation = false;
- {if $member.lat != 0 && $member.lon != 0}
- var memberlocation = new google.maps.LatLng({$member.lat}, {$member.lon});
- {else}
- var memberlocation = new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon});
- {/if}
-
- function initMap() {
-
- // Set default - Need to make this configurable
- var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
- zoom: {$settings.maps_default_zoom},
- center: memberlocation,
- disableDefaultUI: false,
- mapTypeId: google.maps.MapTypeId.MAP,
- });
-
- // Create a marker for this member
- {if $member.lat != 0 && $member.lon != 0}
- var marker = new google.maps.Marker({
- map: map,
- position: new google.maps.LatLng({$member.lat}, {$member.lon}),
- draggable: false,
- animation: google.maps.Animation.DROP,
- title: '{$member.member|escape}'
- });
- {/if}
-
- }
-
- // Load map
- google.maps.event.addDomListener(window, 'load', initMap);
-
- {/if}
-
- {/if} {*detail_show_map*}
-
- $(window).load(function(){
- initMap();
- });
-
- }); // jquery
-
- {apply_filters('glm-member-db-front-members-detail-jqueryScriptBottom', '', $member.id)}
-
-
-
- </script>
-
-{else}
- <p>For some reason the specified {$terms.term_member} was not found. Please try again.</p>
-{/if}
-
-
-{include file='front/footer.html'}
--- /dev/null
+{include file='front/members/header.html'}
+
+{apply_filters('glm-member-db-front-members-detail-pageTop', '', $member.id)}
+
+{if $haveMember}
+
+ {if $settings.detail_show_map}
+<!-- <div id="glm-locationMap-container" class="row">
+ <div id="glm-locationMap" class="glm-map small-12 columns">(map loads here)</div>
+ </div>-->
+ {/if}
+ {if $settings.detail_show_directions}
+<!-- <div id="glm-directionsMap-container" class="glm-hidden">
+ <div id="glm-directionsMap" class="glm-map">(directions load here)</div>
+ <div id="directions-panel"></div>
+ </div>
+
+ <div class="row">
+ <div id="glm-directions" class="small-12 columns glm-member-entry-container">
+ <div class="row">
+ <div class="small-12 medium-4 columns">
+ Directions type:
+ <select id="directionsType" name="directionsType">
+ <option value="DRIVING">Driving</option>
+ <option value="WALKING">Walking</option>
+ <option value="BICYCLING">Bicycling</option>
+ <option value="TRANSIT">Transit Services</option> - Doesn't seem to work
+ </select>
+ </div>
+ <div class="small-12 medium-8 columns">
+ Enter address to show directions ...
+ <input id="glm-startLocation" type="text" name="startLocation" class="glm-form-text-input" placeholder=""><br>
+ </div>
+ </div>
+ <div class="row">
+ <div style="text-align: center;">
+ <input type="submit" id="glm-showDirectionsButton" class="button button-secondary glm-button glm-member-button" value="Show Directions">
+ <input type="submit" id="glm-showLocationButton" class="button button-secondary glm-button glm-hidden glm-member-button" value="Show {$terms.term_member_cap} Location">
+ </div>
+ </div>
+ </div>
+ </div>-->
+ {/if}
+<a id="topAnchor"></a>
+
+<!-- <h3>{$terms.term_member_cap} Detail</h3>-->
+ <div class="">
+ <script>//document.write('<a id="glm-member-detail-takeback-mini" class="button glm-member-button" href="' + document.referrer + '"><span>Back to listing</span></a>');</script>
+ <a id="glm-member-detail-takeback-mini" class="glm-member-db-takeback-mini button glm-member-button" href="javascript:history.go(-1)"><span>Back to listing</span></a>
+ <div id="glm-member-detail-container" class="columns glm-member-container">
+ <div id="glm-member-detail-top-box" class="">
+ {if $member.logo && $settings.detail_show_logo}
+<!-- <div class="glm-member-detail-logo-wrapper">
+ <img class="glm-member-list-image-left" src="{$glmPluginMediaUrl}/images/{$settings.detail_logo_size}/{$member.logo}">
+ </div>-->
+ {/if}
+ {if $member.url && $settings.detail_show_url}
+ <input type="hidden" id="glm-member-detail-click-logged" value="0">
+ {/if}
+
+ <div id="glm-member-detail-contact-info" class="">
+ <h4 class="glm-member-title"> {$member.member}</h4>
+ <!-- Member name, address, and basic information -->
+
+ {if $settings.detail_show_address}
+ <div class="glm-member-detail-address-wrapper">
+ {apply_filters('glm-member-db-front-members-detail-addressTop', '', $member.id)}
+ {if $settings.detail_show_street}
+ {if $member.addr1}<div>{$member.addr1}</div>{/if}
+ {if $member.addr2}<div>{$member.addr2}</div>{/if}
+ {/if}
+ {if $settings.memb_info_location && $settings.detail_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.detail_show_country}
+ <div>{$member.country.name}</div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-addressBottom', '', $member.id)}
+ </div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-otherDetailTop', '', $member.id)}
+ {if $settings.memb_info_location && $member.region && $settings.detail_show_region}
+ <div class="glm-member-detail-region-wrapper">
+ {$terms.term_admin_menu_configure_regions}: {$member.region}
+ </div>
+ {/if}
+ {if $settings.memb_info_location}
+ <div class="glm-member-detail-phone-wrapper">
+ {if $member.phone && $settings.detail_show_phone}
+ <div class="glm-member-detail-contact-phone">
+ <div class="glm-field-value">Phone: {apply_filters('glm_associate_phone_filter', $member.phone)}</div>
+ </div>
+ {/if}
+ {if $member.toll_free && $settings.detail_show_tollfree}
+ <div>
+ <div class="glm-field-value">Toll Free: {apply_filters('glm_associate_phone_filter', $member.toll_free)}</div>
+ </div>
+ {/if}
+ </div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-otherDetailBottom', '', $member.id)}
+ <div id="glm-member-detail-links">
+ {apply_filters('glm-member-db-front-members-detail-linksTop', '', $member.id)}
+ {if $settings.detail_show_url}<a id="glm-member-detail-website-link" class="small-12" data-member-id="{$member.member_pointer}" data-member-slug="{$member.member_slug}" href="{$member.url}"{if $settings.detail_show_url_newtarget} target="_blank"{/if}>Visit Website</a>{/if}
+ {if $member.email && $settings.detail_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.detail_show_coupons && $coupons}<a href="#glm-member-detail-coupons">Coupons</a>{/if}
+ {if $member.live_cam_type.value==1 && $member.live_cam_url != "" && $settings.detail_show_live_cam}
+ <a target="_blank" href="{$member.live_cam_url}">
+ {$terms.term_webcam_cap}
+ </a>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-linksBottom', '', $member.id)}
+ </div>
+
+ <div class="glm-member-db-socials">
+ {apply_filters('glm-member-db-front-members-list-memberDetailBottom', '', $member.id)}
+ {apply_filters('glm-member-db-front-members-social-list', '', $member.id)}
+ </div>
+ </div>
+
+ {if $settings.detail_show_map}
+ <div id="glm-member-detail-map-wrapper" class="">
+ <div id="glm-locationMap-container" style="height: 140px;">
+ {if $settings.selected_map_interface == 1}
+ <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}/Leaflet.loading/src/Control.Loading.css" />
+ <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
+ <div id="LeafletMapContainer" style="height: 250px; width: 100%;">(map loads here)</div>
+ {/if}
+ {if $settings.selected_map_interface == 2}
+ <script src="//maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>
+ <script type="text/javascript">var enableDraggable = true;</script>
+ <div id="glm-locationMap" class="glm-map glmgrid-small-12 glmgrid-columns">(map loads here)</div>
+ {/if}
+ </div>
+ <div id="glm-member-detail-map-button" class="button map-button">view map</div>
+
+ <div id="member-lat" rel="{$member.lat}"></div>
+ <div id="member-lon" rel="{$member.lon}"></div>
+ <form id="MemberDrivingDirectionsForm" name="MemberDrivingDirectionsForm" method="post" action="">
+ <input type="hidden" id="MemberLocation" name="MemberLocation" value="{$member.member_name|escape}">
+ <input type="hidden" id="MemberLat" name="MemberLat" value="{$member.lat}">
+ <input type="hidden" id="MemberLon" name="MemberLon" value="{$member.lon}">
+ <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmit" name="MemberDrivingDirectionSubmit" value="Directions">
+ <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmitMobile" name="MemberDrivingDirectionSubmit" value="Driving Directions">
+ </form>
+ </div>
+ {/if}
+ </div>
+
+
+<!-- Attributes: amenitities, credit cards, etc -->
+ <div id="glm-member-detail-descr-row" class="small-12 columns">
+ {apply_filters('glm-member-db-front-members-detail-attributesTop', '', $member.id)}
+<!-- {if $featuredImage}
+ <div class="glm-member-detail-featured-image-wrapper small-12 columns">
+ <img src="{$glmPluginMediaUrl}/images/large/{$featuredImage}">
+ {if $featuredImageCaption}
+ <div class="glm-member-detail-featured-image-caption">
+ {$featuredImageCaption}
+ </div>
+ {/if}
+ </div>
+ {/if}-->
+ <div id="glm-member-detail-intro-desc">
+ {if $member.short_descr && $settings.detail_show_short_descr}{$member.short_descr|nl2br}{/if}
+ </div>
+ <div id="glm-member-detail-fullprofile-toggle">Expand All</div>
+ <div id="glm-member-detail-data-container">
+ {apply_filters('glm-member-db-front-members-detail-packages', '', $member.id)}
+ <div id="glm-member-detail-description-toggle" class="glm-member-detail-content-toggle">Description</div>
+ <div id="glm-member-detail-description-container" class="glm-member-detail-content-data">
+ <div id="glm-member-detail-description" >
+ {if $member.descr && $settings.detail_show_descr}
+ {apply_filters('glm-member-db-front-members-detail-descriptionTop', '', $member.id)}
+ {$member.descr|nl2br}
+ {apply_filters('glm-member-db-front-members-detail-descriptionBottom', '', $member.id)}
+ {/if}
+ </div>
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+
+ {apply_filters('glm-member-db-front-members-detail-events', '', $member.id)}
+
+ {apply_filters('glm-member-db-front-members-detail-couponsBefore', '', $member.id)}
+ {if $settings.detail_show_coupons && $coupons}
+ <div id="glm-member-detail-coupons-toggle" class="glm-member-detail-content-toggle">Coupons</div>
+ <div id="glm-member-detail-coupons-container" class="glm-member-detail-content-data small-12">
+ <a name="glm-member-detail-coupons"></a>
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-couponsAfter', '', $member.id)}
+
+ {apply_filters('glm-member-db-front-members-detail-amenitiesBefore', '', $member.id)}
+ {if $member.amenities && $settings.detail_show_amenities}
+ <div id="glm-member-detail-amenities-toggle" class="glm-member-detail-content-toggle">Amenities & Services</div>
+ <div id="glm-member-detail-amenities-container" class="glm-member-detail-content-data small-12">
+ <table class="glm-member-detail-table">
+ {foreach $member.amenities as $a}
+ <tr>
+ <td>
+ {$a.name}
+ </td>
+ </tr>
+ {/foreach}
+ </table>
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-amenitiesAfter', '', $member.id)}
+<!-- Not using credit cards for now
+ {apply_filters('glm-member-db-front-members-detail-creditcardsBefore', '', $member.id)}
+ {if $member.cc_type && $settings.detail_show_creditcards}
+ <div id="glm-member-detail-creditcards-toggle" class="glm-member-detail-content-toggle">Credit Cards</div>
+ <div id="glm-member-detail-creditcards-container" class="glm-member-detail-content-data small-12">
+ <table class="glm-member-detail-table">
+ <tr><th>Credit Cards Accepted:</th></tr>
+ {foreach $member.cc_type.names as $c}
+ <tr><td>{$c}</td></tr>
+ {/foreach}
+ </table>
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-creditcardsAfter', '', $member.id)}
+-->
+ {apply_filters('glm-member-db-front-members-detail-categoriesBefore', '', $member.id)}
+ {if $member.categories && $settings.detail_show_categories}
+ <div id="glm-member-detail-categories-toggle" class="glm-member-detail-content-toggle">Categories</div>
+ <div id="glm-member-detail-categories-container" class="glm-member-detail-content-data small-12">
+ <table class="glm-member-detail-table">
+<!-- <tr><th>{$terms.term_member_cap} Categories</th></tr>-->
+ {foreach $member.categories as $c}
+ <tr>
+ <td>
+ {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
+ </td>
+ </tr>
+ {/foreach}
+ </table>
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-categoriesAfter', '', $member.id)}
+ {apply_filters('glm-member-db-front-members-detail-videoBefore', '', $member.id)}
+ {if $member.video_url && $settings.detail_show_video}
+ <div id="glm-member-detail-video-toggle" class="glm-member-detail-content-toggle">Video</div>
+ <div id="glm-member-detail-video-container" class="glm-member-detail-content-data small-12">
+ <table class="glm-member-detail-table">
+ <div><h3 class="glm-member-detail-video-title">{$member.video_title}</h3></div>
+ <div class="glm-member-detail-video-embed">{$member.video_embed}</div>
+ <div class="glm-member-detail-video-descr"><p>{$member.video_descr}</p></div>
+ </table>
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+
+ {apply_filters('glm-member-db-front-members-detail-videoAfter', '', $member.id)}
+
+ {apply_filters('glm-member-db-front-members-detail-liveCamBefore', '', $member.id)}
+ {if $member.live_cam_type.value!=1 && $member.live_cam_url && $settings.detail_show_live_cam}
+ <div id="glm-member-detail-live-cam-toggle" class="glm-member-detail-content-toggle">{$terms.term_webcam_cap}</div>
+ <div id="glm-member-detail-live-cam-container" class="glm-member-detail-content-data small-12">
+ <table class="glm-member-detail-table">
+ <div><h3 class="glm-member-detail-live-cam-title">{$member.live_cam_title}</h3></div>
+ {if $member.live_cam_type.value == 2}
+ <img width="auto" max-height="315" src="{$member.live_cam_url}">
+ {/if}
+ <div class="glm-member-detail-live-cam-descr"><p>{$member.live_cam_descr}</p></div>
+ </table>
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+
+ {if $haveFiles}
+ <div id='glm-member-detail-files-toggle' class='glm-member-detail-content-toggle'>Files</div>
+ <div id='glm-member-detail-files-container' class='glm-member-detail-content-data small-12'>
+ {foreach $files as $file}
+ <a class="glm-file-detail" href="{$glmPluginMediaUrl}/files/{$file.file_name}" target="_blank">{if $file.caption}{$file.caption}{else}{$file.name}{/if}</a>
+ {/foreach}
+ <div class='glm-member-detail-sub-data-links row'>
+ <a class='glm-member-detail-content-toggle'>Collapse</a>
+ <a class='glm-member-detail-link-to-top'>Back to top</a>
+ </div>
+ </div>
+ {/if}
+
+ {apply_filters('glm-member-db-front-members-detail-liveCamAfter', '', $member.id)}
+
+ {$customFields = apply_filters('get_glm_custom_fields','glm-member-db',$member.memberInfoId)}
+ {if !empty($customFields[0].field_data)}
+ <div id="glm-member-detail-hours-toggle" class="glm-member-detail-content-toggle">Hours</div>
+ <div id="glm-member-detail-hours-container" class="glm-member-detail-content-data">
+ <div id="glm-member-detail-hours" >
+
+ {foreach $customFields as $field}
+ {if $field.field_data}
+ <div class="glm-member-detail-custom-field">
+ <div class="row">
+ <span class="glm-member-detail-custom-field-name small-12 medium-5 columns" >{$field.field_name}</span>
+ <span class="glm-member-detail-custom-field-data small-12 medium-7 columns">{$field.field_data}</span>
+ </div>
+
+ </div>
+ {/if}
+ {/foreach}
+ </div>
+
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+
+ {apply_filters('glm-member-db-front-members-detail-imageGalleryBefore', '', $member.id)}
+ {if $settings.detail_show_imagegallery && $haveImageGallery}
+ <div id="glm-member-detail-images-toggle" class="glm-member-detail-content-toggle">Photos</div>
+ <div id="glm-member-detail-images-container" class="glm-member-detail-content-data small-12">
+ {apply_filters('glm-member-db-front-members-detail-galleryTop', '', $member.id)}
+<!-- <h2>Photo Gallery</h2>-->
+
+ <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3">
+ {foreach $imageGallery as $i}
+ <li>
+ <a class="glm-member-detail-images-thumb fancybox" data-fancybox="images" rel="gallery1" href="{$glmPluginMediaUrl}/images/large/{$i.file_name}" style="background-image: url('{$glmPluginMediaUrl}/images/small/{$i.file_name}')">
+ <img class="glm-member-filler-image" src="{$assetsUrl}/filler_s.gif" alt="{$i.caption}">
+ </a>
+ </li>
+ {/foreach}
+ </ul>
+ {apply_filters('glm-member-db-front-members-detail-galleryBottom', '', $member.id)}
+ <div class="glm-member-detail-sub-data-links row">
+ <a class="glm-member-detail-content-toggle">Collapse</a>
+ <a class="glm-member-detail-link-to-top">Back to top</a>
+ </div>
+ </div>
+ {/if}
+ {apply_filters('glm-member-db-front-members-detail-imageGalleryAfter', '', $member.id)}
+
+ {apply_filters('glm-member-db-front-members-detail-dataBottom','',$member.id)}
+ </div>
+ </div>
+ {apply_filters('glm-member-db-front-members-detail-attributesBottom', '', $member.id)}
+<!-- Image Gallery -->
+
+ </div>
+ </div>
+ {apply_filters('glm-member-db-front-members-detail-pageBottom', '', $member.id)}
+
+ <div id="findingYourLocationDialog" title="Your present location">
+ <p>
+ We would like to lookup your present location so we can provide accurate directions.
+ </p><p>
+ Your browser may ask for your permission to determine your location
+ (possibly at the top of this page).
+ </p><p>
+ If you agree, we will use your current location as the starting point for
+ directions. If you don't agree, you may enter a starting location when the map is displayed.
+ </p>
+ </div>
+
+ <script type="text/javascript">
+ {apply_filters('glm-member-db-front-members-detail-jqueryScriptTop', '', $member.id)}
+
+ jQuery(document).ready(function($) {
+
+ // Dialog box to show when submitting checkout page
+ $( "#findingYourLocationDialog" ).dialog({
+ autoOpen: false,
+ width: 600
+ });
+ $( "#lookingUpYourLocationDialog" ).dialog({
+ autoOpen: false,
+ width: 600
+ });
+
+ var trackToConsole = true; // Send debug/progress messages to developers console (Firefox)
+ var trackPositionInterval = 60000; // Time interval for getting user's current geolocation - 1 Min
+ var highAccuracyPoisition = true; // Request high-accuracy user geolocation from user's device
+ var postionTimeout = 15000; // Maximum amount of time we'll wait for geolocation result - 15 Sec
+
+ // Process form for sending user to Google Maps for driving directions
+ $("#MemberDrivingDirectionsForm").submit(function(){
+
+ var stopGeolocation = false;
+ var myCurrentLocation = false;
+
+ // If we already have a location
+ if (myCurrentLocation) {
+ sendToGoogleMaps(myCurrentLocation);
+ } else {
+
+ // We don't yet have a location, so try to get it
+ if (navigator.geolocation) {
+
+ $( "#findingYourLocationDialog" ).dialog("open");
+
+ // Get the user's location
+ navigator.geolocation.getCurrentPosition(function(position) {
+
+ // Save their current location
+ myCurrentLocation = {
+ lat: position.coords.latitude,
+ lon: position.coords.longitude
+ };
+
+ $( "#findingYourLocationDialog" ).dialog("close");
+ sendToGoogleMaps(myCurrentLocation);
+
+ // If we can't get the location, then go without it
+ },
+ function(err) {
+ $( "#findingYourLocationDialog" ).dialog("close");
+ sendToGoogleMaps(false);
+ },
+ {
+ enableHighAccuracy: highAccuracyPoisition,
+ timeout: postionTimeout,
+ maximumAge: trackPositionInterval - 100 // Allows cached position resulting from other requests during interval
+ });
+
+ }
+
+ }
+
+ return false;
+
+ });
+
+ function sendToGoogleMaps(myLocation) {
+ var lat = plusifyMyValue(jQuery("#MemberLat").val());
+ var lon = plusifyMyValue(jQuery("#MemberLon").val());
+ var dest = '&destination=' + lat + '%2C+' + lon;
+
+ var origin = '';
+ if (myLocation) {
+ var myLat = plusifyMyValue(myLocation.lat);
+ var myLon = plusifyMyValue(myLocation.lon);
+ origin = '&origin=' + myLat + '%2C+' + myLon;
+ }
+
+ var url = "https://www.google.com/maps/dir/?api=1" + origin + dest;
+ window.open(url, '_blank');
+ }
+
+ function plusifyMyValue(v) {
+ if (v > 0) {
+ v = '+' + v;
+ }
+ return v;
+ }
+
+ // change the member detail photos grid structure depending
+ var images_container = $("#glm-member-detail-images-container");
+ // Check if Foundation exists first
+ if ( typeof window.Foundation != 'undefined' ) {
+ var foundation_version = window.Foundation.version;
+
+ if( foundation_version.charAt(0) === "6" ){
+ images_container.children('ul').removeClass('small-block-grid-1 medium-block-grid-2 large-block-grid-3');
+ images_container.children('ul').addClass('row small-up-1 medium-up-2 large-up-3');
+ images_container.children('ul').find('li').addClass('column');
+ }
+ }
+
+ // Replace all non-number special characters in a phone number with the designated infix
+ {if $settings.phone_infix}
+ //var processedPhone = $('.glm-member-detail-contact-phone .glm-field-value').text().trim().replace(/[^a-zA-Z0-9 ]/g, '{$settings.phone_infix}');
+ //$('.glm-member-detail-contact-phone .glm-field-value').text(processedPhone);
+ {/if}
+
+ // Check a hidden field to see if this is a page refresh (doesn't detect forced reload)
+ var isRefresh = $("#glm-member-detail-click-logged").val();
+
+ // Also check the HTML 5 performance.navigation.type value (1 = reload, 2 = via history)
+ if(window.performance && (performance.navigation.type == 1 || performance.navigation.type == 2)) {
+ isRefresh = 1;
+ }
+
+ // If this is not a refresh or reload, send AJAX action to record click.
+ if (isRefresh == 0) {
+ $.ajax({
+ url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberDetailClick&memberId={$member.member_pointer}&memberSlug={$member.member_slug}"
+ });
+ $("#glm-member-detail-click-logged").val(1);
+ }
+
+ // Processes click-through counts for website links
+ $('#glm-member-detail-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
+ });
+
+ });
+
+ // Automatically zoom and expand the relevant
+ $('html').addClass('glmassociatememberdetail glmassociatetop');
+ if ("{$expanded}" != "") {
+ var expandTarget = "glm-member-detail-{$expanded}";
+ if ($("#"+expandTarget+"-container").length) {
+ $("#"+expandTarget+"-container").show("fast", "swing", function() {});
+ $("#"+expandTarget+"-toggle").addClass("selected");
+ fullProfileCheck(expandTarget);
+ $('html, body').animate({
+ scrollTop: $("#"+expandTarget+"-toggle").offset().top-10
+ }, 500);
+ }
+ }
+
+ $("a.glm-member-detail-images-thumb").fancybox({
+
+ helpers: {
+ overlay: { locked: false },
+ title: { type: 'inside'},
+ },
+ afterLoad: function(){
+ this.title = $(this.element).find('img').attr('alt');
+ }
+ });
+
+ $("a.glm-member-detail-images-thumb").click(function(e) {
+ e.preventDefault();
+ });
+
+ $('.glm-member-detail-link-to-top').click(function () {
+ $('body,html').animate({
+ scrollTop: $("#glm-member-detail-takeback-mini").offset().top-10
+ }, 75);
+ });
+
+ // Open the appropriate section if a link is clicked
+ $('.link-open-detail-content-data').click(function(e) {
+ var target = $(this).attr("id").slice(0, -5);
+ // e.g.: #glm-member-detail-packages-link
+ $("#"+target+"-container").show("fast", "swing", function() {});
+ $("#"+target+"-toggle").addClass("selected");
+ fullProfileCheck(target);
+ $('html, body').animate({
+ scrollTop: $("#"+target+"-toggle").offset().top-{$settings.detail_top_offset_autoscroll}
+ }, 500);
+ });
+
+ // Open the following sections by default
+ if ($(window).width() >= 1024) {
+
+ if( $("#glm-member-detail-packages-container").length > 0 && $("#glm-member-detail-packages-toggle").length > 0){
+ $("#glm-member-detail-packages-container").slideToggle("fast", "swing", function() {});
+ $("#glm-member-detail-packages-toggle").toggleClass("selected");
+ }
+
+ if( $("#glm-member-detail-images-container").length > 0 && $("#glm-member-detail-description-toggle").length > 0){
+ $("#glm-member-detail-images-container").slideToggle("fast", "swing", function() {});
+ $("#glm-member-detail-images-toggle").toggleClass("selected");
+ }
+
+ }
+
+ // Open or close the appropriate section if a toggle is clicked
+ $(".glm-member-detail-content-toggle").not("#glm-member-detail-fullprofile-toggle").click(function() {
+ if($(this).parents('.glm-member-detail-sub-data-links').length) {
+ var target = $(this).parent().parent().attr("id").slice(0, -10);
+ } else {
+ var target = $(this).attr("id").slice(0, -7);
+ }
+ $("#"+target+"-container").slideToggle("fast", "swing", function() {});
+ $("#"+target+"-toggle").toggleClass("selected");
+ fullProfileCheck(target);
+ });
+
+ // Change the toggle button based on whether all the content sections are expanded
+ function fullProfileCheck(target) {
+ if ($("#glm-member-detail-data-container > .glm-member-detail-content-toggle.selected").length == $("#glm-member-detail-data-container > .glm-member-detail-content-toggle").length) {
+ $("#glm-member-detail-fullprofile-toggle").addClass("selected");
+ } else {
+ $("#glm-member-detail-fullprofile-toggle").removeClass("selected");
+ }
+ }
+
+ // Open or close every data container if the fullprofile toggle is clicked
+ $("#glm-member-detail-fullprofile-toggle").click(function() {
+ if ($(this).hasClass("selected")) {
+ $(".glm-member-detail-content-data").slideUp(175, "swing", function() {});
+ $(".glm-member-detail-content-toggle").removeClass("selected");
+ $(this).toggleClass("selected");
+ } else {
+ $(".glm-member-detail-content-data").not($(this)).slideDown(350, "swing", function() {});
+ $(".glm-member-detail-content-toggle").addClass("selected");
+ $(this).toggleClass("selected");
+ }
+ });
+
+ // Expand the takeback button on hover. Progressively add ellipses when clicked and loading
+ $("#glm-member-detail-takeback-mini").click(function() {
+ $("#glm-member-detail-takeback-mini span").html("Loading");
+ $("#glm-member-detail-takeback-mini").css('min-width','170px');
+ var count = 0;
+ setInterval(function(){
+ count++;
+ var dots = new Array(count % 5).join(' .');
+ $('#glm-member-detail-takeback-mini span').html("Loading ." + dots);
+ }, 500);
+ });
+
+
+ {if $settings.detail_show_map}
+
+ // Expand/contract map container and change the toggle button
+ $("#glm-member-detail-map-button").click(function() {
+ var mapC = "#glm-locationMap-container";
+ var map = "#glm-locationMap";
+ var mapNewH = 0;
+ var mapOverflow = 'hidden';
+ var mapBtnTxt = 'view map';
+ if ($(mapC).height() == 0) {
+ mapNewH = 140;
+ mapV = 'visible';
+ mapBtnTxt = 'hide map'
+ }
+ $(mapC).animate({
+ overflow: mapOverflow,
+ height: mapNewH
+ }, 140, "swing", function() {
+
+ });
+ $(this).html(mapBtnTxt);
+ });
+
+ {if $settings.selected_map_interface == 1}
+
+ /*
+ * Leaflet Map
+ * API reference: https://leafletjs.com/reference-1.3.2.html
+ */
+
+ // Get member location if available, otherwise use this site's default locatgion
+ var myLocation = false;
+ {if $member.lat != 0 && $member.lon != 0}
+ var memberLat = {$member.lat};
+ var memberLon = {$member.lon};
+ {else}
+ var memberLat = {$settings.maps_default_lat}};
+ var memberLon = {$settings.maps_default_lon}};
+ {/if}
+
+ function initMap() {
+
+ var leafletMap = L.map('LeafletMapContainer').setView([memberLat, memberLon], {$settings.maps_default_zoom});
+ var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
+ var leafletMinZoom = 5;
+ var leafletMaxZoom = 18;
+ var geocoder;
+
+
+ // Tile server
+ L.tileLayer(leafletTileServer, {
+ attribution: 'Map data © <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);
+
+ var loadingControl = L.Control.loading({
+ separate: true,
+ delayIndicator: 500
+ });
+ leafletMap.addControl(loadingControl);
+
+ // Marker
+ var leafletMarker = L.marker([memberLat, memberLon]).addTo(leafletMap);
+
+ }
+
+ {/if}
+
+ {if $settings.selected_map_interface == 2}
+
+ /*
+ * Google Maps
+ * API reference: https://developers.google.com/maps/documentation/javascript/reference
+ */
+
+ var myLocation = false;
+ {if $member.lat != 0 && $member.lon != 0}
+ var memberlocation = new google.maps.LatLng({$member.lat}, {$member.lon});
+ {else}
+ var memberlocation = new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon});
+ {/if}
+
+ function initMap() {
+
+ // Set default - Need to make this configurable
+ var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
+ zoom: {$settings.maps_default_zoom},
+ center: memberlocation,
+ disableDefaultUI: false,
+ mapTypeId: google.maps.MapTypeId.MAP,
+ });
+
+ // Create a marker for this member
+ {if $member.lat != 0 && $member.lon != 0}
+ var marker = new google.maps.Marker({
+ map: map,
+ position: new google.maps.LatLng({$member.lat}, {$member.lon}),
+ draggable: false,
+ animation: google.maps.Animation.DROP,
+ title: '{$member.member|escape}'
+ });
+ {/if}
+
+ }
+
+ // Load map
+ google.maps.event.addDomListener(window, 'load', initMap);
+
+ {/if}
+
+ {/if} {*detail_show_map*}
+
+ $(window).load(function(){
+ initMap();
+ });
+
+ }); // jquery
+
+ {apply_filters('glm-member-db-front-members-detail-jqueryScriptBottom', '', $member.id)}
+
+
+
+ </script>
+
+{else}
+ <p>For some reason the specified {$terms.term_member} was not found. Please try again.</p>
+{/if}
+
+
+{include file='front/footer.html'}
+++ /dev/null
-{if $haveMessages}
-
- <div style="color: red !important;">
- <h2>WARNING:</h2>
- <ul>
- {foreach $messages as $m}
- <li>{$m}</li>
- {/foreach}
- </ul>
- </div>
-
-{else}
-
-
- {if $showSettings.list_show_outer_container}
-
- {include file='front/members/header.html'}
-
-
- <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 $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} {/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}
-
- <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-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: 100%; 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', '')}
-
- {* Member information displayed in 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 && $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 $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}
- {/if}
- </div>
- {if $showSettings.list_map_show_address}
- <p class="glm-map-member-address">
- {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 && $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 && $showSettings.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 && $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>
- {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 isset($m.categories) && $showSettings.list_map_show_categories}
- <div class="glm-member-list-items">
- <b>{$terms.term_member_cap} Categories</b>
- <ul>
- {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} {* 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} {* mapItems *}
-
- {/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>
- {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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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}®ionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
- {/foreach}
- </div>
- {/if}
-
- {* 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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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}
- <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}
-
- {* 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 $view == grid}
- {include file='front/members/listTypeGrid.html'}
- {/if}
- {if $view == uptravel}
- {include file='front/members/listTypeUptravel.html'}
- {/if}
- {/if}
-
- {* 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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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 $nextStart && $settings.list_ajax_pagination}
- <a href="#" class="glm-show-more test" data-next="{$nextStart}">[ Load More ]</a>
- {/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}
- </div>
- {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
-
- {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>
- </div>
- {/if}
-
- {/if} {* list_show_list *}
-
- {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}
-
- <script>
-
- 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 $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%)'
- });
- }
-
- });
- $(".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 $showSettings.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', {
- 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 © <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} {* mapItems *}
-
- // 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
- *}
-
- 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 $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);
- }
-
- 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}
-
- {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);
- });
-
- {/if} {* mapItems *}
-
- } {* initMap *}
-
- {/if} {* Map interface 2 *}
-
- // 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}
-
- // 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
- });
-
- });
-
- {/if} // settings.list_show_map
-
- });
- </script>
-
- {if $showSettings.list_show_outer_container}
- {include file='front/footer.html'}
- {/if}
-
-{/if} {* have messages *}
--- /dev/null
+{if $haveMessages}
+
+ <div style="color: red !important;">
+ <h2>WARNING:</h2>
+ <ul>
+ {foreach $messages as $m}
+ <li>{$m}</li>
+ {/foreach}
+ </ul>
+ </div>
+
+{else}
+
+
+ {if $showSettings.list_show_outer_container}
+
+ {include file='front/members/header.html'}
+
+
+ <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 $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} {/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}
+
+ <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-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: 100%; 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', '')}
+
+ {* Member information displayed in 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 && $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 $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}
+ {/if}
+ </div>
+ {if $showSettings.list_map_show_address}
+ <p class="glm-map-member-address">
+ {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 && $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 && $showSettings.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 && $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>
+ {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 isset($m.categories) && $showSettings.list_map_show_categories}
+ <div class="glm-member-list-items">
+ <b>{$terms.term_member_cap} Categories</b>
+ <ul>
+ {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} {* 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} {* mapItems *}
+
+ {/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>
+ {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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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}®ionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
+ {/foreach}
+ </div>
+ {/if}
+
+ {* 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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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}
+ <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}
+
+ {* 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 $view == grid}
+ {include file='front/members/listTypeGrid.html'}
+ {/if}
+ {if $view == uptravel}
+ {include file='front/members/listTypeUptravel.html'}
+ {/if}
+ {/if}
+
+ {* 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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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 $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}®ionSearch={$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 $nextStart && $settings.list_ajax_pagination}
+ <a href="#" class="glm-show-more test" data-next="{$nextStart}">[ Load More ]</a>
+ {/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}
+ </div>
+ {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
+
+ {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>
+ </div>
+ {/if}
+
+ {/if} {* list_show_list *}
+
+ {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}
+
+ <script>
+
+ 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 $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%)'
+ });
+ }
+
+ });
+ $(".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 $showSettings.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', {
+ 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 © <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} {* mapItems *}
+
+ // 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
+ *}
+
+ 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 $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);
+ }
+
+ 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}
+
+ {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);
+ });
+
+ {/if} {* mapItems *}
+
+ } {* initMap *}
+
+ {/if} {* Map interface 2 *}
+
+ // 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}
+
+ // 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
+ });
+
+ });
+
+ {/if} // settings.list_show_map
+
+ });
+ </script>
+
+ {if $showSettings.list_show_outer_container}
+ {include file='front/footer.html'}
+ {/if}
+
+{/if} {* have messages *}
+++ /dev/null
-{* 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>
--- /dev/null
+{* 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 $settings.memb_info_location && $member.region && $showSettings.list_show_region}
+ <div class="glm-member-list-region-container">
+ Region: {$member.region}
+ </div>
+ {/if}
+ {if ($settings.memb_info_contact && $member.phone && $showSettings.list_show_phone) || ($settings.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>