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:Constants

From In-Portal Developers Guide

Jump to: navigation, search
m (1 версия)
Line 1: Line 1:
{{toc | category = Структура приложения | sortkey = 003.001}}
{{toc | category = Структура приложения | sortkey = 003.001}}
В К4 константы делятся по смыслу исходя из места их определения на:
В К4 константы делятся по смыслу исходя из места их определения на:
-
* '''системные''' - определяются в "<code>core/kernel/startup.php</code>"
+
In K4, constants are separated based on their meaning, separated into:
-
* '''общего применения''' - определяются в "<code>core/kernel/constants.php</code>"
+
* '''system''' - defined in "<code>core/kernel/startup.php</code>"
-
* '''модульные''' - определяются в необязательном файле "<code><название_модуля>/constants.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}} || Директория, в которой находится сайт (относительно [http://lv.php.net/reserved.variables <nowiki>$_SERVER['DOCUMENT_ROOT']</nowiki>])
+
| {{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}}
-
| Путь от корня проекта до PHP-файла (обычно это "<code>index.php</code>"), на который заходит пользователь. Объявление данной константы должно происходить до или сразу после объявления константы [[#FULL_PATH|FULL_PATH]] в этом PHP-файле. Данная константа должна задаваться во всех случаях, когда PHP-файл не находиться в корне проекта или в его "<code>admin</code>" директории. Примеры:
+
| 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:
-
  файл: testing/folder/index.php - константа: "testing/folder"
+
  file: testing/folder/index.php - constant: "testing/folder"
-
  файл: sub_folder/index.php - констана "sub_folder"
+
  file: sub_folder/index.php - constant "sub_folder"
-
Данная константа используется только для корректного получения значения константы [[#BASE_PATH|BASE_PATH]]. Если своевременно не определить данную константу, то ссылки, построенные при помощи метода "<code>kApplicaton::HREF</code>" будут некорректными.
+
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}} || Имя виртуального хоста (VirtualHost), под которым запущен данный сайт (содержание переменной [http://lv.php.net/reserved.variables <nowiki>$_SERVER['SERVER_NAME']</nowiki>]).
+
| {{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}} || Содержание констант [[#FULL_PATH|FULL_PATH]] и [[#WRITEABLE_BASE|WRITEABLE_BASE]] вместе.
+
| {{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 = Константы [[#WRITEABLE|WRITEABLE]] и [[#WRITEBALE_BASE|WRITEBALE_BASE]] неправильно названы. По английски они правильно должны называться <code>'''WRITABLE'''</code> и <code>'''WRITABLE_BASE'''</code> соответственно.}}
+
{{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 "kApplicaton::HREF" will be incorrect.

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).

Пример:

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}

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

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