K4:Константы
From In-Portal Developers Guide
| ||
---|---|---|
Статьи в этой категории | ||
В К4 константы делятся по смыслу исходя из места их определения на:
- системные - определяются в "
core/kernel/startup.php
" - общего применения - определяются в "
core/kernel/constants.php
" - модульные - определяются в необязательном файле "
<название_модуля>/constants.php
"
Системные константы
название | описание |
---|---|
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. Если своевременно не определить данную константу, то ссылки, построенные при помощи метода " |
SERVER_NAME | Имя виртуального хоста (VirtualHost), под которым запущен данный сайт (содержание переменной $_SERVER['SERVER_NAME']). |
WRITEABLE | Содержание констант FULL_PATH и WRITEABLE_BASE вместе. |
MAX_UPLOAD_SIZE | Максимальный размер файла, который можно загрузить на сервер (в байтах). |
Исходный код требует реорганизации (refactoring ).Константы WRITEABLE и WRITEBALE_BASE неправильно названы. По английски они правильно должны называться WRITABLE и WRITABLE_BASE соответственно. |
Пример:
http://alex.prod.intechnic.lv/test_project - путь в web browser 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"
Константы общего применения
- распространённые типы записей (статусы) в базе данных:
название | описание | значение |
---|---|---|
STATUS_ACTIVE | Запись активна. | |
STATUS_DISABLED | Запись не активна. | |
STATUS_PENDING | Запись требует подтверждения администратора. | |
- статусы секций в дереве в административной консоли:
название | описание |
---|---|
stTREE | Секция присутствует только в дереве (почти все секции). |
stTAB | Секция присутствует только как закладка (см. в In-Commerce:Discounts & Coupons). |
- статусы завершения событий в K4:
название | описание |
---|---|
erSUCCESS | Событие успешно завершило своё выполнение. После выполнения события будет сделано перенаправление, выполняемое для того, чтобы пользователь перезагрузив страницу (F5) повторно не вызвал это событие. |
erFAIL | Событие завершило свою работу, но не выполнило одну или более требуемых задач. Перенаправление происходить не будет. |
erFATAL | Событие полностью не сделало свою работу (хуки не будут выполняться). Перенаправление происходить не будет. |
erPERM_FAIL | Проверка прав доступа не прошла успешно. Автоматически будет выполнено перенаправление на шаблон сообщающий пользователю об отсутствии у него прав на данное событие. |
erSTOP | Событие возвращает ответ в AJAX запрос. Шаблон не будет обработан после выполнения события, код отладчика тоже добавлен не будет. |
- константы, использующиеся при редактировании содержания сайта через административную консоль.
название | описание |
---|---|
EDITING_MODE | Данная константа, начиная с Core v 5.0.0, заменяет собой методы EditMode в обработчике событий и тэгов префикса "st " и "cms ". Значение этой константы может быть равно значению описанных ниже 3 констант или нулю, что будет означать, что пользователь не находиться в режиме редактирования содержания сайта. В независимости от режима редактирования содержания сайта оранжевые кнопки "Edit " будут появляться над теми фрагментами содержания страницы, которые можно изменить. Данная константа доступна начиная с Core v 5.0.0.
|
EDITING_MODE_CMS | Режим редактирования сайта, при котором изменяться может только содержание cms-блоков (это был единственный возможный режим редактирования сайта до Core v 5.0.0). Данная константа доступна начиная с Core v 5.0.0. |
EDITING_MODE_LAYOUT
| Режим редактирования сайта, при котором изменяться может изменяться только содержание блоков, при подключении которых был передан параметр "layout_view ":
<inp2:m_RenderElement name="block_name" layout_view="1"/> В теме " |
EDITING_MODE_DESIGN
|
Режим редактирования сайта, при котором изменяться может только дизайн показываемых на шаблоне блоков, т.е. блоков, которые были указаны в параметре " <inp2:m_RenderElement name="element_name" design="design_block_name"/> В теме " |
- разное:
название | описание | значение |
---|---|---|
ENV_VAR_NAME | Значение данной константы используется для определения названия переменной окружения в запросе к серверу. | env |
VALUE_LIST_SEPARATOR | Значение, которое будет использоваться для объединения возможных опций в полях ValueList (во всех таблицах, кроме таблицы ConfigurationAdmin). | || |
REGEX_EMAIL_USER
| Регулярное выражение, которое проверяет части с именем пользователя в адресе электронной почты (email ). Используя константы REGEX_EMAIL_USER и REGEX_EMAIL_DOMAIN можно составить регулярное выражение для проверки адреса электронной почты:
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i'; Константа доступна начиная с Core v 4.0.1. | [-a-zA-Z0-9!\#$%&*+\/=?^_`{|}~.]+ |
REGEX_EMAIL_DOMAIN
| Регулярное выражение, которое проверяет части с доменом (domain ) в адресе электронной почты (email ). Используя константы REGEX_EMAIL_USER и REGEX_EMAIL_DOMAIN можно составить регулярное выражение для проверки адреса электронной почты:
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i'; Константа доступна начиная с Core v 4.0.1. | [a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6} |
Константы это идентификаторы значений, которые не могут изменяться по ходу выполнения скрипта.
Константы из 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 | Расположение директории с административной консолью относительно FULL_PATH. Доступна, начиная с Core v 4.3.0. |
EDITOR_PATH | EditorPath | Расположение директории с FCKEditor относительно FULL_PATH (обычно "/core/editor/ "). Доступна, начиная с Core v 4.3.2.
|
WRITEABLE_BASE | WriteablePath | Директория, в которую имеет право писать сервер (обычно "/system ").
|
APPLICATION_CLASS | ApplicationClass | Класс, который используется для создания объекта Application, например "EApplication ".
|
APPLICATION_PATH | ApplicationPath | Расположение файла с классом, указанным в APPLICATION_CLASS относительно корня сайта (с указанием "/ " спереди), например. "/custom/units/sections/e_application.php ".
|