query($sql); while ($h = $db->fetch($res)) { $ADM_WWW_PROFILE = "{$h->ADM_WWW_PROFILE}"; if (!empty($ADM_WWW_PROFILE)) { if (' Array' === substr($ADM_WWW_PROFILE, 0, 6) || 'Array' === substr($ADM_WWW_PROFILE, 0, 5)) { eval("\$_SESSION['USER_PROFILE'] = {$ADM_WWW_PROFILE} ;"); } else { $profileFromJson = json_decode($ADM_WWW_PROFILE); if ($profileFromJson && !empty($profileFromJson)) { $profileFromJson = (array)$profileFromJson; foreach ($profileFromJson as $k => $v) { $profileFromJson[$k] = (array)$v; } $_SESSION['USER_PROFILE'] = $profileFromJson; } else { $_SESSION['USER_PROFILE'] = array(); } } } else { $_SESSION['USER_PROFILE'] = array(); } } } return $_SESSION['USER_PROFILE']; } public static function set($key, $val) { self::load();// profile must be loaded $_SESSION['USER_PROFILE'][$key] = $val; } public static function get($key) { self::load();// profile must be loaded return V::get($key, '', $_SESSION['USER_PROFILE']); } public static function getColumn($column_name, $key) { self::load();// profile must be loaded if (!empty($_SESSION['USER_PROFILE'][$column_name][$key])) { return $_SESSION['USER_PROFILE'][$column_name][$key]; } return null; } public static function setColumn($column_name, $key, $value) { self::load();// profile must be loaded $_SESSION['USER_PROFILE'][$column_name][$key] = $value; self::save(); } public static function removeColumn($column_name, $key) { self::load();// profile must be loaded unset($_SESSION['USER_PROFILE'][$column_name][$key]); self::save(); } public static function save() { self::load();// profile must be loaded $db = DB::getDB(); if(0){// old way $USER_PROFILE = $_SESSION['USER_PROFILE']; reset($USER_PROFILE); $VAR = " Array ( "; for ( ;(key($USER_PROFILE)); next($USER_PROFILE)) { $VAR = $VAR . "\"" . key($USER_PROFILE) . "\" => Array ( "; for ( ;(key($USER_PROFILE[key($USER_PROFILE)])); next($USER_PROFILE[key($USER_PROFILE)])) { $VAR = $VAR . " \"" . key($USER_PROFILE[key($USER_PROFILE)]) . "\"=>\"" . $USER_PROFILE[key($USER_PROFILE)][key($USER_PROFILE[key($USER_PROFILE)])] . "\"," ; } $VAR = $VAR . " ), "; } $VAR = $VAR . " ) " ; if(0){// old way debug echo'
$VAR('.strlen($VAR).'):';print_r($VAR);echo'
';//!! $profileJson = json_encode($_SESSION['USER_PROFILE']); echo'
json_encode('.strlen($profileJson).'):';print_r($profileJson);echo'
';//!! echo'
profileRaw:';print_r($_SESSION['USER_PROFILE']);echo'
';//!! $profileFromJson = json_decode($profileJson); echo'
profileFromJson:';print_r($profileFromJson);echo'
'; }// old way debug }// old way $VAR = json_encode($_SESSION['USER_PROFILE']); $sql = "update `ADMIN_USERS` set `ADM_WWW_PROFILE`='{$VAR}' where `ADM_ACCOUNT`='".User::getName()."' limit 1 "; $res = $db->query($sql); if (($affected = $db->affected_rows($res)) != 1) { // TODO: error msg } return $VAR; } public static function isHiddenColumn($idTable, $idField) { $isHidden = false; // $_SESSION['USER_PROFILE'][$idTable][$idField] => boolean if (isset($_SESSION['USER_PROFILE'][$idTable])) { if (isset($_SESSION['USER_PROFILE'][$idTable][$idField])) { if ($_SESSION['USER_PROFILE'][$idTable][$idField] != 1) { $isHidden = true; } } } return $isHidden; } public static function getHiddenCols($idTable) { $colVis = array(); if (array_key_exists($idTable, $_SESSION['USER_PROFILE'])) { $colVis = $_SESSION['USER_PROFILE'][$idTable]; } return $colVis; } public static function setHiddenCols($idTable, $colVis) { $isAnyHidden = false; foreach ($colVis as $idField => $isVisible) { if ($isVisible != 1) { $isAnyHidden = true; } } if ($isAnyHidden) { $_SESSION['USER_PROFILE'][$idTable] = $colVis; } else { unset($_SESSION['USER_PROFILE'][$idTable]);// every column is visible } } public static function getTableAjaxSettings() { $tableAjaxSettings = array(); if (array_key_exists('_table_ajax_settings', $_SESSION['USER_PROFILE'])) { $tableAjaxSettings = $_SESSION['USER_PROFILE']['_table_ajax_settings']; } return $tableAjaxSettings; } public static function setTableAjaxSettings($colVis) { $_SESSION['USER_PROFILE']['_table_ajax_settings'] = $colVis; } }