партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Простой адаптивный форум - модуль для битрикс
В данной статье я постараюсь описать основные функции работы с модулем опросов в битрикс, которые к сожалению, не описаны в документации.

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.

Чтобы оставить сообщение, авторизуйтесь, или войдите с помощью:
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru