Плагин "ShowVotes"

Мы пишем топики, мы голосуем за топики, но мы не видим, кто же проголосовал за наш топик. А было бы любопытно, правда? Поэтому мы с Lora_GT сделали этот плагин.

Плагин «ShowVotes» показывает список проголосовавших за топик. Список этот выглядит примерно так:

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

ShowVotes позволяет настроить его таким образом, чтобы отображать список не всем пользователям, а лишь ограниченному их кругу. Настройка производится в конфигурационном файле плагина, возможные варианты настройки следующие:
  • «admin» — только администраторы
  • «author» — только автор топика и администраторы
  • «user» — все авторизовавшиеся пользователи и администраторы
  • «all» или любое другое значение — все пользователи сайта, включая гостей

Скачать плагин.

UPD 09.2014: плагин портирован на LS 1.0.3.

63 комментария

avatar
отличный плагин! обязательно у себя заюзаю. ещё добавлю в конфиг дату, начиная с которой это показывать. иначе те кто минусовал неправильно поймут :)
avatar
и выложите в репо. можна на гитхаб. удобней будет изменения вносить
avatar
ещё добавлю в конфиг дату, начиная с которой это показывать.
не забудь поделиться ;)
avatar
Раз уж есть такой интерес, то сделал эту функцию в плагине. Опционально включается и настраивается в конфиге.
avatar
А можно сделать дату относительную, например, через 10 дней после публикации, или после того как закончится время, в течение которого можно голосовать за топик? Сейчас, я так понимаю дата абсолютная, т.е. например 10 февраля показывать список проголосовавших.
avatar
а смысл? :) Хотите конкурсы делать? :)
avatar
Смысл как раз есть. Пока за топик можно голосовать, то голосовавшие не отображаются, а после уже можно показать.
А смысл в установке абсолютной даты объясните.
avatar
ну наконец-то!!! огромное спасибо за данный плагин, очень давно ждал
avatar
Спасибо! Обалденно!
avatar
Поставил, никак не могу понять с каким плагином он конфликтует, установил плагин, но ничего не показывается

aceAdminPanel, v.1.4-dev.117

aceBlockManager, v.1.0.108

aceMySearch, v.1.4.106

Blogs Autoconnect Plugin, v.1.0.0

Auto fields, v.1.0.0

Change Date, v.0.0.1

Extended registration, v.1.0.0

Обратная связь, v.1.1.0

Groups, v.1.0

Image Preview, v.0.3

Mailing, v.0.1

NiceURL, v.2.1

Note, v.1.0

Static page, v.1.2.1

QIP Smiles, v.0.0.4

Блок опросов, v.1.0.0

Robostat, v.0.5.3

SEO, v.0.1

ShowVotes, v.0.1

Sitemap, v.0.2

Контакты и социальные сервисы, v.1.0

All tags, v.1.0

Запрет редактирования комментированного топика, v.1.1.2

Автоматическое сохранение черновиков, v.1.0.0

ВКонтакте Видео, v.1.0
avatar
Это шутка? :)
avatar
А если серьёзно, то проверьте, не забыли ли активировать его. А если не забыли, то дайте ссылку на ваш сайт в личку, я посмотрю.
avatar
Всё проблема решена.
avatar
У меня такая же проблема… Че-то не показывает. Может поделитесь что было?
avatar
у меня стоял хак, чтоб админ голосовал бесконечное количество раз, если у вас тоже стоит, то голоса админов он учитывать не будет.а отображается плагин только при открытом топике(с комментами)
avatar
Не подскажете — где именно стоит этот хак? Я поставил и забыл :) А теперь хочу отключить.
avatar
осталось сделать выборное президентство и можно делать точную копию лепры на лс =)
  • Vilz
  • +2
avatar
ОННН еще
avatar
Жепки еще нужни
avatar
Жепки да… Без них никуда ;)
avatar
И аналог представленного плагина для комментариев
avatar
Спасибо, ребята!
avatar
Спасибо! Интересный функционал.
avatar
Ну наконец-то самая большая мечта моих юзеров будет удовлетворена. Спасибо!
avatar
no comments… only + + +
klass!
avatar
спасибо )))
avatar
Спасибо!
З.Ы. Для вывода списка проголосовавших за комменты/юзеров/блоги планируется подобный плагин?
avatar
Подумаем :)
avatar
Присоединяюсь, для юзеров было бы хорошо.
avatar
Спасибо огромное.
P.s.: у себя сделал список голосовавших выпадающим по клику
avatar
Поделитесь с дилетантами, пожалуйста.
avatar
все изменения — в первой части файла topic_voters.tpl, вот как она у меня выглядит:
{literal}

