«SIMAI: Модуль опросов» специально разработан для создания анкет и опросов на сайте.
Модуль отлично подходит для проведения анкетирования, в том числе и по независимой оценке качества (НОК) оказания услуг на сайтах образовательных, медицинских организаций, учреждений культуры и сферы социального обслуживания.
Опросы добавляются и редактируются через административную панель.
Для опросов, содержащих персональные данные пользователя, предусмотрено использование соглашений Битрикс о персональных данных согласно 152-ФЗ (проведение опросов, включающих персональные данные, без использования соглашений - НЕЗАКОННО!)
Функциональные возможности модуля:
Настройка доступа к опросу – только зарегистрированным пользователям, либо всем посетителям сайта.
Каждый опрос может включать в себя несколько разделов, группирующих вопросы по тематике.
Вопросы могут быть зависимы друг от друга (такой вопрос показывается в зависимости от ответа на один из предыдущих).
Возможность использования регулярных выражений – проверка чёткого соответствия вводимых данных заданному формату (например, для полей «Телефон», «e-mail», «ИНН», «Паспортные данные» и др.).
Настройка допустимого количества анкет для зарегистрированных пользователей. Незарегистрированные пользователи могут заполнять по одной анкете с одного IP (если их участие прописано в настройках опроса).
$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;
}
) |
Внимание! Повторная установка в демо-режиме приведет к окончанию демо‑режима и невозможности использовать модуль.