Компонент "Опросы" для InstantCMS 2.x

+55
4.42K

Приветствую любителей InstantCMS!

После реализации закладок (для которых думаю немного допилить функционал) встала необходимость расширить типы контента возможностью добавления пользовательских опросов.

Иллюстрация

Компонент опросы

Основная идея функционала компонента взята на сайте habrahabr.ru. Пользователи при публикации своих статей могут добавлять к ним один или несколько опросов. Эта функция пользуется достаточной популярностью и позволяет получать фидбек от сообщества портала.

Установка компонента стандартна для InstantCMS 2.x в автоматическом или ручном режиме.

После успешной инсталляции компонента в системе появятся 3 новых "модуля" — компонент Опросы в разделе компонентов, поле Опросы и 2 виджета. Чтобы расширить функционал какого-либо типа контента и позволить пользователям устраивать опросы в рамках данного типа контента, необходимо добавить поле "Опросы".

Всё достаточно просто. Заходим в Панель управленияТипы контента. Выбираем тип контента "Посты" и перемещаемся в настройки полей. Далее жмем "Создать поле" и указываем тип нового поля "Опросы". Остальные параметры поля настраиваем по вкусу )). Также можно установить положение поля внутри записи относительно других полей — это позволит позиционировать опросы в теле типа контента в соответствиями с вашими требованиями.
Завершив настройку нужного нам типа контента компонент Опросы готов к работе! Теперь при добавлении новой записи или редактировании существующей мы можем наблюдать добавленное нами поле:

Иллюстрация
Поле выводит менеджер опросов для текущей (или вновь создаваемой) записи типа контента.

В рамках интуитивно-понятного интерфейса не трудно догадаться куда следует нажать чтобы добавить опрос к текущей записи типа контента =).
Кликаем на пимпу "Добавить" и перед нами появляется форма редактирования опроса:

Иллюстрация

На форме мы можем лицезреть следующие поля:

"Вопрос" — сюда необходимо написать вопрос, который будет содержать в себе тему самого опроса =);
"Можно голосовать за несколько вариантов" — при установке галочки в это поле, пользователи смогут выбрать несколько вариантов ответов, а не только один единственный. Максимально возможное количество вариантов выбора прописывается в поле "Максимальное количество вариантов".
"Установить дату окончания опроса" — если мы желаем ограничить голосование во времени, то устанавливаем галочку и в открывшемся поле "Дата завершения" указываем какого числа опрос перестанет принимать ответы. Пользователи будут видеть только результаты опроса. Указанная дата будет последним днем включительно (до 23:59:59 в зависимости от настроек сервера, реальное время может незначительно отличаться), когда можно будет проголосовать.
"Варианты ответов" — это группа полей где необходимо вписать возможные варианты ответов на указанный вопрос выше. По умолчанию отображается 2 поля для ответов, но их количество легко увеличить нажатием кнопки "Добавить ответ" или нажатием комбинации клавиш "Ctrl+Enter".
Если количество ответов больше двух, справа от поля появляются кнопки удаления, а слева "держатель" перемещения конкретного варианта ответа. Таким образом, можно достаточно легко настроить последовательность ответов и удалить лишние или ошибочные варианты.
По завершению редактирования опроса, необходимо нажать кнопку "Добавить" внизу формы.

Необходимо заполнить поле "Вопрос" и минимум 2 варианта ответа на него, остальные поля заполняются пользователем по желанию.

После создания нового опроса в менеджере опросов добавляется строка с заголовком опроса и кнопками редактирования и удаления текущего опроса. Таким образом, пользователь может добавить необходимое количество опросов в создаваемую им запись и отредактировать каждый опрос в отдельности. Однако, после публикации записи, включающей опросы, на сайте редактирование текста вопроса и вариантов ответов ограничено! Но все ещё остается возможность изменения времени голосования опроса и добавление новых опросов.

Следует отметить, что при создании и редактировании записи типа контента может возникнуть ситуация, когда пользователь добавил некоторое количество опросов, но затем не сохранил запись (нажатием кнопки Сохранить в меню действий справа или такой же кнопки внизу записи). При этом созданные опросы сохраняются в базе данных и выводятся пользователю при следующем добавлении или редактировании записи в этом типе контента.

