Функции которые могут пригодится для разных проектов на 1С-Битрикс



//Получает информация о пользователе

function UserInfo($user_id){
        if($user_id>0){
        $rsUser = CUser::GetByID($user_id);
        return $rsUser->Fetch();                
        }
}

//Получает количество товаров в корзине без цикла
function getBasketCount(){
        
        if(CModule::IncludeModule("sale")){
                $cntBasketItems = CSaleBasket::GetList(
                   array(),
                   array( 
                          "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                          "LID" => SITE_ID,
                          "ORDER_ID" => "NULL"
                   ), 
                   array()
                );
                
                return $cntBasketItems;         
        }
}

//Получает уменьшенную копию изображение по ID;
function getImageByID($imgid, $width=false, $height=false){
    
        if(empty($imgid)){
                        $img="/images/default-image.png";
                }else{
                        
                if($width==false){$width=100;}
                if($height==false){$height=100;}
                        
                $img = CFile::ResizeImageGet($imgid, Array("width" => $width, "height" => $width),BX_RESIZE_IMAGE_PROPORTIONAL);
                $img = $img['src'];                                     
        }    
    return $img;
        
}


// Получаем Изображение из свойства MORE_PHOTO

function GetPropImgByElID($id){
        $res = CIBlockElement::GetByID($id);
        if($ob = $res->GetNextElement())
                {
                $arProp = $ob->GetProperty("MORE_PHOTO");
                return CFile::GetPath($arProp['VALUE'][0]);             
                }               
}; 


//Получает название раздела по символьному коду

function GetSectionNameByCode($iblock_id, $code){
    $res = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $iblock_id, 'CODE' =>$code), false, array("NAME"));
        $section = $res->Fetch();
        return $section['NAME'];
}


//Получает вложенность раздела

function GetSectionLevelByCode($iblock_id, $code){
    $res = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $iblock_id, 'CODE' =>$code), false, array("DEPTH_LEVEL"));
        $section = $res->Fetch();
        return $section['DEPTH_LEVEL'];
}


//Выводит разделы HTML Select ом

function GetSectionsSelect($IBLOCK_ID, $name, $params=false){
        
      CModule::IncludeModule("iblock");
          $arFilter = Array('IBLOCK_ID'=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y');
          $dblist = CIBlockSection::GetList(Array("NAME"=>"ASC"), $arFilter, true);
          
          $res = '';
          
          return $res;  
}


// получить ID раздела по Элемент ID

function GetElementSectionsID($ID){
    CModule::IncludeModule("iblock");
    $res = CIBlockElement::GetByID($ID);
    $ar_res = $res->GetNext();
    return $ar_res['IBLOCK_SECTION_ID'];
}



//получить ID раздела или элемента инфоблока по символьному коду

function getIdByCode($code, $iblock_id, $type)
{
        if(CModule::IncludeModule("iblock"))
        {
                if($type == 'IBLOCK_ELEMENT')
                {
                        $arFilter = array("IBLOCK_ID"=>$iblock_id, "CODE" => $code);
                        $res = CIBlockElement::GetList(array(), $arFilter, false, array("nPageSize"=>1), array('ID'));
                        $element = $res->Fetch();
                        if($res->SelectedRowsCount() != 1) return '
Элемент не найден

'; else return $element['ID']; } else if($type == 'IBLOCK_SECTION') { $res = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $iblock_id, 'CODE' => $code)); $section = $res->Fetch(); if($res->SelectedRowsCount() != 1) return '
Раздел не найден

'; else return $section['ID']; } else { echo '
Укажите тип

'; return; } } }