НОВЫЙ подсчет рейтинга, помогите допилить до конца

Решил сделать рейтинг и силу чуть по другому, один голос одна единица, чтоб не было такого что кто то ставит голос и сразу +3 добавляется. ну и еще пару правок


Теперь:
Рейтинг — стала популярностью (голосовали за его топики (+1 к рейтингу), за его комментарий(+0,1 к рейтингу))
Т.к при таких значениях сила бесполезна превращаем её в показатель активности пользователя
Сила – это активность юзера (когда юзер голосует за топик или коммент, хоть в + хоть в -( юзеру +0,1 к силе) оставить коммент(+1 к силе) написать топик +10)

таким образом мы видим «рейтинг» — на сколько хорошие комментарии и топики он пишет, и «сила» — на сколько он активен.

переделываем заодно рейтинг блога, все оценки топиков деленные на кол-во топиков, т.е средний был топиков в этом блоге.


Ползем в \classes\modules\rating\ Rating.class.php

Расчет рейтинга при голосовании за комментарий
//Устанавливаем рейтинг комментария 1 голос  +-1
$oComment->setRating($oComment->getRating()+$iValue);
//Начисляем рейтинг  автору коммента 1 голос  +-0,1
$oUserComment=$this->User_GetUserById($oComment->getUserId());
$oUserComment->setRating($oUserComment->getRating()+$iValue*0,1);
$this->User_Update($oUserComment);
//Начисляем силу юзеру +0,1 при любом +- голосовании
$oUser=$this->User_GetUserById($oUser->getUserId());
$iSkillNew=$oUser->getSkill()+0,1;
$iSkillNew=($iSkillNew<0)? 0: $iSkillNew;
$oUser->setSkill($iSkillNew); 
return $iValue;


Расчет рейтинга и силы при голосовании за топик
// Устанавливаем рейтинг топика 1 голос +-1
$oTopic->setRating($oTopic->getRating()+$iValue);
// Начисляем  рейтинг автору топика 1 голос +-1
$oUserTopic=$this->User_GetUserById($oTopic->getUserId());
$oUserTopic->setRating($oUserTopic->getRating()+$iValue);
$this->User_Update($oUserTopic);
// Начисляем силу юзеру +0,1 при любом +- голосовании
$oUser=$this->User_GetUserById($oUser->getUserId());
$iSkillNew=$oUser->getSkill()+0,1;
$iSkillNew=($iSkillNew<0)? 0: $iSkillNew;
$oUser->setSkill($iSkillNew); 
//3 строки ниже считают не средний бал, общее кол-во рейтинга всех топиков в блоге
$oBlog=$this->Blog_GetBlogById($oTopic->getBlogId());
$oBlog->setRating($oBlog->getRating()+$iValue);
$this->Blog_UpdateBlog($oBlog);
return $iValue;

Вот тут мне по поводу блогов нужна помощь, нужно как то строки связанные с блогом, разделить еще на кол-во топиков в блоге. кто нить сможет помочь? возможно поможет эта тема, там прописано кол-во топиков в блоге, просто я не настолько опытен чтоб это содеинить (http://livestreet.ru/blog/addons/10265.html)

ну и удаляем все с рейтинга блога, чтоб нельзя было голосовать за него кнопками, должно выглядеть вот так:
public function VoteBlog(ModuleUser_EntityUser $oUser, ModuleBlog_EntityBlog $oBlog, $iValue){
return 0;
}

и втом числе у рейтинга юзера, чтоб нельзя было голосовать за него кнопками
public function VoteUser(ModuleUser_EntityUser $oUser, ModuleUser_EntityUser $oUserTarget, $iValue) {
return 0;
}


Чтоб сделать создании топика +10 к силе юзера
classes\actions\ActionTopic.class.php функция SubmitAdd()
после этого
/**
* Получаем топик, чтоб подцепить связанные данные
*/
$oTopic=$this->Topic_GetTopicById($oTopic->getId());

вставляем
$oUserTopic = $this->oUserCurrent;
$iSkillNew=$oUserTopic->getSkill()+10;
$iSkillNew=($iSkillNew<0)? 0: $iSkillNew;
$this->User_Update($oUserTopic);


функция EventDelete()

$oUserTopic = $this->oUserCurrent;
$iSkillNew=$oUserTopic->getSkill()-10;
$iSkillNew=($iSkillNew<0)? 0: $iSkillNew;
$this->User_Update($oUserTopic);


и еще вопрос может кто поможет
Как сделать при оставлении коммента +1 к силе юзера?

P.S.: буду очень рад если укажите на ошибки или добавите что то)

В поисках идеальной системы рейтинга



Этот сайт пример того как плохо работает система. Всего пользователей: 14990, а комментарии с трудом собирают +2. Топики +10. И не всегда понятно кто не прав из за отключенных минусов.

Если же включить систему по умолчанию, ее будет крайне легко выкрутить на топ либо заминусовать, достаточно 1 приколиста.

Система инвайтов на начальном этапе себя не оправдывает.

Плагин «Simple Rating» частично решает проблему, выставлением параметров за блокировку при нном количестве минусов или плюсов. Но это не выход.

Пример хорошей системы можно наблюдать на джойреакторе, все новые пользователи имеют силу голоса ниже 0,1. Но со временем, приобретая так называемую силу которая тут реализована приобретают свои положенные +1 за голос, может и больше. Я не против отдавать авторитетному пользователю до +5 за раз. Не зря же он зарабатывал силу.

На этом движке даже самый лучший пользователь может иметь +2 как я понял, что эквивалентно всего 2-м зарегистрированным только что пользователям.

У проекта который я сейчас создаю писькомерка играет важную роль, и хотелось бы от нее максимум пользы.

Голосование за топик.

Здравствуйте. Появилась идея социализировать сайт на livestreet. Нигде, ни в одном шаблоне не встречал, чтоб показывались ники или аватарки людей, которым понравится топик или не понравился.

Вообще, возможно ли узнать, кто проголосовал за топик и вывести список кому понравилось, а кому нет — ниже поста, но до комментариев. А еще лучше, вывести список тех, кому понравился топик, на главной странице, чуть ниже короткого описания топика.

Помогите советом, а если это возможно, то и кодом :)

Решение: Нашел плагин, который решает данную проблему :)