[VoteForms] Система голосования и опросов
Возможности:
— конструктор форм для голосования в modx manager
— вывод результатов голосования с сортировкой и поиском в modx manager
— вывод форм и результатов для голосования на сайте, обновление на лету через ajax
— возможность привязать результаты голосования к ресурсу или любому другому объекту создав новый thread

Скачать можно здесь, документация
Скоро опубликуется в modstore
Посмотреть на работу можно здесь
user: voteforms
pass: ByBBNSTe
Как видите, можно вызывать сразу несколько форм на одной странице, а результаты голосования обновляются на лету.
Результаты голосования привязываются к thread «ветвям» -> по умолчанию имя thread resource-[[*id]], но можно указать свое значение. Это позволяет использовать одну форму для голосования несколько раз на одной странице или привязать голосования к чему-то кроме ресурса.
Также можно использовать вместе с pdoResources.
Например сортировка ресурсов по рейтингу из формы c id 1:
Код на github, создавайте isuue
Спасибо Wassi Wassinen за идею и поддержку.
Компонент бесплатный, так что donation )
— конструктор форм для голосования в modx manager
— вывод результатов голосования с сортировкой и поиском в modx manager
— вывод форм и результатов для голосования на сайте, обновление на лету через ajax
— возможность привязать результаты голосования к ресурсу или любому другому объекту создав новый thread

Скачать можно здесь, документация
Скоро опубликуется в modstore
Посмотреть на работу можно здесь
user: voteforms
pass: ByBBNSTe
Как видите, можно вызывать сразу несколько форм на одной странице, а результаты голосования обновляются на лету.
Результаты голосования привязываются к thread «ветвям» -> по умолчанию имя thread resource-[[*id]], но можно указать свое значение. Это позволяет использовать одну форму для голосования несколько раз на одной странице или привязать голосования к чему-то кроме ресурса.
Также можно использовать вместе с pdoResources.
Например сортировка ресурсов по рейтингу из формы c id 1:
[[pdoResources?
&class=`modResource`
&parents=`0`
&tpl=`@INLINE <li>[[+pagetitle]] - <span class="badge">[[+rating]]</span> </li>`
&leftJoin=`{
"VoteFormThread": {
"class": "VoteFormThread",
"on": "modResource.id = VoteFormThread.resource AND VoteFormThread.form = 1"
}
}`
&select=`{
"modResource": "*",
"VoteFormThread": "rating"
}`
&sortby=`VoteFormThread.rating`
&sortdir=`DESC`
]]Код на github, создавайте isuue
Спасибо Wassi Wassinen за идею и поддержку.
Компонент бесплатный, так что donation )
Комментарии: 51
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Хоть бы написал чем именно он кажется тебе более интересным и продуманным.
— рейтинг в чанке выводится плейсхолдером [[+rating]].
Если форм для голосований больше, чем одна — заменить вот тут «VoteFormThread.form = 1» единицу на id формы.
Можете еще проверить параметр [[+totalVoted]] — он в этом запросе тоже присутствует (сколько всего голосов за товар) — если он выводится, то с запросом все в порядке.
Ну и, как всегда, не лишним будет обновить кэш..)
Запретить… ну, на текущий момент, разве что только костылями или правками ядра. Вообще, с этим вопросом вам лучше обратиться к разработчику.
И дальше уже оформлял визуализацию при помощи css:
Могу предложить вам на правах самого простого варианта вот такую логику для решения данной задачи:
— размещаем оба сниппета (отображения рейтинга и голосования) в один контейнер с уникальным классом (допустим, ratingDiv)
— добавляем по уникальному классу для контейнера с отображением рейтинга и для контейнера, содержащий элементы для голосования (допустим, ratingTotal и letsRate соответственно)
— при помощи css вешаем на форму голосования следующие стили:
Если коротко, то мы вешаем форму с голосованием точно поверх дива с результатами голосования и прячем ее. А при наведении мы визуально скрываем результаты и проявляем форму для голосования, достигая нужного эффекта.
Единственный минус такой задачи в целом — при последующих заходах на страницу пользователь будет видеть итоговый рейтинг товара, но не будет видеть свою оценку.
Для решения этого могу предложить прятать форму для голосования в принципе, а при нажатии на кол-во голосов выводить форму для голосования во всплывающем окне аля fancybox. Но тут уже дело вкуса.)
2) Хранить значение звездочки в атрибуте как-то плохо наверное
Вот тока вопрос с вызовом на конкретный ресурс… А если ресурсов в ветке штук 30 к каждому из них я могу привязать голосование каждого ресурса… И могу ли я сортировать наибольшее количество голосов ..?
из VoteForm. Всё равно требует залогиниться.
еще из
и авторизацию больше не запрашивает, проголосовал один раз не авторизованным все успешно.
Для проверки открыл туже страницу другим браузером и пытаюсь еще голосовать, но число голосов не увеличивается.
Насчет варианта сделать голосование без авторизации сомневаюсь, нет способа избежать накрутки голосования любым школьником.
Без авторизации есть css rating stars но у него есть ОГРОМНЫЕ минусы: 1. работает с перезагрузкой страницы 2. появляется огромное число дублей страницы, за счет формирования звездочек ссылками siteurl?vote=5&star_id=… (а именно по 5 штук к каждой)
В общем voteforms идеально бы подошел на многих сайтах, если бы была возможность голосовать без авторизации.
Еще пример, это сайт где вообще нет авторизации, потому что пользователям это не нужно, они пришли за информацией и никто не будет регистрироваться для оценки статьи (даже через соц сеть), а если регистрироваться не нужно то запросто кликнут для оценки. Для сообществ я с вами полностью согласен нужна авторизация, а для «информационников» она в большинстве случаев бесполезна.
А вот рейтинг это очень нужное дополнение, по нему можно сортировать статьи для пользователей, а значит повысить удобство сайта.
Личный пример на основе Tickets. Были комментарии только для авторизованных (через соц. сеть), вроде нажми кнопочку и оставь отзыв не заполняя доп. поля — комментариев «кот наплакал». Сделали возможность комментировать для анонимов и люди стали оставлять комментарии, при это им приходится заполнять имя, email… где логика? Но это факт.
На мой взгляд у вас хороший компонент, а добавление возможности голосовать не авторизованным, сделало бы его еще лучше.
Спасибо.
Полно ресурсов где никто ничего не накручивает, хотя ресурс существует годами с открытым голосованием. Просто это никому особо не нужно. Ну проголосует особо недовольный 2 раза из разных браузеров — ерунда. Если вдруг начинаются накрутки, ничто не мешает поставить авторизацию. Так что вариант без авторизации точно нужен и имеет смысл.
P.S.: за компонент в любом случае спасибо. Донейт с меня. Надеюсь будет развиваться и дальше.
modx.pro/work/6413-the-survey-module/
Не работает Ajax, т.е. результат вижу только после перезагрузки. Возможно какие-то дополнительные модули/плагины нужны?
Как вывести результат голосования конкретного юзера?
А можно сделать так, чтобы рейтинг появлялся сразу, а не после того, как кто-нибудь из авторизированных пользователей его активирует?
Зависает на этапе Trying to install pdoTools. Please wait…
но сайт пишет «Вы должны авторизоваться, чтобы проголосовать»
Что не так?