/** * 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' => 'Грешка, моля опитайте отново.')); }
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(); }