Your IP : 13.58.50.163


Current Path : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/modules/tasks/lib/util/
Upload File :
Current File : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/modules/tasks/lib/util/site.php

<?
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage tasks
 * @copyright 2001-2016 Bitrix
 *
 * @access private
 */

namespace Bitrix\Tasks\Util;

final class Site
{
	private static $cache = array();

	public static function getUserNameFormat($siteId = '')
	{
		return str_replace(array("#NOBR#","#/NOBR#"), array("",""), (string) \CSite::GetNameFormat(false, $siteId));
	}

	public static function getServerName($siteId = '')
	{
		return \Bitrix\Main\Config\Option::get("main", "server_name");
	}

	/**
	 * Returns basic site data by id
	 *
	 * @param $id
	 * @return string[]|bool
	 *
	 */
	public static function get($id = '')
	{
		if(!$id)
		{
			if(defined(SITE_ID))
			{
				$id = SITE_ID;
			}
		}

		if(!$id)
		{
			return false;
		}

		$structure = static::getSiteStruct();

		return is_array($structure['LIST'][$id]) ? $structure['LIST'][$id] : false;
	}

	/**
	 * Returns two sites: intranet and extranet
	 */
	public static function getPair()
	{
		$structure = static::getSiteStruct();

		return $structure['PAIR'];
	}

	private static function getSiteStruct()
	{
		if(empty(self::$cache['SITE']))
		{
			if(\Bitrix\Main\Loader::includeModule("extranet"))
			{
				$extranetSiteId = \CExtranet::getExtranetSiteID();
			}
			else
			{
				$extranetSiteId = false;
			}

			$siteList = array(
				'LIST' => array(),
				'PAIR' => array(
					'EXTRANET' => false,
					'INTRANET' => false
				)
			);
			$res = \CSite::getList($by="sort", $order="desc", array("ACTIVE" => "Y"));
			while($site = $res->Fetch())
			{
				$siteList['LIST'][$site['ID']] = array(
					'SITE_ID' => $site['ID'],
					'DIR' => (trim($site["DIR"]) <> '' ? $site["DIR"] : "/"),
					'SERVER_NAME' => (trim($site["SERVER_NAME"]) <> '' ? $site["SERVER_NAME"] : \Bitrix\Main\Config\Option::get("main", "server_name", $_SERVER["HTTP_HOST"])),
				);

				if($site["ID"] == $extranetSiteId)
				{
					$siteList['PAIR']['EXTRANET'] =& $siteList['LIST'][$site['ID']];
				}
				else // type == intranet
				{
					if(!(isset($siteList['PAIR']['INTRANET']) && $site['DEF'] !== 'Y'))
					{
						$siteList['PAIR']['INTRANET'] =& $siteList['LIST'][$site['ID']];
					}
				}
			}

			self::$cache['SITE'] = $siteList;
		}

		return self::$cache['SITE'];
	}
}