Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/components/bitrix/sale.bsm.site.master/tools/
Upload File :
Current File : /var/www/homesaver/www/bitrix/components/bitrix/sale.bsm.site.master/tools/pushchecker.php

<?php

namespace Bitrix\Sale\BsmSiteMaster\Tools;

if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true)
{
	die();
}

use Bitrix\Main,
	Bitrix\Main\Localization\Loc,
	Bitrix\Pull;

Loc::loadMessages(__FILE__);

/**
 * Class PushChecker
 * @package Bitrix\Sale\BsmSiteMaster\Tools
 */
class PushChecker
{
	private $isModuleLoaded = false;

	/**
	 * PushChecker constructor.
	 */
	public function __construct()
	{
		try
		{
			$this->isModuleLoaded = Main\Loader::includeModule("pull");
		}
		catch (Main\LoaderException $ex)
		{
			$this->isModuleLoaded = false;
		}
	}

	/**
	 * @return bool
	 */
	public function isModuleLoaded()
	{
		return $this->isModuleLoaded;
	}

	/**
	 * @return bool
	 */
	public function isPushActive()
	{
		return \CPullOptions::GetQueueServerStatus();
	}

	/**
	 * @return Main\Result
	 */
	public function registerSharedServer()
	{
		$registerResult = Pull\SharedServer\Client::register();
		if($registerResult->isSuccess())
		{
			\CPullOptions::SetQueueServerStatus("Y");
			\CPullOptions::SetQueueServerMode(\CPullOptions::SERVER_MODE_SHARED);
			\CPullOptions::SetConfigTimestamp();
		}

		return $this->prepareErrors($registerResult);
	}

	/**
	 * @param Main\Result $registerResult
	 * @return Main\Result
	 */
	private function prepareErrors($registerResult)
	{
		$result = new Main\Result();

		if (!$registerResult->isSuccess())
		{
			$errors = $registerResult->getErrors();
			foreach ($errors as $error)
			{
				$message = $error->getMessage();
				if ($message === "LICENSE_NOT_FOUND")
				{
					$message = Loc::getMessage("SALE_BSM_WIZARD_PUSHCHECKER_LICENSE_NOT_FOUND");
				}

				$result->addError(new Main\Error($message, $error->getCode(), $error->getCustomData()));
			}
		}

		return $result;
	}

	/**
	 * @return bool
	 */
	public function isShared()
	{
		if(\CPullOptions::IsServerShared())
		{
			return \Bitrix\Pull\SharedServer\Config::isRegistered();
		}

		return false;
	}

	/**
	 * @return bool
	 */
	public function getModuleVersion()
	{
		$modulePath = getLocalPath("modules/pull/install/version.php");
		if ($modulePath === false)
			return false;

		$arModuleVersion = array();
		include($_SERVER["DOCUMENT_ROOT"].$modulePath);
		$version = (array_key_exists("VERSION", $arModuleVersion)? $arModuleVersion["VERSION"] : false);

		return $version;
	}
}