<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alexblog &#187; Битрикс</title>
	<atom:link href="http://www.alexblog.ru/archives/category/bitriks/feed" rel="self" type="application/rss+xml" />
	<link>http://www.alexblog.ru</link>
	<description>Блог о современных видеокартах</description>
	<lastBuildDate>Mon, 28 Jan 2008 21:30:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Простой динамический экспортер в Яндекс.новости для Битрикс. Версия 1.0</title>
		<link>http://www.alexblog.ru/archives/11</link>
		<comments>http://www.alexblog.ru/archives/11#comments</comments>
		<pubDate>Fri, 12 Oct 2007 19:15:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Битрикс]]></category>

		<guid isPermaLink="false">http://www.alexblog.ru/archives/11</guid>
		<description><![CDATA[Динамически экспортирует содержимое всех инфоблоков сайта на Битриксе за последние сутки, включая все необязательные элементы rss-формата Яндекс.новости. Не забываем указывать в фильтре ID экспортируемых инфоблоков. Если ограничение снять, то будут экспортироваться все инфоблоки. При этом стоит учесть следующее правило Яндекс.новостей: об изменении рубрикации издания или добавлении в экспортный файл материалов новых рубрик необходимо сообщать по [...]]]></description>
			<content:encoded><![CDATA[<p>Динамически экспортирует содержимое всех инфоблоков сайта на Битриксе за последние сутки, включая все необязательные элементы rss-формата Яндекс.новости. Не забываем указывать в фильтре ID экспортируемых инфоблоков. Если ограничение снять, то будут экспортироваться все инфоблоки. При этом стоит учесть следующее правило Яндекс.новостей: об изменении рубрикации издания или добавлении в экспортный файл материалов новых рубрик необходимо сообщать по адресу info@news.yandex.ru. Без такого уведомления сообщения, принадлежащие ранее не существовавшим или переименованным рубрикам издания, не индексируются. Именно поэтому ID лучше всего указывать жестко. В программе реализовано простейшее вырезание html-тэгов, перевод заголовка из верхнего регистра в нижний, удаление точек в заголовках.</p>
<p><span id="more-11"></span><strong>Простой динамический экспортер в Яндекс.новости для Битрикс</strong><br />
[php]<?<br />
require($_SERVER["DOCUMENT_ROOT"].&#8221;/bitrix/modules/main/include/prolog_before.php&#8221;); </p>
<p>echo &#8220;<?xml version=\"1.0\" encoding=\"".SITE_CHARSET."\"?><br />
<rss version=\"2.0\" xmlns=\"http://backend.userland.com/rss2\" xmlns:yandex=\"http://news.yandex.ru\"><br />
<channel> </p>
<link>Ссылка на заглавную страницу</link>
<description>Описание</description><br />
<image><br />
<url>Ссылка на картинку 100&#215;100</url></p>
<link>Ссылка на заглавную страницу</link>
</image><br />
&#8220;;<br />
function formatTime($time)<br />
{<br />
   return date(&#8220;D, d M Y H:i:s +0400&#8243;, $time);<br />
}</p>
<p>function parseTime($str)<br />
{<br />
   list($date, $time) = explode(&#8216; &#8216;, $str);<br />
   list($day, $month, $year) = explode(&#8216;.&#8217;, $date);<br />
   list($hour, $minute) = explode(&#8216;:&#8217;, $time);<br />
   $timestamp = mktime($hour, $minute, 0, $month, $day, $year);<br />
   return $timestamp;<br />
}</p>
<p>function str_to_upper($str){<br />
    return strtr($str,<br />
    &#8220;абвгдеёжзийклмнопрстуфхцчшщъыьэюя&#8221;,<br />
    &#8220;АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ&#8221;);<br />
}</p>
<p>function str_to_lower($str){<br />
    return strtr($str,<br />
    &#8220;АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ&#8221;,<br />
    &#8220;абвгдеёжзийклмнопрстуфхцчшщъыьэюя&#8221;);<br />
}</p>
<p>$today = time();<br />
$date_time_array = getdate($today);<br />
$hours = $date_time_array['hours'];<br />
$minutes = $date_time_array['minutes'];<br />
$seconds = $date_time_array['seconds'];<br />
$month = $date_time_array['mon'];<br />
$day = $date_time_array['mday'];<br />
$year = $date_time_array['year'];<br />
$yesterday1 = mktime($hours,$minutes,$seconds,$month,$day-1,$year);<br />
$yesterday = strftime(&#8216;%d.%m.%Y&#8217;,$yesterday1);<br />
$symbols = array(&#8220;&#038;&#8221;, &#8220;\&#8221;", &#8220;<", ">&#8220;, &#8220;&#8216;&#8221;);<br />
$zamena = array(&#8220;&#038;&#8221;, &#8220;&#8221;", &#8220;&lt;&#8221;, &#8220;&gt;&#8221;, &#8220;&apos;&#8221;);<br />
$symbols1 = array(&#8220;&#038;&#8221;, &#8220;\&#8221;", &#8220;<", ">&#8220;, &#8220;&#8216;&#8221;, &#8220;.&#8221;);</p>
<p>if (CModule::IncludeModule(&#8220;iblock&#8221;)) {<br />
    $infblock = Array();<br />
    $res = CIBlockElement::GetList(Array(&#8220;ID&#8221;=>&#8221;ASC&#8221;), Array(&#8220;ACTIVE&#8221;=>&#8221;Y&#8221;));<br />
    while ($arr = $res->Fetch()) {<br />
       $infblock[$arr["ID"]] = $arr["NAME"];<br />
    } </p>
<p>	$SORT = Array(&#8220;DATE_CREATE&#8221;=>&#8221;DESC&#8221;, &#8220;ID&#8221;=>&#8221;ASC&#8221;);<br />
	$FILTER = Array(&#8220;IBLOCK_ID&#8221;=>Array(&#8220;31&#8243;, &#8220;32&#8243;, &#8220;33&#8243;, &#8220;51&#8243;, &#8220;52&#8243;, &#8220;53&#8243;, &#8220;55&#8243;, &#8220;56&#8243;),&#8221;APPROVED&#8221;=>&#8221;Y&#8221;, &#8220;STATE&#8221;=>&#8221;Y&#8221;, &#8220;>=DATE_CREATE&#8221;=>&#8221;$yesterday&#8221;, &#8220;!=PROPERTY_PODRAZDEL_VALUE&#8221;=>&#8221;статья&#8221;);<br />
	if (intval($_REQUEST["BID"]) > 0) $FILTER["IBLOCK_ID"] = intval($_REQUEST["BID"]);<br />
	$FIELDS = Array (&#8220;NAME&#8221;, &#8220;ID&#8221;, &#8220;DATE_CREATE&#8221;, &#8220;IBLOCK_ID&#8221;, &#8220;PREVIEW_TEXT&#8221;, &#8220;DETAIL_TEXT&#8221;, &#8220;PROPERTY_PODRAZDEL&#8221;, &#8220;DETAIL_PAGE_URL&#8221;, &#8220;PROPERTY_AUTHOR&#8221;);</p>
<p>   $res = CIBlockElement::GetList($SORT, $FILTER, false, false, $FIELDS);<br />
   while ($arr = $res->Fetch()) {<br />
   	$newstitle=strip_tags($arr["NAME"]);<br />
		$res1 = CIBlock::GetByID($arr["IBLOCK_ID"]);<br />
		if($ar_res1 = $res1->GetNext())</p>
<p>	if (!strcmp($newstitle, str_to_upper($newstitle)))<br />
		$newstitle=str_to_lower($newstitle);<br />
		if ($arr["PROPERTY_PODRAZDEL_VALUE"]!=&#8221;")<br />
			$dir=&#8221;articles/&#8221;;<br />
		else<br />
			$dir=&#8221;news/&#8221;;</p>
<p>	echo &#8220;<br />
		<item> </p>
<link>http://&#8221;.SITE_SERVER_NAME.SITE_DIR.$dir.$arr["ID"].&#8221;.html</link>
		<description>&#8220;.str_replace($symbols, $zamena, strip_tags($arr["PREVIEW_TEXT"])).&#8221;</description>&#8220;;<br />
	if ($arr["PROPERTY_AUTHOR_VALUE"]!=&#8221;")<br />
		echo &#8220;<author>&#8220;.$arr["PROPERTY_AUTHOR_VALUE"].&#8221;</author>&#8220;;<br />
	echo &#8220;</p>
<pubDate>&#8220;.formatTime(parseTime($arr["DATE_CREATE"])).&#8221;</pubDate>
		<yandex:full-text>&#8220;.str_replace($symbols, $zamena, strip_tags($arr["DETAIL_TEXT"])).&#8221;</yandex:full-text><br />
		</item><br />
		&#8220;;</p>
<p>   }<br />
} </p>
<p>echo &#8220;<br />
</channel><br />
</rss><br />
&#8220;; </p>
<p>require($_SERVER["DOCUMENT_ROOT"].&#8221;/bitrix/modules/main/include/epilog_after.php&#8221;);<br />
?>[/php]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexblog.ru/archives/11/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