{/literal}

{literal}

{/literal}

Мнения

{if $aVotes.positive}
… дальше без изменений
avatar
упс. в общем выложил весь файл topic_voters.tpl здесь:
narod.ru/disk/4871759001/topic_voters.tpl.html
avatar
юзайте pastie.org
avatar
Вопрос: дата не относительная (через 10 дней после публикации)?
avatar
точно вопрос ко мне?
avatar
Сори, ошибся ))
avatar
переделал открывает закрывает но куда нажимать вот такая штука Мнения
как исправить?
avatar
В редакторе надо выставить кодировку Utf8.
avatar
поставил тоже самое
avatar
{literal}
<style>
a.span11 { margin: 0 0 0 70px; }
#div11 { padding: 0px 0px 60px 60px; }
.topic .showvotes-positive { margin: 5px 10px; clear: both; }
.topic .showvotes-negative { margin: 5px 10px; clear: both; }
.topic .showvotes-neutral { margin: 5px 10px; clear: both; }
.topic .showvotes-positive li { color: green; display: inline; }
.topic .showvotes-negative li { color: red; display: inline; }
.topic .showvotes-neutral li { color: gray; display: inline; }
.topic .showvotes-positive li a { color: green; }
.topic .showvotes-negative li a { color: red; }
.topic .showvotes-neutral li a { color: gray; }
.topic .showvotes-positive div.count { float: left; text-align: right; width: 42px; color: green; margin-right: 5px; }
.topic .showvotes-negative div.count { float: left; text-align: right; width: 42px; color: red; margin-right: 5px; }
.topic .showvotes-neutral div.count { float: left; text-align: right; width: 42px; color: gray; margin-right: 5px; }
</style>
{/literal}

{literal}
<script>
function collapsElement(id) {
    if ( document.getElementById(id).style.display != "none" ) {
        document.getElementById(id).style.display = 'none';
    }
    else {
        document.getElementById(id).style.display = '';
    }
}
</script>
{/literal}

<a href="javascript:collapsElement('div11')" onfocus="this.blur()" class="span11">
<span>Мнения</span>
</a>
<div style="display:none" id="div11">
{if $aVotes.positive}
	<ul class="showvotes-positive">
	<div title="{$aLang.shv_positive}" class="count">+ ({$aVotes.positive_count}):</div>
{foreach from=$aVotes.positive item=oVote name=showvotes_list}
{assign var='oUser' value=$oVote->getUser()}
		<li><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>{if !$smarty.foreach.showvotes_list.last}, {/if}</li>
{/foreach}
	</ul>
{/if}

{if $aVotes.negative}
	<ul class="showvotes-negative">
	<div title="{$aLang.shv_negative}" class="count">- ({$aVotes.negative_count}):</div>
{foreach from=$aVotes.negative item=oVote name=showvotes_list}
{assign var='oUser' value=$oVote->getUser()}
		<li><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>{if !$smarty.foreach.showvotes_list.last}, {/if}</li>
{/foreach}
	</ul>
{/if}

{if $aVotes.neutral}
	<ul class="showvotes-neutral">
	<div title="{$aLang.shv_neutral}" class="count">/ ({$aVotes.neutral_count}):</div>
{foreach from=$aVotes.neutral item=oVote name=showvotes_list}
{assign var='oUser' value=$oVote->getUser()}
		<li><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>{if !$smarty.foreach.showvotes_list.last}, {/if}</li>
{/foreach}
	</ul>
{/if}
</div>


