Голосование modx

Голосование - зачем писать оно же уже есть !!!

Прежде чем сесть писать свой сниппет и модуль для голосования, я попробывал использовать другие уже написанны а точнее 2. Первый название не помню, но что то типа Poll, второй это EasyPoll - вот это достойный modx модуль|снипет голосования в качестве его плюсов можно выделить поддержка голосований на разных языках, простота установки, ну и работает в принципе нормально. Что же тогда меня не устроило в модуле EasyPoll, вот как раз поддержка многих языков вот это создаёт накладки в процессе управления (администрирования) голосований для обычных пользователей, там происходит дублёж голосования (надо вводить по 2 раза) - это первый на мой взгляд и существенный недостаток для пользователя, 2 - не совсем удобный администраторский терминал, 3 - работает ajax версия для принятия голоса, но опять только на mootools, а я преимущественно использую JQuery, конечно можно было дописать другую функцию, но оно того не стоит.

В своем сниппете|модуле simplePoll, я уберю вышеизложенные недостатки, а также добавлю новый функционал. Поддержка групп - возможность создавать группы и включать в них вопросы голосования, тем самым можно реализовать поддержку многоязычности и разделить опросы по тематическим группам, попробую убить двух зайчиков одним выстрелом.

Скриншоты администраторской части

Философия вывода

Как правило голосование выводится в шаблоне сквозным блоком, вот имеено здесь возникает вопрос а как определить в каком месте и какое голосование выводить. Проанализировав возможные варианты я выделил 4 типа.

  • Явное указание нужного голосования по его идентификатору(или нескольких голосований) в вызове сниппета, т.е. будут показываться только заранее определённые голосования.
  • Случайный вывод - выбирается любое голосование из всех голосований.
  • Группа - выбирает случайное голосование из указанной группы.
  • ??нтелектуальное на основе привязки групп к страницам - каждое голосование относится к одной или нескольким группам, группы в свое время привязанны к страницам сайта, соответсвенно на основание того на какой странице находится пользователь выбираются группы которые должны выводиться на странице сайта, а из этих групп выбирается случайное голосование.


Примеры работы.

No find polls.

No find polls.