K4:Constants
From In-Portal Developers Guide
m  (1 версия)  | 
				|||
| Line 1: | Line 1: | ||
{{toc | category = Структура приложения | sortkey = 003.001}}  | {{toc | category = Структура приложения | sortkey = 003.001}}  | ||
В К4 константы делятся по смыслу исходя из места их определения на:  | В К4 константы делятся по смыслу исходя из места их определения на:  | ||
| - | * '''  | + | In K4, constants are separated based on their meaning, separated into:  | 
| - | * '''  | + | * '''system''' - defined in "<code>core/kernel/startup.php</code>"  | 
| - | * '''  | + | * '''general use''' - defined in "<code>core/kernel/constants.php</code>"  | 
| + | * '''modular''' - defined in the not required file "<code><module_name>/constants.php</code>"  | ||
| - | ==   | + | == System constants ==  | 
{| class="prettytable"  | {| class="prettytable"  | ||
| - | !   | + | ! name || description  | 
|-  | |-  | ||
| - | | {{ConfigProperty|FULL_PATH}} ||   | + | | {{ConfigProperty|FULL_PATH}} || Full path to the site in the file system of the server.  | 
|-  | |-  | ||
| - | | {{ConfigProperty|BASE_PATH}} ||   | + | | {{ConfigProperty|BASE_PATH}} || Directory where the site is located (relative to [http://lv.php.net/reserved.variables <nowiki>$_SERVER['DOCUMENT_ROOT']</nowiki>])  | 
|-  | |-  | ||
| {{ConfigProperty|REL_PATH}}  | | {{ConfigProperty|REL_PATH}}  | ||
| - | |   | + | | Path from the root of the project to the PHP-file (usually that's "<code>index.php</code>"), that the site user enters. Defining this constant must be done before or right after defining the constant [[#FULL_PATH|FULL_PATH]] in this PHP file. This constant must be defined in all cases, when the PHP-file is not in the root of the project or in its "<code>admin</code>" directory. Examples:  | 
| - | + |   file: testing/folder/index.php - constant: "testing/folder"  | |
| - | + |   file: sub_folder/index.php - constant "sub_folder"  | |
| - | + | This constant is used only to correctly determine the value of the constant [[#BASE_PATH|BASE_PATH]]. If this constant isn't defined in time, then links built with the help of the method "<code>kApplicaton::HREF</code>" will be incorrect.  | |
|-  | |-  | ||
| - | | {{ConfigProperty|SERVER_NAME}} ||   | + | | {{ConfigProperty|SERVER_NAME}} || The name of the Virtual Host, which is running the site (the contents of the variable [http://lv.php.net/reserved.variables <nowiki>$_SERVER['SERVER_NAME']</nowiki>]).  | 
|-  | |-  | ||
| - | | {{ConfigProperty|WRITEABLE}} ||   | + | | {{ConfigProperty|WRITEABLE}} || The contents of the variables [[#FULL_PATH|FULL_PATH]] and [[#WRITEABLE_BASE|WRITEABLE_BASE]] together.  | 
|-  | |-  | ||
| - | | {{ConfigProperty|MAX_UPLOAD_SIZE}} ||   | + | | {{ConfigProperty|MAX_UPLOAD_SIZE}} || The maximum size of the file that can be uploaded to the server (in bytes).  | 
|}  | |}  | ||
| - | {{ambox | type = refactoring | text =   | + | {{ambox | type = refactoring | text = Constants [[#WRITEABLE|WRITEABLE]] and [[#WRITEBALE_BASE|WRITEBALE_BASE]] are incorrectly named (misspelled). In English obviously, the correct names would be <code>'''WRITABLE'''</code> and <code>'''WRITABLE_BASE'''</code> respectively.}}  | 
Пример:  | Пример:  | ||
Revision as of 23:16, 28 March 2009
  | ||
|---|---|---|
| Статьи в этой категории | ||
В К4 константы делятся по смыслу исходя из места их определения на: In K4, constants are separated based on their meaning, separated into:
-  system - defined in "
core/kernel/startup.php" -  general use - defined in "
core/kernel/constants.php" -  modular - defined in the not required file "
<module_name>/constants.php" 
System constants
| name | description | 
|---|---|
 FULL_PATH   | Full path to the site in the file system of the server. | 
 BASE_PATH   | Directory where the site is located (relative to $_SERVER['DOCUMENT_ROOT']) | 
 REL_PATH
 |  Path from the root of the project to the PHP-file (usually that's "index.php"), that the site user enters. Defining this constant must be done before or right after defining the constant FULL_PATH in this PHP file. This constant must be defined in all cases, when the PHP-file is not in the root of the project or in its "admin" directory. Examples:
file: testing/folder/index.php - constant: "testing/folder" file: sub_folder/index.php - constant "sub_folder" This constant is used only to correctly determine the value of the constant BASE_PATH. If this constant isn't defined in time, then links built with the help of the method "  | 
 SERVER_NAME   | The name of the Virtual Host, which is running the site (the contents of the variable $_SERVER['SERVER_NAME']). | 
 WRITEABLE   | The contents of the variables FULL_PATH and WRITEABLE_BASE together. | 
 MAX_UPLOAD_SIZE   | The maximum size of the file that can be uploaded to the server (in bytes). | 
 Исходный код требует реорганизации (refactoring).Constants WRITEABLE and WRITEBALE_BASE are incorrectly named (misspelled). In English obviously, the correct names would be WRITABLE and WRITABLE_BASE respectively.  | 
Пример:
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".
 | 
