Completed Simple Membership list output design.
authorChuck Scott <cscott@gaslightmedia.com>
Wed, 13 May 2015 17:43:48 +0000 (13:43 -0400)
committerChuck Scott <cscott@gaslightmedia.com>
Wed, 13 May 2015 17:43:48 +0000 (13:43 -0400)
simple-wp-membership/methods.php
simple-wp-membership/view.php

index 9c4d43a..6e5401f 100644 (file)
@@ -45,16 +45,18 @@ foreach ($data as $field){
     $this->fields[$obj->reg_field_id] = $obj;
 }
 
-// echo "<pre>".print_r($this->fields,1)."</pre>";
-
 $query = "SELECT * FROM " . $wpdb->prefix . "swpm_members_tbl";
 $query .= " LEFT JOIN " . $wpdb->prefix . "swpm_membership_tbl";
 $query .= " ON ( membership_level = id ) ";
+
+// Get search data
+$haveSearch = false;
 if (isset($_REQUEST['last_name']) && $_REQUEST['last_name'] != '') {
 
         $lastName  = sanitize_text_field($_REQUEST['last_name']);
         if ( trim($lastName) != '' ) {
                 $query .= " WHERE last_name LIKE '%$lastName%' ";
+               $haveSearch = true;
         }
 }
 if (isset($_REQUEST['first_name']) && $_REQUEST['first_name'] != '') {
@@ -62,6 +64,7 @@ if (isset($_REQUEST['first_name']) && $_REQUEST['first_name'] != '') {
         $firstName  = sanitize_text_field($_REQUEST['first_name']);
         if ( trim($firstName) != '' ) {
                 $query .= " WHERE first_name LIKE '%$firstName%' ";
+               $haveSearch = true;
         }
 }
 $alpha = '';
@@ -70,35 +73,43 @@ if (isset($_REQUEST['alpha']) && $_REQUEST['alpha'] != '') {
         $alpha  = sanitize_text_field($_REQUEST['alpha']);
         if ( trim($alpha) != '' ) {
                 $query .= " WHERE last_name LIKE '$alpha%' ";
+               $haveSearch = true;
         }
 }
-$orderby = filter_input(INPUT_GET, 'orderby');
-$orderby = empty($orderby) ? 'user_name' : $orderby ;
-$order = filter_input(INPUT_GET, 'order');
-$order = empty($order) ? 'DESC' : $order;
-$query.=' ORDER BY ' . $orderby . ' ' . $order;
-$totalitems = $wpdb->query($query); //return the total number of affected rows
-$perpage = 20;
-$paged  = filter_input(INPUT_GET, 'paged');
-if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
-    $paged = 1;
-}
-$totalpages = ceil($totalitems / $perpage);
-if (!empty($paged) && !empty($perpage)) {
-    $offset = ($paged - 1) * $perpage;
-    $query.=' LIMIT ' . (int) $offset . ',' . (int) $perpage;
-}
-$this->items = $wpdb->get_results($query, ARRAY_A);
-foreach ($this->items as $key => $value){
-        $info = array();
-        $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_form_builder_custom WHERE user_id= %d';
-        $query = $wpdb->prepare($query, $value['member_id']);
-        foreach ($wpdb->get_results($query) as $row) {
-                $id = empty($row->reg_field_id) ? $row->field_id : $row->reg_field_id;
-                $x = $this->fields[$id]->name;
-                $info[$this->fields[$id]->name] = $row;
-        }
-        $this->items[$key]['data'] = $info;
+
+if ($haveSearch) {
+
+       $orderby = filter_input(INPUT_GET, 'orderby');
+       $orderby = empty($orderby) ? 'user_name' : $orderby ;
+       $order = filter_input(INPUT_GET, 'order');
+       $order = empty($order) ? 'DESC' : $order;
+       $query.=' ORDER BY ' . $orderby . ' ' . $order;
+       $totalitems = $wpdb->query($query); //return the total number of affected rows
+       $perpage = 20;
+       $paged  = filter_input(INPUT_GET, 'paged');
+       if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
+           $paged = 1;
+       }
+       $totalpages = ceil($totalitems / $perpage);
+       if (!empty($paged) && !empty($perpage)) {
+           $offset = ($paged - 1) * $perpage;
+           $query.=' LIMIT ' . (int) $offset . ',' . (int) $perpage;
+       }
+       $this->items = $wpdb->get_results($query, ARRAY_A);
+       foreach ($this->items as $key => $value){
+               $info = array();
+               $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_form_builder_custom WHERE user_id= %d';
+               $query = $wpdb->prepare($query, $value['member_id']);
+               foreach ($wpdb->get_results($query) as $row) {
+                       $id = empty($row->reg_field_id) ? $row->field_id : $row->reg_field_id;
+                       $info[$this->fields[$id]->name] = $row;
+               }
+               $this->items[$key]['data'] = $info;
+       }
+
+       if (count($this->items) == 0) {
+               $haveSearch = false;
+       }
 }
 
 // Include the output code
