/** * Test get() */ public function testGet() { $admin = KunenaFactory::getUser('admin'); $categoryuser = KunenaForumCategoryUserHelper::get(0, $admin->userid); $this->assertEquals(0, $categoryuser->category_id); $this->assertEquals($admin->userid, $categoryuser->user_id); }
public function isNew($user = null) { $user = KunenaUserHelper::get($user); if (!KunenaFactory::getConfig()->shownew || !$user->exists()) { return false; } $session = KunenaFactory::getSession(); if ($this->time < $session->lasttime) { return false; } $allreadtime = KunenaForumCategoryUserHelper::get($this->getCategory(), $user)->allreadtime; if ($allreadtime && $this->time < JFactory::getDate($allreadtime)->toUnix()) { return false; } $read = KunenaForumTopicUserReadHelper::get($this->getTopic(), $user); if ($this->id == $read->message_id || $this->time < $read->time) { return false; } return true; }
/** * @param null|int $id * @param mixed $user * @param bool $reload * * @return KunenaForumCategoryUser */ public static function getInstance($id = null, $user = null, $reload = false) { return KunenaForumCategoryUserHelper::get($id, $user, $reload); }
/** * @param mixed $user * * @return bool */ public function hasNew($user = null) { $user = KunenaUserHelper::get($user); if (!KunenaFactory::getConfig()->shownew || !$user->exists()) { return false; } $session = KunenaFactory::getSession(); if ($this->last_post_time <= $session->getAllReadTime()) { return false; } $userinfo = KunenaForumCategoryUserHelper::get($this->getCategory(), $user); if ($userinfo->allreadtime && $this->last_post_time <= $userinfo->allreadtime) { return false; } $read = KunenaForumTopicUserReadHelper::get($this, $user); if ($this->last_post_time <= $read->time) { return false; } return true; }
/** * Get if the user has subscribed on this category. * * @param mixed $userid * * @return bool * * @since 2.0.0 */ public function getSubscribed($userid = null) { if (!$this->exists()) { return false; } if (!$userid) { return false; } $usercategory = KunenaForumCategoryUserHelper::get($this->id, $userid); return (bool) $usercategory->subscribed; }
/** * Method to save the KunenaSession object to the database * * @access public * @param boolean $updateOnly Save the object only if not a new session * @return boolean True on success * @since 1.5 */ public function save($updateOnly = false) { // Do not save session for anonymous users if (!$this->userid) { return false; } // Create the user table object $table = $this->getTable(); $table->bind($this->getProperties()); $table->exists($this->_exists); // Check and store the object. if (!$table->check()) { $this->setError($table->getError()); return false; } //are we creating a new user $isnew = !$this->_exists; // If we aren't allowed to create new users return if ($isnew && $updateOnly) { return true; } //Store the user data in the database if (!($result = $table->store())) { $this->setError($table->getError()); } // Set the id for the JUser object in case we created a new user. if (empty($this->userid)) { $this->userid = $table->get('userid'); } // Read indication has moved outside of the session table -- let's update it too. $userCategory = KunenaForumCategoryUserHelper::get(0, $this->userid); if ($userCategory->allreadtime != $this->allreadtime) { $userCategory->allreadtime = $this->allreadtime; $userCategory->save(); } return $result; }
/** * Assign user as moderator or resign him. * * @param KunenaForumCategory $category * @param mixed $user * @param bool $status * * @return bool * * @example if ($category->authorise('admin')) $category->setModerator($user, true); */ public function setModerator($category, $user = null, $status = true) { // Check if category exists if ($category && !$category->exists()) { return false; } $category_id = $category ? $category->id : 0; $status = intval($status); // Check if user exists $user = KunenaUserHelper::get($user); if (!$user->exists()) { return false; } $success = true; $usercategory = KunenaForumCategoryUserHelper::get($category_id, $user); if ($usercategory->role == 0 && $status || $usercategory->role == 1 && !$status) { $usercategory->role = $status; $success = $usercategory->save(); // Clear role cache $this->clearCache(); // Change user moderator status $moderator = $this->getModeratorStatus($user); if ($user->moderator != !empty($moderator)) { $user->moderator = intval(!empty($moderator)); $success = $user->save(); } } return $success; }
/** * Returns object containing user information from this category. * * @param mixed $user * @return KunenaForumCategoryUser */ public function getUserInfo($user = null) { return KunenaForumCategoryUserHelper::get($this->id, $user); }