<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
header("Content-Type: text/xml");

$LIMIT_DAY = 365;
$LIMIT_NUM = 5;
$IS_YANDEX = "N";

$cache = new CPHPCache;
$cache_id = "special_rss_export_".SITE_ID;
$cache_path = "/".SITE_ID."/rss/special/";

if ($cache->InitCache(CACHE_TIME_RSS_EXPORT_OFF, $cache_id, $cache_path))
{
	extract($cache->GetVars());
}
else
{
	CModule::IncludeModule("iblock");

	$uploadDirPath = COption::GetOptionString("main", "upload_dir", "upload");

	$arIssues = array();

	$arIssueFilter = array(
			"IBLOCK_LID" => SITE_ID,
			"ACTIVE_DATE" => "Y",
			"IBLOCK_TYPE" => "issue",
			"ACTIVE" => "Y",
			"IBLOCK_ACTIVE" => "Y"
		);

	if ($LIMIT_DAY!==false)
		$arIssueFilter[">DATE_ACTIVE_FROM"] = date($DB->DateFormatToPHP(CLang::GetDateFormat("FULL")), mktime(0, 0, 0, date("m"), date("d")-IntVal($LIMIT_DAY), date("Y")));

	$arIssueNav = False;
	if ($LIMIT_NUM!==false)
	{
		$arIssueNav = array();
		$arIssueNav["nTopCount"] = IntVal($LIMIT_NUM);
	}

	$dbIssues = CIBlockElement::GetList(
			array("ACTIVE_FROM" => "DESC"),
			$arIssueFilter,
			false,
			$arIssueNav,
			array("ID", "XML_ID", "IBLOCK_ID", "DATE_ACTIVE_FROM", "DETAIL_PICTURE", "PROPERTY_ISSUE", "PROPERTY_ISSUE_END", "PROPERTY_YISSUE", "PROPERTY_YISSUE_END", "PROPERTY_TOPIC")
		);

	$ind = -1;
	while ($arIssue = $dbIssues->Fetch())
	{
		$ind++;
		$arIssues[$ind] = $arIssue;

		$arDate_tmp = explode(".", $arIssue["DATE_ACTIVE_FROM"]);
		$arIssues[$ind]["ACTIVE_FROM_YEAR"] = IntVal($arDate_tmp[2]);

		if (IntVal($arIssue["DETAIL_PICTURE"]) > 0)
		{
			$dbOfflinePicture = CFile::GetByID(IntVal($arIssue["DETAIL_PICTURE"]));
			if ($arOfflinePicture = $dbOfflinePicture->Fetch())
			{
				$arIssues[$ind]["DETAIL_PICTURE_DETAILS"] = array(
						"URL" => "http://www.computerra.ru/".$uploadDirPath."/".$arOfflinePicture["SUBDIR"]."/".$arOfflinePicture["FILE_NAME"],
						"WIDTH" => $arOfflinePicture["WIDTH"],
						"HEIGHT" => $arOfflinePicture["HEIGHT"],
						"FILE_SIZE" => $arOfflinePicture["FILE_SIZE"],
						"CONTENT_TYPE" => $arOfflinePicture["CONTENT_TYPE"]
					);
			}
		}
	}

	if (CACHE_TIME_RSS_EXPORT_OFF > 0)
	{
		$cache->StartDataCache(CACHE_TIME_RSS_EXPORT_OFF, $cache_id, $cache_path);
		$cache->EndDataCache(
			Array(
				"arIssues" => $arIssues
				)
			);
	}
}

echo "<"."?xml version=\"1.0\" encoding=\"windows-1251\"?".">\n";
echo "<rss version=\"2.0\"";
if ($IS_YANDEX=="Y")
	echo " xmlns:yandex=\"http://news.yandex.ru\"";
echo ">\n";

echo "<channel>\n";
echo "<title>Бумажная Компьютерра</title>\n";
echo "<link>http://www.computerra.ru/special/</link>\n";
echo "<description></description>\n";
echo "<lastBuildDate>".date("r")."</lastBuildDate>\n";
echo "<ttl>24</ttl>\n";

for ($i = 0; $i < count($arIssues); $i++)
{
	echo "<item>\n";
	echo "<title>";
	echo htmlspecialchars("Журнал \"Компьютерра\" №");
	echo htmlspecialchars($arIssues[$i]["PROPERTY_YISSUE_VALUE"]);
	if ($arIssues[$i]["PROPERTY_YISSUE_VALUE"] != $arIssues[$i]["PROPERTY_YISSUE_END_VALUE"] && $arIssues[$i]["PROPERTY_YISSUE_END_VALUE"] > 0)
		echo htmlspecialchars("-".$arIssues[$i]["PROPERTY_YISSUE_END_VALUE"]);
	echo " (";
	echo htmlspecialchars($arIssues[$i]["PROPERTY_ISSUE_VALUE"]);
	if ($arIssues[$i]["PROPERTY_ISSUE_VALUE"] != $arIssues[$i]["PROPERTY_ISSUE_END_VALUE"] && $arIssues[$i]["PROPERTY_ISSUE_END_VALUE"] > 0)
		echo htmlspecialchars("-".$arIssues[$i]["PROPERTY_ISSUE_END_VALUE"]);
	echo ")";
	echo "</title>\n";

	echo "<link>";
	echo "http://www.computerra.ru/special/".$arIssues[$i]["ACTIVE_FROM_YEAR"]."/".$arIssues[$i]["PROPERTY_ISSUE_VALUE"]."/";
	echo "</link>\n";

	echo "<description>".htmlspecialchars("Тема номера: ".$arIssues[$i]["PROPERTY_TOPIC_VALUE"])."</description>\n";

	if (IntVal($arIssues[$i]["DETAIL_PICTURE"])>0)
	{
		echo "<enclosure url=\"".$arIssues[$i]["DETAIL_PICTURE_DETAILS"]["URL"]."\" length=\"".$arIssues[$i]["DETAIL_PICTURE_DETAILS"]["FILE_SIZE"]."\" type=\"".$arIssues[$i]["DETAIL_PICTURE_DETAILS"]["CONTENT_TYPE"]."\" width=\"".$arIssues[$i]["DETAIL_PICTURE_DETAILS"]["WIDTH"]."\" height=\"".$arIssues[$i]["DETAIL_PICTURE_DETAILS"]["HEIGHT"]."\"/>\n";
	}

	echo "<category>special</category>\n";

	if (strlen($arIssues[$i]["DATE_ACTIVE_FROM"])>0)
	{
		echo "<pubDate>".date("r", MkDateTime($DB->FormatDate($arIssues[$i]["DATE_ACTIVE_FROM"], Clang::GetDateFormat("FULL"), "DD.MM.YYYY H:I:S"), "d.m.Y H:i:s"))."</pubDate>\n";
	}
	else
	{
		echo "<pubDate>".date("r")."</pubDate>\n";
	}

	echo "</item>\n";
}

echo "</channel>\n";

echo "</rss>\n";

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>