Документация для разработчиков

Специальные константы

Имя константыТипОписание
SITE_IDА
Т
И
Идентификатор текущего сайта при использовании в Публичной части, код языка при использовании в административной части.
SITE_DIRАПоле "Папка сайта" в настройках сайта. Как правило используется в случае организации многосайтовости на одном домене.
SITE_SERVER_NAMEАПоле "URL сервера" в настройках текущего сайта.
SITE_TEMPLATE_PATHАURL от корня сайта до папки текущего шаблона.
SITE_CHARSETАПоле "Кодировка" в настройках текущего сайта.

Примечание: в публичной части понятие языка и сайта отличаются. Поэтому LANG_CHARSET и SITE_CHARSET могут принимать разные значения.

FORMAT_DATEАДля публичной части, в данной константе хранится формат даты из настроек текущего сайта. Для административной части - формат даты текущего языка.
FORMAT_DATETIMEАДля публичной части, в данной константе хранится формат времени из настроек текущего сайта. Для административной части - формат времени текущего языка.
LANGUAGE_IDАЕсли это публичная часть, то в данной константе храниться поле "Язык" из настроек текущего сайта, если административная часть, то в данной константе храниться идентификатор текущего языка.
LANG_CHARSETАВ данной константе содержится значение кодировки, указанной в секции Параметры формы настроек текущего сайта.

Примечание: в публичной части понятие языка и сайта отличаются. Поэтому LANG_CHARSET и SITE_CHARSET могут принимать разные значения.

SITE_TEMPLATE_IDАИдентификатор текущего шаблона сайта.
START_EXEC_TIMEАСодержит время начала работы страницы в формате возвращаемом функцией getmicrotime.
B_PROLOG_INCLUDEDАЕсли подключена служебная часть пролога, то данная константа будет инициализирована значением "true". Как правило эту константу используют во включаемых файлах в целях безопасности, когда необходимо убедиться, что пролог подключен и все необходимые права проверены.
SM_VERSIONАТекущая версия главного модуля.
SM_VERSION_DATEАДата выпуска текущей версии главного модуля.
ADMIN_SECTIONА
Т
Если необходимо подключать пролог административной части, то значение данной константы - "true".
AUTH_404Т

Данную константу необходимо инициализировать до пролога в файлах-обработчиках 404 ошибки (страница не найдена). Подобные файлы-обработчики задаются в настройках веб-сервера.

Инициализация этой константы позволяет в стандартных компонентах авторизации, регистрации, высылки забытого пароля, смены пароля поменять страницу на которую будет осуществляться сабмит соответствующей формы. Этой страницей по умолчанию является - текущая страница, если же константа инициализирована, то это будет - /SITE_DIR/auth.php.

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

Пример:
define("AUTH_404", "Y");
HELP_FILEТДанная константа используется как правило в административных скриптах, для хранения имени файла контекстно-зависимой помощи, в случае если это имя отличается от имени данного скрипта. Ссылка на контекстно-зависимую помощь выводится в виде иконки на административной панели.
Пример:
define("HELP_FILE",
       "my_admin_script.php");
NEED_AUTHТЕсли инициализировать данную константу значением "true" до подключения пролога, то будет проведена проверка на авторизованность пользователя. Если пользователь не авторизован, то ему будет предложена форма авторизации.

Пример:
define("NEED_AUTH", true);
ERROR_EMAILТ
И
Хранит E-Mail адрес (или группу адресов разделенных запятой), используемый функцией SendError для отправки сообщений об ошибках.

Пример:
define("ERROR_EMAIL", 
       "admin@site.ru, support@site.ru");
LOG_FILENAMEТ
И
С
Хранит абсолютный путь к log-файлу, используемого функцией AddMessage2Log для записи ошибок или каких-либо сообщений.

Пример:
define("LOG_FILENAME", 
       $_SERVER["DOCUMENT_ROOT"].
           "/log.txt");
STATISTIC_ONLYТ
И
С
Как правило данная константа используется в редакции "Веб-Аналитика". Если ее не инициализировать, то в публичной части будет отсылаться HTTP заголовок:
Content-Type: text/html; charset=SITE_CHARSET

Пример:
define("STATISTIC_ONLY", true);
NO_KEEP_STATISTICТ
И
С
Если инициализировать данную константу каким либо значением, то это запретит сбор статистики на данной странице.

Пример:
define("NO_KEEP_STATISTIC", true);
STOP_STATISTICSТ
И
С
Константа предназначена для отключения автоматического сбора статистики, реализованного как вызов функции CStatistics::Keep в качестве обработчика события OnBeforeProlog. Константу необходимо инициализировать до подключения пролога. Затем, при необходимости, можно использовать "ручной" сбор статистики, вызвав функцию CStatistics::Keep (с первым параметром, равным true).

Пример:
<?
// отключим автоматический
// сбор статистики
define("STOP_STATISTICS", true);
require($_SERVER["DOCUMENT_ROOT"].
        "/bitrix/header.php");

// включим сбор статистики
CStatistics::Keep(true);

...
NO_AGENT_STATISTICТ И
С
Инициализация этой константы каким-либо значением приведет к запрету следующих действий модуля "Статистика", выполняемых ежедневно при помощи технологии агентов:
  • перевод на новый день;
  • очистка устаревших данных статистики;
  • отсылка ежедневного статистического отчета.
