July 31, 2012

Битрикс. Выводим страницу без шаблона.

Иногда возникает необходимость в использовании классов и функций Битрикс в простом php-файле который должен отдавать какие-либо данные (например xml, json и т.д.).

Но для того чтобы функции CMS Битрикс были доступны в нашем php-скрипте в его начале должна быть строчка с подключением верхней части шаблона:

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

В итоге скрипт отобразит не только нужные данные, но и шапку шаблона. Чтобы это исправить можно добавить данный вывод в буфер и затем очистить его.

Пример простенького скрипта использующего функции CMS Битрикс для проверки авторизованного пользователя на принадлежность к группе администраторов:

<?php

ob_start(); //стартуем буферизацию
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
ob_end_clean(); //очищаем буфер
ob_end_flush(); //закрываем его

//Далее код использующий функционал Битрикс
global $USER;
if (!is_object($USER)) $USER = new CUser;
if ($USER->IsAdmin()) echo "Вы администратор";
?>

Лично я делаю так =)

UPD 2019: Более правильный вариант тут - http://mrdeveloper.ru/create-empty-bitrix-page