может тут чего не то? хотя вроде все то
avatar
первый вариант ваш вот мой
{literal}
<style>
.topic .showvotes-positive { margin: 5px 10px; clear: both; }
.topic .showvotes-negative { margin: 5px 10px; clear: both; }
.topic .showvotes-neutral { margin: 5px 10px; clear: both; }
.topic .showvotes-positive li { color: green; display: inline; }
.topic .showvotes-negative li { color: red; display: inline; }
.topic .showvotes-neutral li { color: gray; display: inline; }
.topic .showvotes-positive li a { color: green; }
.topic .showvotes-negative li a { color: red; }
.topic .showvotes-neutral li a { color: gray; }
.topic .showvotes-positive div.count { float: left; text-align: right; width: 42px; color: green; margin-right: 5px; }
.topic .showvotes-negative div.count { float: left; text-align: right; width: 42px; color: red; margin-right: 5px; }
.topic .showvotes-neutral div.count { float: left; text-align: right; width: 42px; color: gray; margin-right: 5px; }
</style>
{/literal}


<div>
{if $aVotes.positive}
	<ul class="showvotes-positive">
	<div title="{$aLang.shv_positive}" class="count">+ ({$aVotes.positive_count}):</div>
{foreach from=$aVotes.positive item=oVote name=showvotes_list}
{assign var='oUser' value=$oVote->getUser()}
		<li><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>{if !$smarty.foreach.showvotes_list.last}, {/if}</li>
{/foreach}
	</ul>
{/if}

{if $aVotes.negative}
	<ul class="showvotes-negative">
	<div title="{$aLang.shv_negative}" class="count">- ({$aVotes.negative_count}):</div>
{foreach from=$aVotes.negative item=oVote name=showvotes_list}
{assign var='oUser' value=$oVote->getUser()}
		<li><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>{if !$smarty.foreach.showvotes_list.last}, {/if}</li>
{/foreach}
	</ul>
{/if}

{if $aVotes.neutral}
	<ul class="showvotes-neutral">
	<div title="{$aLang.shv_neutral}" class="count">/ ({$aVotes.neutral_count}):</div>
{foreach from=$aVotes.neutral item=oVote name=showvotes_list}
{assign var='oUser' value=$oVote->getUser()}
		<li><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>{if !$smarty.foreach.showvotes_list.last}, {/if}</li>
{/foreach}
	</ul>
{/if}
</div>
avatar
сначала поставь кодировку, потом перепиши заново кирилицу и сохрани
avatar
тоже самое не знаю в чем дело а можно сделать чтоб не только ники были а перед ником аватарка еще была?
avatar
Подскажите, как может быть, что топик получил одно количество голосов (+5), а плагин показывает, что проголосовало всего четверо?
Пруф
avatar
проголосовал человек, у которого «сила голоса» 2, зависит от рейтинга
avatar
все, спасибо.
avatar
Если не ошибаюсь, аналогичный плагин в прошлом году уже был выпущен, но по какой-то причине не появился в каталоге.
avatar
кем если не секрет?
avatar
=)
avatar
только я сделал всплывающее модальное окно с голосами ± — мне показалось так лучше и места не занимает. Может, тоже сделаете?
avatar
Лучше прятать в скрытом контейнере и показывать по :hover, модальное окно слишком тяжеловесно для такого простого действия. Кстати, почему плагин не появился в каталоге?
avatar
Вот какая то тенденция к велосепедостроению намечается. В плане что пишутся плагины которые уже есть. Надо какое то дерево плагинов что ли вести.
avatar
Единственная причина, по которой он писался — потому что таковых решений ни я, ни Lora_GT не видели. А насчёт дерева плагинов — так им должен быть livestreetcms.com. Правда, версия 0.2 уже почти сутки там висит в неподтверждённых, хоть свой каталог заводи.
avatar
Полностью согласен. К каталогу есть много вопросов. Нужно либо их решать, либо создавать независимое работающее решение, лишённое недостатков официального каталога.
avatar
Этого модуля не было в каталоге, как и нет еще ряда модулей, которые в принципе есть.
avatar
а что в версии 0.2 сделано/переделано/добавлено?
avatar
Это просто вкусняшка=)
Спасибо)
avatar
Плагин прошёл тест на совместимость с LiveStreet 0.5
avatar
Друзья, а свежего решения нет, случайно?
avatar
Есть обновление плагина для LS 1.0.3: github.com/snevolin/showvotes
В каталог залить пока не могу, что-то там не работает.
avatar
Плагин в каталоге: catalog.livestreetcms.com/addon/view/70/
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.