• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/urlpreview/router.php
  • Класс: BitrixMainUrlPreviewRouter
  • Вызов: Router::persistRoute
static function persistRoute($route, $isNew)
{
	static::invalidateRouteCache();
	//Oracle does not support 'merge ... returning field into :field' clause, thus we can't merge clob fields into the table.
	$routeData = array(
		'ROUTE' => static::$routeTable[$route]['ROUTE'],
		'MODULE' => static::$routeTable[$route]['MODULE'],
		'CLASS' => static::$routeTable[$route]['CLASS'],
	);

	if($isNew)
	{
		$addResult = RouteTable::merge($routeData);
		if($addResult->isSuccess())
		{
			static::$routeTable[$route]['ID'] = $addResult->getId();
			RouteTable::update(
					static::$routeTable[$route]['ID'],
					array(
							'PARAMETERS' => static::$routeTable[$route]['PARAMETERS']
					)
			);
		}
		$result = $addResult->isSuccess();
	}
	else
	{
		$routeData['PARAMETERS'] = static::$routeTable[$route]['PARAMETERS'];
		$updateResult = RouteTable::update(static::$routeTable[$route]['ID'], $routeData);
		$result = $updateResult->isSuccess();
	}
	return $result;
}