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

Решил сделать рейтинг и силу чуть по другому, один голос одна единица, чтоб не было такого что кто то ставит голос и сразу +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-м зарегистрированным только что пользователям.

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

Сила / Рейтинг - как изменить? [РЕШЕНО]

Всем привет) это опять я) Нужна помощь, как изменить слова СИЛА и РЕЙТИНГ во всем шаблоне на свои? Искал и не нашел( Помогите люди добрые!

Решение: у меня в ...\templates\language в файле russian.php вводиш слово в поиск когда открыл файл, находиш, меняешь.

Что за беспорядок?

эй модераторы, администрация там, незнаю кто чаще из вас бывает на сайте, делайте что нибудь с рейтингом, что за общество тут сформировалось которое любит понажимать на стрелку "-" ??!?!

вам нужно модуль написать где будет одна большая кнопка минус, чтобы нажимали все кому не лень, пока не достанет.

давать минус за это это помоему вверх идиотизма:«Да возможность синхронизации была бы интересна» ЗА ЧТО ТУТ МИНУС МОЖНО ДАТЬ?!)))) из-за непродуманной системы рейтинга вы стимулируйте людей делать несколько аккаунтов, А У ПРОЕКТА который НЕ следит за такой ВАЖНОЙ мелочью есть ли будущее? это очень весомый аргумент я считаю, когда тебя просто так минусуют.

Можете минусовать этот пост до изниможения)) зарегистррую новый аккаунт :D