Reworked front-end member listing to be Foundation aware.
authorChuck Scott <cscott@gaslightmedia.com>
Fri, 22 May 2015 16:20:10 +0000 (12:20 -0400)
committerChuck Scott <cscott@gaslightmedia.com>
Fri, 22 May 2015 16:20:10 +0000 (12:20 -0400)
css/front.css
lib/GlmDataAbstract/DataAbstract.php
views/front/members/list.html

index d03e0da..bf1f942 100644 (file)
@@ -39,7 +39,7 @@
 /* Member List */
 .glm-member-list-container {
     border: 1px #ccc solid;
-    padding: .4em;
+    padding: .4em 0px 0px 0px;
     background: #f8f8f8;
     margin: .4em 0px .4em 0px;
 }
     padding: .4em;
     margin: 1em 0px 1em 0px;
 }
-.glm-member-list-image {
+.glm-member-list-image-right {
     float: right;
 }
-.glm-member-list-nameAddress {
+.glm-member-list-image-left {
     float: left;
 }
+.glm-member-list-nameAddress {
+}
 .glm-member-list-info {
     clear: both;
 }
index a62b83e..07955ed 100755 (executable)
@@ -2289,8 +2289,11 @@ abstract class GlmDataAbstract
 
             // Scan all the image size directories and remove this image
             while (list($k, $v) = each($this->config['imageSizes'])) {
-                unlink(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$k.'/'.$current_img);
+                if (is_file(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$k.'/'.$current_img)) {
+                    unlink(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$k.'/'.$current_img);
+                }
             }
+            if (is_file(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$current_img))
             unlink(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$current_img);
 
             $current_img = '';
@@ -2338,7 +2341,9 @@ abstract class GlmDataAbstract
 
                         // Move resized file to desired direectory
                         rename(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$sizes[$k]['file'], GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$k.'/'.$newFilename);
-                        unlink(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$sizes[$k]['file']);
+                        if (is_file(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$sizes[$k]['file'])) {
+                            unlink(GLM_MEMBERS_PLUGIN_IMAGES_PATH.'/'.$sizes[$k]['file']);
+                        }
 
                     } else {
 
index 155fe4c..68552bc 100644 (file)
         <script src="http://maps.googleapis.com/maps/api/js?sensor=true&key={$googleMapsBrowserApiKey}"></script>
 
 {if $list_show_map}
-        <div id="locationMap" class="glm-map">(map loads here)</div>     
+        <div id="locationMap" class="glm-map">(map loads here)</div>
 {/if}
 
 {if $list_show_search}
         <form action="{$thisURL}?glm_action=list" method="post" enctype="multipart/form-data">
-            <div class="glm-member-entry-container ">
-                <h3><br>Search for a {$term_member_cap}</h3>
-        {if $list_search_text}
-                <div>
-                    Text Search: <input type="text" name="textSearch" value="{$textSearch}" class="glm-form-text-input">
-                </div>
-        {/if}
-        {if $list_search_category}
-                <div>
-                    {$term_member_cap} Category: 
-                    <select name="categorySearch" id="categorySelect">
-                        <option value=""></option>
-            {foreach from=$categories item=v}
-                        <option value="{$v.id}" data-parent="{$v.parent.name}"{if $v.default} selected="selected"{/if}>
-                            {if $v.parent.value}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
-                        </option>
-            {/foreach}
-                    </select>
+            <div class="row">           
+                <div class="small-12 columns glm-member-entry-container">
+                    <div class="row"><div class="small-12 columns"><h3><br>Search for a {$term_member_cap}</h3></div></div>
+                    <div class="row">
+            {if $list_search_text}
+                        <div class="small-12 medium-7 columns">Text Search: <input type="text" name="textSearch" value="{$textSearch}" class="glm-form-text-input"></div>
+            {/if}
+            {if $list_search_category}
+                        <div class="small-12 medium-5 columns">
+                            {$term_member_cap} Category: 
+                            <select name="categorySearch" id="categorySelect">
+                                <option value=""></option>
+                    {foreach from=$categories item=v}
+                                <option value="{$v.id}" data-parent="{$v.parent.name}"{if $v.default} selected="selected"{/if}>
+                                    {if $v.parent.value}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
+                                </option>
+                    {/foreach}
+                            </select>
+                        </div>
+                    </div>
+            {/if}
+            {if $list_search_amenities}
+                    <div class="row"><div class="small-12 columns">Amenity search goes here</div></div>
+            {/if}    
+                    <div class="row"><div class="small-12 columns"><input type="submit" value="Search"></div></div>
                 </div>
-        {/if}
-        {if $list_search_amenities}
-                <div>Amenity search goes here</div>
-        {/if}    
-                <input type="submit" value="Search">        
             </div>
         </form>
 {/if} {*list_show_search*}
 
 {if $list_show_list}    
-    <h3>List of {$term_member_plur_cap}</h3>
+        <h3>List of {$term_member_plur_cap}</h3>
   {if $haveMembers}
-
+            
     {if $list_search_alpha}
         <div class="glm-alpha-links">
             <a href="{$thisURL}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSelected}" class="glm-alpha-link{if !$alphaSelected} glm-alpha-link-selected{/if}">All</a>
-        {foreach $alphaList as $a}
+      {foreach $alphaList as $a}
             <a href="{$thisURL}?glm_action=list&alpha={$a.alpha}&textSearch={$textSearch}&categorySearch={$catSelected}" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
-        {/foreach}
+      {/foreach}
         </div>
     {/if}
-    
+             
     <!-- Member information displayed in list -->
+    
     {foreach $members as $m}
-        <div class="glm-member-list-container">
-            {if $m.logo && $list_show_logo}<div class="glm-member-list-image"><img src="{$glmPluginMediaURL}/images/{$list_logo_size}/{$m.logo}"></div>{/if}
-            <div class="glm-member-list-nameAddress">
-                <h2>
-                  {if $list_show_detaillink}
-                    <a href="{$thisURL}?glm_action=detail&id={$m.member_pointer}">{$m.member}</a>
-                  {else}
-                    {$m.member}
-                  {/if}
-                </h2>
+        
+        <div class="row">
+            <div class="small-12 columns glm-member-list-container">
+                <div class="row">
+<!-- Member Logo - Small -->                    
+                {if $m.logo && $list_show_logo}
+                    <div class="small-12 show-for-small-only columns"><img class="glm-member-list-image-left" src="{$glmPluginMediaURL}/images/{$list_logo_size}/{$m.logo}"></div>
+                {/if}
+                    <div class="small-12 medium-8 columns">
+<!-- Member name, address, and basic information -->                    
+                        <h2>
+              {if $list_show_detaillink}
+                            <a href="{$thisURL}?glm_action=detail&id={$m.member_pointer}">{$m.member}</a>
+              {else}
+                            {$m.member}
+              {/if}
+                        </h2>
               {if $list_show_address}
-                <p>
                   {if $list_show_street}
-                    {if $m.addr1}{$m.addr1}<br>{/if}
-                    {if $m.addr2}{$m.addr2}<br>{/if}
+                        {if $m.addr1}{$m.addr1}<br>{/if}
+                        {if $m.addr2}{$m.addr2}<br>{/if}
                   {/if}
                   {if $list_show_citystatezip}
-                    {if $m.city.name}{$m.city.name}{if $m.state.name}, {/if}{/if}{if $m.state.name}{$m.state.name}{/if}{if $m.zip} {$m.zip}{/if}
+                        {if $m.city.name}{$m.city.name}{if $m.state.name}, {/if}{/if}{if $m.state.name}{$m.state.name}{/if}{if $m.zip} {$m.zip}{/if}
                   {/if} 
-                    {if $m.country.name && $list_show_country}<br>{$m.country.name}{/if}
-                </p>        
+                        {if $m.country.name && $list_show_country}<br>{$m.country.name}{/if}
               {/if} {*list_show_address*}        
-            </div>
-            <div class="glm-member-list-info">
-                <p>
-                    {if $m.phone && $list_show_phone}<b>Phone:</b> {$m.phone}<br>{/if}
-                    {if $m.toll_free && $list_show_tollfree}<b>Toll Free:</b> {$m.toll_free}<br>{/if}
-                    {if $m.url && $list_show_url}<b>Web site:</b> <a href="{$m.url}">{$m.url}</a><br>{/if}
-                    {if $m.region.value && $list_show_region}<p><b>Region:</b> {$m.region.name}</p>{/if}
-                </p>
-                {if $m.descr && $list_show_description}<p>{$m.descr}</p>{/if}
-                {if $m.short_descr && $list_show_short_descr}<p>{$m.short_descr}</p>{/if}
-        {if $m.categories && $list_show_categories}
-                <div class="glm-member-list-items">           
-                    <b>{$term_member_cap} Categories</b>
-                    <ul>
-            {foreach $m.categories as $c}
-                        <li>
-                            {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
-                        </li>
-            {/foreach}
-                    </ul>
-                </div>
-        {/if}
-        {if $m.cc_type && $list_show_creditcards}
-                <div class="glm-member-list-items">           
-                    <b>Credit Cards Accepted:</b>
-                    <ul>
-            {foreach $m.cc_type.names as $c}
-                        <li>{$c}</li>
-            {/foreach}
-                    </ul>        
+                        {if $m.phone && $list_show_phone}<br><b>Phone:</b> {$m.phone}{/if}
+                        {if $m.toll_free && $list_show_tollfree}<br><b>Toll Free:</b> {$m.toll_free}{/if}
+                        {if $m.url && $list_show_url}<br><b>Web site:</b> <a href="{$m.url}">{$m.url}</a>{/if}
+                        {if $m.region.value && $list_show_region}<br><p><b>Region:</b> {$m.region.name}{/if}
+                    </div>
+<!-- Member Logo - Medium and up-->                    
+                {if $m.logo && $list_show_logo}
+                    <div class="medium-4 show-for-medium-up columns"><img class="glm-member-list-image-right" src="{$glmPluginMediaURL}/images/{$list_logo_size}/{$m.logo}"></div>
+                {/if}
                 </div>
-        {/if}
-        {if $list_show_amenities}
-                <div>
-                    <p>Amenities go here</p>
+                
+<!-- Member Description -->                
+                <div class="row">
+                    <div class="small-12 columns">
+               
+                        {if $m.descr && $list_show_description}<p>{$m.descr}</p>{/if}
+                        {if $m.short_descr && $list_show_short_descr}<p>{$m.short_descr}</p>{/if}
+                {if $m.categories && $list_show_categories}
+                        <p>
+                            <b>{$term_member_cap} Categories</b>
+                            <ul>
+                    {foreach $m.categories as $c}
+                                <li>
+                                    {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
+                                </li>
+                    {/foreach}
+                            </ul>
+                        </p>
+                {/if}
+                {if $m.cc_type && $list_show_creditcards}
+                        <p>           
+                            <b>Credit Cards Accepted:</b>
+                            <ul>
+                    {foreach $m.cc_type.names as $c}
+                                <li>{$c}</li>
+                    {/foreach}
+                            </ul>        
+                        </p>
+                {/if}
+                {if $list_show_amenities}
+                        <p>
+                            <p>Amenities go here</p>
+                        </p>
+                {/if}
+                    </div>
                 </div>
-        {/if}
+                
             </div>
         </div>
-            
+        
+        
         <!-- Member information displayed in map bubbles -->
         <div id="map_info_{$m.id}" class="glm-hidden">
             {if $m.logo && $list_map_show_logo}<div class="glm-member-list-image"><img src="{$glmPluginMediaURL}/images/{$list_map_logo_size}/{$m.logo}"></div>{/if}
             {/foreach}
                     </ul>
                 </div>
-        {/if}1
+        {/if}
         {if $m.cc_type && $list_map_show_creditcards}
                 <div class="glm-member-list-items">           
                     <b>Credit Cards Accepted:</b>
         {/if}
             </div>
         </div> <!-- End of information displayed in map bubbles -->
-        
+                
     {/foreach} {*$members*}
-  {else}
-        <div>(no {$term_member_plur} listed)</div>
-  {/if}
-{/if} {*list_show_list*}
-    <script type="text/javascript">
-        jQuery(document).ready(function($) {
-            
-{if $list_show_map}                            
-            /*
-             * Google Maps
-             *  API reference: https://developers.google.com/maps/documentation/javascript/reference
-             */
-            
-            // Create a Google Map object
-            var map = new google.maps.Map(document.getElementById('locationMap'), {
-               center: new google.maps.LatLng({$mapDefaultLat}, {$mapDefaultLon}),
-               zoom: {$mapDefaultZoom},
-                disableDefaultUI: false,   
-                mapTypeId: google.maps.MapTypeId.MAP,  
-            });  
 
-            var geocoder = new google.maps.Geocoder();
-            var bounds = new google.maps.LatLngBounds();
-            var infowindow = new google.maps.InfoWindow();            
+{else}
+        <div>(no {$term_member_plur} listed)</div>
+{/if}
 
-            // Try HTML5 to get user geolocation
-            if(navigator.geolocation) {
-                navigator.geolocation.getCurrentPosition(function(position) {
-                    var myLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
-                    var pinIcon = new google.maps.MarkerImage(
-                       'https://maps.google.com/mapfiles/kml/shapes/man.png',
-                        null, /* size is determined at runtime */
-                        null, /* origin is 0,0 */
-                        null, /* anchor is bottom center of the scaled image */
-                        new google.maps.Size(30, 30)
-                    );
-                    var myMarker = new google.maps.Marker({  
-                        map: map,  
-                        position: myLocation,
-                        draggable: false,
-                        animation: google.maps.Animation.DROP,  
-                        title: 'My Location',
-                        icon: pinIcon,
-                        zIndex: 100
+{/if} {*list_show_list*}
+        <script type="text/javascript">
+            jQuery(document).ready(function($) {
+                
+    {if $list_show_map}                        
+                /*
+                 * Google Maps
+                 *  API reference: https://developers.google.com/maps/documentation/javascript/reference
+                 */
+                
+                // Create a Google Map object
+                var map = new google.maps.Map(document.getElementById('locationMap'), {
+                       center: new google.maps.LatLng({$mapDefaultLat}, {$mapDefaultLon}),
+                       zoom: {$mapDefaultZoom},
+                    disableDefaultUI: false,   
+                    mapTypeId: google.maps.MapTypeId.MAP,  
+                });  
+    
+                var geocoder = new google.maps.Geocoder();
+                var bounds = new google.maps.LatLngBounds();
+                var infowindow = new google.maps.InfoWindow();            
+    
+                // Try HTML5 to get user geolocation
+                if(navigator.geolocation) {
+                    navigator.geolocation.getCurrentPosition(function(position) {
+                        var myLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
+                        var pinIcon = new google.maps.MarkerImage(
+                               'https://maps.google.com/mapfiles/kml/shapes/man.png',
+                            null, /* size is determined at runtime */
+                            null, /* origin is 0,0 */
+                            null, /* anchor is bottom center of the scaled image */
+                            new google.maps.Size(30, 30)
+                        );
+                        var myMarker = new google.maps.Marker({  
+                            map: map,  
+                            position: myLocation,
+                            draggable: false,
+                            animation: google.maps.Animation.DROP,  
+                            title: 'My Location',
+                            icon: pinIcon,
+                            zIndex: 100
+                        });
                     });
-                });
-            }
-            
-    {if $haveMembers}
-        {foreach $members as $m}
-
-            // 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|escape}',
-                descr: $('#map_info_' + {$m.id}).html(),
-                memberID: {$m.id}
-            });
-
-            // Add a click listener for this marker
-            marker.addListener('click', function() {
-               infowindow.setOptions({
-                       content: this.descr
-               });
-                infowindow.open(map,this);
-            });
-            
-            // Extend the map bounds to include this marker
-            bounds.extend(marker.position);
-            
-        {/foreach}
-
-            // 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 $haveMembers}
+            {foreach $members as $m}
+    
+                // 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|escape}',
+                    descr: $('#map_info_' + {$m.id}).html(),
+                    memberID: {$m.id}
+                });
+    
+                // Add a click listener for this marker
+                marker.addListener('click', function() {
+                       infowindow.setOptions({
+                               content: this.descr
+                       });
+                    infowindow.open(map,this);
+                });
+                
+                // Extend the map bounds to include this marker
+                bounds.extend(marker.position);
+                
+            {/foreach}
+    
+                // 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);
+                });
+             
+        {else}
+                
+                
+        {/if}
+    
+                
+    {/if}            
             });
-         
-    {else}
-            
-            
-    {/if}
-
-            
-{/if}            
-        });
-    </script>
+        </script>
   
-
-
 {include file='front/footer.html'}