index 72a1cd6..5cc3fd9 100644 (file)
@@ -1,20 +1,34 @@
 <div class="wrap">
 
-       <style type="text/css">
-               .addSpaceTop {
-                       margin-top: 1em;
-               }
-               .initial {
-                       margin-left: .2em;
-                       padding-left: .2em;
-                       padding-right: .2em;
-                       margin-left: .2em;
-               }
-               .initialSelected {
-                       border: 1px solid black;
-               }
-
-       </style>
+                       <style type="text/css">
+                               .minorBreak {
+                                       margin-top: .5em;
+                               }
+                               .initial {
+                                       margin-left: .2em;
+                                       padding-left: .2em;
+                                       padding-right: .2em;
+                                       margin-left: .2em;
+                               }
+                               .initialSelected {
+                                       border: 1px solid black;
+                               }
+                               .memberName {
+                                       font-weight: bold;
+                               }
+                               .sectionTitle {
+                                       text-align: center;
+                                       font-style: italic;
+                                       color: #BBB;
+                               }
+                               .fieldPrompt {
+                                       font-weight: bold;
+                                       text-align: right;
+                               }
+                               .fieldValue {
+                                       text-align: left;
+                               }
+                       </style>
 
        <?php 
                $pageURL = "http://".$_SERVER['SERVER_NAME'].parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
                                        <div class="small-6 columns">First Name: <input type="text" name="first_name" value="'.$first_name.'"></div>
                                        <div class="small-6 columns">Last Name: <input type="text" name="last_name" value="'.$last_name.'"></div>
                                </div>
-                               <div class="row"><div class="small-12 columns"><input type="submit" name="Search"></div></div>
+                               <div class="row"><div class="small-12 columns"><input type="submit" name="Search" value="Search by Name"></div></div>
                        </form>
                ';
 
                echo '
-                       <div class="row"><div class="small-12 columns addSpaceTop">Or select by last initial.</div></div>
+                       <div class="minorBreak"> </div>
+                       <div class="row"><div class="small-12 columns">Or select by last initial.</div></div>
                        <div class="row">
                                <div class="small-12 columns">
                ';
                        </div>
                        <hr>
                ';
