партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
В данной статье я постараюсь описать основные функции работы с модулем опросов в битрикс, которые к сожалению, не описаны в документации.
[spoiler]
CVote::GetList(&$by, &$order, $arFilter=Array(), &$is_filtered)

Выбирает список опросов по фильтру фильтру $arFilter.

$by - поле для сортировки. Возможные значения:
  • s_id - идентификатор опроса
  • s_title - заголовок
  • s_date_start - дата начала опроса
  • s_date_end - дата окончания опроса
  • s_lamp  - индикатор активности
  • s_counter - количество проголосовавших
  • s_active - активность опроса
  • s_c_sort - индекс сортировки
  • s_channel - группа опросов
$order - направление сортировки
  • asc - по возрастанию
  • desc - по убыванию
$arFilter - поля для фильтрации
  • ID - идентификатор опроса
  • ID_EXACT_MATCH (Y/N) - точное совпадение по ID, если указано N, будет произведен поиск подстроки (по умолчанию - Y)
  • ACTIVE (Y/N) - активность опроса
  • DATE_START_1 - начало интервала даты начала опроса (больше или равно)
  • DATE_START_2 - конец интервала даты начала опроса (меньше)
  • DATE_END_1 - начало интервала даты окончания опроса (больше или равно)
  • DATE_END_2 - конец интервала даты окончания опроса (меньше)
  • LAMP (red/green) - статус опроса
  • CHANNEL - символьный код группы опросов
  • CHANNEL_EXACT_MATCH (Y/N) - точное совпадение по CHANNEL, если указано Y, будет произведен поиск по точному совпадению (по умолчанию - N)
  • CHANNEL_ID - идентификатор группы опросов
  • CHANNEL_ID_EXACT_MATCH (Y/N) - точное совпадение по CHANNEL_ID, если указано N, будет произведен поиск подстроки (по умолчанию - Y)
  • TITLE - заголовок опроса
  • TITLE_EXACT_MATCH (Y/N) - точное совпадение по TITLE, если указано Y, будет произведен поиск по точному совпадению (по умолчанию - N)
  • DESCRIPTION - описание опроса
  • DESCRIPTION_EXACT_MATCH (Y/N) - точное совпадение по DESCRIPTION, если указано Y, будет произведен поиск по точному совпадению (по умолчанию - N)
  • CHANNEL_ACTIVE (Y/N) - активность канала
  • CHANNEL_HIDDEN (Y/N) - скрыт ли канал
  • COUNTER_1 - начало интервала количества проголосовавших (больше или равно)
  • COUNTER_2 - конец интервала количества проголосовавших (меньше или равно)
$is_filtered - ссылка на переменную, хранящую признак того, был ли отфильтрован список опросов (true/false)

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

if(CModule::IncludeModule("vote")) {

   
// Выведем активные опросы из групп с идентификаторами 1 и 2
   
$rsVote CVote::GetList($by="s_id"$order="desc", array("CHANNEL_ID"=>"(1|2)","ACTIVE"=>"Y"));

   while(
$arVote $rsVote->GetNext()) {
      echo 
"<pre>"print_r($arVote); echo "</pre>";

   }

}

Пример возвращаемых данных:

Array

(
    [
ID] => 2
    
[QUESTIONS] => 0
    
[CHANNEL_TITLE] => UF_BLOG_POST_VOTE
    
[CHANNEL_ACTIVE] => Y
    
[CHANNEL_HIDDEN] => Y
    
[CHANNEL_ID] => 1
    
[C_SORT] => 100
    
[ACTIVE] => Y
    
[NOTIFY] => N
    
[AUTHOR_ID] => 1
    
[TIMESTAMP_X] => 12.11.2013 21:32:49
    
[DATE_START] => 12.11.2013 21:31:57
    
[DATE_END] => 01.01.2031 01:59:59
    
[URL] => 
    [
COUNTER] => 0
    
[TITLE] => Опрос 2
    
[DESCRIPTION] => 
    [
DESCRIPTION_TYPE] => html
    
[IMAGE_ID] => 
    [
EVENT1] => vote
    
[EVENT2] => uf_blog_post_vote
    
[EVENT3] => 
    [
UNIQUE_TYPE] => 12
    
[KEEP_IP_SEC] => 600
    
[DELAY] => 10
    
[DELAY_TYPE] => M
    
[TEMPLATE] => 
    [
RESULT_TEMPLATE] => 
    [
LAMP] => green
    
[PERIOD] => 540707282
)
Array
(
    [
ID] => 1
    
[QUESTIONS] => 0
    
[CHANNEL_TITLE] => Группа 2
    
[CHANNEL_ACTIVE] => Y
    
[CHANNEL_HIDDEN] => N
    
[CHANNEL_ID] => 2
    
[C_SORT] => 100
    
[ACTIVE] => Y
    
[NOTIFY] => N
    
[AUTHOR_ID] => 1
    
[TIMESTAMP_X] => 12.11.2013 21:32:13
    
[DATE_START] => 12.11.2013 21:31:57
    
[DATE_END] => 12.12.2013 21:31:57
    
[URL] => 
    [
COUNTER] => 0
    
[TITLE] => Опрос 1
    
[DESCRIPTION] => 
    [
DESCRIPTION_TYPE] => html
    
[IMAGE_ID] => 
    [
EVENT1] => vote
    
[EVENT2] => asdfg
    
[EVENT3] => 
    [
UNIQUE_TYPE] => 12
    
[KEEP_IP_SEC] => 600
    
[DELAY] => 10
    
[DELAY_TYPE] => M
    
[TEMPLATE] => 
    [
RESULT_TEMPLATE] => 
    [
LAMP] => green
    
[PERIOD] => 2592000
)


CVote::GetByID($ID)

Получает опрос с идентификатором $ID. Возвращает объект CDBResult.


CVote::GetByIDEx($ID)

Получает опрос с идентификатором $ID. Также возвращает объект CDBResult, но использует встроенное кеширование.


CVoteChannel::GetList(&$by, &$order, $arFilter=Array(), &$is_filtered)


Выбирает список опросов по фильтру фильтру $arFilter.

$by - поле для сортировки. Возможные значения:
  • s_id - идентификатор группы опросов
  • s_timestamp - дата изменения группы опросов
  • s_c_sort - индекс сортировки
  • s_active - активность группы опросов
  • s_hidden  - видимость группы опросов
  • s_symbolic_name - символьный код
  • s_title - заголовок
  • s_votes - количество голосов
$order - направление сортировки
  • asc - по возрастанию
  • desc - по убыванию
$arFilter - поля для фильтрации
  • ID - идентификатор группы опроса
  • ID_EXACT_MATCH (Y/N) - точное совпадение по ID, если указано N, будет произведен поиск подстроки (по умолчанию - Y)
  • ACTIVE (Y/N) - активность опроса
  • SITE_ID - идентификатор сайта
  • SITE_ID_EXACT_MATCH (Y/N) - точное совпадение по SITE_ID, если указано N, будет произведен поиск подстроки (по умолчанию - Y)
  • SID - идентификатор группы опросов
  • SID_EXACT_MATCH (Y/N) - точное совпадение по CHANNEL_ID, если указано Y, будет произведен поиск по точному совпадению (по умолчанию - N)
  • TITLE - заголовок группы опросов
  • TITLE_EXACT_MATCH (Y/N) - точное совпадение по TITLE, если указано Y, будет произведен поиск по точному совпадению (по умолчанию - N)
  • HIDDEN (Y/N) - скрыта ли группа опросов
$is_filtered - ссылка на переменную, хранящую признак того, был ли отфильтрован список групп опросов (true/false)

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

if(CModule::IncludeModule("vote")) {

   
// Выведем все активные группы опросов
   
$rsVoteChannel CVoteChannel::GetList($by="s_id"$order="desc", array("ACTIVE"=>"Y"));

   while(
$arVoteChannel $rsVoteChannel->Fetch()) {
      echo 
"<pre>"print_r($arVoteChannel); echo "</pre>";

   }

}

Пример возвращаемых данных:

Array

(
    [
ID] => 2
    
[VOTES] => 1
    
[SYMBOLIC_NAME] => ASDFG
    
[C_SORT] => 100
    
[FIRST_SITE_ID] => 
    [
ACTIVE] => Y
    
[HIDDEN] => N
    
[TIMESTAMP_X] => 12.11.2013 21:31:53
    
[TITLE] => Группа 2
    
[VOTE_SINGLE] => Y
    
[USE_CAPTCHA] => N
    
[LID] => 
    [
SID] => ASDFG
)
Array
(
    [
ID] => 1
    
[VOTES] => 1
    
[SYMBOLIC_NAME] => UF_BLOG_POST_VOTE
    
[C_SORT] => 100
    
[FIRST_SITE_ID] => 
    [
ACTIVE] => Y
    
[HIDDEN] => Y
    
[TIMESTAMP_X] => 02.07.2013 23:39:45
    
[TITLE] => UF_BLOG_POST_VOTE
    
[VOTE_SINGLE] => N
    
[USE_CAPTCHA] => N
    
[LID] => 
    [
SID] => UF_BLOG_POST_VOTE
)


CVoteChannel::GetByID($ID)

Получает группу опросов с идентификатором $ID. Возвращает объект CDBResult.

Чтобы оставить сообщение, авторизуйтесь, или войдите с помощью: