• Авторизация пользователя
    
    <?php 
    
    global $USER;
    $USER->Authorize($USER->GetID());  ?>
  • Вывод цен в шаблоне
    
    <?php $arProduct GetCatalogProduct($arItem['ID']); // $arItem['ID'] - товара
    
    $arPrice GetCatalogProductPriceList($arItem['ID'], "SORT""ASC");
    $bCanBuy False;
    for (
    $i 0$i<count($arPrice); $i++)
    {
    if (
    $arPrice[$i]["CAN_ACCESS"]=="Y")
    {
    if (
    $arPrice[$i]["CAN_BUY"]=="Y" && (IntVal($arProduct["QUANTITY"])>|| $arProduct["QUANTITY_TRACE"]!="Y"))
    $bCanBuy True;
    if(
    $arPrice[$i]["PRICE"]>0){
    echo 
    '<div class="price">'.FormatCurrency($arPrice[$i]["PRICE"], $arPrice[$i]["CURRENCY"]).'</div>';
    }
    }
    ?>
  • Список пользователей
    
    <?php $result = \Bitrix\Main\UserTable::getList(array(
    
    'select' => array('ID','NAME','PERSONAL_GENDER'), 
    'order' => array('LAST_LOGIN'=>'DESC'),
    'filter' => array('=PERSONAL_GENDER' => 'M'),
    'limit'=>'10'
    ));
    while(
    $rsUsers=$result->fetch()) :
        
    $fields = array(
            
    'PERSONAL_GENDER'=>'F'    
        
    );
        
    $user = new CUser;
        
    $user->Update($rsUsers['ID'], $fields); // - редактирование пользователя
    echo substr($rsUsers['NAME'],-1).' ';    
    echo 
    $rsUsers['NAME'].' пол '.$rsUsers['PERSONAL_GENDER'].'</br>';        
    endwhile; 
    ?>
  • Элементы инфоблока
    
    <?php // Фильтр для выборки элементов
    
    $arFilter = array('IBLOCK_ID' => '72');

    $arSelect = array('NAME');
    $rsElements CIBlockElement::GetList([], $arFilterfalsefalse$arSelect);

    while (
    $arElement $rsElements->GetNext()) {
        echo 
    $arElement['DATE_CREATE'].' </br>';
    }
    ?>
  • Проверка авторизации пользователя
    
    <?php global $USER;
    
    $USER->IsAuthorized();
    echo 
    $USER->IsAuthorized();
    if(
    $USER->IsAuthorized()==true){echo 'Пользователь авторизирован';}else{
    echo 
    'Пользователь не авторизирован';} ?>
  • Шаг ползунка в фильтре
    
    <?php //1. Открываешь template.php, ищешь где там вызывается new BX.Iblock.SmartFilter, над этим вызовом параметры
    
    $arJsParams = array(
        
    "leftSlider" => 'left_slider_'.$key,
        
    // .............
        // добавляешь свой параметр, например step (значение = шаг)
        
    "step" => 100
    );
    //2. Открываешь script.js ищешь BX.Iblock.SmartFilter = (function() там внутри
    var SmartFilter = function(arParams)
    {
        if (
    typeof arParams === 'object')
        {
            
    this.leftSlider BX(arParams.leftSlider);
            
    // ...........
            
            // где-нибудь здесь добавляешь
            
    this.step arParams.step || 1;
        }
    };
    //3. Ищешь функцию
    SmartFilter.prototype.recountMinPrice = function()
    {
        var 
    newMinPrice = (this.priceDiff*this.leftPercent)/100;
        
    newMinPrice = (this.minPrice newMinPrice).toFixed(this.precision);
            
    // добавляешь эту строку
        
    newMinPrice Math.round(newMinPrice/this.step) * this.step;
        if (
    newMinPrice != this.minPrice)
            
    this.minInput.value newMinPrice;
        else
            
    this.minInput.value "";
        
    /** @global JCSmartFilter smartFilter */
        
    smartFilter.keyup(this.minInput);
    };
    //4. Ищешь функцию
    SmartFilter.prototype.recountMaxPrice = function()
    {
        var 
    newMaxPrice = (this.priceDiff*this.rightPercent)/100;
        
    newMaxPrice = (this.maxPrice newMaxPrice).toFixed(this.precision);
            
    // добавляешь эту строку
        
    newMaxPrice Math.round(newMaxPrice/this.step) * this.step;
        if (
    newMaxPrice != this.maxPrice)
            
    this.maxInput.value newMaxPrice;
        else
            
    this.maxInput.value "";
        
    /** @global JCSmartFilter smartFilter */
        
    smartFilter.keyup(this.maxInput);
    }; 
    ?>
  • Вывод свойств инфоблока
    
    <?php $postcard['PROPERTIES']['VIP']['VALUE']
    
    /*Множественные свойства - начало */
    $qaw = array();
    $qres CIBlockElement::GetProperty(4314433"sort""asc", array("CODE" => "QUSTIONS"));
    $qsd=0;
    $asd=0;
    while (
    $qob $qres->GetNext())
    {
        
    $qsd++;
        
    $qaw[$qsd]['question'] = $qob['VALUE'];
    }
    $ares CIBlockElement::GetProperty(4314433"sort""asc", array("CODE" => "answer"));
    while (
    $aob $ares->GetNext())
    {
        
    $asd++;
        
    $qaw[$asd++]['answer'] = $aob['VALUE'];
    echo 
    CFile::GetPath($qob['VALUE'] - /*ID картинки*/);
    }
    print_r($qaw);
    /*Множественные свойства - конец */
    ?>
  • Мультирегиональность
    
    <?php 
    
    /*1. Установить модуль Aaccent: Мультирегиональность
    2. Настроить инфоблок Аакцент: мультирегиональность
    Символьный код: - задать aaccent_regions
    Символьный код API: aaccentRegions
    3. Добавить нужные регионы данного инфоблока
    4. \bitrix\modules\main\include\urlrewrite.php
    после строки use Bitrix\Main\Web;

    error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR|E_PARSE); добавить */
    $regions = array('/krasnodar','/rostov','/novosibirsk','/ekb','/odintsovo','/omsk','/almaty','/astana','/spb'); // регионы, которые были созданы в инфоблоке
    $_SERVER['REGION_URI'] = $_SERVER['REQUEST_URI'];
    $explode array_diff(explode("/"$_SERVER['REQUEST_URI']), array(''));
    $ised=0;$pli;
    foreach(
    $regions as $item) {
    for(
    $idc=0;$idc<=count($explode);$idc++){
    if(
    '/'.$explode[$idc]==$item){
    $pli=$idc;
    }
    }
    if (
    strpos($_SERVER['REQUEST_URI'], $item) !== false) {
    $ised++;
    }
    }
    if (
    count($explode) > && $ised<=&& $pli<=1) {
    $_SERVER['REQUEST_URI'] = str_replace($regions""$_SERVER['REQUEST_URI']);
    } elseif (
    count($explode) == 1) {
    foreach(
    $regions as $item) {
    if (
    strpos($_SERVER['REQUEST_URI'], $item) !== false && $pli!='') {
    $_SERVER["REQUEST_URI"] = '/index.php';
    }
    }
    }
    /* в \local\php_interface\init.php добавить*/
    // Проверка на региональную подпапку.
    // $_SERVER['REGION_URI'] - формируется здесь /bitrix/modules/main/include/urlrewrite.php
    function isRegion()
    {
    if (
    $_SERVER['REGION_URI']) {
    $region explode('/'$_SERVER['REGION_URI'])[1];
    }

    if (
    is_array(getAaccentRegionsList(true))) {
    if (
    in_array($regiongetAaccentRegionsList(true)))
    return 
    $region;
    }


    return 
    false;
    }

    // Массив с настройками регионов или список региональных подпапок
    function getAaccentRegionsList($only_regions false): array
    {
    Loader::includeModule('iblock');

    $regionList = [];
    $regionCollection = \Bitrix\Iblock\Elements\ElementAaccentRegionsTable::getList([
    'select' => ['ID''NAME''CODE','ADDRESSES','PHONES'],
    ])->
    fetchCollection();

    foreach (
    $regionCollection as $region) {
    if (
    $only_regions) {
    $regionList[] = $region->getCode();
    } else {
    $regionList[$region->getName()]['CODE'] = $region->getCode();
    if (
    $region->getCoordsLat())
    $regionList[$region->getName()]['COORDS_LAT'] = $region->getCoordsLat()->getValue();

    if (
    $region->getCoordsLng())
    $regionList[$region->getName()]['COORDS_LNG'] = $region->getCoordsLng()->getValue();
    }
    }

    return 
    $regionList;
    }

    // подключить нужный файл вместо 404 для региональной подпапки
    function includeRegionIn404()
    {
    $array getAaccentRegionsList(true);
    $corg=0;
    foreach (
    $array as $item) {
    $urregs=explode('/',$_SERVER['REGION_URI']);
    if (
    strpos($_SERVER['REQUEST_URI'], $item) !== false) {
    $corg++;
    }

    foreach (
    $array as $item) {
    if (
    strpos($_SERVER['REGION_URI'], $item) !== false && $corg<=1) {
    $_SERVER['REQUEST_URI'] = str_replace($array""$_SERVER['REGION_URI']);
    $url explode("?"$_SERVER['REQUEST_URI']);

    $page '';
    if(
    mb_substr_count($_SERVER['REQUEST_URI'], '/')<4){
    if (
    strpos($_SERVER['REQUEST_URI'], 'index.php') === false)
    {
    $page "index.php";
    $_SERVER['REQUEST_URI'] = $url[0] . $page;
    }
    }else if(
    mb_substr_count($_SERVER['REQUEST_URI'], '/')==4){
    if(
    strpos($_SERVER['REQUEST_URI'], 'news') == true){
    $page "detail.php";    
    $_SERVER['REQUEST_URI'] = '/news/'.$page;
    }else if(
    strpos($_SERVER['REQUEST_URI'], 'services')==true){
    $page "section.php";    
    $_SERVER['REQUEST_URI'] = '/services/'.$page;
    }
    }else if(
    mb_substr_count($_SERVER['REQUEST_URI'], '/')==5){
    if(
    strpos($_SERVER['REQUEST_URI'], 'services')==true){
    $page "detail.php"
    $_SERVER['REQUEST_URI'] = '/services/'.$page;  
    }
    }
    return 
    $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
    }
    }

    return 
    false;
    }

    // Замена шорткода на название города выбранного региона
    AddEventHandler("main""OnEndBufferContent""changeAaccentRegionsCityShortcode");

    function 
    changeAaccentRegionsCityShortcode(&$content)
    {
    \
    Bitrix\Main\Loader::includeModule('iblock');

    /*$cityName = $cityRod = $cityDat = $cityVin = $cityTvor = $cityPred = $mainDomain = '';*/
    $cityPred='в Москве';
    $cityName='Москва';
    $regionCollection = \Bitrix\Iblock\Elements\ElementAaccentRegionsTable::getList([
    'select' => ['ID''NAME''CODE','ADDRESSES','PHONES','CITY_PRED'],
    'filter' => ['=ACTIVE' => 'Y'],
    ])->
    fetchCollection();
    foreach (
    $regionCollection as $region) {
    if (
    $_SERVER['REGION_URI'])  {
    if (
    strpos($_SERVER['REGION_URI'], '/' $region->getCode()) !== false) {
    $cityName $region->getName();
    $cityCode=$region->getCode();
    $citylink='/'.$region->getCode();
    if (
    $region->getCityPred() !== null)
    $cityPred $region->getCityPred()->getValue();
    break;
    }
    }
    }

    if (!
    CSite::InDir('/bitrix/')) {
    $content str_replace('#CITY_NAME#'$cityName$content);
    $content=str_replace("#CITY_CODE#",$cityCode,$content);
    $content str_replace('#CITY_PRE#'$cityPred$content);
    $content str_replace('#CITY_LINK#'$citylink$content);

    if (
    $mainDomain) {
    $content preg_replace('#a(.*)?(\n)?(\s+)?href="\/(?!(index|cart|lk|bitrix|http:|javascript|mailto|tel:|en|upload\/))#''a${1}${2}${3}href="/' $mainDomain '/'$content);
    }
    }

    /*$content = str_replace('#populrsl#', 'Клас1с', $content);*

    if($aob['VALUE']!=''){
    $elementNames[] = array(
    'ID'=>$arElement['ID'],
    'NAME' => $arElement['NAME'],
    'CODE' => $arElement['CODE'],
    'POPULAR_SERVISE' => $aob['VALUE']
    ); 
    }
    }
    }*/

    $populrs='<section id="popular_servs"><div class="container"><script src="/local/templates/loginov/js/libs/swiper/swiper.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/11.0.5/swiper-bundle.min.js"></script><h2>Популярные услуги</h2><div id="servs-wrapper" class="hero__swiper swiper"><ul class="hero__swipper-wrapper swiper-wrapper">';
    $iblockId 3;

    $arFilter = array('IBLOCK_ID' => $iblockId,'ACTIVE'=>'Y');

    $arSelect = array('ID','NAME','DETAIL_PAGE_URL','CODE','ACTIVE'=>'Y');

    $rsElements CIBlockElement::GetList([], $arFilterfalsefalse$arSelect);

    $elementNames = array();

    while (
    $arElement $rsElements->GetNext()) {
    $ares CIBlockElement::GetProperty(3$arElement['ID'], "sort""asc", array("CODE" => "POPULAR_SERVISE"));
    while (
    $aob $ares->GetNext())
    {  
    if(
    $aob['VALUE']!=''){                
    $populrs.='<li class="hero__swiper-slide swiper-slide hero-slide"><a href="'.$arElement['DETAIL_PAGE_URL'].'" class="press-slide">
    <span class="press-slide__text"><b>'
    .$arElement["NAME"].'</b></span>';
    $qprs CIBlockElement::GetProperty(3$arElement['ID'], "sort""asc", array("CODE" => "PRICE"));
    while (
    $rprs $qprs->GetNext())
    {  
    $populrs.='<span class="prc_link">';
    if(
    $rprs['VALUE']!=''){
    $populrs.='<span class="price">'.$rprs['VALUE'].'</span>';
    }
    $populrs.='<span class="link"></span></span>';
    }                    
    $populrs.='</a></li>';
    }}}
    $populrs.='</ul></div><div class="servs__swiper-controls">
    <button type="button" class="slider-button hero-slide__control prev">
    <svg class="icon">
    <use xlink:href="/local/templates/loginov/images/sprite.svg#arrow-left"></use>
    </svg>
    </button>
    <button type="button" class="slider-button hero-slide__control next">
    <svg class="icon icon--reverse">
    <use xlink:href="/local/templates/loginov/images/sprite.svg#arrow-left"></use>
    </svg>
    </button>
    </div><div class="swiper-pagination"></div></div></section>'
    ;
    $content str_replace('#populrsl#'$populrs$content);
    }
    AddEventHandler("search""BeforeIndex""BeforeIndexHandler");
    /*Далее в 404.php добавить*/
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

    /*$APPLICATION->SetTitle("404 Not Found");*/
    if (includeRegionIn404()) {

    include 
    includeRegionIn404();

    } else {

    CHTTP::SetStatus("404 Not Found");
    @
    define("ERROR_404","Y");
    include_once(
    $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');


    require(
    $_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

    $APPLICATION->SetTitle("404 Not Found");
    }
    /*в .htaccess добавить
    <IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$
    RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
    RewriteCond %{THE_REQUEST} //
    RewriteRule .* /$0 [R=301,L]
    RewriteCond %{REQUEST_URI} !\?
    RewriteCond %{REQUEST_URI} !\&
    RewriteCond %{REQUEST_URI} !\=
    RewriteCond %{REQUEST_URI} !\.
    RewriteCond %{REQUEST_URI} !\/$
    RewriteRule ^(.*[^\/])$ /$1/ [R=301,L] 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
    </IfModule> */
    ?>
  • Свойство инфоблока файл множественное на php
    
    <?php 
    
    $qaw 
    = array();
    $qres CIBlockElement::GetProperty($PRODUCT_IBLOCK_ID$PRODUCT_ID"sort""asc", array("CODE" => "before_after"));
    $qsd=0;
    $asd=0;
    while (
    $qob $qres->GetNext())
    {
        
    $qsd++;
        
    $qaw[$qsd]['before_after'] = CFile::GetPath($qob['VALUE']);
        echo 
    '<img src="'.CFile::GetPath($qob['VALUE']).'" alt="">';

    ?>
  • Транслитерация, замена в русском тексте английских похожих букв на русский
    
    <?php
    
    function translit($input){
    $gost = array('&quot;'=>'',
    'A'=>'А','a'=>'а','B'=>'В','b'=>'б','C'=>'С','c'=>'с','D'=>'Д','d'=>'д','E'=>'Е','e'=>'е','F'=>'Ф','f'=>'а','G'=>'Г','g'=>'г','H'=>'Н','h'=>'н','I'=>'И','i'=>'и','J'=>'Ж','j'=>'ж','K'=>'К','k'=>'к','L'=>'Л','l'=>'л',
    'M'=>'М','m'=>'м','N'=>'Н','n'=>'п','O'=>'О','o'=>'о','P'=>'Р','p'=>'р','Q'=>'К','q'=>'к','R'=>'Р','r'=>'р','S'=>'С','s'=>'с','T'=>'Т','t'=>'т','U'=>'И','u'=>'и','V'=>'В','v'=>'в','W'=>'Д','w'=>'д','X'=>'Х','x'=>'х','Y'=>'И','y'=>'и','Z'=>'З','z'=>'з'
    );
    return 
    strtr($input$gost);
    }
    ?>
  • Версия php
    
    <?php
    
    phpversion
    ();
    ?>
  • Создание компонента
    
    <?php /*Создаем папку /local/components/dv, в ней делаем папку компонента — date.current, И в ней, в свою очередь, создаем два обязательных файла и папку для хранения шаблонов templates. В этой папке должна быть создана папка .default и в ней файл template.php.
    

    Получаем такую структуру в папке /local/components/dv/date.current:

    component.php
    .description.php
    templates/.default/template.php

    component.php

    <? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
        $arResult['DATE'] = date('Y-m-d');
        $this->IncludeComponentTemplate();
    ?>

    .description.php

    <? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); $arComponentDescription = array(
        "NAME" => GetMessage("Текущая дата"),
        "DESCRIPTION" => GetMessage("Выводим текущую дату"),
    );
    ?>


    templates/.default/template.php



    */
    ?>
  • Список пользователей из группы
    
    $filter = Array("GROUPS_ID"=> Array(1));
    
    $rsUsers = CUser::GetList(($by="id"), ($order="desc"), $filter);
    while($arItem = $rsUsers->GetNext()){
    $arResult['DATE'][$arItem['ID']]['login']=$arItem['LOGIN'];
    }
  • Запрет перехода в файл на прямую по ссылке
    
    <?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); ?>
    
    
  • 404 для поддоменов
    
    <?php 
    
    $httpHost 
    str_replace('www.'''$_SERVER['HTTP_HOST']);
    $urlArray explode('.'$httpHost);
    if (
    count($urlArray) > && !empty($urlArray[0])):
    $connection Bitrix\Main\Application::getConnection('default');
    $sqlHelper $connection->getSqlHelper();
    $sql "SELECT CODE FROM `sotbit_regions`";
    $rsResult $connection->query($sql);
    while (
    $arDomain $rsResult->fetch()):
    $withOutHTTP str_replace(['https://''http://'], ''$arDomain['CODE']);
    $tmpDomainArray explode('.'$withOutHTTP);
    if (
    count($tmpDomainArray) > 2){
    $domainList[$tmpDomainArray[0]] = $withOutHTTP;
    }
    endwhile;     
    if (!isset(
    $domainList[$urlArray[0]]) && empty($domainList[[0]])):
    define("ERROR_404""Y");
    if (
    defined('ERROR_404') && ERROR_404 == 'Y') {
    require(\
    Bitrix\Main\Application::getDocumentRoot() . "/404.php");
    die();
    }
    if (!
    defined("ERROR_404"))
    define("ERROR_404""Y");

    \
    CHTTP::setStatus("404 Not Found");

    if (
    $APPLICATION->RestartWorkarea())
    {
    require(\
    Bitrix\Main\Application::getDocumentRoot() . "/404.php");
    die();
    }
    endif;
    endif;
    ?>
  • robots.txt и sitemap.php для поддоменов
    
    <?php /*robots.php*/
    
    $host $_SERVER["HTTP_HOST"];
    $host preg_replace("/\:\d+/is"""$host);
    if (isset(
    $_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on"){
        
    $http "https";
    }
    else{
        
    $http "http";
    }
    header("Content-Type: text/plain");?>
    User-Agent: *
    Disallow: */index.php
    Disallow: /bitrix/
    Disallow: /*show_include_exec_time=
    Disallow: /*show_page_exec_time=
    Disallow: /*show_sql_stat=
    Disallow: /*bitrix_include_areas=
    Disallow: /*clear_cache=
    Disallow: /*clear_cache_session=
    Disallow: /*ADD_TO_COMPARE_LIST
    Disallow: /*ORDER_BY
    Disallow: /*PAGEN
    Disallow: /*?print=
    Disallow: /*?list_style=
    Disallow: /*?sort=
    Disallow: /*?set_filter=
    Disallow: /*?arrFilter*
    Disallow: /*?order=
    Disallow: /*&print=
    Disallow: /*print_course=
    Disallow: /*?action=
    Disallow: /*&action=
    Disallow: /*register=
    Disallow: /*forgot_password=
    Disallow: /*change_password=
    Disallow: /*login=
    Disallow: /*logout=
    Disallow: /*auth=
    Disallow: /*backurl=
    Disallow: /*back_url=
    Disallow: /*BACKURL=
    Disallow: /*BACK_URL=
    Disallow: /*back_url_admin=
    Disallow: /*?utm_source=
    Disallow: /order/
    Disallow: /*download*
    Disallow: /test.php
    Allow: /bitrix/components/
    Allow: /bitrix/cache/
    Allow: /bitrix/js/
    Allow: /bitrix/templates/
    Allow: /bitrix/panel/
    Host: <?=$http?>://<?=$host.PHP_EOL;?>
    Sitemap: <?=$http?>://<?=$host;?>/sitemap.xml
    <?php /*sitemap_gen.php*/
    function sitemap_gen($site_url){
        
    $sitemaps glob($_SERVER['DOCUMENT_ROOT'].'/sitemap*.xml');
        foreach (
    $sitemaps as $sitemap) {
            
    $error = [];
            
    $new_path $_SERVER["DOCUMENT_ROOT"].'/'.str_replace('.xml''.php'basename($sitemap));
            
    $dyn_sitemapContent '<?'.PHP_EOL.'$host = preg_replace("/\:\d+/is", "", $_SERVER["HTTP_HOST"]);'.PHP_EOL.
                
    'if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on"){'.PHP_EOL.
                
    '    $http = "https";'.PHP_EOL.
                
    '}'.PHP_EOL.
                
    'else{'.PHP_EOL.
                
    '    $http = "http";'.PHP_EOL.
                
    '}'.PHP_EOL.
                
    'header("Content-Type: text/xml");'.PHP_EOL;

            
    $sitemapContent file_get_contents($sitemap);
            if (!
    $sitemapContent){
                
    $error[basename($sitemap)] = 'Файл не найден или пустой.';
            }
        
            
    // замены
            
    $search = Array(
                
    $site_url,
                
    'http:',
                
    'https:',
            );
            
    $replace = Array(
                
    '<?=$host?>',
                
    '<?=$http?>:',
                
    '<?=$http?>:'
            
    );
        
            
    $sitemapContent str_replace($search$replace$sitemapContent);

            
    $sitemapContent preg_replace('/(\<\?xml[^\>]+\>)/i'"echo '$1';?>".PHP_EOL$sitemapContent);
            if (
    basename($sitemap) == 'sitemap.xml') {
                
    $sitemapContent str_replace('.xml''.php'$sitemapContent);
            }

            
    $dyn_sitemapContent .= $sitemapContent;
            if (!
    file_put_contents($new_path$dyn_sitemapContent)){
                
    $error[basename($new_path)] = 'Файл не удалось сохранить.';
            } else {
                            
    unlink($sitemap);                }
        }
        return 
    count($error) > $error 'Динамическая карта сайта сгенерирована';
    }
    print_r(sitemap_gen('адрес_вашего_сайта_без_http'));

    ?>Теперь необходимо сгенерировать файлы sitemap, для этого админке сайта переходим в <b>Маркетинг</b>  - <b>Поисковая оптимизация</b>  - <b>Настройка Sitemap.xml</b> . Добавляем sitemap для сайта, настраиваем условия формирования sitemap, сохраняем и обязательно необходимо Запустить генерацию файлов sitemap.

    Так же рекомендуется отключить в настройках карты опцию <b>Добавить правило в robots.txt после генерации</b>.

    Запустить http://ваш-сайт.ру/sitemap_gen.php

    в файл .htaccess добавить

    RewriteRule ^robots\.txt$ /robots.php [L]
    RewriteRule ^sitemap\.xml$ /sitemap.php [L]
  • Текущий FUSER_ID
    
    <?php
    
    use Bitrix\Sale\Fuser
    $fuserId Fuser::getId();
    echo 
    "Текущий FUSER_ID: " $fuserId
    ?>
  • свойство инфоблока привязка к яндекс карте
    
    <?php
    
    use Bitrix\Main\Loader;
    use 
    Bitrix\Main\Context;

    Loader::includeModule('iblock');

    $elementId 357// ID элемента инфоблока
    $propertyCode 'mapsa'// Символьный код свойства с координатами

    $element CIBlockElement::GetByID($elementId)->GetNext();

    if (
    $element) {
        
    $property CIBlockElement::GetProperty(
            
    $element['IBLOCK_ID'],
            
    $elementId,
            array(
    "sort" => "asc"),
            array(
    "CODE" => $propertyCode)
        )->
    Fetch();

        if (
    $property && $property['VALUE']) {
            
    $coordinates explode(','$property['VALUE']);
            
    $latitude trim($coordinates[0]);
            
    $longitude trim($coordinates[1]);

            
    // Отображение метки на карте (пример с JavaScript, используйте ваш компонент или библиотеку)
            
    ?>
            <div id="map" style="width: 100%; height: 945px;"></div>
            <script src="https://api-maps.yandex.ru/2.1/?apikey=df9534d6-28a0-4e58-b913-a83560ba0e55&lang=ru_RU" type="text/javascript"></script>
            <script type="text/javascript">
                ymaps.ready(function () {
                    var myMap = new ymaps.Map('map', {
                        center: [<?php echo $latitude?><?php echo $longitude?>],
                        zoom: 18
                    });

                    var myPlacemark = new ymaps.Placemark([<?php echo $latitude?><?php echo $longitude?>], {
                        hintContent: '<?php echo htmlspecialchars($element['NAME']); ?>',
                        balloonContent: '<?php echo htmlspecialchars($element['NAME']); ?>'
                    });

                    myMap.geoObjects.add(myPlacemark);
                });
            </script>
            <?php
        
    } else {
            echo 
    "Свойство с координатами не найдено.";
        }
    } else {
        echo 
    "Элемент инфоблока не найден.";
    ?>
  • Свойство инфоблока картинка
    
    <?php
    
    $offce 
    CIBlockElement::GetByID($elementId)->GetNext();
    if (
    $offce) {
    $poffce CIBlockElement::GetProperty(
    $offce['IBLOCK_ID'],
    $elementId,
    array(
    "sort" => "asc"),
    array(
    "CODE" => $name)
    )->
    Fetch();
    if(
    $name!='images'){
    echo 
    $poffce['VALUE'];
    }
    }
    $file CFile::GetFileArray($poffce['VALUE']);
    if (
    $file) {
    echo 
    '<img class="contacts__info-image" src="' $file["SRC"] . '" alt="">';
    }
    ?>

* поле обязательное для заполнения. Нажимая кнопку Отправить, Вы соглашаетесь с условиями Политика обработки персональных данных и Политикой конфиденциальности.

* поле обязательное для заполнения. Нажимая кнопку Отправить, Вы соглашаетесь с условиями Политика обработки персональных данных и Политикой конфиденциальности.

Нажимая «Принять», вы даете согласие на использование всех файлов, вы даете согласие на обработку файлов Cookies и других пользовательских данных, в соответствии с Политикой конфиденциальности.
Принять