Плагин "Simple Rating"


Плагин упрощает рейтинговую систему на сайте.

Принцип работы

  • У блогов убран рейтинг, теперь популярность блога оценивается по кол-ву читателей в нем (или по кол-ву топиков, настраивается в конфиге).
  • Убрана сила у пользователей.
  • За пользователей теперь нельзя голосовать, рейтинг пользователя зависит от рейтинга его топиков и комментариев.
  • При голосовании за топик, автору топика прибавляется/вычитается единица к рейтингу (настраивается в конфиге).
  • При голосовании за комментарий, автору комментария прибавляется/вычитается 0.1 к рейтингу (настраивается в конфиге).
  • При голосовании за топик/комментарий, топику/комментарию прибавляется/вычитается единица.

Поддерживаемые шаблоны

— developer
— synio
— social
— simple


GitHub

github.com/deniart/ls-plugin-simplerating

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

avatar
Ух ты класс, сейчас подобное обдумываем для одного проекта, этот плагин будет очень полезным по крайней мере для изучения. Спасибо!
  • NPC
  • 0
avatar
Поддерживаю! Для простых проектов не требуется сложная система рейтинга. Вы — молодец!
  • omano
  • 0
avatar
отличный плагин. ээх, если бы еще под 051…
avatar
отличная штука) спасибо
avatar
Так и должно быть: если в конфиге установить
$config['sort_blogs_by_count_user'] = false;
т.е. сортировка идет по количеству топиков, то в разделе сайта «Блоги» сортировка идет по количеству топиков (правильно), а в правом блоке блоке «Блоги» сортировка продолжается только по количеству читателей?
  • Akell
  • 0
avatar
Поправлю
avatar
вот, только хотел написать. Такая же проблема, но при переключении вкладки все показывает правильно
avatar
Здорово) Надо потестировать
avatar
А что происходит с теми голосами, что уже имеются на сайте?
avatar
ничего
avatar
Полезный прибамбас. Респект :)
  • aex
  • 0
avatar
Ну наконец то) не соглашусь только с блогами — надо бы к вычислению их рейтинга, помимо всего прочего, добавить рейтинг топиков, которые в блоге опубликованы.
avatar
Плагин обновлен, исправлена сортировка блогов в блоке «Блоги».
avatar
нашел маленький недочет в блоке блоги список блогов автоматически не выстраивает блоги в порядке уменьшения, и срабатывает при нажатии на зеленую кнопку обновить. как подправить?
avatar
нет решения?
avatar
avatar
Спасибо, щас проверим
avatar
Отлично работает, спасибо
avatar
У блогов убран рейтинг, теперь популярность блога оценивается по кол-ву читателей в нем (или по кол-ву топиков, настраивается в конфиге).
Как понять это? Я правильно понимаю, что рейтинг нельзя будет прибавлять и убавлять юзерам, но значения будут сами прибавляться если в нем много топиков/читателей?

Плагин обновлен, исправлена сортировка блогов в блоке «Блоги».
в шаблоне были внесены изменения?
avatar
Как понять это?
Рейтинг у блогов убран вообще, ни плюсовать ни минусовать блог нельзя.

в шаблоне были внесены изменения?
github.com/deniart/ls-plugin-simplerating/commit/f01089c329c72bbfd598895483f50dc7f92ea360
avatar
За пользователей нельзя голосовать, а зачем тогда осталось вот это? Нравится-не нравится.

  • aex
  • 0
