Другие модули на выбор

SIMAI: Модуль опросов

Стоимость: руб.
Этот компонент мы сможете использовать только при наличии лицензии. Подходящие редакции:

Получите быструю помощь по покупке, оплате, установке, настройке, продлению и другим вопросам, оставив заявку

ДОКУМЕНТАЦИЯ
  1. Документация по модулю SIMAI: Модуль опросов
УСТАНОВКА

Установка модуля - стандартная.

Во время установки запрашивается, в папке какого из сайтов должна быть создана папка опросов poll (это важно в случае многосайтовости).
Имя папки может быть изменено.

Предлагается выбор - следует ли создавать в публичной части папку poll/results для просмотра анкет других пользователей при наличии соотв. прав. На этот пункт требуется обратить особое внимание, т.к. при неверной настройке прав есть риск раскрытия персональных данных пользователей. Не создавайте эту папку без необходимости!

Также предлагается выбрать шаблон компонента опросов и нужно ли устанавливать демо-опросы.На следующем шаге установки предлагается создать соглашение о персональных данных (стандартное для России), указав, какие поля персональных данных будут запрашиваться в опросах.

Модуль автоматически создаст в папке выбранного сайта папку poll (либо другое выбранное имя папки), в которой будет развернут комплексный компонент анкетирования.

Желательно создать в меню сайта ссылку на данную папку.
Далее необходимо перейти в административную панель во вкладку "Сервисы", создать нужные опросы и настроить их. Последовательность создания такая: сначала создаем сами опросы, далее разделы вопросов для них, и затем сами вопросы.

Внимание - папка poll в публичной части при удалении модуля автоматически НЕ удаляется, чтобы предупредить возможное удаление пользовательских файлов! После удаления модуля ее следует удалить вручную.

Настройка прав

Начиная с версии 1.6.9 в модуле добавлена двухуровневая система прав - общие для всех опросов и индивидуальные. Устанавливаются права для групп на заполнение опроса, на редактирование опроса и на просмотр анкет.
Подробности можно узнать из документации, ссылка на котрую приведена выше.

События

В модуль опросов начиная с версии 1.0.4 добавлены события по добавлению, изменению и удалению анкет.
OnAfterInterviewAdd
OnAfterInterviewUpdate
OnAfterInterviewDelete

Вот пример, как их можно использовать:

Предположим, что мы хотим закрыть опрос с ID=4 (сделать неактивным), когда наберется 200 анкет, которые на вопрос с ID=32 ответят "Кировский".
Прописываем в init.php следующий код:
$eventManager = \Bitrix\Main\EventManager::getInstance(); $eventManager->addEventHandler( 'simai.poll', 'OnAfterInterviewUpdate', function (\Bitrix\Main\Event $event) { $poll_id = $event->getParameter('poll_id'); $primary = $event->getParameter('primary'); $data = $event->getParameter('fields'); // если это опрос с ID=4 и анкета завершена if ($poll_id == 4 && $data['STATUS'] == 'COMPLETE') { // проверяем существование вопроса с ID=32 $res = \SIMAI\Poll\CPollQuestionTable::getList(array('filter' => array('POLL_ID' => 4, 'ID' => 32))); if ($res->fetch()) { $COUNT_INTERVIEWS_FILTERED = 0; // выбираем анкеты с нужными условиями (только завершенные, вопрос с ID 32 имеет ответ 'Кировский') $arFilter = array( '=STATUS' => 'COMPLETE', '=Q_32' => 'Кировский', ); $res = \SIMAI\Poll\CPollInterview::getList($poll_id, array('filter' => $arFilter)); while ($res->fetch()) { $COUNT_INTERVIEWS_FILTERED ++; } // если нужных анкет набралось 200 или больше, делаем этот опрос неактивным if ($COUNT_INTERVIEWS_FILTERED >= 200) { \SIMAI\Poll\CPollTable::update($poll_id, array('ACTIVE' => 'N')); } } } $result = new \Bitrix\Main\EventResult($event->getEventType(), array('fields' => $data)); return $result; } )