Пример:
define("NO_AGENT_STATISTIC", true);
NO_AGENT_CHECKТ И
С
При установке в true отключает выполнение всех агентов

Пример:

define("NO_AGENT_CHECK", true);
NOT_CHECK_PERMISSIONSТ
И
С
Если инициализировать данную константу значением "true" до подключения пролога, то это отключит проверку прав на доступ к файлам и каталогам.

Пример:
define("NOT_CHECK_PERMISSIONS", true);
ONLY_EMAILТ
И

С
Если на странице задана константа ONLY_EMAIL и email из настроек почтового шаблона с ее значением не совпадает, то письмо не отсылать. То есть отсылка письма будет происходить только в том случае если значение данной константы будет соответствовать адресу отправителя в настройках шаблона.

Пример:
define("ONLY_EMAIL", "admin@site.ru");
BX_CRONTABТ
И

С
Если данная константа инициализирована значением "true", то функция проверки агентов на запуск будет отбирать только те агенты для которых не критично количество их запусков (т.е. при добавлении этого агента параметр period=N). Как правило данная константа используется для организации запуска агентов на cron'е.

Пример:
define("BX_CRONTAB", true);
BX_FILE_PERMISSIONSТ
И

С
Unix-права для вновь создаваемых файлов.

Пример:
define("BX_FILE_PERMISSIONS", 0755);
BX_DIR_PERMISSIONSТ
И

С
Unix-права для вновь создаваемых каталогов.

Пример:
define("BX_DIR_PERMISSIONS", 0755);
SM_SAFE_MODEТ
И

С
Инициализация данной константы значением "true" позволит отключить все модули системы за исключением главного и модуля "Управление структурой".

Пример:
define("SM_SAFE_MODE", true);
DIRECTORY_INDEXТ
И

С
Данная константа используется в функции GetDirIndex для определения индексного файла каталога.

Пример:
define("DIRECTORY_INDEX", "
    index.php 
    index.html 
    index.htm 
    index.phtml 
    default.html 
    index.php3
");
MYSQL_TABLE_TYPEСЗначение данной константы содержит тип таблиц создаваемый в MySQL по умолчанию: "MyISAM" или "InnoDB".

Пример:
define("MYSQL_TABLE_TYPE", "InnoDB");
DBPersistentСЕсли данная константа инициализирована значением "true", то будет создаваться постоянное соединение с базой.

Пример:
define("DBPersistent", true);
BX_DISABLE_INDEX_PAGECМожет принимать значение true/false. Константа регулирует значение по умолчанию для параметра get_index_page функций GetPagePath(), CMain::GetCurPage(), CMain::GetCurPageParam(). Параметр get_index_page указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на "index.php". Если значение параметра равно true, то возвращается путь с "index.php", иначе - путь, заканчивающийся на "/". Параметр имеет значение, обратное значению константы.
BX_NO_SQL_BACKTRACEАМожет принимать значение true/false. Если инициализировать данную константу каким либо значением,то она отключает/включает сбор бектрейсов при включенной отладке.
TAGGED_user_card_sizeИКонстанта для регулирования тегированного кеша пользователей.
BX_NO_ACCELERATOR_RESETИКонстанта запрещающая сброс кеша акселератора.
PERFMON_STOP При установке константы в true не используется монитор производительности.


Обозначения типов констант:

  • А (авто) - константа инициализируется системой в прологе автоматически
  • Ттраница) - константу можно определить на любой публичной странице до подключения пролога
  • И (инициализация) - константу можно определить в одном из следующих файлов:
    • /bitrix/php_interface/init.php - дополнительные параметры портала
    • /bitrix/php_interface/ID сайта/init.php - дополнительные параметры сайта
  • С (соединение с базой) - константу можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php


Пользовательские комментарии

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
23
kagamisorano
:!: Будьте аккуратны с константой SITE_ID !
Пример - вы пишете обработчик события в файле /bitrix/php_interface/init.php, который вызывает отправку E-mail по почтовому шаблону:
Код
$res = CEvent::Send('JKX_CONSQ', SITE_ID, $arLetterMarkers);


Почтовый шаблон прикреплен к сайту с ID по умолчанию 's1', а в момент срабатывания обработчика у вас в SITE_ID лежит 'ru' - знак, что вы в админке и она на Русском языке. В результате в таблице b_event имеем SUCCESS_EXEC = 0, что означает "Почтовый шаблон для события не найден".
5
Vadim Dumbravanu
Цитата
Сам компонент и его шаблон вывода можно кастомизировать.
Точнее, кастомизировать рекомендуется только шаблон компонента.
2
colonel
При использовании
Код
define("NEED_AUTH", true);
подключается system.auth.authorize. Сам компонент и его шаблон вывода можно кастомизировать.
4
Дмитрий Яковенко
Вопрос: как сделать так, чтобы некоторые страницы сайта не рагировали на служебные параметры в URL?
Ответ: define("PUBLIC_AJAX_MODE", true); отключит вывод информации.
http://dev.1c-bitrix.ru/community/forums/messages/forum7/topic22318/message122233­/?result=reply#message122233
© «Битрикс», 2001-2018, «1С-Битрикс», 2018
Наверх