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

Голосование


Описание iblock.vote

Компонент реализует возможность голосования для пользователей. Компонент стандартный и входит в дистрибутив модуля.

В визуальном редакторе компонент расположен по пути Контент > Инфоблоки > Голосование.



Параметры

Поле Параметр Описание
Основные параметры
Тип инфоблока IBLOCK_TYPE Указывается один из созданных в системе типов информационных блоков.
Инфоблок IBLOCK_ID Для выбранного типа инфоблоков указывается идентификатор необходимого информационного блока.
ID элемента ELEMENT_ID Указывается числовой код, в котором передается идентификатор элемента. Поле может быть оставлено пустым, если указан Код элемента.
Код элемента ELEMENT_CODE Указывается символьный код элемента. Поле может быть оставлено пустым, если указан ID элемента.
Настройки кеширования
Тип кеширования CACHE_TYPE Тип кеширования:
  • A - Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
  • Y - Кешировать: для кеширования необходимо определить время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
Время кеширования (сек.) CACHE_TIME Время кеширования, указанное в секундах.
Дополнительные настройки
Максимальный балл MAX_VOTE Указывается максимально возможный балл, т.е. число возможных оценок.
Подписи к баллам VOTE_NAMES Указываются подписи к каждому баллу. В коде вводится массив, в котором задаются подписи к баллам в таком виде:
"VOTE_NAMES" => Array("0","1","2","3","4","5"),
Если подписи заданы, то они будут выведены вместо оценок-цифр. Если массив не задан, то будут использованы значения по умолчанию.
В качестве рейтинга показывать
(кроме шаблонов default, ajax_photo)
DISPLAY_AS_RATING Выбирается что отображать в качестве рейтинга: сам рейтинг, либо среднее значение (сумма голосов поделённая на количество).
Настройки 404 ошибки
Устанавливать статус 404, если не найдены элемент или раздел SET_STATUS_404 [Y|N] Если система не находит в каталоге элемент или раздел, то при отмеченной опции вместо HTTP статуса 200 будет сообщаться HTTP статус 404.
Сообщение для показа (по умолчанию из компонента)MESSAGE_404Задается сообщение, которое будет показано в случае возникновения ошибки 404. Если ничего не указывать, то будет использоваться стандартное сообщение из компонента.


Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:iblock.vote","",Array(
		"IBLOCK_TYPE" => "photos",
		"IBLOCK_ID" => "22",
		"ELEMENT_ID" => $_REQUEST["ELEMENT_ID"],
		"ELEMENT_CODE" => $_REQUEST["code"],
		"MAX_VOTE" => "5",
		"VOTE_NAMES" => array("0","1","2","3","4"),
		"SET_STATUS_404" => "N",
		"MESSAGE_404" => "",
		"CACHE_TYPE" => "A",
		"CACHE_TIME" => "3600"
	)
);?>


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
dane_zaltex
Сообщение не промодерировано, возможны ошибки и неточности.
Странно. Почему-то не указано, что есть еще параметр READ_ONLY (Y/N). Позволяет отключить возможность голосования (только показ текущего рейтинга).
0
rustam550
В последних версиях рейтинг считается немного иначе.
$rating = round((сумма оценок+31.25/5*максимально допустимый рейтинг)/(количество проголосовавших+10),2);

Это можно увидеть в компоненте \bitrix\components\bitrix\iblock.vote\component.php строчка 190.
24
Роман Петров
не нашел этого в документации, а это важно. Дублирую ответ техподдержки про расчет рейтинга:

Для расчёта рейтинга применяется специальная формула.
Оценка вычисляется по формуле Экслера, которая не позволяет подниматься в рейтинге, за которые голосовали 1-2 раза.
Например за товар проголосовали 1 раз, поставили высшую оценку - 5, за другой товар проголосовали 10 раз - одна оценка 4 или девять оценок 5.
При учете среднего балла на первом месте будет первый товар, т.к. общий рейтинг - 5, а второй будет ниже по рейтингу. Данный подход не корректен.
Данная формула является достаточно распространённой
rating = (SUM(vote)+31.25) / (COUNT(*)+10).
Информацию о данной формуле можно получить на ресурсе
http://exler.ru/blog/item/1990/
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх