本文整理汇总了PHP中ModuleUser_EntityUser::setRating方法的典型用法代码示例。如果您正苦于以下问题:PHP ModuleUser_EntityUser::setRating方法的具体用法?PHP ModuleUser_EntityUser::setRating怎么用?PHP ModuleUser_EntityUser::setRating使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModuleUser_EntityUser
的用法示例。
在下文中一共展示了ModuleUser_EntityUser::setRating方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: VoteUser
/**
* Расчет рейтинга и силы при голосовании за пользователя
*
* @param ModuleUser_EntityUser $oUser
* @param ModuleUser_EntityUser $oUserTarget
* @param int $iValue
*
* @return float
*/
public function VoteUser($oUser, $oUserTarget, $iValue)
{
if (!C::Get('plugin.rating.user.vote')) {
return 0;
}
if (!C::Get('plugin.rating.user.dislike') && $iValue < 0) {
return 0;
}
/**
* Начисляем силу и рейтинг юзеру, используя логарифмическое распределение
*/
$skill = $oUser->getSkill();
$iMinSize = C::Get('plugin.rating.user.min_change');
//0.42;
$iMaxSize = C::Get('plugin.rating.user.max_change');
//3.2;
$iSizeRange = $iMaxSize - $iMinSize;
$iMinCount = log(0 + 1);
$iMaxCount = log(C::Get('plugin.rating.user.max_rating') + 1);
// 500
$iCountRange = $iMaxCount - $iMinCount;
if ($iCountRange == 0) {
$iCountRange = 1;
}
if ($skill > C::Get('plugin.rating.user.left_border') and $skill < C::Get('plugin.rating.user.right_border')) {
// 50-200
$skill_new = $skill / C::Get('plugin.rating.user.mid_divider');
//70
} elseif ($skill >= C::Get('plugin.rating.user.right_border')) {
// 200
$skill_new = $skill / C::Get('plugin.rating.user.right_divider');
//2
} else {
$skill_new = $skill / C::Get('plugin.rating.user.left_divider');
//40
}
$iDelta = $iMinSize + (log($skill_new + 1) - $iMinCount) * ($iSizeRange / $iCountRange);
/**
* Определяем новый рейтинг
*/
$iRatingNew = $oUserTarget->getRating() + $iValue * $iDelta;
$oUserTarget->setRating($iRatingNew);
return $iValue * $iDelta;
}
示例2: VoteUser
/**
* Расчет рейтинга и силы при голосовании за пользователя
*
* @param ModuleUser_EntityUser $oUser
* @param ModuleUser_EntityUser $oUserTarget
* @param int $iValue
* @return float
*/
public function VoteUser(ModuleUser_EntityUser $oUser, ModuleUser_EntityUser $oUserTarget, $iValue)
{
/**
* Начисляем силу и рейтинг юзеру, используя логарифмическое распределение
*/
$skill = $oUser->getSkill();
$iMinSize = 0.42;
$iMaxSize = 3.2;
$iSizeRange = $iMaxSize - $iMinSize;
$iMinCount = log(0 + 1);
$iMaxCount = log(500 + 1);
$iCountRange = $iMaxCount - $iMinCount;
if ($iCountRange == 0) {
$iCountRange = 1;
}
if ($skill > 50 and $skill < 200) {
$skill_new = $skill / 40;
} elseif ($skill >= 200) {
$skill_new = $skill / 2;
} else {
$skill_new = $skill / 70;
}
$iDelta = $iMinSize + (log($skill_new + 1) - $iMinCount) * ($iSizeRange / $iCountRange);
/**
* Определяем новый рейтинг
*/
$iRatingNew = $oUserTarget->getRating() + $iValue * $iDelta;
$oUserTarget->setRating($iRatingNew);
return $iValue * $iDelta;
}
示例3: VoteUser
/**
* Расчет рейтинга и силы при голосовании за пользователя
*
* @param ModuleUser_EntityUser $oUser
* @param ModuleUser_EntityUser $oUserTarget
* @param int $iValue
*
* @return float
*/
public function VoteUser($oUser, $oUserTarget, $iValue)
{
if (!C::Get('plugin.simplerating.user.vote')) {
return 0;
}
if (!C::Get('plugin.simplerating.user.dislike') && $iValue < 0) {
return 0;
}
/**
* Начисляем рейтинг пользователя
*/
$oUserTarget->setRating((double) $oUserTarget->getRating() + $iValue * (double) C::Get('plugin.simplerating.user.add'));
/**
* Убавляем рейтинг голосующего, если нужно
*/
if (C::Get('plugin.simplerating.user_remove')) {
$oUser->setRating((double) $oUser->getRating() + (double) C::Get('plugin.simplerating.user.remove'));
$this->User_Update($oUser);
}
return (double) C::Get('plugin.simplerating.user.add');
}
示例4: VoteUser
/**
* Расчет рейтинга и силы при голосовании за пользователя
*
* @param ModuleUser_EntityUser $oUser
* @param ModuleUser_EntityUser $oUserTarget
* @param int $iValue
* @return float
*/
public function VoteUser(ModuleUser_EntityUser $oUser, ModuleUser_EntityUser $oUserTarget, $iValue, $voted = false)
{
$iRatingNew = $oUserTarget->getRating() + $iValue;
$oUserCurrent = $this->User_GetUserCurrent();
$oUserTarget->setRating($iRatingNew);
if (!$voted) {
if ($iValue > 0) {
$oUserTarget->setSkill($oUserTarget->getSkill() + 10.0);
} else {
$oUserTarget->setSkill($oUserTarget->getSkill() - 10.0);
}
}
$this->User_Update($oUserTarget);
return $iValue;
}