In-Portal Developers Guide

This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.

K4:Константы

From In-Portal Developers Guide

Jump to: navigation, search
(дополнение)
Line 1: Line 1:
{{toc | category = Структура приложения | sortkey = 003.001}}
{{toc | category = Структура приложения | sortkey = 003.001}}
-
In K4, constants are separated based on their meaning into:
+
В К4 константы делятся по смыслу исходя из места их определения на:
-
* '''system''' - defined in "<code>core/kernel/startup.php</code>"
+
* '''системные''' - определяются в "<code>core/kernel/startup.php</code>"
-
* '''general application''' - defined in "<code>core/kernel/constants.php</code>"
+
* '''общего применения''' - определяются в "<code>core/kernel/constants.php</code>"
-
* '''modular''' - defined in the not required file "<code><module_name>/constants.php</code>"
+
* '''модульные''' - определяются в необязательном файле "<code><название_модуля>/constants.php</code>"
-
== System constants ==
+
== Системные константы ==
{| class="prettytable"
{| class="prettytable"
-
! name || description
+
! название || описание
|-
|-
-
| {{ConfigProperty|FULL_PATH}} || Full path to the site in the file system of the server.
+
| {{ConfigProperty|FULL_PATH}} || Полный путь к сайту в файловой системе сервера.
|-
|-
-
| {{ConfigProperty|BASE_PATH}} || Directory where the site is located (relative to [http://lv.php.net/reserved.variables <nowiki>$_SERVER['DOCUMENT_ROOT']</nowiki>])
+
| {{ConfigProperty|BASE_PATH}} || Директория, в которой находится сайт (относительно [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:
+
| Путь от корня проекта до PHP-файла (обычно это "<code>index.php</code>"), на который заходит пользователь. Объявление данной константы должно происходить до или сразу после объявления константы [[#FULL_PATH|FULL_PATH]] в этом PHP-файле. Данная константа должна задаваться во всех случаях, когда PHP-файл не находиться в корне проекта или в его "<code>admin</code>" директории. Примеры:
-
  file: testing/folder/index.php - constant: "testing/folder"
+
  файл: testing/folder/index.php - константа: "testing/folder"
-
  file: sub_folder/index.php - constant "sub_folder"
+
  файл: sub_folder/index.php - констана "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.
+
Данная константа используется только для корректного получения значения константы [[#BASE_PATH|BASE_PATH]]. Если своевременно не определить данную константу, то ссылки, построенные при помощи метода "<code>kApplicaton::HREF</code>" будут некорректными.
|-
|-
-
| {{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|SERVER_NAME}} || Имя виртуального хоста (<code>VirtualHost</code>), под которым запущен данный сайт (содержание переменной [http://lv.php.net/reserved.variables <nowiki>$_SERVER['SERVER_NAME']</nowiki>]). В случае, если название виртуального хоста получить не удалось, то будет использован хост, указанный в константе [[#DOMAIN|DOMAIN]] (из файла "<code>config.php</code>"). Функциональность работающая в случае, когда не удалось получить имя виртуального хоста доступна начиная с [[K4:Core v 4.3.9|Core v 4.3.9]].
|-
|-
-
| {{ConfigProperty|WRITEABLE}} || The contents of the variables [[#FULL_PATH|FULL_PATH]] and [[#WRITEABLE_BASE|WRITEABLE_BASE]] together.
+
| {{ConfigProperty|WRITEABLE}} || Содержание констант [[#FULL_PATH|FULL_PATH]] и [[#WRITEABLE_BASE|WRITEABLE_BASE]] вместе.
|-
|-
-
| {{ConfigProperty|MAX_UPLOAD_SIZE}} || The maximum size of the file that can be uploaded to the server (in bytes).
+
| {{ConfigProperty|MAX_UPLOAD_SIZE}} || Максимальный размер файла, который можно загрузить на сервер (в байтах).
|}
|}
-
{{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.}}
+
{{ambox | type = refactoring | text = Константы [[#WRITEABLE|WRITEABLE]] и [[#WRITEBALE_BASE|WRITEBALE_BASE]] неправильно названы. По английски они правильно должны называться <code>'''WRITABLE'''</code> и <code>'''WRITABLE_BASE'''</code> соответственно.}}
-
Example:
+
Пример:
-
  http://alex.prod.intechnic.lv/test_project - path to the web browser
+
  http://alex.prod.intechnic.lv/test_project - путь в web browser
  FULL_PATH - "/home/sites/alex/web/test_project"
  FULL_PATH - "/home/sites/alex/web/test_project"
  BASE_PATH - "/test_project"
  BASE_PATH - "/test_project"
Line 37: Line 37:
  WRITEBALE - "/home/sites/alex/web/test_project/system"
  WRITEBALE - "/home/sites/alex/web/test_project/system"
-
== General application constants ==
+
== Константы общего применения ==
-
* common types of records (statuses) in the database:
+
* распространённые типы записей (статусы) в базе данных:
{| class="prettytable"
{| class="prettytable"
-
! name || description || value
+
! название || описание || значение
|-  
|-  
-
| {{ConfigProperty|STATUS_ACTIVE}} || Active record. || <center>1</center>
+
| {{ConfigProperty|STATUS_ACTIVE}} || Запись активна. || <center>1</center>
|-
|-
-
| {{ConfigProperty|STATUS_DISABLED}} || Inactive record. || <center>0</center>
+
| {{ConfigProperty|STATUS_DISABLED}} || Запись не активна. || <center>0</center>
|-
|-
-
| {{ConfigProperty|STATUS_PENDING}} || Record is awaiting approval by the administrator. || <center>-2</center>
+
| {{ConfigProperty|STATUS_PENDING}} || Запись требует подтверждения администратора. || <center>-2</center>
|}
|}
-
* status of sections in the navigation tree in the administrative console:
+
* статусы секций в дереве в административной консоли:
{| class="prettytable"
{| class="prettytable"
-
! name || description
+
! название || описание
|-
|-
-
| {{ConfigProperty|stTREE}} || Section is present only in the navigation tree (almost all sections).
+
| {{ConfigProperty|stTREE}} || Секция присутствует только в дереве (почти все секции).
|-
|-
-
| {{ConfigProperty|stTAB}} || Section is present only as a tab (see [[In-Commerce:Discounts & Coupons]]).  
+
| {{ConfigProperty|stTAB}} || Секция присутствует только как закладка (см. в [[In-Commerce:Discounts & Coupons]]).
|}
|}
-
* status of finished [[K4:Events|events]] in K4:
+
* статусы завершения [[K4:Events|событий]] в K4:
{| class="prettytable"
{| class="prettytable"
-
! name || description
+
! название || описание
|-
|-
-
| {{ConfigProperty|erSUCCESS}} || Event finished working successfully. Once the event finishes, there is an automatic redirect so that the event isn't called again in case the user refreshes the page (F5).
+
| {{ConfigProperty|erSUCCESS}} || Событие успешно завершило своё выполнение. После выполнения события будет сделано перенаправление, выполняемое для того, чтобы пользователь перезагрузив страницу (F5) повторно не вызвал это событие.
|-
|-
-
| {{ConfigProperty|erFAIL}} || Event finished working, but didn't accomplish one or more of the requested tasks. There won't be a redirect.
+
| {{ConfigProperty|erFAIL}} || Событие завершило свою работу, но не выполнило одну или более требуемых задач. Перенаправление происходить не будет.  
|-
|-
-
| {{ConfigProperty|erFATAL}} || The event didn't accomplish any part of its task ([[K4:Hooks|hooks]] won't continue). There won't be a redirect.
+
| {{ConfigProperty|erFATAL}} || Событие полностью не сделало свою работу ([[K4:Hooks|хуки]] не будут выполняться). Перенаправление происходить не будет.
|-
|-
-
| {{ConfigProperty|erPERM_FAIL}} || Checking [[К4:Permissions|access permissions]] wasn't successful. There will be an automatic redirect to a template letting the user know that he doesn't have the required permissions for the event.
+
| {{ConfigProperty|erPERM_FAIL}} || Проверка [[К4:Permissions|прав доступа]] не прошла успешно. Автоматически будет выполнено перенаправление на шаблон сообщающий пользователю об отсутствии у него прав на данное событие.
|-
|-
-
| {{ConfigProperty|erSTOP}} || The event returns a response to an [[K4:Ajax|AJAX]] request. The template won't be parsed after running the event, debugger code won't be added either.  
+
| {{ConfigProperty|erSTOP}} || Событие возвращает ответ в [[K4:Ajax|AJAX]] запрос. Шаблон не будет обработан после выполнения события, код отладчика тоже добавлен не будет.
|}
|}
-
* constants used when editing site content through the administrative console.
+
* константы, использующиеся при редактировании содержания сайта через административную консоль.
{| class="prettytable"
{| class="prettytable"
-
! name || description
+
! название || описание
|-
|-
-
| {{ConfigProperty|EDITING_MODE}} || This constant, starting from [[K4:Core v 5.0.0|Core v 5.0.0]], replaces the methods <code>EditMode</code> in the event handler and tags of the prefixes "<code>st</code>" and "<code>cms</code>". The value of this constant may be the same as the value of the below 3 constant or equal to zero, which means that the user is currently not in the editing mode of the site. Regardless of the editing mode of the site, the orange "<code>Edit</code>" buttons will appear above the parts of the template that can be changed. This constant will be available starting with [[K4:Core v 5.0.0|Core v 5.0.0]].
+
| {{ConfigProperty|EDITING_MODE}} || Данная константа, начиная с [[K4:Core v 5.0.0|Core v 5.0.0]], заменяет собой методы <code>EditMode</code> в обработчике событий и тэгов префикса "<code>st</code>" и "<code>cms</code>". Значение этой константы может быть равно значению описанных ниже 3 констант или нулю, что будет означать, что пользователь не находиться в режиме редактирования содержания сайта. В независимости от режима редактирования содержания сайта оранжевые кнопки "<code>Edit</code>" будут появляться над теми фрагментами содержания страницы, которые можно изменить. Данная константа доступна начиная с [[K4:Core v 5.0.0|Core v 5.0.0]].
|-
|-
-
| {{ConfigProperty|EDITING_MODE_CMS}} || Site editing mode, where the only things that can be changed are items contained in cms-blocks (this was the only possible site editing mode until [[K4:Core v 5.0.0|Core v 5.0.0]]). This constant will be available starting with [[K4:Core v 5.0.0|Core v 5.0.0]].
+
| {{ConfigProperty|EDITING_MODE_CMS}} || Режим редактирования сайта, при котором изменяться может только содержание cms-блоков (это был единственный возможный режим редактирования сайта до [[K4:Core v 5.0.0|Core v 5.0.0]]). Данная константа доступна начиная с [[K4:Core v 5.0.0|Core v 5.0.0]].
|-
|-
| {{ConfigProperty|EDITING_MODE_LAYOUT}}
| {{ConfigProperty|EDITING_MODE_LAYOUT}}
-
| Site editing mode where only the content of blocks can be changed that were setup using the "<code> layout_view </code>" option:
+
| Режим редактирования сайта, при котором изменяться может изменяться только содержание блоков, при подключении которых был передан параметр "<code>layout_view</code>":
<source lang="xml">
<source lang="xml">
<inp2:m_RenderElement name="block_name" layout_view="1"/>
<inp2:m_RenderElement name="block_name" layout_view="1"/>
</source>
</source>
-
In the [[K4:Theme|theme]] "<code>default2007</code>" these are the "<code>sidebar</code>" and "<code>content</code>" blocks in the current template. This constant is available starting with [[K4:Core v 5.0.0|Core v 5.0.0]].
+
В [[K4:Theme|теме]] "<code>default2007</code>" это блоки "<code>sidebar</code>" и "<code>content</code>" из текущего шаблона. Данная константа доступна начиная с [[K4:Core v 5.0.0|Core v 5.0.0]].
|-
|-
| {{ConfigProperty|EDITING_MODE_DESIGN}}
| {{ConfigProperty|EDITING_MODE_DESIGN}}
|
|
-
Site editing mode, where the design of the blocks can be changed, i.e. those blocks that were indicated in the parameter "<code>design</code>" (in the example that's "<code>design_block_name</code>") while setting up other (in the example that's "<code>element_name</code>") blocks. For example:
+
Режим редактирования сайта, при котором изменяться может только дизайн показываемых на шаблоне блоков, т.е. блоков, которые были указаны в параметре "<code>design</code>" (в примере это "<code>design_block_name</code>") при подключении других (в примере это "<code>element_name</code>") блоков. Например:
<source lang="xml">
<source lang="xml">
<inp2:m_RenderElement name="element_name" design="design_block_name"/>
<inp2:m_RenderElement name="element_name" design="design_block_name"/>
</source>
</source>
-
In the [[K4:Theme|theme]] "<code>default2007</code>" these are the "<code>blue_box</code>" and "<code>content_box</code>" blocks. This constant is available starting with [[K4:Core v 5.0.0|Core v 5.0.0]].
+
В [[K4:Theme|теме]] "<code>default2007</code>" это блоки "<code>blue_box</code>" и "<code>content_box</code>". Данная константа доступна начиная с [[K4:Core v 5.0.0|Core v 5.0.0]].
|}
|}
-
* miscellaneous:
+
* разное:
{| class="prettytable"
{| class="prettytable"
-
! name || description || value
+
! название || описание || значение
|-
|-
-
| {{ConfigProperty|ENV_VAR_NAME}} || The value of this constant is used to determine the name of the [[K4:Переменная окружения|environment variable]] in a request to the server. || <center><code>env</code></center>
+
| {{ConfigProperty|ENV_VAR_NAME}} || Значение данной константы используется для определения названия [[K4:Переменная окружения|переменной окружения]] в запросе к серверу. || <center><code>env</code></center>
|-
|-
-
| {{ConfigProperty|VALUE_LIST_SEPARATOR}} || The value that will be used for associating [[K4:Formatters#options|possible options]] in the <code>ValueList</code> fields (in all tables except the [[K4:ConfigurationAdmin|ConfigurationAdmin]] table). || <center><code><nowiki>||</nowiki></code></center>
+
| {{ConfigProperty|VALUE_LIST_SEPARATOR}} || Значение, которое будет использоваться для объединения [[K4:Formatters#options|возможных опций]] в полях <code>ValueList</code> (во всех таблицах, кроме таблицы [[K4:ConfigurationAdmin|ConfigurationAdmin]]). || <center><code><nowiki>||</nowiki></code></center>
|-
|-
| {{ConfigProperty|REGEX_EMAIL_USER}}
| {{ConfigProperty|REGEX_EMAIL_USER}}
-
| Regular expression that checks the name part of an <code>email</code>. Using constants [[#REGEX_EMAIL_USER|REGEX_EMAIL_USER]] and [[#REGEX_EMAIL_DOMAIN|REGEX_EMAIL_DOMAIN]] it's possible to put together a regular expression that checks the email address:
+
| Регулярное выражение, которое проверяет части с именем пользователя в адресе электронной почты (<code>email</code>). Используя константы [[#REGEX_EMAIL_USER|REGEX_EMAIL_USER]] и [[#REGEX_EMAIL_DOMAIN|REGEX_EMAIL_DOMAIN]] можно составить регулярное выражение для проверки адреса электронной почты:
<source lang="php">
<source lang="php">
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';
</source>
</source>
-
Constant available since [[K4:Core v 4.0.1|Core v 4.0.1]].
+
Константа доступна начиная с [[K4:Core v 4.0.1|Core v 4.0.1]].
| <pre>[-a-zA-Z0-9!\#$%&*+\/=?^_`{|}~.]+</pre>
| <pre>[-a-zA-Z0-9!\#$%&*+\/=?^_`{|}~.]+</pre>
|-
|-
| {{ConfigProperty|REGEX_EMAIL_DOMAIN}}
| {{ConfigProperty|REGEX_EMAIL_DOMAIN}}
-
| Regular expression that checks the <code>domain</code> in an <code>email</code> address. Using constants [[#REGEX_EMAIL_USER|REGEX_EMAIL_USER]] and [[#REGEX_EMAIL_DOMAIN|REGEX_EMAIL_DOMAIN]] it's possible to put together a regular expression that checks the email address:
+
| Регулярное выражение, которое проверяет части с доменом (<code>domain</code>) в адресе электронной почты (<code>email</code>). Используя константы [[#REGEX_EMAIL_USER|REGEX_EMAIL_USER]] и [[#REGEX_EMAIL_DOMAIN|REGEX_EMAIL_DOMAIN]] можно составить регулярное выражение для проверки адреса электронной почты:
<source lang="php">
<source lang="php">
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';
$regexp = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';
</source>
</source>
-
Constant available since [[K4:Core v 4.0.1|Core v 4.0.1]].
+
Константа доступна начиная с [[K4:Core v 4.0.1|Core v 4.0.1]].
| <pre>[a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6}</pre>
| <pre>[a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6}</pre>
 +
|-
 +
| {{ConfigProperty|ALLOW_DEFAULT_SETTINGS}}
 +
| Данная константа задумана для передачи в метод "<code>kApplication::RecallPersistentVar</code>" в качестве значения по умолчанию. Это подробнее показано на приведённом ниже примере.
 +
<source lang="php">
 +
$value = $this->Application->RecallPersistentVar('VarName', ALLOW_DEFAULT_SETTINGS);
 +
</source>
 +
Если требуемой переменной в таблице [[K4:PersistentSessionData|PersistentSessionData]] нету и используется эта константа, то будет возвращено значение этой переменной взятое у пользователя, указанного в конфигурационной переменной [[K4:Configuration#DefaultSettingsUserId|DefaultSettingsUserId]]. Данная константа доступна начиная с [[K4:Core v 4.2.2|Core v 4.2.2]].
 +
| <center><code>_USE_DEFAULT_USER_DATA_</code></center>
|}
|}
-
Constants are identifier values that can't change as the script runs.
+
Константы это идентификаторы значений, которые не могут изменяться по ходу выполнения скрипта.
-
== config.php constants ==
+
== Константы из config.php ==
-
In the root directory of the project (the one that's in the [[#FULL_PATH|FULL_PATH]] constant) there is a file <code>config.php</code> that contains settings for connecting to the database along with other parameters that by initializing K4 become constants. Into this file, a '''commit can never be made'''. By its format, this file looks similar to a regular ini file. The only difference is the file extension and the protected php design in the beginning of the file.
+
В базовой директории проекта (той, что в [[#FULL_PATH|FULL_PATH]] константе) находиться файл <code>config.php</code>, который содержит настройки для подключения к базе данных и ряд других параметров, которые при инициализации K4 превращаются в константы. На данный файл '''нельзя''', не в коем случае, '''делать commit'''. По своему формату этот файл похож на обычный ini файл. Единственное отличие это расширение файла и защитная php конструкция в его начале.
{| class="prettytable"
{| class="prettytable"
-
! constant name || option name || description
+
! название константы || название опции || описание
|-
|-
-
| {{ConfigProperty|SQL_TYPE}} || <code>DBType</code> || Database server type. Right now, only MySQL is supported.
+
| {{ConfigProperty|SQL_TYPE}} || <code>DBType</code> || Тип сервера баз данных. Пока поддерживается только MySQL.
|-
|-
-
| {{ConfigProperty|SQL_SERVER}} || <code>DBHost</code> || IP address or server name of the database.
+
| {{ConfigProperty|SQL_SERVER}} || <code>DBHost</code> || IP адрес или имя сервера баз данных.
|-
|-
-
| {{ConfigProperty|SQL_USER}} || <code>DBUser</code> || Username for connecting to the database.
+
| {{ConfigProperty|SQL_USER}} || <code>DBUser</code> || Имя пользователя, для подключения к базе данных.
|-
|-
-
| {{ConfigProperty|SQL_PASS}} || <code>DBUserPassword</code> || Password for connecting to the database.
+
| {{ConfigProperty|SQL_PASS}} || <code>DBUserPassword</code> || Пароль, для подключения к базе данных.
|-
|-
-
| {{ConfigProperty|SQL_DB}} || <code>DBName</code> || Database name.
+
| {{ConfigProperty|SQL_DB}} || <code>DBName</code> || Название базы данных.
|-
|-
-
| {{ConfigProperty|SQL_COLLATION}} || <code>DBCollation</code> || Collation type used when working with the database (for example "<code>utf8_general_ci</code>").
+
| {{ConfigProperty|SQL_COLLATION}} || <code>DBCollation</code> || Тип сопоставления строк, используемый при работе базой данных (напр. "<code>utf8_general_ci</code>").
|-
|-
-
| {{ConfigProperty|SQL_CHARSET}} || <code>DBCharset</code> || Data encoding type used for working with the database (for example "<code>utf8</code>").
+
| {{ConfigProperty|SQL_CHARSET}} || <code>DBCharset</code> || Кодировка данных, используемая при работе базой данных (напр. "<code>utf8</code>").
|-
|-
-
| {{ConfigProperty|TABLE_PREFIX}} || <code>TablePrefix</code> || Prefix of database tables of the project in the database.
+
| {{ConfigProperty|TABLE_PREFIX}} || <code>TablePrefix</code> || Префикс таблиц проекта в базе данных.
|-
|-
-
| {{ConfigProperty|DOMAIN}} || <code>Domain</code> || Domain where the site is located. Used for leaving SSL-mode and for checking an <code>In-Portal</code> license.
+
| {{ConfigProperty|DOMAIN}} || <code>Domain</code> || Домен, на котором сайт находиться. Используется для выхода из SSL-режима, а также для проверки лицензии в <code>In-Portal</code>.
|-
|-
-
| {{ConfigProperty|ADMIN_DIRECTORY}} || <code>AdminDirectory</code> || Location of the administrative console directory relative to [[#FULL_PATH|FULL_PATH]]. Available starting with [[K4:Core v 4.3.0|Core v 4.3.0]].
+
| {{ConfigProperty|ADMIN_DIRECTORY}} || <code>AdminDirectory</code> || Расположение директории с административной консолью относительно [[#FULL_PATH|FULL_PATH]]. Доступна, начиная с [[K4:Core v 4.3.0|Core v 4.3.0]].
|-
|-
-
| {{ConfigProperty|EDITOR_PATH}} || <code>EditorPath</code> || Location of the directory with the <code>FCKEditor</code>, relative to [[#FULL_PATH|FULL_PATH]] (usually "<code>/core/editor/</code>"). Available starting with [[K4:Core v 4.3.2|Core v 4.3.2]].
+
| {{ConfigProperty|EDITOR_PATH}} || <code>EditorPath</code> || Расположение директории с <code>FCKEditor</code> относительно [[#FULL_PATH|FULL_PATH]] (обычно "<code>/core/editor/</code>"). Доступна, начиная с [[K4:Core v 4.3.2|Core v 4.3.2]].
|-
|-
-
| {{ConfigProperty|WRITEABLE_BASE}} || <code>WriteablePath</code> || Directory into which the server has permissions to write (usually "<code>/system</code>").
+
| {{ConfigProperty|WRITEABLE_BASE}} || <code>WriteablePath</code> || Директория, в которую имеет право писать сервер (обычно "<code>/system</code>").
|-
|-
-
| {{ConfigProperty|APPLICATION_CLASS}} || <code>ApplicationClass</code> || Class that's used to create an [[K4:Application|Application]] object, for example "<code>EApplication</code>".
+
| {{ConfigProperty|APPLICATION_CLASS}} || <code>ApplicationClass</code> || Класс, который используется для создания объекта [[K4:Application|Application]], например "<code>EApplication</code>".
|-
|-
-
| {{ConfigProperty|APPLICATION_PATH}} || <code>ApplicationPath</code> || Location of the file with the class indicated in [[#APPLICATION_CLASS|APPLICATION_CLASS]], relative to the root of the site (with the "<code>/</code>" character in front), for example "<code>/custom/units/sections/e_application.php</code>".
+
| {{ConfigProperty|APPLICATION_PATH}} || <code>ApplicationPath</code> || Расположение файла с классом, указанным в [[#APPLICATION_CLASS|APPLICATION_CLASS]] относительно корня сайта (с указанием "<code>/</code>" спереди), например. "<code>/custom/units/sections/e_application.php</code>".
|}
|}

Revision as of 17:07, 4 November 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. Если своевременно не определить данную константу, то ссылки, построенные при помощи метода "kApplicaton::HREF" будут некорректными.

SERVER_NAME Имя виртуального хоста (VirtualHost), под которым запущен данный сайт (содержание переменной $_SERVER['SERVER_NAME']). В случае, если название виртуального хоста получить не удалось, то будет использован хост, указанный в константе DOMAIN (из файла "config.php"). Функциональность работающая в случае, когда не удалось получить имя виртуального хоста доступна начиная с Core v 4.3.9.
WRITEABLE Содержание констант FULL_PATH и WRITEABLE_BASE вместе.
MAX_UPLOAD_SIZE Максимальный размер файла, который можно загрузить на сервер (в байтах).

Пример:

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 Запись активна.
1
STATUS_DISABLED Запись не активна.
0
STATUS_PENDING Запись требует подтверждения администратора.
-2
  • статусы секций в дереве в административной консоли:
название описание
stTREE Секция присутствует только в дереве (почти все секции).
stTAB Секция присутствует только как закладка (см. в In-Commerce:Discounts & Coupons).
название описание
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"/>

В теме "default2007" это блоки "sidebar" и "content" из текущего шаблона. Данная константа доступна начиная с Core v 5.0.0.

EDITING_MODE_DESIGN

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

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

В теме "default2007" это блоки "blue_box" и "content_box". Данная константа доступна начиная с Core v 5.0.0.

  • разное:
название описание значение
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}
ALLOW_DEFAULT_SETTINGS Данная константа задумана для передачи в метод "kApplication::RecallPersistentVar" в качестве значения по умолчанию. Это подробнее показано на приведённом ниже примере.
$value = $this->Application->RecallPersistentVar('VarName', ALLOW_DEFAULT_SETTINGS);

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

_USE_DEFAULT_USER_DATA_

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

Константы из 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".