Example #1
0
	public function starRating($id, $ratingAjax) {

      $id = (int)$id;
      $org = Orgs::model()->findByPk($id);
      if($org){

          $rating = OrgsRating::model()->findByAttributes(array(
            'org'=>$id
          ));
          // если не было категории - делаем
          if(!$rating)
          {
            $rating = new OrgsRating;
            $rating->org = $id;
            $rating->vote_count = 1;
            $rating->vote_sum = $ratingAjax;
            $rating->vote_average = round($rating->vote_sum / $rating->vote_count,2);
            $rating->save(false);

            $org->rating_id = $rating->id;
            $org->save(false,array('rating_id'));                    
          } else {
            $rating->vote_count = $rating->vote_count + 1;
            $rating->vote_sum = $rating->vote_sum + $ratingAjax;
            $rating->vote_average = round($rating->vote_sum / $rating->vote_count,2);
            if(!$rating->save()){
                VarDumper::dump($rating->errors); die(); // Ctrl + X  Delete line
            }
          }
          
    }
    return true;
    }
    public function actionStarRating($id) {
      $ratingAjax=isset($_POST['rate']) ? $_POST['rate'] : 0;
      $id = (int)$id;
      $org = Orgs::model()->findByPk($id);
      if($org){

          $rating = OrgsRating::model()->findByAttributes(array(
            'org'=>$id
          ));
          // если не было категории - делаем
          if(!$rating)
          {
            $rating = new OrgsRating;
            $rating->org = $id;
            $rating->vote_count = 1;
            $rating->vote_sum = $ratingAjax;
            $rating->vote_average = round($rating->vote_sum / $rating->vote_count,2);
            $rating->save(false);

            $org->rating_id = $rating->id;
            $org->save(false,array('rating_id'));                    
          } else {
            $rating->vote_count = $rating->vote_count + 1;
            $rating->vote_sum = $rating->vote_sum + $ratingAjax;
            $rating->vote_average = round($rating->vote_sum / $rating->vote_count,2);
            if(!$rating->save()){
                VarDumper::dump($rating->errors); die(); // Ctrl + X  Delete line
            }
          }
          echo CJSON::encode(array('status'=>'OK'));
          Yii::app()->end();
    }
    }