Основные функции Bitrix API | REDs Group
REDS Group
ул. Большая Академическая, дом 5, стр. 1, Москва.

Основные функции Bitrix API

240

Здесь собраны основные и самые часто используемые функции Bitrix API, которые нужны в процессе разработки сайтов на базе Bitrix Framework. Статья будет периодически обновляться.

  1. Вывод заголовка браузера. Вставляется в теги title
    $APPLICATION->ShowTitle();
    
  2. Вывод заголовка страницы. Вставляется в теги h1
    $APPLICATION->ShowTitle(false);
  3. Вывод основных полей тегов meta (robots, keywords, description), подключение стилей шаблона и скриптов.
    $APPLICATION->ShowHead();
  4. Константа подставляющая путь до шаблона сайта.
    SITE_TEMPLATE_PATH
  5. Получить путь к картинки по id.
    $img = CFile::GetPath($arItem["DETAIL_PICTURE"]);
  6. Ресайз картинки (ResizeImageGet):

    BX_RESIZE_IMAGE_PROPORTIONAL - Сохранение пропорций
    BX_RESIZE_IMAGE_EXACT - Cохранение пропорций с обрезанием по заданной ширине и высоте;
    BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций за ширину при этом принимается максимальное значение из высоты/ширины, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.

    $arResult["DETAIL_PICTURE"] = CFile::ResizeImageGet($arResult["DETAIL_PICTURE"], Array("width" => Ширина, "height" => Высота), BX_RESIZE_IMAGE_PROPORTIONAL, false);
    
  7. Подключение дополнительных CSS и Js
    $APPLICATION->SetAdditionalCss(SITE_TEMPLATE_PATH."/css/catalog.css");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery-ui.min.js");
    
  8. Подключение CSS и Js (D7)
    use Bitrix\Main\Page\Asset;
    Asset:getInstance()->addCss(SITE_TEMPLATE_PATH."/css/catalog.css");
    Asset:getInstance()->addJs(SITE_TEMPLATE_PATH."/js/jscript.js");
    
  9. Готовая функция dump для вывода массивов, видная только администратору. Полезна для работы на живом сайте.
    function dump($var, $die=false, $all=false)
    {
          global $USER;
          if( ($USER->GetID()==1) || ($all==true) )
          {
                echo '< pre >';
                print_r($var);
                echo '< /pre >';
          }
          if($die)
          die('hello');
    }
    
  10. Пример отправки письма:
    $postTemplate = 92;     // ID почтового шаблона
    $arEventFields = array( // Свойства
        "EMAIL"   => $_POST['email'],
        "FIO"     => $_POST['fio'],
        "PHONE"   => $_POST['phone'],
        "COMMENT" => $_POST['comment']
    );
    CEvent::Send("FEEDBACK_FORM", "s1", $arEventFields, $postTemplate);
    
  11. Вызов включаемой области из файла
    $APPLICATION->IncludeComponent(
    	"bitrix:main.include",
    	"",
    	Array(
    		"AREA_FILE_SHOW" => "file",
    		"MODE" => "php",
    		"PATH" => "/local/include/phone.php"
    	)
    );
    
  12. Запрет подключение к файлу на прямую, требование наличия ядра.
    if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    
  13. Пример функции Getlist из result_modifier.php (Возвращает список элементов по фильтру $arFilter)
        
        foreach($arResult['PROPERTIES']['ELEMENTS']['VALUE'] as $key=>$element)
        {
            $arraySize = count($element); // Количество элементов в массиве. 
            $arSort   = array('DATE_CREATE' => 'DESC');
            $arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM", "DETAIL_PICTURE", "PROPERTY_EMAIL");
            $arFilter = Array("IBLOCK_ID"=> IBLOCK_ELEMENTS_ID, "ID" => $element, "ACTIVE"=>"Y");
            $dbFields = CIBlockElement::GetList($arSort, $arFilter, false, Array("nPageSize"=>$arraySize), $arSelect);
            while($dbElement = $dbFields->GetNextElement())
            {
                $arResult["ELEMENTS"][$key] = $dbElement->GetFields();
                $arResult["ELEMENTS"][$key]["DETAIL_PICTURE"] = CFile::GetPath($arResult["ELEMENTS"][$key]["DETAIL_PICTURE"]);
            }
        }
    
  14. Добавление количество просмотров записи инфоблока (учитывается сессия), а так же вывод количества просмотров
    CIBlockElement::CounterInc($arResult["ID"]);
    
    $res = CIBlockElement::GetByID($arResult["ID"]);
    if($ar_res = $res->GetNext())
      echo $ar_res[SHOW_COUNTER];
    
17.04.2018 /
Комментарии (2)
Садовиков Сергей
19.11.2018
Алексей, здравствуйте. При помощи функции "CounterInc" класса CIBlockElement. Добавили пример.
Алексей
19.11.2018
Добрый день! Подскажите, как вывести количество просмотров, как у вас?