• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/composite/internals/pagemanager.php
  • Класс: BitrixMainCompositeInternalsPageManager
  • Вызов: PageManager::register
static function register($cacheKey, array $params = array())
{
	$options = Helper::getOptions();
	if ($options["WRITE_STATISTIC"] === "N")
	{
		return null;
	}

	if (!is_string($cacheKey) || mb_strlen($cacheKey) < 1)
	{
		return null;
	}

	$pageTitle = $params["TITLE"] ?? $GLOBALS["APPLICATION"]->GetTitle();
	$pageTitle = mb_substr($pageTitle, 0, 250);

	$pageHost = isset($params["HOST"]) && mb_strlen($params["HOST"]) ? $params["HOST"] : Helper::getHttpHost();
	$pageHost = mb_substr($pageHost, 0, 100);

	$pageUri = isset($params["URI"]) && mb_strlen($params["URI"]) ? $params["URI"] : Helper::getRequestUri();
	$pageUri = mb_substr($pageUri, 0, 2000);

	$pageSize = isset($params["SIZE"]) ? intval($params["SIZE"]) : 0;

	$data = array(
		"TITLE" => $pageTitle,
		"URI" => $pageUri,
		"HOST" => $pageHost
	);

	$GLOBALS["DB"]->StartUsingMasterOnly();

	$page = static::getByCacheKey($cacheKey);
	$result = null;
	if ($page)
	{
		$data["LAST_VIEWED"] = new DateTime();
		$data["VIEWS"] = $page["VIEWS"] + 1;

		if (isset($params["CHANGED"]) && $params["CHANGED"] === true)
		{
			$data["CHANGED"] = new DateTime();
			$data["REWRITES"] = $page["REWRITES"] + 1;
			$data["SIZE"] = $pageSize;
		}

		$result = PageTable::update($page["ID"], $data);
	}
	else
	{
		$data["SIZE"] = $pageSize;
		$data["CACHE_KEY"] = $cacheKey;
		$result = PageTable::add($data);
	}

	$GLOBALS["DB"]->StopUsingMasterOnly();

	return $result !== null ? $result->getId() : null;
}