Beispiel #1
0
	function GetRSS($ID, $LANG, $TYPE, $LIMIT_NUM = false, $LIMIT_DAY = false, $yandex = false)
	{
		echo "<"."?xml version=\"1.0\" encoding=\"".LANG_CHARSET."\"?".">\n";
		echo "<rss version=\"2.0\"";
		echo ">\n";

		$dbr = CIBlock::GetList(array(), array(
			"type" => $TYPE,
			"LID" => $LANG,
			"ACTIVE" => "Y",
			"ID" => $ID,
		));
		$arIBlock = $dbr->Fetch();
		if ($arIBlock && ($arIBlock["RSS_ACTIVE"] == "Y"))
		{
			echo CIBlockRSS::GetRSSText($arIBlock, $LIMIT_NUM, $LIMIT_DAY, $yandex);
		}

		echo "</rss>\n";
	}
Beispiel #2
0
    $APPLICATION->RestartBuffer();
    header("Content-Type: text/xml");
    header("Pragma: no-cache");
    if ($CACHE_TIME > 0 && $cache->InitCache($CACHE_TIME, $cache_id, "/iblock/rss_out/")) {
        $cache->Output();
    } else {
        if ($CACHE_TIME > 0) {
            $cache->StartDataCache($CACHE_TIME, $cache_id, "/iblock/rss_out/");
        }
        $db_res_iblock = CIBlock::GetList(array(), array("ACTIVE" => "Y", "ID" => $ID));
        $bAccessable = False;
        if (($arIBlock = $db_res_iblock->Fetch()) && $arIBlock["RSS_ACTIVE"] == "Y") {
            $bAccessable = True;
        }
        echo "<?xml version=\"1.0\" encoding=\"Windows-1251\"?>\n";
        echo "<rss version=\"2.0\"";
        if ($bYandex) {
            echo " xmlns:yandex=\"http://news.yandex.ru\"";
        }
        echo ">\n";
        if ($bAccessable) {
            echo CIBlockRSS::GetRSSText($arIBlock, $NUM_NEWS, $NUM_DAYS, $bYandex);
        }
        echo "</rss>\n";
        if ($CACHE_TIME > 0) {
            $cache->EndDataCache(array());
        }
    }
    die;
    //*******************************************************
}
Beispiel #3
0
 function PreGenerateRSS($IBLOCK_ID, $yandex = true)
 {
     global $DB;
     $strSql = "SELECT DISTINCT B.*, C.CHARSET, S.SERVER_NAME, " . $DB->DateToCharFunction("B.TIMESTAMP_X") . " as TIMESTAMP_X " . "FROM b_iblock B LEFT JOIN b_iblock_group IBG ON IBG.IBLOCK_ID=B.ID " . "\tLEFT JOIN b_lang S ON S.LID=B.LID " . "\tLEFT JOIN b_culture C ON C.ID=S.CULTURE_ID " . "WHERE B.ID = " . IntVal($IBLOCK_ID) . "\tAND IBG.GROUP_ID IN (2) " . "\tAND IBG.PERMISSION>='R'" . "\tAND (IBG.PERMISSION='X' OR B.ACTIVE='Y')";
     $dbr = $DB->Query($strSql);
     $bAccessable = False;
     if (($arIBlock = $dbr->GetNext()) && ($arIBlock["RSS_FILE_ACTIVE"] == "Y" && !$yandex || $arIBlock["RSS_YANDEX_ACTIVE"] == "Y" && $yandex)) {
         $bAccessable = True;
     }
     if (!$bAccessable) {
         return "";
     }
     $strRes = "";
     $strRes .= "<" . "?xml version=\"1.0\" encoding=\"" . $arIBlock["CHARSET"] . "\"?" . ">\n";
     $strRes .= "<rss version=\"2.0\"";
     //		$strRes .= "<rss version=\"2.0\" xmlns=\"http://backend.userland.com/rss2\"";
     if ($yandex) {
         $strRes .= " xmlns:yandex=\"http://news.yandex.ru\"";
     }
     $strRes .= ">\n";
     $limit_num = false;
     $limit_day = 2;
     if (!$yandex) {
         $limit_num = false;
         if (strlen($arIBlock["RSS_FILE_LIMIT"]) > 0 && IntVal($arIBlock["RSS_FILE_LIMIT"]) > 0) {
             $limit_num = IntVal($arIBlock["RSS_FILE_LIMIT"]);
         }
         $limit_day = false;
         if (strlen($arIBlock["RSS_FILE_DAYS"]) > 0 && IntVal($arIBlock["RSS_FILE_DAYS"]) > 0) {
             $limit_day = IntVal($arIBlock["RSS_FILE_DAYS"]);
         }
     }
     $strRes .= CIBlockRSS::GetRSSText($arIBlock, $limit_num, $limit_day, $yandex);
     $strRes .= "</rss>\n";
     $rss_file = $_SERVER["DOCUMENT_ROOT"] . COption::GetOptionString("iblock", "path2rss", "/upload/");
     if ($yandex) {
         $rss_file .= "yandex_rss_" . IntVal($arIBlock["ID"]) . ".xml";
     } else {
         $rss_file .= "iblock_rss_" . IntVal($arIBlock["ID"]) . ".xml";
     }
     $fp = fopen($rss_file, "w");
     fwrite($fp, $strRes);
     fclose($fp);
     global $pPERIOD;
     $pPERIOD = IntVal($arIBlock["RSS_TTL"]) * 60 * 60;
     return "CIBlockRSS::PreGenerateRSS(" . $IBLOCK_ID . ", " . ($yandex ? "true" : "false") . ");";
 }
 function GetRSS($ID, $LANG, $TYPE, $LIMIT_NUM = false, $LIMIT_DAY = false, $yandex = false)
 {
     $dbr = GetIBlockListLang($LANG, $TYPE, array($ID));
     $bAccessable = False;
     if (($arIBlock = $dbr->GetNext()) && $arIBlock["RSS_ACTIVE"] == "Y") {
         $bAccessable = True;
     }
     echo "<" . "?xml version=\"1.0\" encoding=\"" . LANG_CHARSET . "\"?" . ">\n";
     echo "<rss version=\"2.0\"";
     //		echo "<rss version=\"2.0\" xmlns=\"http://backend.userland.com/rss2\"";
     //		if ($yandex) echo " xmlns:yandex=\"http://news.yandex.ru\"";
     echo ">\n";
     if ($bAccessable) {
         echo CIBlockRSS::GetRSSText($arIBlock, $LIMIT_NUM, $LIMIT_DAY, $yandex);
     }
     echo "</rss>\n";
 }