UserBookmarks.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. Lib::loadClass('UserProfile');
  3. /**
  4. * User Bookmark
  5. * $_SESSION['USER_PROFILE'][section][key] = val;
  6. */
  7. class UserBookmarks {
  8. private $_sesKey = 'UserBookmarksList';
  9. public function __construct() {
  10. UserProfile::load();
  11. }
  12. public static function getInstance() {
  13. $userBookmarks = new UserBookmarks();
  14. return $userBookmarks;
  15. }
  16. public function getBookmarks() {
  17. $bookmarks = array();
  18. if (!empty($_SESSION['USER_PROFILE'][$this->_sesKey])) {
  19. $bookmarks = $_SESSION['USER_PROFILE'][$this->_sesKey];
  20. }
  21. return $bookmarks;
  22. }
  23. /*
  24. * Add bookmark
  25. */
  26. public function addBookmark($zasobID) {
  27. if (!array_key_exists($zasobID, $_SESSION['USER_PROFILE'][$this->_sesKey])) {
  28. $_SESSION['USER_PROFILE'][$this->_sesKey][$zasobID] = '';
  29. }
  30. }
  31. public function changeBookmark($zasobID, $cls) {
  32. $_SESSION['USER_PROFILE'][$this->_sesKey][$zasobID] = $cls;
  33. }
  34. public function sortBookmarks($idsOrder) {
  35. $bookmarks = $this->getBookmarks();
  36. if (empty($bookmarks)) return;
  37. if (empty($idsOrder)) return;
  38. $sortedBookmarks = array();
  39. foreach ($idsOrder as $id) {
  40. if (array_key_exists($id, $bookmarks)) {
  41. $sortedBookmarks[$id] = $bookmarks[$id];
  42. }
  43. }
  44. $_SESSION['USER_PROFILE'][$this->_sesKey] = $sortedBookmarks;
  45. }
  46. public function hasBookmark($zasobID) {
  47. return array_key_exists($zasobID, $_SESSION['USER_PROFILE'][$this->_sesKey]);
  48. }
  49. public function removeBookmark($zasobID) {
  50. $bookmarks = array();
  51. foreach ($_SESSION['USER_PROFILE'][$this->_sesKey] as $kZasobID => $vClass) {
  52. if ($kZasobID == $zasobID) continue;
  53. $bookmarks[$kZasobID]= $vClass;
  54. }
  55. $_SESSION['USER_PROFILE'][$this->_sesKey] = $bookmarks;
  56. }
  57. }