+7 495 008 8452
  • Загрузка
Выберите ваш цвет

Как сделать опрос в детальном выводе новости на «Битрикс»?

Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.

Часто бывает важно собрать отзывы посетителей о публикации. Для каких целей? Например, для уточнения спроса, корректировки цен, да и для будущих публикаций полезно. Стандартными средствами этого не сделать, нужны доработки. Как же нам организовать опрос в детальном выводе новости на «Битрикс»? Читайте далее.

1. Присвоим маркер замены текущего опроса

Назовем его #VOTE_ID_YY#, где YY обозначает ID нужного опроса.

2. Настроим компонент опроса

Кастомизируем компонент bitrix:voting.current на отдельной странице, предварительно отключив AJAX-компонента.

3. Создаем файлы обработки голосования

Файл result_modifier.php с кодом:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?$this->__component->SetResultCacheKeys(array("CACHED_TPL"));?>

Файл component_epilog.php с кодом:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
echo preg_replace_callback(
"/#VOTE_ID_([\d]+)#/is".BX_UTF_PCRE_MODIFIER,
create_function('$matches', 'ob_start();
/*component here*/
$retrunStr = @ob_get_contents();
ob_get_clean();
return $retrunStr;'),
$arResult["CACHED_TPL"]);
?>

4. Редактируем шаблон новости

Делаем копию шаблона новости и редактируем. Вместо /*component here*/ вызываем наш компонент:

$GLOBALS["APPLICATION"]->IncludeComponent(
"bitrix:voting.current",
"main_page",
Array(
"CHANNEL_SID" => "ANKETA",
"VOTE_ID" => $matches[1],
"CACHE_TYPE"   =>   "A",
"CACHE_TIME"   =>   "3600",
"AJAX_MODE" => "N",
"AJAX_OPTION_SHADOW" => "Y",
"AJAX_OPTION_JUMP" => "Y",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
)
);

5. Доработаем template.php

На второй строке добавим код:

<?ob_start();?>

И в конце файла

<?
$this->__component->arResult["CACHED_TPL"] = @ob_get_contents();
ob_get_clean();
?>

Готово!

--------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...