| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php
- /**
- * User profile.
- * @use User
- * @require User
- */
- class UserProfile {
- public static function load($force = false) {
- if ($force) {
- $_SESSION['USER_PROFILE'] = array();
- }
- if (empty($_SESSION['USER_PROFILE'])) {
- $_SESSION['USER_PROFILE'] = array();
- // load user profile (hidden column, UserBookmarks)
- $sql = "select `ADM_WWW_PROFILE` from `ADMIN_USERS` where `ADM_ACCOUNT`='".User::getName()."' limit 0,1 ";
- $db = DB::getDB();
- $res = $db->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'<pre>$VAR('.strlen($VAR).'):';print_r($VAR);echo'</pre>';//!!
- $profileJson = json_encode($_SESSION['USER_PROFILE']);
- echo'<pre>json_encode('.strlen($profileJson).'):';print_r($profileJson);echo'</pre>';//!!
- echo'<pre>profileRaw:';print_r($_SESSION['USER_PROFILE']);echo'</pre>';//!!
- $profileFromJson = json_decode($profileJson);
- echo'<pre>profileFromJson:';print_r($profileFromJson);echo'</pre>';
- }// 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;
- }
- }
|