Этот код при каждом открытии страницы автоматически увеличивает на 1 значение свойства CLICK_COUNT указанного элемента инфоблока и выводит текущее значение — без AJAX и кнопок, "молча" при загрузке.
Код |
---|
<?php
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
\Bitrix\Main\Page\Frame::getInstance()->startDynamicWithID("click_counter_nocache");
CModule::IncludeModule('iblock');
$iblockId = 2;
$elementId = 40;
// Проверяем существование элемента
$el = CIBlockElement::GetByID($elementId)->Fetch();
if (!$el) {
echo "❌ Элемент ID=$elementId не найден в инфоблоке!";
die();
}
// Проверяем свойство
$res = CIBlockElement::GetProperty($iblockId, $elementId, ['sort'=>'asc'], ['CODE'=>'CLICK_COUNT']);
if ($prop = $res->Fetch()) {
$count = (int)$prop['VALUE'];
echo "Текущее значение из БД: $count<br>";
} else {
echo "❌ Свойство CLICK_COUNT не найдено у элемента!";
die();
}
$newCount = $count + 1;
// Пытаемся обновить
$result = CIBlockElement::SetPropertyValuesEx($elementId, $iblockId, ['CLICK_COUNT' => $newCount]);
if ($result === false) {
echo "❌ Ошибка при обновлении свойства!";
} else {
echo "✅ Свойство обновлено. Новое значение: $newCount";
}
\Bitrix\Main\Page\Frame::getInstance()->finishDynamicWithID("click_counter_nocache", "");
?> |