Added featured for list, fixed memOnly function
authorLaury GvR <laury@gaslightmedia.com>
Thu, 12 Jan 2017 21:09:55 +0000 (16:09 -0500)
committerLaury GvR <laury@gaslightmedia.com>
Thu, 12 Jan 2017 21:09:55 +0000 (16:09 -0500)
Members only function had to check for $post existence before using
it. Added 'featured' tag to list view, not just grid view, of
member listing. Added list_show_detail_link check for the 'More'
button which was likewise missing in list over grid.

lib/GlmDataAbstract/DataAbstract.php
setup/frontHooks.php
views/front/error/badAction.html
views/front/members/list.html

index 224fc77..67a0487 100755 (executable)
  * @release  SVN: $Id: dataMembers.php,v 1.0 2011/01/25 19:31:47 cscott Exp $
  */
 
-/**\r
- * DataAbstract\r
- *\r
- * Database Abstract for data storage, retrieval, input, and output\r
- *\r
- * @category  glmWordPressPlugin\r
- * @package   glmMembersDatabase\r
- * @author    Chuck Scott <cscott@gaslightmedia.com>\r
- * @copyright 2013 Gaslight Media\r
- * @license   Gaslight Media\r
- * @release   Release: (0.1)\r
- * @link      <>\r
+/**
+ * DataAbstract
+ *
+ * Database Abstract for data storage, retrieval, input, and output
+ *
+ * @category  glmWordPressPlugin
+ * @package   glmMembersDatabase
+ * @author    Chuck Scott <cscott@gaslightmedia.com>
+ * @copyright 2013 Gaslight Media
+ * @license   Gaslight Media
+ * @release   Release: (0.1)
+ * @link      <>
  */
-\r
+
 abstract class GlmDataAbstract
 {
 
@@ -110,11 +110,11 @@ abstract class GlmDataAbstract
      * @access public
      */
     public $inputFieldStatus = false;
-    /**\r
-     * Processing Options\r
-     *\r
-     * @access public\r
-     */\r
+    /**
+     * Processing Options
+     *
+     * @access public
+     */
     public $optionIncludeSelectListData = false;
     /**
      * Delete Restrictions - Not fully sorted out yet
@@ -657,11 +657,11 @@ abstract class GlmDataAbstract
                     $blankText = $f['p_blank_text'];
                 }
                 if (isset($f['p_blank']) && $f['p_blank']) {
-                    $pick_list[0] = array(\r
-                        'value'   => '',\r
-                        'name'    => $blankText,\r
-                        'default' => (!$p_value)\r
-                    );\r
+                    $pick_list[0] = array(
+                        'value'   => '',
+                        'name'    => $blankText,
+                        'default' => (!$p_value)
+                    );
                 }
 
                 if (count($p_list) > 0) {
@@ -850,11 +850,11 @@ abstract class GlmDataAbstract
 
         } else {
 
-               // Only worry about no options if the field is required.\r
-               if (isset($f['required']) && $f['required']) {\r
-                       // There were no results from the\r
-                       $this->inputFieldStatus = false;\r
-                       $this->inputErrorReason = 'No options were available for this pick list.';\r
+               // Only worry about no options if the field is required.
+               if (isset($f['required']) && $f['required']) {
+                       // There were no results from the
+                       $this->inputFieldStatus = false;
+                       $this->inputErrorReason = 'No options were available for this pick list.';
                }
         }
 
@@ -1081,21 +1081,21 @@ abstract class GlmDataAbstract
         return $r;
     }
 
-    /*\r
-     * Bitmap List Field Processing\r
-    */\r
-    private function bitmapField($f)\r
-    {\r
-       return 'T.'.$f['field'];\r
-    }\r
-    private function bitmapOptions($f)\r
-    {\r
-       return false;\r
-    }\r
-    private function bitmapOutput($f, $d)\r
-    {\r
-       // Check for a bitmap data\r
-       if (!isset($f['bitmap']) || !is_array($f['bitmap'])) {\r
+    /*
+     * Bitmap List Field Processing
+    */
+    private function bitmapField($f)
+    {
+       return 'T.'.$f['field'];
+    }
+    private function bitmapOptions($f)
+    {
+       return false;
+    }
+    private function bitmapOutput($f, $d)
+    {
+       // Check for a bitmap data
+       if (!isset($f['bitmap']) || !is_array($f['bitmap'])) {
             if (GLM_MEMBERS_PLUGIN_ADMIN_DEBUG) {
                 glmMembersAdmin::addNotice(
                     "Field '".$f['name']."' is type bitmap but does not have supplied 'bitmap' data.",
@@ -1104,40 +1104,40 @@ abstract class GlmDataAbstract
                 );
             }
             return false;
-       }\r
-\r
-       // Build bitmap array\r
+       }
+
+       // Build bitmap array
        $bitmap = array();
-       $bitmapNames = array();\r
+       $bitmapNames = array();
        while (list($k, $v) = each($f['bitmap'])) {
 
-               $bitmap[$k] = array(\r
-                               'name'    => $v,\r
+               $bitmap[$k] = array(
+                               'name'    => $v,
                                'nameEsc' => addslashes($v),
-                       'value'   => $k,\r
-                               'default' => false\r
-               );\r
+                       'value'   => $k,
+                               'default' => false
+               );
 
                // Check if this option has been selected
-               $powVal = pow(2, $k);\r
+               $powVal = pow(2, $k);
                if (($powVal & $d) > 0) {
                        $bitmap[$k]['default'] = true;
                        $bitmapNames[$k] = $v;
                }
 
-       }\r
-\r
-       $r = array(\r
-                       'bitmap' => $bitmap,\r
-                       'value'  => $d,\r
-                       'names'   => $bitmapNames\r
-       );\r
-\r
-       return $r;\r
-\r
-    }\r
-    private function bitmapInput($as, $f, $id, $idField, $op)\r
-    {\r
+       }
+
+       $r = array(
+                       'bitmap' => $bitmap,
+                       'value'  => $d,
+                       'names'   => $bitmapNames
+       );
+
+       return $r;
+
+    }
+    private function bitmapInput($as, $f, $id, $idField, $op)
+    {
 
                // Check for a bitmap data
        if (!isset($f['bitmap']) || !is_array($f['bitmap'])) {
@@ -1164,51 +1164,51 @@ abstract class GlmDataAbstract
                                }
                        }
        }
