• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/counter.php
  • Класс: BitrixSocialnetworkComponentLogListCounter
  • Вызов: Counter::clearLogCounter
public function clearLogCounter(&$result): void
{
	$params = $this->getComponent()->arParams;

	if (
		$params['SET_LOG_COUNTER'] !== 'Y'
		|| (isset($result['EXPERT_MODE_SET']) && $result['EXPERT_MODE_SET'])
		|| !Util::checkUserAuthorized()
	)
	{
		return;
	}

	if (
		(int)$result['LOG_COUNTER'] > 0
		|| $this->getEmptyCounter()
	)
	{
		CUserCounter::clear(
			$result['currentUserId'],
			$result['COUNTER_TYPE'],
			[ SITE_ID, '**' ],
			true, // sendPull
			true // multiple
		);

		if ((int)$result['LOG_COUNTER_IMPORTANT'] > 0)
		{
			CUserCounter::clear(
				$result['currentUserId'],
				'BLOG_POST_IMPORTANT',
				SITE_ID
			);
		}

		$res = getModuleEvents('socialnetwork', 'OnSonetLogCounterClear');
		while ($eventFields = $res->fetch())
		{
			executeModuleEventEx($eventFields, [ $result['COUNTER_TYPE'], (int)$result['LAST_LOG_TS'] ]);
		}
	}
	elseif (in_array($result['COUNTER_TYPE'], [ '**', 'CRM_**' ], true)) // set last date only
	{
		$pool = BitrixMainApplication::getInstance()->getConnectionPool();
		$pool->useMasterOnly(true);

		CUserCounter::clear(
			$result['currentUserId'],
			$result['COUNTER_TYPE'],
			[ SITE_ID, '**' ],
			false, // sendPull
			false, // multiple
			false // cleanCache
		);

		$pool->useMasterOnly(false);
	}
}