Как задействовать рейтинг при голосовании за комментарий?

Привет всем!

Захотела я для своей ЭМО-Социальной сети сделать такую штуку чтобы када пользователь голосует за комент то ему и рейтинг капал, а не только сила.

Я зашла сюда: Rating.class.php и нашла тут штуку которая поднимает рейтинг и силу за голос в топе и попыталась перенести ее в комент, но у меня какая то ошибка.

Можете сказать где и чего нужно тут поменять чтобы вместе с силой капала репа?

public function VoteComment(ModuleUser_EntityUser $oUser, ModuleComment_EntityComment $oComment, $iValue) {
/**
* Устанавливаем рейтинг комментария
*/
$oComment->setRating($oComment->getRating()+$iValue);
/**
* Начисляем силу автору коммента, используя логарифмическое распределение
*/
$skill=$oUser->getSkill();
$iMinSize=0.01;
$iMaxSize=0.03;
$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/130;
}
$iDelta=$iMinSize+(log($skill_new+1)-$iMinCount)*($iSizeRange/$iCountRange);
/**
* Сохраняем силу
*/
$oUserComment=$this->User_GetUserById($oComment->getUserId());
$iSkillNew=$oUserComment->getSkill()+$iValue*$iDelta;
$iSkillNew=($iSkillNew<0) ? 0 : $iSkillNew;
$oUserComment->setSkill($iSkillNew);
$this->User_Update($oUserComment);
return $iValue;
}

19 комментариев

avatar
вот блин
недавно рассказывал кому-то же в деталях. ещё и графики нарисовал. что поискать лень?
avatar
Я искала, честно, честно по запросам:

рейтинг
рейтинг за комменты
комменты


но ничего такого не нашла… :( будь другом, расскажи, плиз, еще раз…
avatar
неужели так сложно пройтись по моим же комментам?
найти картинку с графиком и присмотреться?
livestreet.ru/blog/questions/8701.html
avatar
или просто дай линк ну ту тему
avatar
PSNet, график красивый, только я вот что-то не поняла совсем. Что мне нужно изменить в моем коде, чтобы голосуюя за комментарий поднимался рейтинг и сила участника? Объясни, пожалуйста, на примере кода.

Спасибо.
avatar
сила и так там растет

там перед

$this->User_Update($oUserComment);
return $iValue;
}


нужно вставить что-то типа

$oUserComment->setRating($oUserComment->getRating () + 0.3); // 0.3 - прирост силы
avatar
Работает!!! Спасибо тебе огромнейшее. Набиру карму заплюсую!
avatar
$oUserComment->setRating($oUserComment->getRating () +$iValue*0.3); // 0.3 - прирост силы

Иначе всегда будет плюсоваться (Что при плюсе, что при минусе).
avatar
Может мне кто-нибудь помочь, рассказать что нужно добавить в код, чтобы при голосовании за комментарий у участника вместе с силой росла репутация? пожалуйста!
  • aby
  • 0
avatar
отбой…
avatar
Я рейтингом всё плюсует. Может кто объяснить плюсуется ли сила? В смысле я сейчас имею небольшой рейтинг, 0.1 голосую за комментарии, но сила не начиляется никому. Какой там порог, как вообще работает?
avatar
Тут есть хорошее описание начисления силы и рейтинга, с графиками, мин-макс и т.п. В случае с рейтингом 0.1 сила может идти, но из-за округления быть не видимой со стороны сайта — лучше в базе проверять.
avatar
Я базе сразу и посмотрел, там полностью по нулям. Поэтому у меня возник вопрос, она вообще начисляется? Может она до какого-то рейтинга голосующего не начинает начислять?
avatar
Логику эту можно посмотреть в classes/modules/rating/Rating.class.php, голосование за коммент — в функции VoteComment. Я там никаких ограничений не вижу, по идее хотя бы 0.004 должно начислить — но можно ж сесть и проверить с твоими входными значениями, и что будет на выходе.
avatar
Ну я проверил, ничего не начислят, до того, как писать сообщение естeственно я заглядывал в Rating.class и да, там я вижу, что начисление прописано. В базе рейт мой 0.040. Там минимальный написано 0.004. У пользователей в базе ничего не прибавляется, даже 0.001 не добавилось. Может оно там как-то расчитывает, что и этого не набирается. Мистика.
avatar
0.004 — это не минимальный рейтинг пользователя, а нижний предел диапазона начисляемой силы. Расчитанное лограрифмическое значение масштабируется по

Не знаю, почему у тебя не работает. Надо глубже ковырять, плагины смотреть и т.п. Ну и всё же руками посчитать по этой формуле с твоим значением силы, что на выходе получится. Если для тебя это важно :)
avatar
Нет никаких плагинов: Blog Autoconnect, AutoCut, Static Page, NiceURL. Всё.
avatar
Та же проблема была. Копался долго, решилась просто — вместо минимального порога в 0.004 поставил 0.01. Походу, где-то округляется до двух знаков после запятой при прибавлении силы и минимальные 0.004 превращаются в 0.000
avatar
Помощь в голосовании nakrutka.org/product/nakrutka-golosov/
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.