Вывод опроса/опросов в теле записи происходит в том месте куда было установлено поле "Опросы". Голосование происходит стандартным способом: нужно выбрать желаемый вариант ответа из предложенных и нажать на кнопку "Голосовать". Также есть возможность посмотреть на результаты опроса без голосования, для этого нужно нажать "Воздержаться" (нажатие "Голосовать" без выбора ни одного варианта ответа, равносильно нажатию кнопки "Воздержаться"). Результаты опроса выводятся в виде линейной диаграммы с указанием количества проголосовавших людей и их процентным отношением. Для упорядочивания вариантов ответов по количеству набравших голосов можно воспользоваться кнопкой-переключателем внизу блока голосования.

Виджеты

В комплекте с компонентом есть 2 виджета: "Виджет опроса" — позволяет вывести один конкретно-указанный опрос и "Случайный опрос" — показывает один случайно-выбранный опрос из списка всех опросов определенного типа контента. Виджеты могут устанавливаться в специально отведенные места на сайте, как любой стандартный виджет InstantCMS 2.x.

С помощью параметров виджета "Случайный опрос" — "Категория" и "Набор" можно достаточно гибко настроить вывод желаемых опросов.

— создаем отдельный тип контента, например polls;
— устанавливаем права на запись для него только администраторам;
— скрываем от пользователей;
— и заносим в него записи с опросами (при желании можно даже разделять записи тематически, озаглавливать их соответственно и добавлять в одну запись список опросов соответствующей тематики);
— выводим виджет/виджеты с настройками на наш тип контента;
— в свободное время изучаем результаты голосования, "перелистывая" записи.

Более подробную документацию можно изучить здесь.
Демо компонента смотрим здесь http://icms-demo.e3w.ru/posts/6-demo-post-testirovanija-komponenta-oprosy.html
login: user1@demo.ru, user2@demo.ru, user3@demo.ru и т.д. до user20@demo.ru
password: 123456
кто не успеет воспользоваться одним из демо-пользователей чтобы протестировать голосование, может зарегать нового или попробовать создать новый опрос при публикации нового поста в блоге (прошу вас только соблюдать приличие)) ).

Опросы
Компонент

Опросы

от Val
Демо Купить 1000 руб.


Производите оплату на один из указанных ниже реквизитов. В примечании указываете ваш адрес электронной почты и доменное имя сайта где предполагается использование компонента (кириллические домены нужно указывать в формате punycode).

Вечером с 19:00 мск (к сожалению днем у меня нет возможности оперативно реагировать на запросы приобретения компонента) на указанный вами адрес электронной почты будет выслан установочный пакет и лицензионный ключ. Ключ нужно будет ввести после установки компонента в его опциях. Ключ уникален для каждого домена и даёт право использовать "Опросы" только на том домене, который Вы укажете при оформлении заказа.

Реквизиты
WebMoney: R396646181623
Яндекс.Деньги: 410011791189695
(также возможны другие способы оплаты, обращайтесь в личку).
+8
R161Net R161Net 9 лет назад #
Интересный компонент! +++
HostelB HostelB 9 лет назад #
Комментарий удален
+7
My-InstantCMS.Ru My-InstantCMS.Ru 9 лет назад #
Однозначно плюс smile очень нужный компонент, и на сайте смотрится красиво!!!
+7
AndroS AndroS 9 лет назад #
Супер! Нужная вещь!
+8
Val Val 9 лет назад #
Всем комментаторам выше - большое спасибо за ваши отзывы! smile
+8
Нэттинел Нэттинел 9 лет назад #
+1. После отлично сделанных "закладок", покупаю не задумываясь! Спасибо за новый компонент smile
+4
platon platon 9 лет назад #
Супер, отличная вещь! Сделано на совесть!
+4
Alteste Alteste 9 лет назад #
Круто, но меня заинтересовал больше последний спойлер - как защитить свои разработаки подобным образом.
+3
Shuma Shuma 9 лет назад #
Плюс и покупка. Большое спасибо
+2
Колёк Колёк 9 лет назад #
Большой плюс, жду, когда придёт...
+4
R161Net R161Net 9 лет назад #
БлиННН!! Я в восторге!!! +++++. Все бы так!!! .. купил, установил, красиво, работает.. Все просто и понятно! Еще рас спасибо!
0
Колёк Колёк 9 лет назад #
Всё здорово... но один момент, добавил поле опросы в новости, теперь во всех новостях вот это безобразие (я обвёл красным):

Как вернуть в нормальный вид?
+3
Val Val 9 лет назад #
в файле ../templates/portal/css/theme-gui.css добавьте в #breadcrumbs ul li (1651 строка) background: none;
должно получиться так:
Код CSS:
  1. #breadcrumbs ul li {
  2. height: 32px;
  3. line-height: 32px;
  4. float: left;
  5. font-size: 12px;
  6. color: #ccc;
  7. background: none;
  8. }
