• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockrss.php
  • Класс: CAllIBlockRSS
  • Вызов: CAllIBlockRSS::FormatArray
static function FormatArray(&$arRes, $bOutChannel=false)
{
	if (!$bOutChannel)
	{
		if(is_array($arRes["title"][0]["#"]))
			$arRes["title"][0]["#"] = $arRes["title"][0]["#"]["cdata-section"][0]["#"];
		if(is_array($arRes["link"][0]["#"]))
			$arRes["link"][0]["#"] = $arRes["link"][0]["#"]["cdata-section"][0]["#"];
		if(is_array($arRes["description"][0]["#"]))
			$arRes["description"][0]["#"] = $arRes["description"][0]["#"]["cdata-section"][0]["#"];

		$arResult = array(
			"title" => $arRes["title"][0]["#"],
			"link" => $arRes["link"][0]["#"],
			"description" => $arRes["description"][0]["#"],
			"lastBuildDate" => $arRes["lastBuildDate"][0]["#"],
			"ttl" => $arRes["ttl"][0]["#"],
		);

		if ($arRes["image"])
		{
			if(is_array($arRes["image"][0]["#"]))
			{
				$arResult["image"]["title"] = $arRes["image"][0]["#"]["title"][0]["#"];
				$arResult["image"]["url"] = $arRes["image"][0]["#"]["url"][0]["#"];
				$arResult["image"]["link"] = $arRes["image"][0]["#"]["link"][0]["#"];
				$arResult["image"]["width"] = $arRes["image"][0]["#"]["width"][0]["#"];
				$arResult["image"]["height"] = $arRes["image"][0]["#"]["height"][0]["#"];
			}
			elseif(is_array($arRes["image"][0]["@"]))
			{
				$arResult["image"]["title"] = $arRes["image"][0]["@"]["title"];
				$arResult["image"]["url"] = $arRes["image"][0]["@"]["url"];
				$arResult["image"]["link"] = $arRes["image"][0]["@"]["link"];
				$arResult["image"]["width"] = $arRes["image"][0]["@"]["width"];
				$arResult["image"]["height"] = $arRes["image"][0]["@"]["height"];
			}
		}

		if (!empty($arRes["item"]) && is_array($arRes["item"]))
		{
			foreach ($arRes["item"] as $i => $arItem)
			{
				if (!is_array($arItem) || !is_array($arItem["#"]))
					continue;

				if (is_array($arItem["#"]["title"][0]["#"]))
					$arItem["#"]["title"][0]["#"] = $arItem["#"]["title"][0]["#"]["cdata-section"][0]["#"];

				if (is_array($arItem["#"]["description"][0]["#"]))
					$arItem["#"]["description"][0]["#"] = $arItem["#"]["description"][0]["#"]["cdata-section"][0]["#"];
				elseif (is_array($arItem["#"]["encoded"][0]["#"]))
					$arItem["#"]["description"][0]["#"] = $arItem["#"]["encoded"][0]["#"]["cdata-section"][0]["#"];
				$arResult["item"][$i]["description"] = $arItem["#"]["description"][0]["#"];

				if (is_array($arItem["#"]["title"][0]["#"]))
					$arItem["#"]["title"][0]["#"] = $arItem["#"]["title"][0]["#"]["cdata-section"][0]["#"];
				$arResult["item"][$i]["title"] = $arItem["#"]["title"][0]["#"];

				if (is_array($arItem["#"]["link"][0]["#"]))
					$arItem["#"]["link"][0]["#"] = $arItem["#"]["link"][0]["#"]["cdata-section"][0]["#"];
				$arResult["item"][$i]["link"] = $arItem["#"]["link"][0]["#"];

				if ($arItem["#"]["enclosure"])
				{
					$arResult["item"][$i]["enclosure"]["url"] = $arItem["#"]["enclosure"][0]["@"]["url"];
					$arResult["item"][$i]["enclosure"]["length"] = $arItem["#"]["enclosure"][0]["@"]["length"];
					$arResult["item"][$i]["enclosure"]["type"] = $arItem["#"]["enclosure"][0]["@"]["type"];
					if ($arItem["#"]["enclosure"][0]["@"]["width"])
					{
						$arResult["item"][$i]["enclosure"]["width"] = $arItem["#"]["enclosure"][0]["@"]["width"];
					}
					if ($arItem["#"]["enclosure"][0]["@"]["height"])
					{
						$arResult["item"][$i]["enclosure"]["height"] = $arItem["#"]["enclosure"][0]["@"]["height"];
					}
				}
				$arResult["item"][$i]["category"] = $arItem["#"]["category"][0]["#"];
				$arResult["item"][$i]["pubDate"] = $arItem["#"]["pubDate"][0]["#"];

				$arRes["item"][$i] = $arItem;
			}
		}
	}
	else
	{
		$arResult = array(
			"title" => $arRes["channel"][0]["#"]["title"][0]["#"],
			"link" => $arRes["channel"][0]["#"]["link"][0]["#"],
			"description" => $arRes["channel"][0]["#"]["description"][0]["#"],
			"lastBuildDate" => $arRes["channel"][0]["#"]["lastBuildDate"][0]["#"],
			"ttl" => $arRes["channel"][0]["#"]["ttl"][0]["#"],
		);

		if ($arRes["image"])
		{
			$arResult["image"]["title"] = $arRes["image"][0]["#"]["title"][0]["#"];
			$arResult["image"]["url"] = $arRes["image"][0]["#"]["url"][0]["#"];
			$arResult["image"]["link"] = $arRes["image"][0]["#"]["link"][0]["#"];
			$arResult["image"]["width"] = $arRes["image"][0]["#"]["width"][0]["#"];
			$arResult["image"]["height"] = $arRes["image"][0]["#"]["height"][0]["#"];
		}

		if (!empty($arRes["item"]) && is_array($arRes["item"]))
		{
			foreach ($arRes["item"] as $i => $arItem)
			{
				if (!is_array($arItem) || !is_array($arItem["#"]))
					continue;

				if (is_array($arItem["#"]["title"][0]["#"]))
					$arItem["#"]["title"][0]["#"] = $arItem["#"]["title"][0]["#"]["cdata-section"][0]["#"];

				if (is_array($arItem["#"]["description"][0]["#"]))
					$arItem["#"]["description"][0]["#"] = $arItem["#"]["description"][0]["#"]["cdata-section"][0]["#"];
				elseif (is_array($arItem["#"]["encoded"][0]["#"]))
					$arItem["#"]["description"][0]["#"] = $arItem["#"]["encoded"][0]["#"]["cdata-section"][0]["#"];
				$arResult["item"][$i]["description"] = $arItem["#"]["description"][0]["#"];

				$arResult["item"][$i]["title"] = $arItem["#"]["title"][0]["#"];
				$arResult["item"][$i]["link"] = $arItem["#"]["link"][0]["#"];
				if ($arItem["#"]["enclosure"])
				{
					$arResult["item"][$i]["enclosure"]["url"] = $arItem["#"]["enclosure"][0]["@"]["url"];
					$arResult["item"][$i]["enclosure"]["length"] = $arItem["#"]["enclosure"][0]["@"]["length"];
					$arResult["item"][$i]["enclosure"]["type"] = $arItem["#"]["enclosure"][0]["@"]["type"];
					if ($arItem["#"]["enclosure"][0]["@"]["width"])
					{
						$arResult["item"][$i]["enclosure"]["width"] = $arItem["#"]["enclosure"][0]["@"]["width"];
					}
					if ($arItem["#"]["enclosure"][0]["@"]["height"])
					{
						$arResult["item"][$i]["enclosure"]["height"] = $arItem["#"]["enclosure"][0]["@"]["height"];
					}
				}
				$arResult["item"][$i]["category"] = $arItem["#"]["category"][0]["#"];
				$arResult["item"][$i]["pubDate"] = $arItem["#"]["pubDate"][0]["#"];

				$arRes["item"][$i] = $arItem;
			}
		}
	}
	return $arResult;
}