浏览代码

updated UserBookmarks session storage

Piotr Labudda 7 年之前
父节点
当前提交
4e68e23bd1
共有 1 个文件被更改,包括 19 次插入12 次删除
  1. 19 12
      SE/se-lib/UserBookmarks.php

+ 19 - 12
SE/se-lib/UserBookmarks.php

@@ -9,6 +9,17 @@ Lib::loadClass('UserProfile');
 class UserBookmarks {
 
 	private $_sesKey = 'UserBookmarksList';
+	static function loadStorage() {
+		return (!empty($_SESSION['USER_PROFILE']['UserBookmarksList']))
+			? $_SESSION['USER_PROFILE']['UserBookmarksList']
+			: array();
+	}
+	static function _saveStorageValue($key, $value) {
+		$_SESSION['USER_PROFILE']['UserBookmarksList'][$key] = $value;
+	}
+	static function _saveNewStorage($values) {
+		$_SESSION['USER_PROFILE']['UserBookmarksList'] = $values;
+	}
 
 	public function __construct() {
 		UserProfile::load();
@@ -20,24 +31,20 @@ class UserBookmarks {
 	}
 
 	public function getBookmarks() {
-		$bookmarks = array();
-		if (!empty($_SESSION['USER_PROFILE'][$this->_sesKey])) {
-			$bookmarks = $_SESSION['USER_PROFILE'][$this->_sesKey];
-		}
-		return $bookmarks;
+		return self::loadStorage();
 	}
 
 	/*
 	 * Add bookmark
 	 */
 	public function addBookmark($zasobID) {
-		if (!array_key_exists($zasobID, $_SESSION['USER_PROFILE'][$this->_sesKey])) {
-			$_SESSION['USER_PROFILE'][$this->_sesKey][$zasobID] = '';
+		if (!array_key_exists($zasobID, $this->getBookmarks())) {
+			self::_saveStorageValue($zasobID, '');
 		}
 	}
 
 	public function changeBookmark($zasobID, $cls) {
-		$_SESSION['USER_PROFILE'][$this->_sesKey][$zasobID] = $cls;
+		self::_saveStorageValue($zasobID, $cls);
 	}
 
 	public function sortBookmarks($idsOrder) {
@@ -50,20 +57,20 @@ class UserBookmarks {
 				$sortedBookmarks[$id] = $bookmarks[$id];
 			}
 		}
-		$_SESSION['USER_PROFILE'][$this->_sesKey] = $sortedBookmarks;
+		self::_saveNewStorage($sortedBookmarks);
 	}
 
 	public function hasBookmark($zasobID) {
-		return array_key_exists($zasobID, $_SESSION['USER_PROFILE'][$this->_sesKey]);
+		return array_key_exists($zasobID, $this->getBookmarks());
 	}
 
 	public function removeBookmark($zasobID) {
 		$bookmarks = array();
-		foreach ($_SESSION['USER_PROFILE'][$this->_sesKey] as $kZasobID => $vClass) {
+		foreach ($this->getBookmarks() as $kZasobID => $vClass) {
 			if ($kZasobID == $zasobID) continue;
 			$bookmarks[$kZasobID]= $vClass;
 		}
-		$_SESSION['USER_PROFILE'][$this->_sesKey] = $bookmarks;
+		self::_saveNewStorage($bookmarks);
 	}
 
 }