Esempio n. 1
0
 /**
  * Check whether the user already have this badge
  *
  * @param Users $user
  * @return boolean
  */
 public function has(Users $user)
 {
     $has = false;
     $categories = $this->getExpertQuery($user)->execute([$user->id]);
     foreach ($categories as $categoryRow) {
         $category = Categories::findFirstById($categoryRow->categories_id);
         if ($category) {
             $badgeName = $category->name . ' / ' . $this->getName();
             $has |= UsersBadges::count(['users_id = ?0 AND badge = ?1', 'bind' => [$user->id, $badgeName]]) == 0;
         }
     }
     return (bool) (!$has);
 }
Esempio n. 2
0
 /**
  * Check whether the user can have the badge
  *
  * @param  Users $user
  * @return boolean
  */
 public function canHave(Users $user)
 {
     $ids = [];
     $noBountyCategories = $this->getNoBountyCategories();
     $conditions = 'categories_id NOT IN (' . join(', ', $noBountyCategories) . ') AND number_views >= 10000';
     $posts = $user->getPosts([$conditions, 'columns' => 'id', 'order' => 'created_at DESC']);
     foreach ($posts as $post) {
         $have = UsersBadges::count(['users_id = ?0 AND badge = ?1 AND type = "P" AND code1 = ?2', 'bind' => [$user->id, $this->getName(), $post->id]]);
         if (!$have) {
             $ids[] = $post->id;
         }
     }
     return $ids;
 }
Esempio n. 3
0
 /**
  * Check whether the user can have the badge
  *
  * @param  Users $user
  * @return boolean
  */
 public function canHave(Users $user)
 {
     $ids = [];
     $noBountyCategories = $this->getNoBountyCategories();
     $conditions = '(IF(votes_up IS NULL, 0, votes_up) - IF(votes_down IS NULL, 0, votes_down)) >= 5';
     $replies = $user->getReplies([$conditions, 'columns' => 'id, posts_id', 'order' => 'created_at DESC']);
     foreach ($replies as $reply) {
         $have = UsersBadges::count(['users_id = ?0 AND badge = ?1 AND type = "C" AND code1 = ?2', 'bind' => [$user->id, $this->getName(), $reply->id]]);
         if (!$have) {
             $ids[] = [$reply->posts_id, $reply->id];
         }
     }
     return $ids;
 }
Esempio n. 4
0
 /**
  * Check whether the user can have the badge
  *
  * @param  Users $user
  * @return boolean
  */
 public function canHave(Users $user)
 {
     $ids = array();
     $noBountyCategories = $this->getNoBountyCategories();
     $conditions = 'categories_id NOT IN (' . join(', ', $noBountyCategories) . ') AND
     (IF(votes_up IS NULL, 0, votes_up) - IF(votes_down IS NULL, 0, votes_down)) >= 5';
     $posts = $user->getPosts(array($conditions, 'columns' => 'id', 'order' => 'created_at DESC'));
     foreach ($posts as $post) {
         $have = UsersBadges::count(array('users_id = ?0 AND badge = ?1 AND type = "P" AND code1 = ?2', 'bind' => array($user->id, $this->getName(), $post->id)));
         if (!$have) {
             $ids[] = $post->id;
         }
     }
     return $ids;
 }
Esempio n. 5
0
 /**
  * Check whether the user already have this badge
  *
  * @param Users $user
  * @return boolean
  */
 public function has(Users $user)
 {
     return UsersBadges::count(['users_id = ?0 AND badge = ?1', 'bind' => [$user->id, $this->getName()]]) > 0;
 }
Esempio n. 6
0
 /**
  * Check whether the user already have this badge
  *
  * @param Users $user
  * @return boolean
  */
 public function has(Users $user)
 {
     return UsersBadges::count(array('users_id = ?0 AND badge = ?1', 'bind' => array($user->id, $this->getName()))) > 0;
 }