avatar
Снимаю вопрос. Релиз обновил.
avatar
пишет Ошибка: Файл плагина не найден почему?
avatar
Переименуйте папку с плагином в simplerating
avatar
а зачем убрали силу?
avatar
А я на своих сайтах эту силу сразу убираю, по-дефолту. Пока юзерам объяснишь, что это такое, голова сломается. Рейтинг они еще понимают.
avatar
Почему, после деактивации плагина, система рейтинга не меняется на стандартную? (кеш почистил)
avatar
Логика должна вернуться исходная, но те значения рейтингов и т.п., которые на тот момент уже посчитаны по «новой схеме», останутся.
avatar
В том то и дело, что «логики» нет, Сила не вернулась… Такой единицы нет вообще, как будто плагин включен, что мне делать?:(
avatar
Social? До включения плагина сила разве была? В Social с самых первых версий сила отсутствует.
avatar
В том то и дело что шаблон дефолтный Сино, раньше была сила, сейчас пропала даже после удаления плагина и очистки кеша
avatar
Кэш в браузере и на сайте еще раз попробуйте почистить.
avatar
нет не помогает… ладно, придется значит без силы обходится =( решите эту проблему пожалуйста, может кому другому пригодится… ну и я конечно буду ждать… Заранее спасибо
avatar
Нашел проблему, проблема в css, ставлю стандартные файлы, все нормально, но дизайн пропадает… Хочу найти все классы этого плагина и удалить, может опять все вернется на круги своя
avatar
Странно, там всё в папке плагина находится, стили — в частности, — в файле simplerating/templates/skin/synio/css/simplerating.css (для Synio).

Ты ж можешь сам сырцы плагина посмотреть, там всё очень логично расположено. Я смотрел :)
avatar
Уже сделал. В основном css файле остался, там где сила стоял display: none; я его ликвидировал и все стало нормально :)
avatar
Есть ли возможность совмещения плагина рейтинга и ls gallery livestreetcms.com/addons/view/378/? т.е рейтинг автора зависит от рейтинга изображений…
  • opics
  • 0
avatar
В шаблоне Social в профиле пользователя при наведении указателя на значение рейтинга, появляется всплывающая надпись: «голосов: 0», хотя рейтинг пользователя выше 0. С чем может быть связано?
avatar
прошу прощения) как я понял, надпись «голосов: 0» вообще не актуальна при активном плагине Simple Rating? Ведь Так? Следовательно, как можно убрать это всплывающее сообщение?
avatar
Тайтл можно убрать в самом шаблоне \social\actions\ActionProfile\sidebar.tpl строка 46 убрать
title="{$aLang.user_vote_count}: {$oUserProfile->getCountVote()}"
avatar
Спасибо большое! Помогло!)
avatar
вот заметил и у себя такую же проблему… В блоке «Блоги», сортировка верная только когда нажимаешь на кнопку обновить (шаблон Social).
Внёс новые изменения:
PluginSimplerating.class.php
classes/blocks/BlockBlogs.class.php
templates/skin/social/blocks/block.blogs_top.tpl
Пишет ошибку: Fatal error: Class 'ModuleBlock' not found in /var/www/html/engine/classes/Engine.class.php on line 374

Может что-то не так сделал?
avatar
а вот на локальном сервере всё заработало… а на удалённом эту ошибку выдаёт(
avatar
Убедитесь что файл блока находится в папке plugins\simplerating\classes\blocks
avatar
Именно так. Проверил. Понимаю конечно абсурдность ситуации. Компонент-то рабочий. На локалке же всё работает. На удалённом сервере ошибку выдаёт...

Специально пробовал удалять файл BlockBlogs.class.php, тогда пишет вполне очевидную ошибку:
avatar

Может быть ошибка из-за прав доступа??? Хотя пробовал и с правами доступа к папкам и файлам экспериментировать… не помогает..((
avatar
это из-за установленной админ панели, тоже сталкивался, решил отключил админ панель до фикса конфликта
avatar
Если я вставляю в файл BlockBlogs.class.php доплнительный код:
class ModuleBlock {	
	public function Blog_GetBlogsByFilter()
	{
	}
}


Ошибка уходит, но в блоке на сайте не отображаются блоги… только когда нажимаешь обновить… Т.е. получается что по какой то причине у меня требует класс ModuleBlock именно в файле BlockBlogs.class.php. Как такое может быть?
avatar
А не может такое быть что конфликтует с AceAdminPanel из-за переопределения через $aInherits??? На локалке то у меня нет AceAdminPanel… может поэтому там и работает… подобное тут обсуждалось:
http://livestreet.ru/blog/questions/12869.html
avatar
Видимо действительно есть конфликт с AceAdminPanel: http://livestreet.ru/blog/12187.html#comment202785
avatar
Плагин Simple Rating запрещает голосовать за пользователя и блоги, но в ленте активности остались соответственные опции… Как их можно убрать?
avatar
Нашёл)) Может кому-то понадобится: \classes\modules\stream\Stream.class.php
Строчки:
'vote_blog' => array('related' => 'blog'),
'vote_user' => array('related' => 'user'),
avatar
понадобилось.:)
avatar
и мне)
avatar
Исправлено
avatar
жаль что шаблон Simple не поддерживает
avatar
баг simple rating в simple

