2.3. Константы

Data Source Eng Data Source Confluence

В К4 константы делятся по смыслу исходя из места их определения на:

  • системные - определяются в core/kernel/startup.php

  • общего применения - определяются в core/kernel/constants.php

  • модульные - определяются в необязательном файле <название_модуля>/constants.php

2.3.1. Системные константы

название

описание

FULL_PATH

Полный путь к сайту в файловой системе сервера.

BASE_PATH

Директория, в которой находится сайт (относительно $_SERVER[„DOCUMENT_ROOT“])

REL_PATH

Путь от корня проекта до PHP-файла (обычно это index.php), на который заходит пользователь. Объявление данной константы должно происходить до или сразу после объявления константы FULL_PATH в этом PHP-файле. Данная константа должна задаваться во всех случаях, когда PHP-файл не находиться в корне проекта или в его admin директории. Примеры:

  • файл: «testing/folder/index.php» - константа: «testing/folder»

  • файл: «sub_folder/index.php» - константа «sub_folder»

Данная константа используется только для корректного получения значения константы BASE_PATH. Если своевременно не определить данную константу, то ссылки, построенные при помощи метода kApplicaton::HREF будут некорректными.

SERVER_NAME

Изменено в версии 4.3.9: Добавлена функциональность работающая в случае, когда не удалось получить имя виртуального хоста.

Имя виртуального хоста (VirtualHost), под которым запущен данный сайт (содержание переменной $_SERVER[„SERVER_NAME“]). В случае, если название виртуального хоста получить не удалось, то будет использован хост, указанный в константе DOMAIN (из файла config.php).

WRITEABLE

Содержание констант FULL_PATH и WRITEBALE_BASE вместе.

MAX_UPLOAD_SIZE

Максимальный размер файла, который можно загрузить на сервер (в байтах).

Осторожно

Константы WRITEABLE и WRITEBALE_BASE неправильно названы. По английски они правильно должны называться WRITABLE и WRITABLE_BASE соответственно.

Пример:

Путь в web browser: http://alex.prod.intechnic.lv/test_project.

  • FULL_PATH - «/home/sites/alex/web/test_project»

  • BASE_PATH - «/test_project»

  • SERVER_NAME - «alex.prod.intechnic.lv»

  • WRITEBALE_BASE - «/system»

  • WRITEBALE - «/home/sites/alex/web/test_project/system»

2.3.2. Константы общего применения

  • распространённые типы записей (статусы) в базе данных:

название

описание

значение

STATUS_ACTIVE

Запись активна.

1

STATUS_DISABLED

Запись не активна.

0

STATUS_PENDING

Запись требует подтверждения администратора.

-2

  • статусы секций в дереве в административной консоли:

название

описание

stTREE

Секция присутствует только в дереве (почти все секции).

stTAB

Секция присутствует только как закладка (см. в In-Commerce:Discounts & Coupons).

название

описание

erSUCCESS

Событие успешно завершило своё выполнение. После выполнения события будет сделано перенаправление, выполняемое для того, чтобы пользователь перезагрузив страницу (F5) повторно не вызвал это событие.

erFAIL

Событие завершило свою работу, но не выполнило одну или более требуемых задач. Перенаправление происходить не будет.

erFATAL

Событие полностью не сделало свою работу (хуки не будут выполняться). Перенаправление происходить не будет.

erPERM_FAIL

Проверка прав доступа не прошла успешно. Автоматически будет выполнено перенаправление на шаблон сообщающий пользователю об отсутствии у него прав на данное событие.

erSTOP

Событие возвращает ответ в AJAX запрос. Шаблон не будет обработан после выполнения события, код отладчика тоже добавлен не будет.

  • константы, использующиеся при редактировании содержания сайта через административную консоль.

название

описание

EDITING_MODE

Добавлено в версии 5.0.0.

Данная константа заменяет собой методы EditMode в обработчике событий и тэгов префикса st и cms. Значение этой константы может быть равно значению описанных ниже 3 констант или нулю, что будет означать, что пользователь не находиться в режиме редактирования содержания сайта. В независимости от режима редактирования содержания сайта оранжевые кнопки Edit будут появляться над теми фрагментами содержания страницы, которые можно изменить.

EDITING_MODE_CMS

Добавлено в версии 5.0.0.

Режим редактирования сайта, при котором изменяться может только содержание cms-блоков (это был единственный возможный режим редактирования сайта до v5.0.0).

EDITING_MODE_LAYOUT

Добавлено в версии 5.0.0.

