Ejemplo n.º 1
0
 /**
  * Check whether the user can have the badge
  *
  * @param Users $user
  * @return boolean
  */
 public function canHave(Users $user)
 {
     $noBountyCategories = $this->getNoBountyCategories();
     $conditions = 'categories_id NOT IN (' . join(', ', $noBountyCategories) . ') AND accepted_answer = "Y"';
     $posts = $user->getPosts(array($conditions, 'order' => 'created_at DESC'));
     foreach ($posts as $post) {
         $ownReply = $post->countReplies(array("accepted = 'Y' AND users_id = ?0", 'bind' => array($user->id)));
         if ($ownReply) {
             return true;
         }
     }
     return false;
 }
Ejemplo 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;
 }
Ejemplo n.º 3
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;
 }