Your IP : 52.14.234.6


Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/sender/lib/recipient/
Upload File :
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/sender/lib/recipient/agent.php

<?php
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage sender
 * @copyright 2001-2012 Bitrix
 */
namespace Bitrix\Sender\Recipient;

use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Context;
use Bitrix\Sender\Internals\ClassConstant;

Loc::loadMessages(__FILE__);

/**
 * Class Agent
 * @package Bitrix\Sender\Recipient
 */
class Agent extends ClassConstant
{
	const UNDEFINED = 0;
	const GMAIL = 1;
	const IPHONE = 2;
	const IPAD = 3;
	const ANDROID = 4;
	const OUTLOOK = 5;
	const THUNDERBIRD = 6;
	const YANDEX = 7;

	/**
	 * Detect agent by user agent string.
	 *
	 * @param string|null $string String.
	 * @return integer|null
	 */
	public static function detect($string = null)
	{
		if (!$string)
		{
			$string = Context::getCurrent()->getRequest()->getUserAgent();
		}

		$string = strtolower($string);
		$rules = self::getRules();
		foreach ($rules as $id => $searchList)
		{
			foreach ($searchList as $search)
			{
				if (strpos($string, $search) === false)
				{
					continue;
				}

				return $id;
			}
		}

		return self::UNDEFINED;
	}

	/**
	 * Get caption.
	 *
	 * @param integer $id ID.
	 * @return integer|null
	 */
	public static function getName($id)
	{
		$code = self::getCode($id);
		$name = Loc::getMessage('SENDER_AGENT_CAPTION_' . $code) ?: $code;
		return $name;
	}

	/**
	 * Get rules.
	 *
	 * @return array
	 */
	protected static function getRules()
	{
		$rules = array(
			self::GMAIL => array('googleimageproxy'),
			self::IPHONE => array('iphone'),
			self::IPAD => array('ipad'),
			self::ANDROID => array('android'),
			self::OUTLOOK => array('outlook'),
			self::THUNDERBIRD => array('thunderbird'),
			self::YANDEX => array('yandex'),
		);

		return $rules;
	}
}