Наш вариант решения вопроса с рейтингом блогов

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

в Rating.class.php

Берем функцию public function VoteTopic(UserEntity_User $oUser, TopicEntity_Topic $oTopic, $iValue)
, которая обрабатывает голосование за посты
Далее заменяем это:

/**
* Сохраняем силу и рейтинг
*/
$oUserTopic=$this->User_GetUserById($oTopic->getUserId());
$iSkillNew=$oUserTopic->getSkill()+$iValue*$iDelta;
$iSkillNew=($iSkillNew<0)? 0: $iSkillNew;
$oUserTopic->setSkill($iSkillNew);
$oUserTopic->setRating($oUserTopic->getRating()+$iValue*$iDelta/2.73);
$this->User_Update($oUserTopic);
return $iDeltaRating;

На это:

/**
* Сохраняем силу и рейтинг
*/
$oUserTopic=$this->User_GetUserById($oTopic->getUserId());
$iSkillNew=$oUserTopic->getSkill()+$iValue*$iDelta;
$iSkillNew=($iSkillNew<0)? 0: $iSkillNew;
$oUserTopic->setSkill($iSkillNew);
$oUserTopic->setRating($oUserTopic->getRating()+$iValue*$iDelta/2.73);
$this->User_Update($oUserTopic);

$oBlog=$this->Blog_GetBlogById($oTopic->getBlogId());
$oBlog->setRating($oBlog->getRating()+$iValue*$iDelta/2.73);
$this->Blog_UpdateBlog($oBlog);

return $iDeltaRating;

То есть добавляем в блог то же значение рейтинга, которое добавляется автору поста в репутацию. Всё. Работает и с персональными блогами.

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

avatar
Спасибо! Это разумно и логично.
avatar
И вообще, упростить бы всю эту карму-шмарму, голосование за топики влияет сразу на рейтинг автора, с увеличением рейтинга растет и сила голоса.
avatar
А разве сейчас иначе? Что голосование за топики не увеличивает рейтинг пользователя и его силу?
avatar
только силу. Рейтинг увеличивается только после голосования напрямую в профиле пользователя.
avatar
см код в этом посте — репутация тоже меняется
avatar
Это работает в версии 0.3.1?
avatar
не знаю, проверяй. у меня 0.4
avatar
Если для 04, то врываться в код движка -плохая идея
avatar
да ну, какой код. это как дизайн под себя подправить или ненужную ссылку убрать.
avatar
Согласен, мелочь. Тут больше пострадала идеология, чем здравый смысл.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.