Yandex Metrika
sanches.free

API модуля опросов Bitrix: CVote и CVoteChannel

Введение

Ниже — выжимка по классам модуля vote, которых нет в удобном виде в документации: выборка опросов и каналов (групп опросов).

CVote::GetList

Сигнатура: CVote::GetList(&$by, &$order, $arFilter, &$is_filtered). Сортировка: например s_id, s_title, s_date_start, s_channel и др.; направление asc/desc.

Основные ключи фильтра: ID, ACTIVE, интервалы DATE_START_1 / DATE_START_2, DATE_END_*, LAMP, CHANNEL, CHANNEL_ID, TITLE, COUNTER_1/COUNTER_2; для каждого текстового поля обычно есть _EXACT_MATCH.

if(CModule::IncludeModule("vote")) {
   $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>";
   }
}

Есть методы CVote::GetByID и CVote::GetByIDEx — второй использует кеширование результата.

CVoteChannel::GetList

Сортировка: s_id, s_timestamp, s_symbolic_name и др. Фильтр включает ACTIVE, SITE_ID, SID, TITLE, HIDDEN и точные совпадения.

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>";
   }
}

Для одиночной группы: CVoteChannel::GetByID($ID).

Источник: перенос с блога g·rain·design.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии