public function updateRating(&$sbarticle, $force = false)
{
if (strtolower(get_class($sbarticle)) !== strtolower('SoapboxSbarticles')) {
return false;
}
$totalrating = 0.00;
$votesDB = 0;
$finalrating = 0;
$sbvotedata_arr =& $this->getVotedatasByArticleID($sbarticle->getVar('articleID'), true, 0, 0);
$votesDB = count($sbvotedata_arr);
if (empty($sbvotedata_arr) || $votesDB === 0) {
return false;
}
foreach ($sbvotedata_arr as $sbvotedata) {
if (is_object($sbvotedata)) {
$totalrating += $sbvotedata->getVar('rating');
}
}
if ($totalrating !== 0 && $votesDB !== 0) {
$finalrating = ($totalrating / $votesDB) + 0.00005;
$finalrating = number_format($finalrating, 4);
}
//
$sbarticle->setVar('rating', $finalrating);
$sbarticle->setVar('votes', $votesDB);
if (!$this->insertArticle($sbarticle, $force)) {
return false;
}
return true;
}