Beispiel #1
0
 public static function getRank($model)
 {
     $total = $model->point->total;
     $lowerLimit = 0;
     $rank = null;
     foreach (Rank::model()->findAll() as $rank) {
         if ($total >= $lowerLimit and $total < $rank->max_point) {
             break;
         } else {
             $lowerLimit = $rank->max_point;
             continue;
         }
     }
     return strtolower($rank->name);
 }
Beispiel #2
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Rank the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Rank::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Beispiel #3
0
 /**
  * This function has to be called when a user just gained points
  * The function will upgrade the user if necessary
  * @return 1 if upgraded otherwise 0
  */
 public static function userRankUpgrade($idUser, $nbPoints, $type)
 {
     $result = 0;
     $user = User::model()->with("score" . $type)->findByPk($idUser);
     $score = $type === 'Truth' ? $user->scoreTruth->score : $user->scoreDare->score;
     //$type = $type === 'Truth'? 0 : 1;
     $ranks = Rank::model()->findAllByAttributes(array('type' => $type === 'Truth' ? 0 : 1));
     foreach ($ranks as $row) {
         if ($score - $row->points < 0 && $score - $row->points + $nbPoints >= 0) {
             $userRank = new Userrank();
             $userRank->idUser = $idUser;
             $userRank->createDate = date('Y-m-d, H:i:s');
             $userRank->idRank = $row->idRank;
             $userRank->save();
             $result = 1;
         }
     }
     return $result;
 }