Счетчик просмотров в Битрикс

Как ни странно, в Битриксе присутствует возможность считать количество просмотров элемента инфоблока, но отсутствует возможность считать количество посещений статической страницы. Но такая возможность порой может понадобиться. Как будем выходить из положения? Очень просто. Поставим на нашу статическую страницу компонент news.detail и будем считать количество его просмотров)

Для этого я создал новый инфоблок «Счетчик», где создал пустой элемент инфоблока

В настройках компонента news.detail, снимаем все галочки, указываем ID нашего элемента инфоблока и в блоке «источник данных»->"поля" выбираем «Количество показов».

В принципе уже все работает. Но мне например нужно соответствовать дезигну, поэтому правим шаблон news.detail

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** @var array $arParams */ /** @var array $arResult */ /** @global CMain $APPLICATION */ /** @global CUser $USER */ /** @global CDatabase $DB */ /** @var CBitrixComponentTemplate $this */ /** @var string $templateName */ /** @var string $templateFile */ /** @var string $templateFolder */ /** @var string $componentPath */ /** @var CBitrixComponent $component */ $this->setFrameMode(true);
function numberof($numberof, $value, $suffix)
{
    $numberof = abs($numberof);
    $keys = array(2, 0, 1, 1, 1, 2);
    $mod = $numberof % 100;
    $suffix_key = $mod > 4 && $mod < 20 ? 2 : $keys[min($mod%10, 5)]; return $value . $suffix[$suffix_key]; } ?>

<div class="reviews-count">
    <?echo($arResult['SHOW_COUNTER'].' '.numberof($number, 'просмотр', array('', 'а', 'ов')))?> отзывов
</div>

И на выходе мы получаем

Добавить комментарий