Документация для разработчиков
Темная тема

GetVoteDataByID

Описание и параметры

GetVoteDataByID( 
	int VOTE_ID, 
	array &arChannel, 
	array &arVote, 
	array &arQuestions, 
	array &arAnswers, 
	array &arDropDown, 
	array &arMultiSelect, 
	array &arGroupAnswers, 
	string getGroupAnswers
)

Функция возвращает ID опроса в случае, если такой опрос был найден в базе, а также массивы описывающие опрос.

Параметры функции

ПараметрОписаниеС версии
VOTE_IDID опроса.
arChannel Массив описывающий группу заданного опроса.
Индексы массива:
  • ID - ID группы
  • SYMBOLIC_NAME - символическое имя
  • ACTIVE - флаг активности ["Y"|"N"]
  • TITLE - заголовок группы
  • LID - ID сайта
  • C_SORT - порядок сортировки
  • TIMESTAMP_X - время изменения записи в базе данных
  • arVote Массив описывающий заданный опрос.
    Индексы массива:
  • ID - ID опроса
  • CHANNEL_ID - ID группы опроса
  • C_SORT - порядок сортировки
  • ACTIVE - флаг активности ["Y"|"N"]
  • TIMESTAMP_X - время изменения записи в базе данных
  • DATE_START - время начала опроса
  • DATE_END - время окончания опроса
  • COUNTER - количество голосований по опросу
  • TITLE - заголовок опроса
  • DESCRIPTION - описание опроса
  • DESCRIPTION_TYPE - тип описания опроса ["html"|"text"]
  • IMAGE_ID - ID изображения
  • EVENT1 - идентификатор типа события - " event1"
  • EVENT2 - идентификатор типа события - " event2"
  • EVENT3 - дополнительный параметр типа события - " event3"
  • UNIQUE_TYPE - тип уникальности посетителей: 0 - не ограничено; 1 - не голосовать дважды в одной сессии; 2 - не голосовать дважды в одной сессии либо с одним cookie; 3 - не голосовать дважды в одной сессии либо с одним cookie либо с одного IP;
  • KEEP_IP_SEC - количество секунд в течении которых нельзя голосовать с одного IP
  • TEMPLATE - шаблон для показа формы опроса
  • RESULT_TEMPLATE - шаблон для показа результатов опроса
  • QUESTIONS - количество вопросов
  • LAMP - индикатор: "red" - флаг активности опроса снят либо текущая дата не попадает в интервал проведения опроса; "green" - флаг активности опроса установлен и текущая дата попадает в интервал проведения опроса.
  • arQuestions Массив состоящий из массивов каждый из которых описывает один вопрос.
    Индексы массива:
  • ID - ID вопроса
  • ACTIVE - флаг активности ["Y"|"N"]
  • C_SORT - порядок сортировки
  • QUESTION - текст вопроса
  • QUESTION_TYPE - тип текста вопроса ["html"|"text"]
  • IMAGE_ID - ID изображения
  • DIAGRAM - флаг включения вопроса в результирующую диаграмму ["Y"|"N"]
  • TEMPLATE - шаблон для показа результатов вопроса
  • TIMESTAMP_X - дата изменения записи в базе данных
  • arAnswers Массив ответов, его индексами являются ID вопросов, а значениями - список массивов, каждый из которых описывает один ответ.
    Индексы массива описывающего один ответ:
  • ID - ID ответа
  • ACTIVE - флаг активности ["Y"|"N"]
  • TIMESTAMP_X - дата изменения записи в базе данных
  • QUESTION_ID - ID вопроса
  • C_SORT - порядок сортировки
  • MESSAGE - текст сообщения который будет выдан рядом с ответом в форме опроса и в качестве ответа в диаграмме опроса
  • COUNTER - количество раз когда был выбран данный ответ
  • FIELD_TYPE - тип поля ввода: 0 - radio, 1 - checkbox, 2 - dropdown list; 3 - multiselect list, 4 - text; 5 - textarea
  • FIELD_WIDTH - ширина поля ввода
  • FIELD_HEIGHT - высота поля ввода
  • FIELD_PARAM - дополнительные параметры поля ввода: стиль, класс
  • COLOR - RGB цвета элемента диаграммы (например: #FFOOCC)
  • arDropDown Массив с всеми элементами типа "2" (dropdown list) одного вопроса. Индексом массива является ID вопроса, а значением - массив со следующими индексами:
  • REFERENCE - текст ответа
  • REFERENCE_ID - ID ответа
  • arMultiSelect Массив с всеми элементами типа "3" (multiselect list) одного вопроса. Индексом массива является ID вопроса, а значением - массив со следующими индексами:
  • REFERENCE - текст ответа
  • REFERENCE_ID - ID ответа
  • arGroupAnswers Массив описывающий варианты ответов для элементов ввода типа "4" (text) и "5" (textarea). Индексом массива является ID вопроса, а значением - список массивов со следующими индексами:
  • MESSAGE - текст ответа
  • COUNTER - количество таких ответов
  • getGroupAnswers Флаг принимающий следующие значения: "Y" - собирать массив arGroupAnswers; "N" - собирать массив arGroupAnswers не нужно. Удален с 12.0.0
    arrAddParams Необязательный параметр. Значение по умолчанию - "N". 12.0.0

    Примеры использования

    <?
    // возвращает форму заданного опроса с учётом прав пользователя
    function ShowVote($VOTE_ID, $template1="")
    {
    	global $MESS, $VOTING_LAMP, $VOTING_OK, $USER_ALREADY_VOTE, $USER_GROUP_PERMISSION, $VOTE_USER_ID, $VOTE_PERMISSION;
    	$VOTE_ID = GetVoteDataByID($VOTE_ID, $arChannel, $arVote, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect, $arGroupAnswers, "N");
    	if (intval($VOTE_ID)>0)
    	{
    		$perm = CVoteChannel::GetGroupPermission($arChannel["ID"]);
    		if (intval($perm)>=2)
    		{
    			$template = (strlen($arVote["TEMPLATE"])<=0) ? "default.php" : $arVote["TEMPLATE"];
    			$VOTE_PERMISSION = CVote::UserGroupPermission($arChannel["ID"]);
    			require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/include.php");
    			@include_once (GetLangFileName($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/lang/", "/".$template));
    			$path = COption::GetOptionString("vote", "VOTE_TEMPLATE_PATH", "/bitrix/php_interface/include/vote/show/");
    			if (strlen($template1)>0) $template = $template1;
    			@include($_SERVER["DOCUMENT_ROOT"].$path.$template);
    		}
    	}
    }
    ?>
    <?
    // получаем данные по опросу
    $VOTE_ID = GetVoteDataByID($PUBLIC_VOTE_ID, $arChannel, $arVote, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect, $arGroupAnswers, "N", $template, $res_template);
    $VOTE_ID = intval($VOTE_ID);
    // если поступивший ID опроса корректный то
    if ($VOTE_ID>0 && $arVote["LAMP"]=="green")
    {
    	...
    }
    ?>


    Пользовательские комментарии

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

    Для этого нужно всего лишь авторизоваться на сайте

    Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

    Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
    © «Битрикс», 2001-2024, «1С-Битрикс», 2024
    Наверх