9 советов по использованию Bitrix

1. Вывод элементов инфоблока

Рекомендуется выводить элементы инфоблока (например новости, статьи) не через API Битрикс, а через компонент news.list.

$APPLICATION->IncludeComponent(
    "bitrix:news.list", 
    "contacts", // шаблон
    array(
        "IBLOCK_TYPE" => "contacts", // тип инфоблока
        "IBLOCK_ID"   => "4",        // ИД инфоблока
        "NEWS_COUNT"  => "3"         // кол-во выводимых элементов
    ),
    false
);

При использовании компонента данные кэшируются. При повторном выводе элементов инфоблока, они будут выводиться из кэша, что может ускорить загрузку страниц.

Подробнее

2. Инфоблоки и Хайлоад блоки

Если данные содержат URL, то их рекомендуется создавать в инфоблоках (новости, статьи, товары).

В остальных случаях данные рекомендуется создавать в хайлоад-блоках (Highload). Например, баннеры, бренды, статистика.

3. Файл init.php

Рекомендуется создавать файл «init.php» в папке bitrix/php_interface/site_id/.

Много разработчиков делают правки файлов через админку. Если файл «init.php» будет создан в папке «bitrix/php_interface/», то в случае ошибки кода в «init.php», весь сайт перестанет работать, в том числе и админка (т.е. через админку исправить ошибку не получится).

Если файл будет создан в папке «site_id», то в случае ошибки кода, сайт перестанет работать, но админку это не затронет, и в админке можно будет внести правки в «init.php».

4. Подключение CSS и JavaScript

Подключать CSS и JavaScript рекомендуется через API Битрикс.

// Подключение CSS
$APPLICATION->SetAdditionalCSS("/path/style.css");

// Подключение JavaScript
$APPLICATION->AddHeadScript("/path/script.js");

В этом случае подключаемые файлы объединяются с другими CSS или JavaScript-файлами. Это позволяет уменьшить количество запросов на сайт, и ускорить загрузку страницы.

Подробнее

5. Шаблон сайта

По умолчанию, шаблоны сайта находятся в папке bitrix/templates/. Рекомендуется создавать шаблоны в local/templates/, т.к. в папке «bitrix/» находятся файлы ядра Битрикс, а в папке «local/» находятся пользовательские файлы.

Также это позволяет облегчить работу с контролями версий (например с git), т.к. вместо длинного списка игнорируемых файлов надо будет просто указать папку «bitrix/».

Подробнее

6. GetByID и GetList

Если надо выбрать только один элемент инфоблока через API, то для этого рекомендуется использовать не GetByID(), а GetList().

Разница между этими элементами:

  1. Метод GetByID() выбирает все свойства и поля элемента, а метод GetList() выбирает элемент с указанными свойствами и полями, что ускоряет выборку.
  2. Метод GetByID() выбирает элемент, даже если он не активен. Через метод GetList() можно указать условие, что выбирать надо только активные элементы.

Также внутри метода GetByID() идёт вызов самого метода GetList().

Пример выборки:

$arFilter = array(
    'ID' => 15,       // выборка элемента с ИД равным «15»
    'IBLOCK_ID' => 5, // выборка элемента из инфоблока с ИД равным «5»
    'ACTIVE' => 'Y',  // выборка только активных элементов
);

// выборка элемента с полями 'ID','NAME','ACTIVE'
$res = CIBlockElement::GetList(array(), $arFilter, false, false, array('ID','NAME','ACTIVE'));

// вывод элемента
while ($element = $res->GetNext()) {
    // $element['NAME'];
    // и другие свойства элемента
}

7. Фасетный индекс

После добавления свойства инфоблока в фильтр товаров, рекомендуется создать фасетный индекс для быстрой работы фильтра. Это можно сделать в ИнфоблокиФасетные индексы.

Bitrix. Фасетный индекс

Подробнее

8. Запрет от фреймов

В целях безопасности, в НастройкиПроактивная защитаЗащита от фреймов рекомендуется отключать отображение сайта во фреймах (в тегах <iframe>). Это позволяет избежать такие атаки как кликджекинг, фишинг и XSS.

После включения защиты от фреймов, отображать сайт внутри <iframe> можно будет только на том домене, на котором расположен сам сайт.

9. Монитор качества

Рекомендуется запускать Монитор качества, который отобразить рекомендуемые параметры для более лучшего работы сайта.

Монитор качества находится в НастройкиИнструментыМонитор качества.