Workaround for segfaults in some buggy php encoding library versions.
[fa-stable.git] / includes / current_user.inc
index 239324c69dd0f304942fbc8980a88da21eb68afe..e6f051885848068c5abe02ef574776594dbff276 100644 (file)
@@ -36,7 +36,7 @@ class current_user
        var $prefs;
        var $cur_con; // current db connection (can be different from $company for superuser)
 
-       function current_user()
+       function __construct()
        {
                global $def_coy;
                
@@ -305,6 +305,8 @@ function number_format2($number, $decimals=0)
        $tsep = $SysPrefs->thoseps[user_tho_sep()];
        $dsep = $SysPrefs->decseps[user_dec_sep()];
 
+       if ($number == '')
+               $number = 0;
        if($decimals==='max')
                $dec = 15 - floor(log10(abs($number)));
        else {
@@ -511,7 +513,7 @@ function user_date_sep()
 {
        global $SysPrefs;
 
-       return isset($_SESSION["wa_current_user"]) ? $_SESSION["wa_current_user"]->prefs->date_sep() : $SysPrefs->dflt_date_sep;
+       return isset($_SESSION["wa_current_user"]->prefs->date_sep) ? $_SESSION["wa_current_user"]->prefs->date_sep() : $SysPrefs->dflt_date_sep;
 }
 
 function user_tho_sep()
@@ -683,10 +685,12 @@ function array_append(&$array, $elements)
 //
 function array_search_value($needle, $haystack, $valuekey=null)
 {
-       foreach($haystack as $key => $value) {
-               $val = isset($valuekey) ? @$value[$valuekey] : $value;
-               if ($needle == $val){
-                       return $value;
+       if (is_array($haystack)) {
+               foreach($haystack as $key => $value) {
+                       $val = isset($valuekey) ? @$value[$valuekey] : $value;
+                       if ($needle == $val){
+                               return $value;
+                       }
                }
        }
        return null;
@@ -698,13 +702,14 @@ function array_search_value($needle, $haystack, $valuekey=null)
 function array_search_keys($needle, $haystack, $valuekey=null)
 {
        $keys = array();
-       if($haystack)
+       if (is_array($haystack)) {
                foreach($haystack as $key => $value) {
                        $val = isset($valuekey) ? @$value[$valuekey] : $value;
                        if ($needle == $val){
                                $keys[] = $key;
                        }
                }
+       }       
        return $keys;
 }
 //