K4:Constants
From In-Portal Developers Guide
 (→Константы общего применения:  дополнение)  | 
				m  (1 версия)  | 
			
Revision as of 16:15, 28 February 2009
  | ||
|---|---|---|
| Статьи в этой категории | ||
В К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".
 | 