-\r
-       // Build bitmap array\r
+
+       // Build bitmap array
        $bitmap = array();
-       $bitmapNames = array();\r
-       while (list($k, $v) = each($f['bitmap'])) {\r
-               $bitmap[$k] = array(\r
-                               'name'    => $v,\r
+       $bitmapNames = array();
+       while (list($k, $v) = each($f['bitmap'])) {
+               $bitmap[$k] = array(
+                               'name'    => $v,
                                'nameEsc' => addslashes($v),
-                               'value'   => $k,\r
-                               'default' => false\r
-               );\r
-
-               // Check if this option has been selected\r
-               $powVal = pow(2, $k);\r
-               if (($powVal & $in) > 0) {\r
-                       $bitmap[$k]['default'] = true;\r
-                       $bitmapNames[] = $v;\r
-               }\r
-       }\r
-\r
-       $r = array(\r
-                       'bitmap' => $bitmap,\r
-                       'value'  => $in,\r
-                       'names'  => $bitmapNames\r
-       );\r
-\r
-       return $r;\r
-    }\r
-    private function bitmapStore($in, $f)\r
-    {\r
-       $keytype = 'text';\r
-\r
-       if (isset($f['list_keytype']) && $f['list_keytype'] == 'int') {\r
-               $keytype = 'int';\r
-       }\r
-\r
-       if ($keytype == 'text') {\r
-               $r = "'".addslashes($in['value'])."'";\r
-       } else {\r
-               $v = ($in['value'] - 0);\r
-               $r = $v;\r
-       }\r
-\r
-       return $r;\r
-    }\r
+                               'value'   => $k,
+                               'default' => false
+               );
+
+               // Check if this option has been selected
+               $powVal = pow(2, $k);
+               if (($powVal & $in) > 0) {
+                       $bitmap[$k]['default'] = true;
+                       $bitmapNames[] = $v;
+               }
+       }
+
+       $r = array(
+                       'bitmap' => $bitmap,
+                       'value'  => $in,
+                       'names'  => $bitmapNames
+       );
+
+       return $r;
+    }
+    private function bitmapStore($in, $f)
+    {
+       $keytype = 'text';
+
+       if (isset($f['list_keytype']) && $f['list_keytype'] == 'int') {
+               $keytype = 'int';
+       }
+
+       if ($keytype == 'text') {
+               $r = "'".addslashes($in['value'])."'";
+       } else {
+               $v = ($in['value'] - 0);
+               $r = $v;
+       }
+
+       return $r;
+    }
 
     /*
      * Text Field Processing
@@ -1336,62 +1336,62 @@ abstract class GlmDataAbstract
         return $r;
     }
 
-    /*\r
-     * Password Field Processing\r
-    */\r
-    private function passwordField($f)\r
-    {\r
-       return 'T.'.$f['field'];\r
-    }\r
-    private function passwordOptions($f)\r
-    {\r
-       return false;\r
-    }\r
-    private function passwordOutput($f, $d)\r
+    /*
+     * Password Field Processing
+    */
+    private function passwordField($f)
+    {
+       return 'T.'.$f['field'];
+    }
+    private function passwordOptions($f)
+    {
+       return false;
+    }
+    private function passwordOutput($f, $d)
+    {
+       // No output for a password field
+       return '';
+    }
+    private function passwordInput($as, $f, $id, $idField, $op)
     {
-       // No output for a password field\r
-       return '';\r
-    }\r
-    private function passwordInput($as, $f, $id, $idField, $op)\r
-    {\r
-       // If this is setup for a new entry, then just return default value\r
-       if ($op == 'n') {\r
-               return '';\r
-       }\r
-\r
-       $this->inputFieldStatus = true;\r
-\r
-       // No options for input filters or options\r
-       $filter = FILTER_SANITIZE_STRING;\r
-       $filter_options = FILTER_FLAG_NO_ENCODE_QUOTES;\r
-\r
-       $in = filter_input(INPUT_POST, $as, $filter, $filter_options);\r
-       if (isset($f['required']) && $f['required'] && trim($in) == '') {\r
-               $this->inputFieldStatus = false;\r
-               $this->inputErrorReason = 'Required input not provided.';\r
-               return $in;\r
-       }\r
-\r
-       // Check for required field\r
-       if (isset($f['required']) && $f['required'] && trim($in) == '') {\r
-               $this->inputFieldStatus = false;\r
-               $this->inputErrorReason = 'Required input not provided.';\r
-               return $in;\r
-       }\r
-\r
+       // If this is setup for a new entry, then just return default value
+       if ($op == 'n') {
+               return '';
+       }
+
+       $this->inputFieldStatus = true;
+
+       // No options for input filters or options
+       $filter = FILTER_SANITIZE_STRING;
+       $filter_options = FILTER_FLAG_NO_ENCODE_QUOTES;
+
+       $in = filter_input(INPUT_POST, $as, $filter, $filter_options);
+       if (isset($f['required']) && $f['required'] && trim($in) == '') {
+               $this->inputFieldStatus = false;
+               $this->inputErrorReason = 'Required input not provided.';
+               return $in;
+       }
+
+       // Check for required field
+       if (isset($f['required']) && $f['required'] && trim($in) == '') {
+               $this->inputFieldStatus = false;
+               $this->inputErrorReason = 'Required input not provided.';
+               return $in;
+       }
+
        // Check min/max length
-       if (isset($f['minLength'])) {\r
-               if (trim($in) != '' && $f['minLength'] && strlen($in) < $f['minLength']) {\r
-                       $this->inputFieldStatus = false;\r
-                       $this->inputErrorReason = 'Input is shorter than minimum length of '.$f['minLength'].' characters.';\r
-                       return $in;\r
+       if (isset($f['minLength'])) {
+               if (trim($in) != '' && $f['minLength'] && strlen($in) < $f['minLength']) {
+                       $this->inputFieldStatus = false;
+                       $this->inputErrorReason = 'Input is shorter than minimum length of '.$f['minLength'].' characters.';
+                       return $in;
                }
        }
-       if (isset($f['maxLength'])) {\r
-               if (trim($in) != '' && $f['maxLength'] && strlen($in) > $f['maxLength']) {\r
-                       $this->inputFieldStatus = false;\r
-                       $this->inputErrorReason = 'Input provided is '.strlen($in).' characters. The maximum length is '.$f['maxLength'].' characters.';\r
-                       return $in;\r
+       if (isset($f['maxLength'])) {
+               if (trim($in) != '' && $f['maxLength'] && strlen($in) > $f['maxLength']) {
+                       $this->inputFieldStatus = false;
+                       $this->inputErrorReason = 'Input provided is '.strlen($in).' characters. The maximum length is '.$f['maxLength'].' characters.';
+                       return $in;
                }
        }
 
@@ -1402,45 +1402,45 @@ abstract class GlmDataAbstract
                $sep = '';
                switch ($f['pw_type']) {
                        case 'strong':
-                               if (!preg_match("/[0-9]+/", $in)) {\r
+                               if (!preg_match("/[0-9]+/", $in)) {
                                        $pwReason .= "Password must include at least one number!";
                                        $typeOK = false;
-                                       $sep = "<br>";\r
-                               }\r
-                               if (!preg_match("/[a-zA-Z]+/", $in)) {\r
-                                       $pwReason .= $sep."Password must include at least one letter!";\r
+                                       $sep = "<br>";
+                               }
+                               if (!preg_match("/[a-zA-Z]+/", $in)) {
+                                       $pwReason .= $sep."Password must include at least one letter!";
                                        $typeOK = false;
                                        $sep = "<br>";
-                               }\r
-                               if (!preg_match("/[\#\.\-\_\,\$\%\&\!]+/", $in)) {\r
-                                       $pwReason .= $sep."Password must include at least one of these characters!<br>&nbsp;&nbsp;&nbsp;# . - _ , $ % & !";\r
+                               }
+                               if (!preg_match("/[\#\.\-\_\,\$\%\&\!]+/", $in)) {
+                                       $pwReason .= $sep."Password must include at least one of these characters!<br>&nbsp;&nbsp;&nbsp;# . - _ , $ % & !";
                                        $typeOK = false;
-                               }\r
+                               }
                                break;
                        default:
                                break;
                }
 
                if (!$typeOK) {
-                       $this->inputFieldStatus = false;\r
-                       $this->inputErrorReason = $pwReason;\r
-                       return $in;\r
+                       $this->inputFieldStatus = false;
+                       $this->inputErrorReason = $pwReason;
+                       return $in;
                }
-       }\r
-\r
+       }
+
                // Don't try to crypt a blank password
                $c = '';
                if ($in != '') {
                $c = crypt($in);
                }
-\r
-       return $c;\r
-    }\r
-    private function passwordStore($in, $f)\r
-    {\r
-       $r = "'".addslashes($in)."'";\r
-       return $r;\r
-    }\r
+
+       return $c;
+    }
+    private function passwordStore($in, $f)
+    {
+       $r = "'".addslashes($in)."'";
+       return $r;
+    }
 
     /*
      * Checkbox Field Processing
@@ -1673,24 +1673,24 @@ abstract class GlmDataAbstract
             'timestamp' => strtotime($text_date)
         );
 
-        // Build picklists for date input\r
+        // Build picklists for date input
         $date_list = false;
-\r
-        if ($this->optionIncludeSelectListData || $forEdit ) {\r
-
-            $date_list = $this->buildDateFieldLists($min, $max);\r
-\r
-               // Get default values for list selection and set in date_list array\r
-               $def_month = date('n', $t);\r
-               $date_list['month'][$def_month]['default'] = true;\r
-               $def_day = date('j', $t);\r
-               $date_list['day'][$def_day]['default'] = true;\r
-               $def_year = date('Y', $t);\r
+
+        if ($this->optionIncludeSelectListData || $forEdit ) {
+
+            $date_list = $this->buildDateFieldLists($min, $max);
+
+               // Get default values for list selection and set in date_list array
+               $def_month = date('n', $t);
+               $date_list['month'][$def_month]['default'] = true;
+               $def_day = date('j', $t);
+               $date_list['day'][$def_day]['default'] = true;
+               $def_year = date('Y', $t);
                $date_list['year'][$def_year]['default'] = true;
 
-               $out['date_list'] = $date_list;\r
-        }\r
-\r
+               $out['date_list'] = $date_list;
+        }
+
         return $out;
     }
     private function dateInput($as, $f, $id, $idfield, $op)
index c6a11b5..db87c01 100644 (file)
@@ -198,10 +198,12 @@ if (!function_exists('is_in_tree')) {
         if ( is_page( $pid ) ) {
             return true;
         }
-        $anc = get_post_ancestors( $post->ID );
-        foreach ( $anc as $ancestor ) {
-            if( is_page() && $ancestor == $pid ) {
-                return true;
+        if ($post) {
+            $anc = get_post_ancestors( $post->ID );
+            foreach ( $anc as $ancestor ) {
+                if( is_page() && $ancestor == $pid ) {
+                    return true;
+                }
             }
         }
         return false;
index 50c1f71..3a6f546 100644 (file)
@@ -25,7 +25,7 @@
                 <p style="text-align: center;"><a href="{$siteBaseUrl}">Return to Home Page</a></p>
             </div>
         </center>
-</center>      
+</div>      
      
 <script type="text/javascript">
     jQuery(document).ready(function($) {
index 6af4869..aa02a74 100644 (file)
                     {if $member.logo && $settings.list_show_logo}
                         <div class="glm-member-list-image-wrapper right small-12 medium-4 columns {if !$settings.list_logo_for_mobile}mobile-hide{/if}">
                             <div class="glm-member-list-image-border">
+                                
+                                {if $member.featured}
+                                <div class="glm-member-list-featured-tag">
+                                    featured
+                                </div>
+                                {/if}
                                 <img src="{$glmPluginMediaUrl}/images/{$settings.list_logo_size}/{$member.logo}">
                             </div>
                        </div>
                     <div>
                     {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
                     {if $member.short_descr && $settings.list_show_short_descr}
-                        {$member.short_descr|nl2br} <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/">More</a>
+                        {$member.short_descr|nl2br} 
+                        {if $settings.list_show_detail_link}
+                            <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/">More</a>
+                        {/if}
                     {/if}
                     {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
                     </div>