403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/yandex.market/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/yandex.market/lib/environment.php
<?php

namespace Yandex\Market;

use Bitrix\Main;
use Yandex\Market;

Main\Localization\Loc::loadMessages(__FILE__);

class Environment
{
	const PHP_MIN_VERSION = '5.4.0';

	protected static $dateDefaultTimezoneOriginal;
	protected static $phpIniOriginal = [];
	protected static $globalVariablesOriginal = [];

	/**
	 * ������� �������� ��������
	 */
	public static function stamp()
	{
		static::stampTimezone();
	}

	protected static function stampTimezone()
	{
		Market\Config::setOption('environment_timezone', date_default_timezone_get());
	}

	public static function getTimezone()
	{
		return (string)Market\Config::getOption('environment_timezone');
	}

	/**
	 * �������������� �������� ��������
	 */
	public static function restore()
	{
		static::restoreDefaultTimezone();
		static::restoreMissingIniTimezone();
		static::restoreValidGlobalUser();
	}

	/**
	 * ������ ����� ����������
	 */
	public static function makeUserPlaceholder()
	{
		$globalUser = isset($GLOBALS['USER']) ? $GLOBALS['USER'] : null;

		if ($globalUser instanceof \CUser) { return; }

		$GLOBALS['USER'] = new Utils\DummyUser();

		if (!isset(static::$globalVariablesOriginal['USER']))
		{
			static::$globalVariablesOriginal['USER'] = $globalUser;
		}
	}

	/**
	 * ����� �������� ��������
	 */
	public static function reset()
	{
		static::resetDefaultTimezone();
		static::resetOriginalIni();
		static::resetGlobalVariables();
	}

	protected static function restoreDefaultTimezone()
	{
		$storedTimezone = static::getTimezone();

		if ($storedTimezone === '' || $storedTimezone === date_default_timezone_get()) { return; }

		// default

		static::$dateDefaultTimezoneOriginal = date_default_timezone_get();
		date_default_timezone_set($storedTimezone);
	}

	protected static function resetDefaultTimezone()
	{
		if (static::$dateDefaultTimezoneOriginal === null) { return; }

		date_default_timezone_set(static::$dateDefaultTimezoneOriginal);
		static::$dateDefaultTimezoneOriginal = null;
	}

	protected static function restoreMissingIniTimezone()
	{
		$storedTimezone = static::getTimezone();
		$iniTimezone = ini_get('date.timezone');

		if ($iniTimezone || $storedTimezone === '') { return; }

		ini_set('date.timezone', $storedTimezone);
		static::$phpIniOriginal['date.timezone'] = $iniTimezone;
	}

	protected static function restoreValidGlobalUser()
	{
		if (!empty($GLOBALS['USER']) && !($GLOBALS['USER'] instanceof \CUser))
		{
			static::$globalVariablesOriginal['USER'] = $GLOBALS['USER'];
			unset($GLOBALS['USER']);
		}
	}

	protected static function resetOriginalIni()
	{
		foreach (static::$phpIniOriginal as $key => $value)
		{
			ini_set($key, $value);
		}

		static::$phpIniOriginal = [];
	}

	protected static function resetGlobalVariables()
	{
		foreach (static::$globalVariablesOriginal as $key => $value)
		{
			$GLOBALS[$key] = $value;
		}

		static::$globalVariablesOriginal = [];
	}

	/**
	 * �������� �������� ��������
	 *
	 * @return Result\Base
	 */
	public static function check()
	{
		$result = new Market\Result\Base();

		static::checkPhpVersion($result);
		static::checkSiteEncoding($result);

		return $result;
	}

	/**
	 * �������� ����� Php
	 *
	 * @param Result\Base $result
	 */
	protected static function checkPhpVersion(Market\Result\Base $result)
	{
		if (CheckVersion(PHP_VERSION, static::PHP_MIN_VERSION) === false)
		{
			$errorMessage = Market\Config::getLang('ENVIRONMENT_PHP_MIN_VERSION', [
				'#MIN#' => static::PHP_MIN_VERSION,
				'#CURRENT#' => PHP_VERSION
			]);

			$result->addError(new Market\Error\Base($errorMessage, 'ENV_PHP_MIN_VERSION'));
		}
	}

	/**
	 * �������� ������������ ��������� ����� � php-��������
	 *
	 * @param Result\Base $result
	 */
	protected static function checkSiteEncoding(Market\Result\Base $result)
	{
		$isUtfMode = Main\Application::isUtfMode();
		$mbstringFuncOverload = (int)ini_get('mbstring.func_overload');
		$mbstringEncoding = static::unifyEncoding(ini_get('mbstring.internal_encoding'));
		$defaultEncoding = static::unifyEncoding(ini_get('default_charset'));
		$resultEncoding = $mbstringEncoding ?: $defaultEncoding;

		if ($isUtfMode)
		{
			if ($mbstringFuncOverload !== 2 && !static::isMbstringOverloadDeprecated())
			{
				$errorMessage = Market\Config::getLang('ENCODING_FUNC_OVERLOAD', [
					'#REQUIRED#' => 2,
					'#CURRENT#' => $mbstringFuncOverload
				]);

				$result->addError(new Market\Error\Base($errorMessage, 'ENV_ENCODING_FUNC_OVERLOAD'));
			}

			if ($resultEncoding !== 'utf8')
			{
				$errorMessage = Market\Config::getLang('ENCODING_NOT_VALID', [
					'#REQUIRED#' => 'utf-8',
					'#CURRENT#' => $resultEncoding
				]);

				$result->addError(new Market\Error\Base($errorMessage, 'ENV_ENV_ENCODING_NOT_VALID'));
			}
		}
		else if ($mbstringFuncOverload === 2)
		{
			if ($resultEncoding === 'utf8')
			{
				$langEncoding = static::unifyEncoding(LANG_CHARSET);

				$errorMessage = Market\Config::getLang('ENCODING_NOT_VALID', [
					'#REQUIRED#' => $langEncoding === 'cp1251' ? 'cp1251' : 'latin1',
					'#CURRENT#' => $resultEncoding
				]);

				$result->addError(new Market\Error\Base($errorMessage, 'ENV_ENV_ENCODING_NOT_VALID'));
			}
		}
		else if ($mbstringFuncOverload !== 0)
		{
			$errorMessage = Market\Config::getLang('ENCODING_FUNC_OVERLOAD', [
				'#REQUIRED#' => 0,
				'#CURRENT#' => $mbstringFuncOverload
			]);

			$result->addError(new Market\Error\Base($errorMessage, 'ENV_ENCODING_FUNC_OVERLOAD'));
		}
	}

	protected static function unifyEncoding($encoding)
	{
		$encodingLower = Market\Data\TextString::toLower($encoding);

		return str_replace(['-', 'windows'], ['', 'cp'], $encodingLower);
	}

	protected static function isMbstringOverloadDeprecated()
	{
		$mainVersion = Main\ModuleManager::getVersion('main');

		return $mainVersion !== false && CheckVersion($mainVersion, '20.100.0');
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit