Beispiel #1
0
 /**
  * rateContent() - handles rating a content
  * @param int @id - which content
  * @return void
  */
 public function rateContent($id)
 {
     try {
         $content = Content::select('id')->findOrFail($id);
     } catch (Exception $e) {
         App::abort(404);
     }
     $rating = ContentRating::select('id', 'rating_sum', 'rating_count', 'lastip')->where('content_id', $id)->first();
     $sanitize = new Sanitizer(Input::all());
     Input::merge($sanitize->get());
     $validate = new ContentRating();
     if ($validate->validate(Input::all())) {
         if ($rating) {
             // Update and save
             if (Request::getClientIp() != $rating->lastip) {
                 $rating->rating_sum = $rating->rating_sum + Input::get('rate');
                 $rating->rating_count = $rating->rating_count + 1;
                 $rating->lastip = Request::getClientIp();
                 $rating->save();
                 //return with success message
             } else {
                 return Redirect::back()->withErrors(array('failure' => 'Вече сте гласували за този урок.'));
             }
         } else {
             // First time voting for this content, we have to make a new record in the database
             $validate->content_id = $id;
             $validate->rating_sum = Input::get('rate');
             $validate->rating_count = 1;
             $validate->lastip = Request::getClientIp();
             $validate->save();
         }
         return Redirect::back()->withErrors(array('success' => 'Вашият глас беше записан успешно.'));
     }
     return Redirect::back()->withErrors(array('failure' => 'Грешка, моля опитайте отново.'));
 }
Beispiel #2
0
 public function setUserContentRating($iUserId, $iTranslateRate)
 {
     $oPeriod = Period::getCurrentPeriod();
     $oUser = UserTable::getInstance()->findOneById($iUserId);
     if (!($oContentRating = $oUser->hasRateTranslate($this->getId()))) {
         $oContentRating = new ContentRating();
         $oContentRating->setContentId($this->getId());
         $oContentRating->setPeriodId($oPeriod->getId());
         $oContentRating->setUserId($iUserId);
     }
     $oContentRating->setContentRating($iTranslateRate);
     $oContentRating->save();
     $aArticles = ContentRatingTable::getInstance()->getRatesByArticle($this->getId(), $oPeriod->getId());
     $iSum = 0;
     foreach ($aArticles as $oRating) {
         $iSum += $oRating->getContentRating();
     }
     $this->setContRate($iSum / $aArticles->count());
     $this->save();
 }