и тоже самое в #breadcrumbs ul li a (1658 строка)

Код CSS:
  1. #breadcrumbs ul li a {
  2. color: #fff;
  3. background: none;
  4. }
+1
Колёк Колёк 9 лет назад #
Валентин спасибо, с подправленными шаблонами опросов всё стало гут...
+2
VonKruger VonKruger 9 лет назад #
Очень нужный компонент спасибо и ++
-1
nmsk nmsk 9 лет назад #
Ещё не хватает возможности создавать анонимные опросы..
+1
Val Val 9 лет назад #
Это больше вопрос к типам контента! Если в записи не будет выводиться автор, то и не понять кто создавал опросы )))
0
nmsk nmsk 9 лет назад #
Я о самом результате голосования, ведь по логике, можно просматривать списки тех кто проголосовал?
По-этому и нужен выбор (видеть кто и за что голосовал, и не видеть, выводить только саму диаграму без ников.

Кто там минусует? Кого отшлёпать? laugh
+2
Val Val 9 лет назад #
На фронтенд не выводится какой пользователь за что проголосовал, а в БД результаты конечно же сохраняются. По этому параметру потом определяется можно ли юзеру голосовать или выводить ему результаты голосования.
А в результатах показывается только количество людей отдавших свой голос за тот или иной вариант ответа. Тоже не вижу здесь чего то "страшного".
+1
nmsk nmsk 9 лет назад #
Понятно, я думал что есть возможность видеть список кто голосовал...
0
Sergey Necr Sergey Necr 8 лет назад #
У меня вот какой вопрос, я что то не понимаю или не правильно считает проценты?
""

Отвечали 4 человека, все 4 отметили два пункта и один пункт не выбрал ни кто, выдает 50%. не 21-23 примерно разве должно быть? Я что то путаю?
0
Val Val 8 лет назад #
В настройках опроса установлена возможность голосовать за несколько вариантов ответов. Всего проголосовало 4 человека, при этом за вариант "Вакцинация", например, проголосовало 2 человека, т.е. 50%, также и для других вариантов ответов - по два человека из четырех, т.е. 50%. В чем проблема?
Если есть предложения другого подсчета голосов напишите здесь или в личке, я рассмотрю ваш вариант.
0
Sergey Necr Sergey Necr 8 лет назад #
дело не в проблеме, но по логике (может у меня с ней плохо) 4 вопроса это 25%, выбирая один человек один ответ получаем 100%, один человек на два ответа 50%, два человека на два одинаковых 50%, два человека на один одинаково и один разный 50% и по 25% соответственно, три человека на все три одинаковых ответа получаем 33% и далее... Это моя логика...
А так получается, 5 ответов по одному = 100%, а выбрав 4 ответа получили 200%.
Я где то не прав?
0
Val Val 8 лет назад #
Т.е. вы предлагаете за 100% брать количество отданных голосов а не проголосовавших людей?
0
Sergey Necr Sergey Necr 8 лет назад #
т.е. сейчас выводит 4 человека = 100%, а за ответ 2 отдали свой голос вот и 50%.
С этой точки все нормально получается.
0
Val Val 8 лет назад #
Я руководствовался следующей логикой: опрос создается чтобы получить какой-либо фидбек от аудитории, соответственно узнать что у людей является приоритетней из представленных вариантов ответов. Т.е упор на количество людей))
Нужно у пользователей узнать как кто считает правильно? smile Внести изменения в код труда не составит)))
0
Sergey Necr Sergey Necr 8 лет назад #
а может есть смысл сделать переключалку при создании голосования, на голоса или на людей?
0
AndroS AndroS 7 лет назад #
Виджет "Случайный опрос" почему-то иногда ничего не выдает
0
fincheck fincheck 7 лет назад #
Приветствую, ребята подскажите как данный компонент будет работать на последней версии InstantCMS (2.7.2). Спасибо.
+1
Val Val 7 лет назад #
Последняя версия этого компонента работает на 2.7.2 без проблем.
+1
AndroS AndroS 4 года назад #
На 2.13.1 админка беда. Правда, у меня версия 2.0 компонента стоит
+1
Capitan Capitan 3 года назад #
Компонент работает под 2.14?
Живой?
0
AndroS AndroS 3 года назад #
Вроде работает, с админки не смотрел

Еще от автора

СтопХам - userscript для instantcms.ru
Всем привет! Презентую чужую разработку со своей небольшой доработкой .
Предпросмотр для InstantCMS 2
Всем привет!
Just4Fun - Аватарки!
Здравствуйте, любители InstantCMS 2.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.