예제 #1
0
 public static function markRead(array $ids, $user = null)
 {
     $user = KunenaUserHelper::get($user);
     $items = KunenaForumCategoryUserHelper::getCategories($ids, $user);
     $updateList = array();
     $insertList = array();
     $db = JFactory::getDbo();
     $time = JFactory::getDate()->toUnix();
     foreach ($items as $item) {
         if ($item->exists()) {
             $updateList[] = (int) $item->category_id;
         } else {
             $insertList[] = "{$db->quote($user->userid)}, {$db->quote($item->category_id)}, {$db->quote($time)}";
         }
     }
     if ($updateList) {
         $idlist = implode(',', $updateList);
         $query = $db->getQuery(true);
         $query->update('#__kunena_user_categories')->set("allreadtime={$db->quote($time)}")->where("user_id={$db->quote($user->userid)}")->where("category_id IN ({$idlist})");
         $db->setQuery($query);
         $db->execute();
     }
     if ($insertList) {
         $query = $db->getQuery(true);
         $query->insert('#__kunena_user_categories')->columns('user_id, category_id, allreadtime')->values($insertList);
         $db->setQuery($query);
         $db->execute();
     }
 }
	/**
	 * Test getCategories()
	 */
	public function testGetCategories() {
		$categories = KunenaForumCategoryHelper::getCategories();
		$categoryusers = KunenaForumCategoryUserHelper::getCategories();
		foreach ($categories as $category) {
			$this->assertTrue(isset($categoryusers[$category->id]));
			$this->assertEquals($category->id, $categoryusers[$category->id]->category_id);
		}
	}
예제 #3
0
 /**
  * Get an instance of KunenaForumCategoryUser object.
  *
  * @param null|int	$category	The category id to load.
  * @param mixed		$user		The user id to load - Can be only an integer.
  * @param bool		$reload		Reload objects from the database.
  *
  * @return KunenaForumCategoryUser	The user category object.
  */
 public static function get($category = null, $user = null, $reload = false)
 {
     if ($category instanceof KunenaForumCategory) {
         $category = $category->id;
     }
     $category = intval($category);
     $user = KunenaUserHelper::get($user);
     if ($category === null) {
         return new KunenaForumCategoryUser(null, $user);
     }
     if ($reload || empty(self::$_instances[$user->userid][$category])) {
         $user_categories = KunenaForumCategoryUserHelper::getCategories($category, $user);
         self::$_instances[$user->userid][$category] = array_pop($user_categories);
     }
     return self::$_instances[$user->userid][$category];
 }
예제 #4
0
 /**
  * @param   array $ids
  * @param   bool  $value
  * @param   mixed $user
  *
  * @return integer
  *
  * @since	2.0.0
  */
 public static function subscribe($ids, $value = true, $user = null)
 {
     $count = 0;
     // Pre-load all items
     $usercategories = KunenaForumCategoryUserHelper::getCategories($ids, $user);
     foreach ($usercategories as $usercategory) {
         if ($usercategory->subscribed != (int) $value) {
             $count++;
         }
         $usercategory->subscribed = (int) $value;
         $usercategory->save();
     }
     return $count;
 }