<?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>Serov.eu &#187; bitrix</title>
	<atom:link href="https://serov.eu/?feed=rss2&#038;tag=bitrix" rel="self" type="application/rss+xml" />
	<link>https://serov.eu</link>
	<description>Блог программиста</description>
	<lastBuildDate>Wed, 03 Jun 2026 08:45:44 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.15</generator>
	<item>
		<title>Bitrix</title>
		<link>https://serov.eu/?p=709</link>
		<comments>https://serov.eu/?p=709#comments</comments>
		<pubDate>Sun, 30 May 2021 13:35:29 +0000</pubDate>
		<dc:creator><![CDATA[Evgen]]></dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[bitrix]]></category>

		<guid isPermaLink="false">https://serov.eu/?p=709</guid>
		<description><![CDATA[Настройки формы инфоблоков для пользователя находятся в табличке b_user_option]]></description>
				<content:encoded><![CDATA[<p>Настройки формы инфоблоков для пользователя находятся в табличке</p>
<pre>b_user_option</pre>
]]></content:encoded>
			<wfw:commentRss>https://serov.eu/?feed=rss2&#038;p=709</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хороший урок по bitrix</title>
		<link>https://serov.eu/?p=535</link>
		<comments>https://serov.eu/?p=535#comments</comments>
		<pubDate>Sun, 19 Apr 2020 10:54:49 +0000</pubDate>
		<dc:creator><![CDATA[Evgen]]></dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[bitrix]]></category>

		<guid isPermaLink="false">https://serov.eu/?p=535</guid>
		<description><![CDATA[Создание своего модуля на битрикс https://www.youtube.com/watch?v=4uQVZnseFJc]]></description>
				<content:encoded><![CDATA[<p>Создание своего модуля на битрикс</p>
<p><a href="https://www.youtube.com/watch?v=4uQVZnseFJc">https://www.youtube.com/watch?v=4uQVZnseFJc</a></p>
]]></content:encoded>
			<wfw:commentRss>https://serov.eu/?feed=rss2&#038;p=535</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вытащить из яндекс список популярных страниц.</title>
		<link>https://serov.eu/?p=107</link>
		<comments>https://serov.eu/?p=107#comments</comments>
		<pubDate>Fri, 19 Jun 2015 14:23:53 +0000</pubDate>
		<dc:creator><![CDATA[Evgen]]></dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[bitrix]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yandex]]></category>

		<guid isPermaLink="false">https://serov.eu/?p=107</guid>
		<description><![CDATA[Была задача, составить список популярный страниц на сайте и вывести их как рекомендованные для пользователя. На сайте стоит яндекс метрика, а яндекс через api предлагает получить список популярных страниц. &#160; Написал две функции, которые справляются с поставленной задачей. &#160; &#160; // отправляем запрос курлом function getTokenYandex2($url,$peremen,$headers) { $post_arr=array(); foreach ($peremen as $key=&#62;$value) { $post_arr[]=$key."=".$value; } &#8230; <a href="https://serov.eu/?p=107" class="more-link">Читать далее <span class="screen-reader-text">Вытащить из яндекс список популярных страниц.</span></a>]]></description>
				<content:encoded><![CDATA[<p>Была задача, составить список популярный страниц на сайте и вывести их как рекомендованные для пользователя.</p>
<p>На сайте стоит яндекс метрика, а яндекс через api предлагает получить список популярных страниц.</p>
<p>&nbsp;</p>
<p>Написал две функции, которые справляются с поставленной задачей.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>// отправляем запрос курлом
function getTokenYandex2($url,$peremen,$headers) {
    $post_arr=array();
    foreach ($peremen as $key=&gt;$value) {
        $post_arr[]=$key."=".$value;
    }
    $data=implode('&amp;',$post_arr);

    $handle=curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_POST, true);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
    $response=curl_exec($handle);
    $code=curl_getinfo($handle, CURLINFO_HTTP_CODE);
    return array("code"=&gt;$code,"response"=&gt;$response);
}


function getInfoYandex($token){


    $startTime = strtotime(date('Y-m-d')." -1 month");
    $startTime=date("Ymd",$startTime);

    $ch = curl_init( 'http://api-metrika.yandex.ru/stat/content/popular?id=____ID___5&amp;per_page=500&amp;date1='.$startTime.'&amp;date2='.date('Ymd', time()));

    // получать заголовки
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    // если ведется проверка HTTP User-agent, то передаем один из возможных допустимых вариантов:
    curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
    // авторизация в яндекс по токену
    curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth '.$token, 'Accept: application/x-yametrika+json', 'Content-Type: application/x-yametrika+json'));
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10 );
    curl_setopt ($ch, CURLOPT_TIMEOUT, 10 );
    // возвращать результат работы
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    // не проверять SSL сертификат
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
    // не проверять Host SSL сертификата
    curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
    // следовать редиректу
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    // выполнить запрос
    curl_exec ($ch);
    // получить результат работы
    $result = curl_multi_getcontent ($ch);

    return json_decode($result);

}


</pre>
<p>первая функция, getTokenYandex2 для получения токена, у вас должна быть учетка в яндекс метрике.<br />
вторая функция getInfoYandex возвращает массив из списка популярных страниц.</p>
<p>&nbsp;</p>
<p>Все это вызывается вот так:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>// вызываем функцию получения токена
$result=getTokenYandex2("https://oauth.yandex.ru/token",
    array(
        'grant_type'=&gt; 'password', // тип авторизации
        'username'=&gt; '_____ВАШ__ЛОГИН________',
        'password'=&gt;'______ВАШ_ПАРОЛЬ_____________',
        'client_id'=&gt;'_____КЛИЕНТ_ID__ПОЛУЧАЕМ_В_ЯНДЕКС_API___________',
        'client_secret'=&gt;'______ПОЛУЧАЕМ_В_ЯНДЕКС_API___________',
    ),
    array('Content-type: application/x-www-form-urlencoded','Connection: close')
);



$token=json_decode($result['response']);
// спрашиваем у яндекса, какие страницы популярны
$listPageYandex=GetInfoYandex($token-&gt;access_token);

</pre>
<p>в итоге у нас массив из популярных страниц, дальше находил эти страницы в bitrix и менял им вес.</p>
<p>PS. Список популярных страниц запрашивается за последний месяц.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>PPS.</p>
<p>В начале я не понял, как получить токен автоматом. Везде на яндекс было написано, что пользователь вроде сам попадает на страницу авторизации яндекса, и там авторизуется, а тебе кэлбеком возвращается токен.</p>
<p>Замутил даже на сокете авторизацию <img src="https://serov.eu/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>$sock=fsockopen('ssl://oauth.yandex.ru', 443);	// curl замена
$fields="grant_type=password&amp;username=LOGIN&amp;password=PASSWORD&amp;client_id=400000000000000000000000000000&amp;client_secret=4000000000000000000003";
$msg="POST /token HTTP/1.1\r\nHost: oauth.yandex.ru\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection: close\r\nContent-Length: ".(strlen($fields))."\r\n\r\n".$fields."\r\n\r\n\r\n";
fwrite($sock, $msg);
$resp='';
while (!feof($sock)) {
    $resp.=fgets($sock, 128);
};
fclose($sock);
$arr=Array();
preg_match_all("/{.*?}/", $resp, $arr);
$json=json_decode($arr[0][0]);
var_dump($json);

</pre>
<p>Это в принципе работает, но курлом как то правильнее что-ли.<br />
Тут кстати есть подводные камни, сервер яндекс все никак не хотел закрывать соединения, пока не добавил Connection: close.</p>
]]></content:encoded>
			<wfw:commentRss>https://serov.eu/?feed=rss2&#038;p=107</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Импорт в bitrix</title>
		<link>https://serov.eu/?p=104</link>
		<comments>https://serov.eu/?p=104#comments</comments>
		<pubDate>Fri, 19 Jun 2015 14:05:33 +0000</pubDate>
		<dc:creator><![CDATA[Evgen]]></dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[bitrix]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">https://serov.eu/?p=104</guid>
		<description><![CDATA[Есть задачка, прочитать excel файл, напротив каждого региона есть запись. Нужно регион сопоставить с его ID в bitrix и дальше методом add добавить. Написал такую функцию &#160; &#160; function getNumberRegion($name){ $arrayRegion=array( 38285=&#62;'Брянская область', 38284=&#62;'Владимирская область', 38283=&#62;'Волгоградская область', 38282=&#62;'Вологодская область', 38281=&#62;'Воронежская область', 38280=&#62;'Еврейская автономная область', 38279=&#62;'Ивановская область', 38278=&#62;'Иркутская область', 38277=&#62;'Калининградская облатсь', 38276=&#62;'Калужская область', 38275=&#62;'Кемеровская область', 38274=&#62;'Кировская &#8230; <a href="https://serov.eu/?p=104" class="more-link">Читать далее <span class="screen-reader-text">Импорт в bitrix</span></a>]]></description>
				<content:encoded><![CDATA[<p>Есть задачка, прочитать excel файл, напротив каждого региона есть запись. Нужно регион сопоставить с его ID в bitrix и дальше методом add добавить.</p>
<p>Написал такую функцию</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>function getNumberRegion($name){

    $arrayRegion=array(
        38285=&gt;'Брянская область',
        38284=&gt;'Владимирская область',
        38283=&gt;'Волгоградская область',
        38282=&gt;'Вологодская область',
        38281=&gt;'Воронежская область',
        38280=&gt;'Еврейская автономная область',
        38279=&gt;'Ивановская область',
        38278=&gt;'Иркутская область',
        38277=&gt;'Калининградская облатсь',
        38276=&gt;'Калужская область',
        38275=&gt;'Кемеровская область',
        38274=&gt;'Кировская область',
        38273=&gt;'Костромская область',
        38272=&gt;'Курганская область',
        38271=&gt;'Курская область',
        38269=&gt;'Липецкая область',
        38268=&gt;'Магаданская область',
        38267=&gt;'Москва',
        38265=&gt;'Мурманская область',
        38264=&gt;'Республика Адыгея',
        38263=&gt;'Нижегородская область',
        38262=&gt;'Республика Алтай',
        38261=&gt;'Республика Башкортостан',
        38260=&gt;'Новгородская область',
        38259=&gt;'Новосибирская область',
        38258=&gt;'Республика Бурятия',
        38257=&gt;'Республика Дагестан',
        38256=&gt;'Омская область',
        38255=&gt;'Республика Ингушетия',
        38254=&gt;'Кабардино-Балкарская республика',
        38253=&gt;'Оренбургская область',
        38252=&gt;'Орловская область',
        38251=&gt;'Пензенская область',
        38250=&gt;'Псковская область',
        38249=&gt;'Ростовская область',
        38248=&gt;'Рязанская область',
        38247=&gt;'Самарская область',
        38246=&gt;'Санкт-Петербург',
        38245=&gt;'Саратовская область',
        38244=&gt;'Сахалинская область',
        38243=&gt;'Свердловская область',
        38242=&gt;'Смоленская область',
        38241=&gt;'Тамбовская область',
        38240=&gt;'Тверская область',
        38239=&gt;'Томская область',
        38238=&gt;'Тульская область',
        38237=&gt;'Тюменская область',
        38236=&gt;'Ульяновская область',
        38235=&gt;'Челябинская область',
        38234=&gt;'Ярославская область',
        38233=&gt;'Ханты-Мансийский автономный округ - ЮГРА',
        38232=&gt;'Чукотский автономный округ',
        38231=&gt;'Ямало-Ненецкий автономный округ',
        38230=&gt;'Республика Калмыкия',
        38229=&gt;'Карачаево-Черкесская республика',
        38228=&gt;'Республика Карелия',
        38227=&gt;'Республика Коми',
        38226=&gt;'Республика Марий Эл',
        38225=&gt;'Республика Мордовия',
        38224=&gt;'Республика Саха (Якутия)',
        38223=&gt;'Республика Северная Осетия-Алания',
        38222=&gt;'Республика Татарстан',
        38221=&gt;'Республика Тыва',
        38220=&gt;'Удмуртская республика',
        38219=&gt;'Республика Хакасия',
        38218=&gt;'Чеченская республика',
        38217=&gt;'Чувашская республика',
        38216=&gt;'Забайкальский край',
        38215=&gt;'Камчатский край',
        38214=&gt;'Краснодарский край',
        38213=&gt;'Красноярский край',
        38212=&gt;'Пермский край',
        38211=&gt;'Приморский край',
        38210=&gt;'Ставропольский край',
        38209=&gt;'Хабаровский край',
        38208=&gt;'Амурская область',
        38207=&gt;'Архангельская область',
        38206=&gt;'Астраханская область',
        38190=&gt;'Ленинградская область',
        38189=&gt;'Белгородская область',
        38188=&gt;'Алтайский край',
        38185=&gt;'Московская область',
    );
    // в нижний регистр массив
    array_walk_recursive($arrayRegion, function (&amp;$item, $key) { if (is_string($item)) $item = mb_strtolower($item); });
    return array_search(mb_strtolower(trim($name)),$arrayRegion,true);

}

function delc2a0($str){
    return str_replace("\xc2\xa0", '', $str);
}

</pre>
<p>&nbsp;</p>
<p>подаем на функцию регион, он возвращает его номер,  ничего сложного.</p>
<p>PS функция delc2a0 для удаления мусора, когда читаем excel.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://serov.eu/?feed=rss2&#038;p=104</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
