Функции ядра TextCMS
Пространства имен | |
TextCMS | |
Функции | |
cms_init () | |
cms_getsite () | |
cms_main () | |
cms_url_parse () | |
cms_hurl ($page, $params='', $admin=false) | |
cms_basedir () | |
cms_metadata () | |
cms_page_info ($url, $error=true) | |
cms_page_parse ($data) | |
cms_page_filename ($id, $draft=0) | |
cms_page_load ($id, $draft=0) | |
cms_page_available ($data) | |
cms_module_load ($name, $fatal=false) | |
cms_call ($procname, $params=array()) | |
cms_output ($content, $admin_menu=false) | |
cms_output_headers ($length=0, $hash='') | |
cms_valid_file ($filename, $exist=false, $debug=false) | |
cms_output_load_template ($name, $module=false) | |
cms_output_parse_include (&$template) | |
cms_output_parse (&$template) | |
cms_output_parse_template (&$template) | |
cms_output_parse_meta (&$template) | |
cms_strip_arrays () | |
cms_licence_check ($key) | |
cms_log_entry ($log, $code, $file, $text) | |
cms_error_handler ($errno, $errstr, $errfile, $errline) | |
cms_ajax () | |
cms_jscript ($script) | |
cms_hooks ($name) | |
_dbg () | |
Переменные | |
const | TextCMS_version '1.00' |
const | TextCMS_multisite '1' |
global | $pagedata |
global | $status |
global | $location |
global | $sitepath |
global | $TextCMS_exec_start |
global | $lastmod |
global | $TextCMS_debug |
Функции
_dbg | ( | ) |
Помещение информации в отладочный массив. Если включен отладочный режим, информация будет выведена в конце выполнения скрипта в то место шаблона, где находится конструкция
cms_ajax | ( | ) |
Проверка, является ли данный запрос AJAX-запросом или нет
Возвращает
boolean TRUE, если запрос сделан с помощью AJAX.
cms_basedir | ( | ) |
Возвращает путь к каталогу с данными для текущего сайта (в files/siteN).
Возвращает
string Путь к каталогу с данными сайта относительно корня CMS.
cms_call | ( | $procname, | |
$params = array() | |||
) |
Вызов функции, находящейся в отдельном модуле. Перед вызовом выполняется загрузка модуля и проверка существования функции.
Аргументы
string | $procname | Имя функции (часть ее имени до первого _ совпадает с именем модуля, если в имени нет _, то к нему будет автоматически добавлено _main) |
array | $params | Массив параметров функции |
Возвращает
mixed Значение, возвращенное функцией или false в случае ошибки ее вызова
cms_error_handler | ( | $errno, | |
$errstr, | |||
$errfile, | |||
$errline | |||
) |
Обработчик ошибок. Выдает статус 500 в случае серьезных ошибок, выводит дружественное сообщение об ошибке. Если включен отладочный режим, то пишет событие в лог
Аргументы
integer | $errno | Код ошибки в соответствии с принятой в PHP системой кодов ошибок |
integer | $errstr | Номер строки, в которой ошибка произошла |
string | $errfile | Имя файла, в котором ошибка произошла |
string | $errline | Текст сообщения об ошибке |
cms_getsite | ( | ) |
Определяет идентификатор сайта, к которому сделан запрос. Сайт определяется по имени домена, к которому обратились. Если домена нет в списке (он хранится в файле files/sites.txt), считается, что обращение идет к сайту с идентификатором 0. Идентификатор сайта влияет на имя каталога, из которого берутся данные для отображения страницы, т.е. files/site< идентификатор_сайта>="">/.
cms_hooks | ( | $name | ) |
Функция получения обработчиков событий. Возвращает код, который нужно выполнить с помощью eval. Файлы с кодами обработчиков лежат в каталоге hooks, начало их имени должно совпадать с именем события с прочерком в конце. Т.е. если событие называется output, то обработчики должны лежать в файлах output_event1.php, output_another_hook.php. Рекомендуется в качестве второй части имени обработчика делать название модуля, с которым этот обработчик логически связан.
Аргументы
string | $name | Название события, для которого нужно вызвать обработчик |
Возвращает
string Код для исполнения с помощью eval
cms_hurl | ( | $page, | |
$params = '' , | |||
$admin = false | |||
) |
Формирование HURL в соответствии с выбранным режимом запросов
Аргументы
string | $page | HURL страницы (относительно корня CMS) |
string | $params | Строка параметров GET-запроса, которые должны быть после? в URL |
boolean | $admin | Если true, то ссылка формируется для АдминЦентра (т.е. admin.php?параметры), иначе – для пользовательской части |
Возвращает
string Сформированный URL относительно корня сайта
cms_init | ( | ) |
Инициализиционная функция, настраивающая режимы работы скрипта. Выставляет локаль, обработчик ошибок, определяет ID запрошенного сайта, подключает файл конфигурации.
cms_jscript | ( | $script | ) |
Добавление подключаемого файла JavaScipt.
Аргументы
string | $script | Относительный URL скрипта, который нужно подключить (указывается по отношению к корню CMS или по абсолютному пути) array $GLOBALS['TextCMS_JS'] Массив с URL скриптов, которые нужно подключить |
cms_licence_check | ( | $key | ) |
Проверка лицензионного ключа для работы в режиме коммерческой версии. Внимание! Изменение этой функции ведет к прекращению действия лицензии!
cms_log_entry | ( | $log, | |
$code, | |||
$file, | |||
$text | |||
) |
Занесение в лог различных событий. Лог ведется в CSV-формате, что удобно для импорта в OpenOffice Calc или его аналог Microsoft Excel. Формат лога: Дата (Г-м-д час: мин),код, URI, Referer, файл, резеррв, IP, HTTP_X_FORWARDED_FOR, текст_ошибки
Аргументы
string | $log | Имя журнала, в которой нужно сохранить событие. Журнал хранится в файле logs/имя_журнала.csv |
integer | $code | Код события |
string | $file | Имя файла, связанного с событием или HURL |
string | $text | Текст сообщения о произошедшем событии |
cms_main | ( | ) |
Основная рабочая процедура. Выполняет следующие действия: инициализиация (вызов cms_init), определение запрошенного URL (вызов cms_url_parse), выдача 404 в случае, если страницы с таким URL не найдено. Если страница найдена, то определение времени последней модификации страницы и установка глобальных переменных status, pagedata, lastmod. Далее вызывается обработчик вывода (cms_output), который всталяет данные страницы в шаблон integer status HTTP-код ответа на запрос integer lastmod Время последней модификации страницы в формате Unix timestamp array pagedata Массив с мета-данными о выдаваемой странице (время модификации, HURL, используемый шаблон и т.п.)
См. также
cms_metadata | ( | ) |
Загрузка метаданных об имеющихся страницах сайта или взятие их из кеша TextCMS_content array Глобальная переменная, в которую кешируются данные о страницах
Возвращает
array Полученные данные об имеющихся страницах CMS. Массив строк, каждую из которых можно парсить с помощью cms_page_parse.
См. также
cms_module_load | ( | $name, | |
$fatal = false | |||
) |
Загрузка модуля с указанным именем.
Аргументы
string | $name | Имя модуля (только имя, без пути или расширения). Сам модуль должен лежать в файле modules/имя_модуля/module.php. |
boolean | $fatal | Если равен TRUE, то в случае проблем при загрузке модуля (отсутствует файл или есть синтаксические ошибки) будет вызван обработчик ошибок с кодом E_USER_ERROR, что приведет к выдаче ошибки 500 и завершению работы. Если $fatal равен FALSE – в случае ошибки вызывается обработчик с кодом E_USER_WARNING, что позволит продолжить работу CMS без использования загружаемого модуля. В этом случае обязательна проверка возвращаемого значения в вызывающей фунции. |
Возвращает
boolean TRUE если модуль был загружен без ошибок, FALSE – в противном случае.
cms_output | ( | $content, | |
$admin_menu = false | |||
) |
Главная функция выдачи результатов работы CMS. Вызывает обработчик содержимого текущей страницы (cms_output_parse). В случае, если статус текущей страницы равен 404 или 410, генерирует сообщение об ошибке. Далее производит загрузку шаблона для текущего стиля, его обработку, выдачу заголовков и тела страницы.
Аргументы
string | $content | Содержимое выдаваемой страницы |
mixed | $admin_menu | Для обычных страниц равно FALSE, для страниц Центра Администрирования здесь передается массив для вывода пунктов главного меню АдминЦентра integer $GLOBALS['status'] Код HTTP-ответа, выдваемого CMS. |
cms_output_headers | ( | $length = 0 , | |
$hash = '' | |||
) |
Вывод заголовков HTTP-ответа.
Аргументы
integer | $length | Устарел, в данный момент не используется |
string | $hash | Хеш строки с контентом, используется для формирования ETag integer $GLOBALS['status'] Код HTTP-ответа, выдваемого CMS. integer $GLOBALS['lastmod'] Время последней модификации страницы, на основе которого генерируется заголовок Last-Modified |
cms_output_load_template | ( | $name, | |
$module = false | |||
) |
Загрузка шаблона Загрузка шаблона происходит следующим образом:
- Делается попытка загрузить файл из шаблона, указанного в параметре HTTP-запроса template, если он указан
- Делается попытка загрузить файл из шаблона, указанного в $GLOBALS['pagedata']['template'], если он не пуст
- Делается попытка загрузить файл из шаблона, выставленного в настройках сайта как основной
- Делается попытка загрузить файл из шаблона default
- Если ничего не получилось, то если имя файла равно template.htm, выбрасываем ошибку 500, иначе – возвращаем пустую строку и заносим событие в отладочную переменную.
Аргументы
mixed $name Имя шаблона в виде строки или false, если имя шаблона нужно взять из настроек CMS boolean | string $module Имя модуля, если шаблон является шаблоном модуля (т.е. должен лежать в template/имя_шаблона/имя_модуля, а не в template/имя_шаблона) string HTML-код шаблона
cms_output_parse | ( | & | $template | ) |
Общая процедура обработки шаблона. Применяется как к контентной части шаблона, так и ко всему шаблону сайта Шаблон может содержать директивы
##block[]# – вставка блока, полученного в результате вызова функции с параметрами
##hurl[]# – преобразование URL относительно текущей страницы в HURL
##url[]# – преобразование URL относительно текущей страницы в URL относительно корня сайта
##include[]# – вставка другого файла (выполняется прежде всех остальных)
Аргументы
string | $template | HTML-код шаблона, в котором содержатся указанные директивы |
Возвращает
string HTML-код шаблона, в котором все директивы заменены на необходимое содержимое
cms_output_parse_include | ( | & | $template | ) |
Обработка директивы ##include[]#. Выполняется прежде всех прочих и, в отличие от остальных, является рекурсивной.
Аргументы
string | $template | HTML-код шаблона, в котором может содержаться директива ##include |
Возвращает
string HTML-код шаблона, в котором все директивы заменены на соответствующие файлы
cms_output_parse_meta | ( | & | $template | ) |
Вставка мета-тегов при наличии конструкций вида Здесь же проводится замена задаваемых полей.
Аргументы
string | $template | HTML-код шаблона, в котором может содержаться директива ##meta |
Возвращает
string HTML-код шаблона, в котором все директивы заменены на META-теги
cms_output_parse_template | ( | & | $template | ) |
Обработка шаблона, применяемая только к общесайтовому шаблону. Именно здесь делается вставка подключения CSS, вывод отладочной информации и т.п.
Аргументы
string | $template | HTML-код шаблона, в котором содержатся директивы шаблона |
Возвращает
string HTML-код шаблона, в котором все директивы заменены на соответствующие файлы array $GLOBALS['TextCMS_JS'] Массив с URL скриптов, которые нужно подключить
cms_page_available | ( | $data | ) |
Проверка того, что страница доступна пользователям для просмотра (т.е. она имеет статус 0)
Аргументы
array | $data | Массив с метаданными о странице (в формате, выдваемом функцией cms_page_parse) |
Возвращает
boolean TRUE – если есть версия страницы для публичного просмотра
cms_page_filename | ( | $id, | |
$draft = 0 | |||
) |
Формирует имя файла, содержащего текст страницы
Аргументы
integer | $id | Идентификатор страницы |
boolean | $draft | Если TRUE, то формируется путь к файлу черновика, если FALSE – к основной версии страницы. |
Возвращает
string Путь к файлу с текстом страницы относительно корня CMS.
cms_page_info | ( | $url, | |
$error = true | |||
) |
Поиск страницы с указанным HURL или родительским URL, если страницу с текущим найти не удается
Аргументы
string | $url | HURL страницы (относительно корня CMS) |
boolean | $error | Если TRUE, то в случае, если не будет найдена страница с точным совпадением HURL, будет выдана ошибка 404 |
Возвращает
array Массив с метаданными найденной страницы в формате, выдаваемом функцией cms_page_parse integer $GLOBALS['status'] Код HTTP-ответа, выдаемого CMS
cms_page_load | ( | $id, | |
$draft = 0 | |||
) |
Подгрузка страницы с указанным id с диска, без какой-либо обработки
Аргументы
integer | $id | Идентификатор страницы |
boolean | $draft | Если TRUE, то читаем файл черновика, если FALSE – опубликованную версию страницы |
Возвращает
string Содержимое страницы, прочитанное из файла
cms_page_parse | ( | $data | ) |
Парсинг строки с данными о странице в составе CMS. Строка имеет такой формат: url: id: template: status: lastmod: title url – HURL страницы id – порядковый номер страницы (он же – имя файла с данными и параметрами) template – шаблон для страницы (если поле пусто, берется шаблон сайта по умолчанию) state – состояние страницы (0 – нормальная, 1 – удаленная, 2 – черновик) lastmod – время последней модификации страницы (в формате Unix timestamp) date – дата (для новостей) sort – поле задания порядка сортировки title – заголовок страницы
Аргументы
string | $data | Строка с метаданными о странице (формат см. выше) |
Возвращает
array Ассоциативный массив с разобранными данными (содержит элементы 'url','id','template','state','lastmod','date','sort','title')
cms_strip_arrays | ( | ) |
Удаление экранирующих \ из массивов с исходными данными, если включены magic_quotes
cms_url_parse | ( | ) |
Получение HURL страницы, запрошенной пользователем. Поддерживаются 3 режима его получения. При использовании полноценного HURL производится редирект с адресов, не использующих HURLs.
Возвращает
string относительный URL запрошенной страницы.
Функция проверяет имя файла на наличие недопустимых символов и, при необходимости, существование и доступность на чтение. При $debug=true информация об отсутствии файла выдается в отладочную информацию.
Аргументы
string | $filename | Имя файла для проверки |
boolean | $exists | Если TRUE, будет выполнена проверка существования файла, в противном случае – только проверка допустимости имени |
boolean | $debug | Если TRUE, то в случае отсутствия файла об этом будет выдано сообщение в отладочную информацию |
Переменные
global $lastmod |
integer Время последней модификации страницы для выдачи заголовка Last-Modified
global $location |
string Адрес, на который следует выполнить редирект, если $status равен 301 или 302
global $pagedata |
array Массив метаданных о выводимой странице
global $sitepath |
string Путь к корню CMS относительно корня сайта
global $status |
integer Код HTTP-ответа, который будет выдан CMS
global $TextCMS_debug |
string Строка, в которую собирается отладочная информация для вывода внизу страницы, если отладочный режим включен.
global $TextCMS_exec_start |
float Время начала выполнения скрипта
const TextCMS_multisite '1' |
const TextCMS_version '1.00' |