• Модуль: conversion
  • Путь к файлу: ~/bitrix/modules/conversion/lib/daycontext.php
  • Класс: BitrixConversionDayContext
  • Вызов: DayContext::getInstance
static function getInstance()
{
	if (! self::$instance)
	{
		$instance = new self;
		$varName  = self::getVarName();
		$session  =& $_SESSION[$varName];
		$expire   = strtotime('today 23:59');

		if (! (is_array($session) && is_int($session['ID']) && $session['EXPIRE'] === $expire))
		{
			$session = array('ID' => null, 'EXPIRE' => $expire, 'UNIQUE' => array());

			if ($cookie = $_COOKIE[$varName])
			{
				try
				{
					$cookie = Json::decode($cookie);
				}
				catch (ArgumentException $e)
				{
				}
			}

			// check if cookie is valid
			if (   is_array($cookie)
				&& is_array($cookie['UNIQUE'])
				&& $cookie['EXPIRE'] === $expire
				&& ($id = $cookie['ID']) !== null
				&& is_int($id)
				&& ($id === self::EMPTY_CONTEXT_ID || InternalsContextTable::getByPrimary($id)->fetch())
			)
			{
				$session['ID'    ] = $id;
				$session['UNIQUE'] = $cookie['UNIQUE'];
			}
		}

		$instance->id = $session['ID'];
		self::$session =& $session;
		self::$instance = $instance;
	}

	return self::$instance;
}