+
+               if (!$haveSearch) {
+                       echo '<div class="row"><div class="small-12 columns">(No members displayed - Select search above)</div></div>';
+               }
+
                foreach($this->items as $m) {
                    if ($m['first_name'].$m['last_name'] != '') {
                        echo '
-                                       <div class="row">
-                                               <div class="small-7 columns"><h3>'.$m['first_name'].' '.$m['last_name'].'</h3></div>
-                                               <div class="small-5 columns">Member since: '.$m['member_since'].'</div>
-                                       </div>
-                                       <div class="row">
-                                               <div class="small-7 columns addSpaceTop">Email address: '.$m['email'].'</div>
-                                               <div class="small-5 columns">Phone:     '.$m['phone'].'</div>
+                               <div class="row">
+                                       <div class="small-12 columns memberName"><h3>'.$m['first_name'].' '.$m['last_name'].'</h3></div>
+                               </div>
+                               <div class="row">
+                       '.($m['email'] != '' ? '
+                                       <div class="small-5 medium-3 columns fieldPrompt">Email address:</div><div class="small-7 medium-3 columns fieldValue">'.$m['email'].'</div>
+                       ' : '').'
+                       '.($m['phone'] != '' ? '
+                                       <div class="small-5 medium-3 columns fieldPrompt">Phone:</div><div class="small-7 medium-3 columns fieldValue">'.$m['phone'].'</div>
+                       ' : '
+                                       <div class="small-1 columns end"> </div>
+                       ').'
+                               </div>
+                               <div class="minorBreak"> </div>
+                       '.($m['data']['Spouse name']->value != '' ? '
+                               <div class="minorBreak"> </div>
+                               <div class="row">
+                                       <div class="small-3 columns fieldPrompt">Spouse:</div><div class="small-7 columns end fieldValue">'.$m['data']['Spouse name']->value.'</div>
+                               </div>
+                               <div class="row">
+                           '.($m['data']['Spouse email']->value != '' ? '
+                                       <div class="small-6 medium-3 columns fieldPrompt">Email:</div><div class="small-7 medium-3 columns fieldValue">'.$m['data']['Spouse email']->value.'</div>
+                           ' : '').'
+                           '.($m['data']['Spouse cell phone']->value != '' ? '
+                                       <div class="small-5 medium-3 columns fieldPrompt">Cell phone:</div><div class="small-7 medium-3 columns end fieldValue">'.$m['data']['Spouse cell phone']->value.'</div>
+                           ' : '
+                                       <div class="small-1 columns end"> </div>
+                           ').'
+                               </div>
+                       ' : '').'
+                       '.($m['data']['Summer mailing address (P.O. Box)']->value.$m['data']['']->value.$m['data']['Cottage Address']->value != '' ? '
+                               <div class="row"><div class="small-12 columns sectionTitle">Summer contact information</div></div>
+                           '.($m['data']['Summer mailing address (P.O. Box)']->value != '' ? '
+                               <div class="row">
+                                       <div class="small-3 columns fieldPrompt">Summer mailing address:</div><div class="small-7 columns end fieldValue">'.$m['data']['Summer mailing address (P.O. Box)']->value.'</div>
+                               </div>
+                           ' : '').'
+                           '.($m['data']['Cottage Address']->value != '' ? '
+                               <div class="row">
+                                       <div class="small-3 columns fieldPrompt">Cottage address:</div><div class="small-7 columns end fieldValue">'.$m['data']['Cottage Address']->value.'</div>
+                               </div>
+                           ' : '').'
+                           '.($m['data']['911 Address']->value != '' ? '
+                               <div class="row">
+                                       <div class="small-3 columns fieldPrompt">911 address:</div><div class="small-7 columns end fieldValue">'.$m['data']['911 Address']->value.'</div>
+                               </div>
+                           ' : '').'
+                           '.($m['data']['Summer City']->value != '' ? '
+                               <div class="row">
+                                       <div class="small-3 columns">&nbsp;</div>
+                                       <div class="small-7 columns end fieldValue">
+                                               '.$m['data']['Summer City']->value.($m['data']['Summer State']->value != '' ? ', '.$m['data']['Summer State']->value : '').'
+                                               '.$m['data']['Summer ZIP/Postal Code']->value.'
                                        </div>
-                               '.($m['data']['Spouse name']->value != '' ? '
-                                       <div class="row">
-                                               <div class="small-12 columns addSpaceTop">Spouse: '.$m['data']['Spouse name']->value.'</div>
+                               </div>
+                           ' : '').'
+                           '.($m['data']['Additional Summer Address']->value != '' ? '
+                               <div class="row">
+                                       <div class="small-3 columns fieldPrompt">Additional address:</div><div class="small-7 columns end fieldValue">'.$m['data']['Additional Summer Address']->value.'</div>
+                               </div>
+                           ' : '').'
+                           '.($m['data']['Home Phone']->value.$m['data']['Additional Phone']->value.$m['data']['Additional Phone #2']->value != '' ? '
+                               <div class="row">
+                               '.($m['data']['Home Phone']->value != '' ? '
+                                       <div class="small-5 medium-3 columns fieldPrompt">Home Phone:</div><div class="small-7 medium-2 columns fieldValue">'.$m['data']['Home Phone']->value.'</div>
+                               ' : '').'
+                               '.($m['data']['Additional Phone']->value.$m['data']['Additional Phone #2']->value != '' ? '
+                                       <div class="small-5 medium-3 columns fieldPrompt">Other Phones:</div>
+                                       <div class="small-7 medium-4 columns fieldValue">'.$m['data']['Additional Phone']->value.' '.$m['data']['Additional Phone #2']->value.'</div>
+                               ' : '
+                                       <div class="small-1 columns end">&nbsp;</div>
+                               ').'
+                               </div>
+                           ' : '').'
+                       ' : '').'
+                       '.($m['data']['Winter mailing address']->value.$m['data']['Winter Apt']->value.$m['data']['Winter Apt']->value != '' ? '
+                               <div class="row"><div class="small-12 columns sectionTitle">Winter contact information</div></div>
+                               <div class="row">
+                                       <div class="small-3 columns fieldPrompt">Winter address:</div>
+                                       <div class="small-7 columns end fieldValue">
+                                       '.$m['data']['Winter mailing address']->value.($m['data']['Winter State']->value != '' ? ', '.$m['data']['Winter Apt']->value : '').'
                                        </div>
-                                       <div class="row">
-                                               '.($m['data']['Spouse email']->value != '' ? '<div class="small-7 columns">Email: '.$m['data']['Spouse email']->value.'</div>' : '').'
-                                               '.($m['data']['Spouse cell phone']->value != '' ? '<div class="small-5 columns">Cell phone: '.$m['data']['Spouse cell phone']->value.'</div>' : '').'
+                               </div>
+                           '.($m['data']['Winter City']->value != '' ? '
+                               <div class="row">
+                                       <div class="small-3 columns">&nbsp;</div>
+                                       <div class="small-7 columns end fieldValue">
+                                               '.$m['data']['Winter City']->value.($m['data']['Winter State']->value != '' ? ', '.$m['data']['Winter State']->value : '').'
+                                               '.$m['data']['Winter ZIP/Postal Code']->value.'
                                        </div>
-                               ' : '') .'
-                               '.($m['data']['Summer mailing address (P.O. Box)']->value != '' ? '
-                                       <div class="row"><div class="small-12 columns addSpaceTop">Summer mailing address</div></div>
-                                       <div class="row"><div class="small-12 columns">
-                                               '.$m['data']['Summer mailing address (P.O. Box)']->value.'
-                                               '.($m['data']['Summer Apt']->value != '' ? '
-                                                       Apt: '.$m['data']['Summer Apt']->value.'
-                                               ' : '').'
-                                       </div></div>
-                                       <div class="row">
-                                               <div class="small-12 columns">'.$m['data']['Summer City']->value.', '.$m['data']['Summer State']->value.' '.$m['data']['Summer ZIP/Postal Code']->value.'</div>
+                               </div>
+                           ' : '').'
+                           '.($m['data']['Winter phone']->value != '' ? '
+                               <div class="row">
+                                       <div class="small-3 columns fieldPrompt">Phone:</div>
+                                       <div class="small-7 columns end fieldValue">
+                                               '.$m['data']['Winter phone']->value.'
                                        </div>
-                               ' : '') .'
-                                       Address #1: '.$m['data']['Address #1']->value.'<br>
-                                       Phone #1: '.$m['data']['Phone #1']->value.'<br>
-                                       Address #2: '.$m['data']['Address #2']->value.'<br>
-                                       Phone #2: '.$m['data']['Phone #2']->value.'<br>
-                                       Address #3: '.$m['data']['Address #3']->value.'<br>
-                                       Phone #3: '.$m['data']['Phone #3']->value.'<br>
-                                       Winter mailing address: '.$m['data']['Winter mailing address']->value.'<br>
-                                       Winter Apt: '.$m['data']['Winter Apt']->value.'<br>
-                                       Winter City: '.$m['data']['Winter City']->value.'<br>
-                                       Winter State: '.$m['data']['Winter State']->value.'<br>
-                                       Winter ZIP/Postal Code: '.$m['data']['Winter ZIP/Postal Code']->value.'<br>
-                                       Winter phone: '.$m['data']['Winter phone']->value.'<br>
-                                       <hr width="80%">
                                </div>
+                           ' : '').'
+                       ' : '').'
+                       <hr width="80%">
                        ';
                    }
                }
-               // Uncomment to show contents of each member entry
-               // echo "<pre>".print_r($this->items[1],1)."</pre>";
+
+
+               // Uncomment to show fields or member data arrays
+               // echo "<pre>".print_r($this->fields,1)."</pre>";
+               // echo "<pre>".print_r($this->items,1)."</pre>";
        ?>
 </div><!-- end of wrap -->