• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_phone.php
  • Класс: CVoxImplantPhone
  • Вызов: CVoxImplantPhone::GetPhoneCategories
static function GetPhoneCategories()
{
	$arResult = Array();

	$viAccount = new CVoxImplantAccount();
	$currency = $viAccount->GetAccountCurrency();

	$viHttp = new CVoxImplantHttp();
	$result = $viHttp->GetPhoneNumberCategories();
	if ($result && !empty($result->result))
	{
		foreach ($result->result as $value)
		{
			$categories = Array();

			$countryName = GetMessage('VI_PHONE_CODE_'.$value->country_code);
			if ($countryName == '')
				$countryName = $value->country_code.' (+'.$value->phone_prefix.')';

			foreach ($value->phone_categories as $category)
			{
				if ($category->phone_category_name === "TOLLFREE" && $value->country_code != "RU")
				{
					$title = Loc::getMessage("VI_PHONE_CATEGORY_TOLLFREE_OTHER");
				}
				else if (!($title = Loc::getMessage("VI_PHONE_CATEGORY_" . $category->phone_category_name)))
				{
					$title = $category->phone_category_name;
				}

				$categories[$category->phone_category_name] = Array(
					'PHONE_TYPE' => $category->phone_category_name,
					'HAS_STATES' => $category->country_has_states,
					'FULL_PRICE' => floatval($category->phone_price)+floatval($category->phone_installation_price),
					'INSTALLATION_PRICE' => $category->phone_installation_price,
					'MONTH_PRICE' => $category->phone_price,
					'CURRENCY' => $currency,
					'TITLE' => $title
				);
			}

			$arResult[$value->country_code] = Array(
				'CAN_LIST_PHONES' => $value->can_list_phone_numbers,
				'NAME' => $countryName,
				'CODE' => $value->country_code,
				'CATEGORIES' => $categories
			);

			$accountLang = ToUpper($viAccount->GetAccountLang());
			uasort($arResult, function($a, $b) use ($accountLang)
			{
				if($a['CODE'] == $accountLang)
					return -1;
				else if($b['CODE'] == $accountLang)
					return 1;
				else
					return strcmp($a['NAME'], $b['NAME']);
			});
		}
	}

	return $arResult;
}