Вот баг, что я нашел в Simple
Есть еще баги по этому плагину? Отпишитесь подробно в комментариях, мы готовы оплатить разработку поддержки Симплы.
avatar
Плагин обновлен!

Simple Rating 1.2
— Добавлена поддержка шаблона Simple
avatar
а на главной странице synio с этой версией плагина так:

в предыдущей версии такого не было.
avatar
В новой версии добавилась только папка simple, код плагина не изменялся, попробуйте перестановить плагин.
avatar
я понимаю, что не менялся код, но тем не менее. Факт остаётся фактом, переустановка не помогла. Откатился на версию 1.1
avatar
Мелкая оплошность в файле simplerating/classes/blocks/BlockBlogs.class.php


заменить
class PluginSimplerating_BlockBlogs extends PluginSimplerating_Inherit_Block

на
class PluginSimplerating_BlockBlogs extends PluginSimplerating_Inherit_BlockBlogs
avatar
Спасибо, поправил, из за этого бага как раз появлялась ошибка при включенном плагине aceAdminPanel.
avatar
Плагин обновлен

Simple Rating 1.3
— Исправлен блок с настройками активности
— Исправлен баг в наследовании класса блоков
avatar
Плагин активировн
Тема social
Сила в профилях все равно показывается
В конфиге темы прописано:
/* Показывать силу в шаблоне или нет */
$config['view']['skill'] = false;
avatar
Это баг в шаблоне, чтобы поправить надо в \templates\skin\social\actions\ActionProfile\sidebar.tpl перед строкой 55 вставить {if {cfg name='view.skill'}} и после строки 60 {/if}.
avatar
Спасибо
avatar
Спасибо за плагин! Очень кстати!
  • nicko
  • 0
avatar
Вот такой вот баг обнаружил:


Шаблон synio сайт forum-family.ru/
  • nicko
  • 0
avatar
М.б. кому надо. Для того чтобы разрешить голосовать за пользователя только админу и какому нибудь юзеру. Можно сделать так:

/plugins/simplerating/classes/modules/rating/Rating.class.php

public function VoteUser(ModuleUser_EntityUser $oUser, ModuleUser_EntityUser $oUserTarget, $iValue) {
		return 0;
}


Заменить

public function VoteUser(ModuleUser_EntityUser $oUser, ModuleUser_EntityUser $oUserTarget, $iValue) {
		$oUserCurrent = $this->User_GetUserCurrent();

		if ($oUserCurrent->isAdministrator() or $oUserCurrent->getUserLogin()=='__ЛОГИНЮЗЕРА__') {
			/**
			 * Начисляем силу и рейтинг юзеру, используя логарифмическое распределение
			 */
			$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;
		} else {
			return 0;
		}
	}


И соответственно в /plugins/simplerating/templates/skin/default/actions/ActionProfile/profile_top.tpl добавить кнопки голосования скрытыми от всех кроме админа или нужного юзера

{if  $oUserCurrent and $oUserCurrent->isAdministrator() || $oUserCurrent and $oUserCurrent->getLogin()=='__ЛОГИНЮЗЕРА__'}
<div id="vote_area_user_{$oUserProfile->getId()}" class="vote {if $oUserProfile->getRating()>=0}vote-count-positive{else}vote-count-negative{/if} {if $oVote} voted {if $oVote->getDirection()>0}voted-up{elseif $oVote->getDirection()<0}voted-down{/if}{/if}">
		<div class="vote-label">{$aLang.user_rating}</div>
		<a href="#" class="vote-up" onclick="return ls.vote.vote({$oUserProfile->getId()},this,1,'user');"></a>
		<a href="#" class="vote-down" onclick="return ls.vote.vote({$oUserProfile->getId()},this,-1,'user');"></a>
		<div id="vote_total_user_{$oUserProfile->getId()}" class="vote-count count" title="{$aLang.user_vote_count}: {$oUserProfile->getCountVote()}">{if $oUserProfile->getRating() > 0}+{/if}{$oUserProfile->getRating()}</div>
</div>
{/if}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.