Режим редактирования сайта, при котором изменяться может изменяться только содержание блоков, при подключении которых был передан параметр layout_view:

<inp2:m_RenderElement name="block_name" layout_view="1"/>

В теме default2007 это блоки sidebar и content из текущего шаблона.

EDITING_MODE_DESIGN

Добавлено в версии 5.0.0.

Режим редактирования сайта, при котором изменяться может только дизайн показываемых на шаблоне блоков, т.е. блоков, которые были указаны в параметре design (в примере это design_block_name) при подключении других (в примере это element_name) блоков. Например:

<inp2:m_RenderElement name="element_name" design="design_block_name"/>

В теме default2007 это блоки blue_box и content_box.

  • разное:

название

описание

значение

ENV_VAR_NAME

Значение данной константы используется для определения названия переменной окружения в запросе к серверу.

env

VALUE_LIST_SEPARATOR

Значение, которое будет использоваться для объединения возможных опций в полях ValueList (во всех таблицах, кроме таблицы ConfigurationAdmin).

||

REGEX_EMAIL_USER

Добавлено в версии 4.0.1.

Регулярное выражение, которое проверяет части с именем пользователя в адресе электронной почты (email). Используя константы REGEX_EMAIL_USER и REGEX_EMAIL_DOMAIN можно составить регулярное выражение для проверки адреса электронной почты:

$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';

[-a-zA-Z0-9!\#$%&*+\/=?^_`{|}~.]+

REGEX_EMAIL_DOMAIN

Добавлено в версии 4.0.1.

Регулярное выражение, которое проверяет части с доменом (domain) в адресе электронной почты (email). Используя константы REGEX_EMAIL_USER и REGEX_EMAIL_DOMAIN можно составить регулярное выражение для проверки адреса электронной почты:

$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';

[a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6}

ALLOW_DEFAULT_SETTINGS

Добавлено в версии 4.2.2.

Данная константа задумана для передачи в метод kApplication::RecallPersistentVar в качестве значения по умолчанию. Это подробнее показано на приведённом ниже примере.

$value = $this->Application->RecallPersistentVar(
  'VarName',
  ALLOW_DEFAULT_SETTINGS
);

Если требуемой переменной в таблице PersistantSessionData нету и используется эта константа, то будет возвращено значение этой переменной взятое у пользователя, указанного в конфигурационной переменной DefaultSettingsUserId.

_USE_DEFAULT_USER_DATA_

Константы это идентификаторы значений, которые не могут изменяться по ходу выполнения скрипта.

2.3.3. Константы из config.php

В базовой директории проекта (той, что в FULL_PATH константе) находиться файл config.php, который содержит настройки для подключения к базе данных и ряд других параметров, которые при инициализации K4 превращаются в константы. На данный файл нельзя, не в коем случае, делать commit. По своему формату этот файл похож на обычный ini файл. Единственное отличие это расширение файла и защитная php конструкция в его начале.

название константы

название опции

описание

SQL_TYPE

DBType

Тип сервера баз данных. Пока поддерживается только MySQL.

SQL_SERVER

DBHost

IP адрес или имя сервера баз данных.

SQL_USER

DBUser

Имя пользователя, для подключения к базе данных.

SQL_PASS

DBUserPassword

Пароль, для подключения к базе данных.

SQL_DB

DBName

Название базы данных.

SQL_COLLATION

DBCollation

Тип сопоставления строк, используемый при работе базой данных (напр. utf8_general_ci).

SQL_CHARSET

DBCharset

Кодировка данных, используемая при работе базой данных (напр. utf8).

TABLE_PREFIX

TablePrefix

Префикс таблиц проекта в базе данных.

DOMAIN

Domain

Домен, на котором сайт находиться. Используется для выхода из SSL-режима, а также для проверки лицензии в In-Portal.

ADMIN_DIRECTORY

AdminDirectory

Добавлено в версии 4.3.0.

Расположение директории с административной консолью относительно FULL_PATH.

EDITOR_PATH

EditorPath

Добавлено в версии 4.3.2.

Расположение директории с FCKEditor относительно FULL_PATH (обычно /core/editor/).

WRITEBALE_BASE

WriteablePath

Директория, в которую имеет право писать сервер (обычно /system).

APPLICATION_CLASS

ApplicationClass

Класс, который используется для создания объекта Application, например EApplication.

APPLICATION_PATH

ApplicationPath

Расположение файла с классом, указанным в APPLICATION_CLASS относительно корня сайта (с указанием / спереди), например. /custom/units/sections/e_application.php.

Предупреждение

Этот шаблон содержит поломанные ссылки.