[geeklog-cvs] geeklog: Bug#1060: Numeric zero not displaying in ADMIN_list or ...

geeklog-cvs at lists.geeklog.net geeklog-cvs at lists.geeklog.net
Tue Aug 10 14:23:24 EDT 2010


changeset 7958:5f0090ed7156
url:  http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/rev/5f0090ed7156
user: jmucchiello
date: Fri Jun 11 23:07:21 2010 -0400
description:
Bug#1060: Numeric zero not displaying in ADMIN_list or ADMIN_simpleList

diffstat:

 system/lib-admin.php |  34 ++++++++++++++++------------------
 1 files changed, 16 insertions(+), 18 deletions(-)

diffs (70 lines):

diff -r 08dd6a22ecc5 -r 5f0090ed7156 system/lib-admin.php
--- a/system/lib-admin.php	Wed Jul 07 20:17:18 2010 +0900
+++ b/system/lib-admin.php	Fri Jun 11 23:07:21 2010 -0400
@@ -154,6 +154,7 @@
         $admin_templates->set_var('message', $LANG_ADMIN['data_error']);
     } else {
         $admin_templates->set_var('show_message', 'display:none;');
+        $use_fieldfunction = is_callable($fieldfunction);
         for ($i = 0; $i < count($data_arr); $i++) {
             if (count($data_arr) > $min_data AND is_array($options) AND $options['chkdelete']) {
                 $admin_templates->set_var('itemtext', '<input type="checkbox" name="delitem[]" value="' . $data_arr[$i][$options['chkfield']].'"' . XHTML . '>');
@@ -162,19 +163,14 @@
             }
             for ($j = 0; $j < count($header_arr); $j++) {
                 $fieldname = $header_arr[$j]['field'];
-                $fieldvalue = '';
-                if (!empty($data_arr[$i][$fieldname])) {
-                    $fieldvalue = $data_arr[$i][$fieldname];
-                }
-                if (!empty($fieldfunction)) {
+                $fieldvalue = strval($data_arr[$i][$fieldname]);
+                if ($use_fieldfunction) {
                     $fieldvalue = $fieldfunction($fieldname, $fieldvalue, $data_arr[$i], $icon_arr);
-                } else {
-                    $fieldvalue = $fieldvalue;
                 }
                 if (!empty($header_arr[$j]['field_class'])) {
                     $admin_templates->set_var('class', $header_arr[$j]['field_class']);
                 } else {
-                      $admin_templates->set_var('class', "admin-list-field");
+                    $admin_templates->set_var('class', "admin-list-field");
                 }
                 if ($fieldvalue !== false) {
                     $admin_templates->set_var('itemtext', $fieldvalue);
@@ -482,6 +478,11 @@
         $admin_templates->parse('search_menu', 'search', true);
     }
 
+    if (is_callable($fieldfunction)) {
+        if (!empty($extra)) $use_fieldfunction = 2;
+        else $use_fieldfunction = 1;
+    } else $use_fieldfunction = 0;
+
     # SQL
     $sql .= "$filter_str $order_sql $limit;";
     // echo $sql;
@@ -498,16 +499,13 @@
         }
         for ($j = 0; $j < count($header_arr); $j++) {
             $fieldname = $header_arr[$j]['field']; # get field name from headers
-            $fieldvalue = '';
-            if (!empty($A[$fieldname])) { # is there a field in data like that?
-                $fieldvalue = $A[$fieldname]; # yes, get its data
-            }
-            if (!empty ($fieldfunction) && !empty ($extra)) {
-                $fieldvalue = $fieldfunction ($fieldname, $fieldvalue, $A, $icon_arr, $extra);
-            } else if (!empty ($fieldfunction)) { # do we have a fieldfunction?
-                $fieldvalue = $fieldfunction ($fieldname, $fieldvalue, $A, $icon_arr);
-            } else { # if not just take the value
-                $fieldvalue = $fieldvalue;
+            $fieldvalue = strval($A[$fieldname]); # yes, get its data
+            switch ($use_fieldfunction) {
+            case 2: $fieldvalue = $fieldfunction($fieldname, $fieldvalue, $A, $icon_arr, $extra);
+                    break;
+            case 1: $fieldvalue = $fieldfunction($fieldname, $fieldvalue, $A, $icon_arr);
+                    break;
+            default: break;
             }
             if ($fieldvalue !== false) { # return was there, so write line
                 $this_row = true;



More information about the geeklog-cvs mailing list