UserProfile.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * User profile.
  4. * @use User
  5. * @require User
  6. */
  7. class UserProfile {
  8. public static function load($force = false) {
  9. if ($force) {
  10. $_SESSION['USER_PROFILE'] = array();
  11. }
  12. if (empty($_SESSION['USER_PROFILE'])) {
  13. $_SESSION['USER_PROFILE'] = array();
  14. // load user profile (hidden column, UserBookmarks)
  15. $sql = "select `ADM_WWW_PROFILE` from `ADMIN_USERS` where `ADM_ACCOUNT`='".User::getName()."' limit 0,1 ";
  16. $db = DB::getDB();
  17. $res = $db->query($sql);
  18. while ($h = $db->fetch($res)) {
  19. $ADM_WWW_PROFILE = "{$h->ADM_WWW_PROFILE}";
  20. if (!empty($ADM_WWW_PROFILE)) {
  21. //echo "<HR>$ADM_WWW_PROFILE WWW-PROFILE**********<BR>";
  22. eval("\$_SESSION['USER_PROFILE'] = {$ADM_WWW_PROFILE} ;");
  23. } else {
  24. $_SESSION['USER_PROFILE'] = array();
  25. }
  26. }
  27. }
  28. return $_SESSION['USER_PROFILE'];
  29. }
  30. public static function set($key, $val) {
  31. self::load();// profile must be loaded
  32. $_SESSION['USER_PROFILE'][$key] = $val;
  33. }
  34. public static function get($key) {
  35. self::load();// profile must be loaded
  36. return V::get($key, '', $_SESSION['USER_PROFILE']);
  37. }
  38. public static function getColumn($column_name, $key) {
  39. self::load();// profile must be loaded
  40. if (!empty($_SESSION['USER_PROFILE'][$column_name][$key])) {
  41. return $_SESSION['USER_PROFILE'][$column_name][$key];
  42. }
  43. return null;
  44. }
  45. public static function setColumn($column_name, $key, $value) {
  46. self::load();// profile must be loaded
  47. $_SESSION['USER_PROFILE'][$column_name][$key] = $value;
  48. self::save();
  49. }
  50. public static function removeColumn($column_name, $key) {
  51. self::load();// profile must be loaded
  52. unset($_SESSION['USER_PROFILE'][$column_name][$key]);
  53. self::save();
  54. }
  55. public static function save() {
  56. self::load();// profile must be loaded
  57. $db = DB::getDB();
  58. $USER_PROFILE = $_SESSION['USER_PROFILE'];
  59. reset($USER_PROFILE);
  60. $VAR = " Array ( ";
  61. for ( ;(key($USER_PROFILE)); next($USER_PROFILE)) {
  62. $VAR = $VAR . "\"" . key($USER_PROFILE) . "\" => Array ( ";
  63. for ( ;(key($USER_PROFILE[key($USER_PROFILE)])); next($USER_PROFILE[key($USER_PROFILE)])) {
  64. $VAR = $VAR . " \"" . key($USER_PROFILE[key($USER_PROFILE)]) . "\"=>\"" . $USER_PROFILE[key($USER_PROFILE)][key($USER_PROFILE[key($USER_PROFILE)])] . "\"," ;
  65. }
  66. $VAR = $VAR . " ), ";
  67. }
  68. $VAR = $VAR . " ) " ;
  69. $sql = "update `ADMIN_USERS` set `ADM_WWW_PROFILE`='{$VAR}' where `ADM_ACCOUNT`='".User::getName()."' limit 1 ";
  70. $res = $db->query($sql);
  71. if (($affected = $db->affected_rows($res)) != 1) {
  72. // TODO: error msg
  73. }
  74. return $VAR;
  75. }
  76. }