本文整理汇总了PHP中ModuleUser_EntityUser::getSkill方法的典型用法代码示例。如果您正苦于以下问题:PHP ModuleUser_EntityUser::getSkill方法的具体用法?PHP ModuleUser_EntityUser::getSkill怎么用?PHP ModuleUser_EntityUser::getSkill使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModuleUser_EntityUser
的用法示例。
在下文中一共展示了ModuleUser_EntityUser::getSkill方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Update
/**
* Обновляет юзера
*
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @return bool
*/
public function Update(ModuleUser_EntityUser $oUser)
{
$sql = "UPDATE " . Config::Get('db.table.user') . "\n SET\n user_password = ? ,\n user_mail = ? ,\n user_skill = ? ,\n user_date_activate = ? ,\n user_date_comment_last = ? ,\n user_rating = ? ,\n user_count_vote = ? ,\n user_activate = ? ,\n user_activate_key = ? ,\n user_profile_name = ? ,\n user_profile_sex = ? ,\n user_profile_country = ? ,\n user_profile_region = ? ,\n user_profile_city = ? ,\n user_profile_birthday = ? ,\n user_profile_about = ? ,\n user_profile_date = ? ,\n user_profile_avatar = ? ,\n user_profile_foto = ? ,\n user_settings_notice_new_topic = ? ,\n user_settings_notice_new_comment = ? ,\n user_settings_notice_new_talk = ? ,\n user_settings_notice_reply_comment = ? ,\n user_settings_notice_new_friend = ? ,\n user_settings_timezone = ?\n WHERE user_id = ?\n ";
if ($this->oDb->query($sql, $oUser->getPassword(), $oUser->getMail(), $oUser->getSkill(), $oUser->getDateActivate(), $oUser->getDateCommentLast(), $oUser->getRating(), $oUser->getCountVote(), $oUser->getActivate(), $oUser->getActivateKey(), $oUser->getProfileName(), $oUser->getProfileSex(), $oUser->getProfileCountry(), $oUser->getProfileRegion(), $oUser->getProfileCity(), $oUser->getProfileBirthday(), $oUser->getProfileAbout(), $oUser->getProfileDate(), $oUser->getProfileAvatar(), $oUser->getProfileFoto(), $oUser->getSettingsNoticeNewTopic(), $oUser->getSettingsNoticeNewComment(), $oUser->getSettingsNoticeNewTalk(), $oUser->getSettingsNoticeReplyComment(), $oUser->getSettingsNoticeNewFriend(), $oUser->getSettingsTimezone(), $oUser->getId())) {
return true;
}
return false;
}
示例2: VoteImage
/**
* Vote for image
*
* @param ModuleUser_EntityUser $oUser
* @param PluginLsgallery_ModuleImage_EntityImage $oImage
* @param int $iValue
* @return int
*/
public function VoteImage(ModuleUser_EntityUser $oUser, PluginLsgallery_ModuleImage_EntityImage $oImage, $iValue)
{
$skill = $oUser->getSkill();
$iDeltaRating = $iValue;
if ($skill >= 100 and $skill < 250) {
$iDeltaRating = $iValue * 2;
} elseif ($skill >= 250 and $skill < 400) {
$iDeltaRating = $iValue * 3;
} elseif ($skill >= 400) {
$iDeltaRating = $iValue * 4;
}
$oImage->setRating($oImage->getRating() + $iDeltaRating);
/**
* Начисляем силу и рейтинг автору топика, используя логарифмическое распределение
*/
$iMinSize = 0.1;
$iMaxSize = 8;
$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 / 70;
} elseif ($skill >= 200) {
$skill_new = $skill / 10;
} else {
$skill_new = $skill / 100;
}
$iDelta = $iMinSize + (log($skill_new + 1) - $iMinCount) * ($iSizeRange / $iCountRange);
/**
* Сохраняем силу и рейтинг
*/
$oUserImage = $this->User_GetUserById($oImage->getUserId());
$iSkillNew = $oUserImage->getSkill() + $iValue * $iDelta;
$iSkillNew = $iSkillNew < 0 ? 0 : $iSkillNew;
$oUserImage->setSkill($iSkillNew);
$oUserImage->setRating($oUserImage->getRating() + $iValue * $iDelta / 2.73);
$this->User_Update($oUserImage);
return $iDeltaRating;
}
示例3: VoteForumPost
/**
* Расчет рейтинга и силы при гоосовании за пост на форуме
*
* @param ModuleUser_EntityUser $oUser Объект пользователя, который голосует
* @param PluginForum_ModuleForum_EntityPost $oPost Объект поста
* @param int $iValue
* @return int
*/
public function VoteForumPost(ModuleUser_EntityUser $oUser, PluginForum_ModuleForum_EntityPost $oPost, $iValue)
{
/**
* Устанавливаем рейтинг поста
*/
$iDeltaRating = $iValue;
$oPost->setRating($oPost->getRating() + $iDeltaRating);
/**
* Начисляем силу и рейтинг автору топика, используя логарифмическое распределение
*/
$iMinSize = 0.1;
$iMaxSize = 8;
$iSizeRange = $iMaxSize - $iMinSize;
$iMinCount = log(0 + 1);
$iMaxCount = log(500 + 1);
$iCountRange = $iMaxCount - $iMinCount;
if ($iCountRange == 0) {
$iCountRange = 1;
}
$skill = $oUser->getSkill();
if ($skill > 50 and $skill < 200) {
$skill_new = $skill / 70;
} elseif ($skill >= 200) {
$skill_new = $skill / 10;
} else {
$skill_new = $skill / 100;
}
$iDelta = $iMinSize + (log($skill_new + 1) - $iMinCount) * ($iSizeRange / $iCountRange);
/**
* Сохраняем силу и рейтинг
*/
$oUser = $this->User_GetUserById($oPost->getUserId());
$iSkillNew = $oUser->getSkill() + $iValue * $iDelta;
$iSkillNew = $iSkillNew < 0 ? 0 : $iSkillNew;
$oUser->setSkill($iSkillNew);
$oUser->setRating($oUser->getRating() + $iValue * $iDelta / 2.73);
$this->User_Update($oUser);
return $iDeltaRating;
}
示例4: GetCountInviteAvailable
/**
* Получаем число доступных приглашений для юзера
*
* @param ModuleUser_EntityUser $oUserFrom Объект пользователя
*
* @return int
*/
public function GetCountInviteAvailable($oUserFrom)
{
$sDay = 7;
$iCountUsed = $this->GetCountInviteUsedByDate($oUserFrom->getId(), date('Y-m-d 00:00:00', mktime(0, 0, 0, date('m'), date('d') - $sDay, date('Y'))));
$iCountAllAvailable = round($oUserFrom->getRating() + $oUserFrom->getSkill());
$iCountAllAvailable = $iCountAllAvailable < 0 ? 0 : $iCountAllAvailable;
$iCountAvailable = $iCountAllAvailable - $iCountUsed;
$iCountAvailable = $iCountAvailable < 0 ? 0 : $iCountAvailable;
return $iCountAvailable;
}
示例5: GetCountInviteAvailable
/**
* Получаем число доступных приглашений для юзера
*
* @param unknown_type $oUserFrom
* @return unknown
*/
public function GetCountInviteAvailable(ModuleUser_EntityUser $oUserFrom)
{
$sDay = 7;
$iCountUsed = $this->GetCountInviteUsedByDate($oUserFrom->getId(), date("Y-m-d 00:00:00", mktime(0, 0, 0, date("m"), date("d") - $sDay, date("Y"))));
$iCountAllAvailable = round($oUserFrom->getRating() + $oUserFrom->getSkill());
$iCountAllAvailable = $iCountAllAvailable < 0 ? 0 : $iCountAllAvailable;
$iCountAvailable = $iCountAllAvailable - $iCountUsed;
$iCountAvailable = $iCountAvailable < 0 ? 0 : $iCountAvailable;
return $iCountAvailable;
}
示例6: 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;
}
示例7: 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;
}
示例8: CheckRuleActionParam
/**
* @param string $sParam
* @param mixed $xValue
* @param ModuleUser_EntityUser $oUser
* @param array $aParams
*
* @return bool
*/
public function CheckRuleActionParam($sParam, $xValue, $oUser, $aParams = array())
{
if ($sParam == 'registration_time') {
if (time() - strtotime($oUser->getDateRegister()) >= $xValue) {
return TRUE;
} else {
return FALSE;
}
}
if ($sParam == 'rating') {
if ($oUser->getRating() >= $xValue) {
return TRUE;
} else {
return FALSE;
}
}
if ($sParam == 'skill') {
if ($oUser->getSkill() >= $xValue) {
return TRUE;
} else {
return FALSE;
}
}
if ($sParam == 'count_comment') {
if (E::ModuleComment()->GetCountCommentsByUserId($oUser->getId(), 'topic') >= $xValue) {
return TRUE;
} else {
return FALSE;
}
}
if ($sParam == 'count_topic') {
if (E::ModuleTopic()->GetCountTopicsPersonalByUser($oUser->getId(), 1) >= $xValue) {
return TRUE;
} else {
return FALSE;
}
}
if ($sParam == 'rating_sum_topic') {
if (is_array($xValue) && count($xValue) > 1) {
$iRating = $xValue[0];
$iTime = $xValue[1];
} else {
$iRating = $xValue;
$iTime = 60 * 60 * 24 * 14;
}
if ($this->GetSumRatingTopic($oUser->getId(), date('Y-m-d H:i:s', time() - $iTime)) >= $iRating) {
return TRUE;
} else {
return FALSE;
}
}
if ($sParam == 'rating_sum_comment') {
if (is_array($xValue) && count($xValue) > 1) {
$iRating = $xValue[0];
$iTime = $xValue[1];
} else {
$iRating = $xValue;
$iTime = 60 * 60 * 24 * 7;
}
if ($this->GetSumRatingComment($oUser->getId(), date('Y-m-d H:i:s', time() - $iTime)) >= $iRating) {
return TRUE;
} else {
return FALSE;
}
}
return FALSE;
}
示例9: 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;
}