Полезные функции, классы и константы 1С-Битрикс — шпаргалка разработчика
Во время разработки на 1С-Битрикс постоянно приходится вспоминать названия методов, классов и констант. Конечно, многое можно найти в документации или подсмотреть в уже существующем проекте, но иногда проще открыть одну страницу со шпаргалкой.
Здесь собрал функции, классы и небольшие примеры, которыми сам регулярно пользуюсь. Статья будет постепенно пополняться по мере появления новых полезных решений.
Работа с шаблоном сайта и объектом $APPLICATION
Большинство действий при разработке шаблона выполняется через объект $APPLICATION. Именно он отвечает за управление заголовками страниц, SEO-свойствами, подключением включаемых областей и многими другими возможностями.
Установка заголовка страницы
$APPLICATION->SetTitle("Заголовок страницы");
Устанавливает заголовок страницы, который затем выводится через метод ShowTitle().
Вывод заголовка страницы
<title><?$APPLICATION->ShowTitle();?></title>
Установка SEO-свойств
$APPLICATION->SetPageProperty("description", "Описание страницы");
$APPLICATION->SetPageProperty("keywords", "Ключевые слова");
Получение SEO-свойств
echo $APPLICATION->GetPageProperty("description");
Получение текущего URL
$APPLICATION->GetCurPage(); // текущая страница
$APPLICATION->GetCurDir(); // текущая директория
$APPLICATION->GetCurUri(); // полный URI вместе с GET-параметрами
Включаемые области
$APPLICATION->IncludeFile(
SITE_DIR . "include/footer.php"
);
Позволяет подключать HTML, PHP или целые блоки сайта из отдельных файлов.
Очистка буфера
$APPLICATION->RestartBuffer();
Чаще всего используется в AJAX-обработчиках для полного удаления уже сформированного HTML перед выводом собственного ответа.
Вывод ресурсов страницы
<?$APPLICATION->ShowHead();?>
Выводит все подключенные стили, JavaScript и meta-теги.
Административная панель
<?$APPLICATION->ShowPanel();?>
Защита шаблона
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
Стандартная защита файлов шаблона от прямого открытия через браузер.
Полезные константы
SITE_ID
SITE_DIR
SITE_TEMPLATE_PATH
LANGUAGE_ID
LANG_CHARSET
Эти константы используются практически в каждом шаблоне сайта.
Подключение ресурсов через Asset
Современный способ подключения CSS, JavaScript и других ресурсов — использовать класс Bitrix\Main\Page\Asset. Это позволяет Битриксу самостоятельно управлять порядком подключения файлов.
use Bitrix\Main\Page\Asset;
Подключение CSS
Asset::getInstance()->addCss(
SITE_TEMPLATE_PATH . "/css/style.css"
);
Подключение JavaScript
Asset::getInstance()->addJs(
SITE_TEMPLATE_PATH . "/js/script.js"
);
Добавление произвольного HTML
Asset::getInstance()->addString(
'<meta name="robots" content="index,follow">'
);
Таким способом можно добавить любые meta-теги, JSON-LD, OpenGraph и другие данные в секцию HEAD.
Работа с инфоблоками
Большинство проектов на Битриксе используют инфоблоки. Ниже несколько примеров, которые регулярно встречаются при разработке.
Подключение модуля
use Bitrix\Main\Loader;
Loader::includeModule("iblock");
Получение ID инфоблока по символьному коду
use Bitrix\Iblock\IblockTable;
$iblock = IblockTable::getList([
'filter' => [
'=CODE' => 'catalog'
]
])->fetch();
$iblockId = $iblock['ID'];
Получение списка разделов
use Bitrix\Iblock\SectionTable;
$sections = SectionTable::getList([
'filter' => [
'IBLOCK_ID' => $iblockId
]
])->fetchAll();
Получение элементов
use Bitrix\Iblock\ElementTable;
$elements = ElementTable::getList([
'filter' => [
'IBLOCK_ID' => $iblockId
]
])->fetchAll();
Для простых выборок этого обычно достаточно. Если требуется получить свойства элементов, удобнее использовать ORM конкретного инфоблока или классическое API.
Работа с файлами, пользователями и полезные функции
Получение уменьшенной копии изображения
CFile::ResizeImageGet();
Получение пути к файлу
CFile::GetPath($fileId);
Получение информации о файле
CFile::GetFileArray($fileId);
Работа с пользователем
global $USER;
$USER->IsAuthorized();
$USER->IsAdmin();
$USER->GetID();
Форматирование цены
echo number_format($price, 0, '', ' ');
Добавляет разделители тысяч и делает отображение цены более удобным.
Форматирование даты
echo FormatDate(
"d F Y",
MakeTimeStamp($date)
);
Полезные PHP-функции
htmlspecialcharsbx();
mb_strlen();
mb_substr();
empty();
isset();
Эти функции постоянно встречаются практически в любом проекте на Битриксе.
Это далеко не полный список возможностей 1С-Битрикс, а скорее личная шпаргалка, которая помогает не искать одни и те же методы в документации или по старым проектам. По мере появления новых полезных функций и классов статья будет пополняться, поэтому со временем она превратится в полноценный справочник разработчика.
Комментарии
Будем рады вашему мнению и вопросам по статье.