Официальный сайт TextCMS
TextCMS — все просто!





Рассказать



Функции ядра TextCMS

» » Функции ядра 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$pageHURL страницы (относительно корня 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_init, cms_url_parse, cms_output

cms_metadata( ) 

Загрузка метаданных об имеющихся страницах сайта или взятие их из кеша TextCMS_content array Глобальная переменная, в которую кешируются данные о страницах

Возвращает

array Полученные данные об имеющихся страницах CMS. Массив строк, каждую из которых можно парсить с помощью cms_page_parse.

См. также

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 
 )  

Загрузка шаблона Загрузка шаблона происходит следующим образом:

  1. Делается попытка загрузить файл из шаблона, указанного в параметре HTTP-запроса template, если он указан
  2. Делается попытка загрузить файл из шаблона, указанного в $GLOBALS['pagedata']['template'], если он не пуст
  3. Делается попытка загрузить файл из шаблона, выставленного в настройках сайта как основной
  4. Делается попытка загрузить файл из шаблона default
  5. Если ничего не получилось, то если имя файла равно 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$templateHTML-код шаблона, в котором содержатся указанные директивы

Возвращает

string HTML-код шаблона, в котором все директивы заменены на необходимое содержимое

cms_output_parse_include($template) 

Обработка директивы ##include[]#. Выполняется прежде всех прочих и, в отличие от остальных, является рекурсивной.

Аргументы

string$templateHTML-код шаблона, в котором может содержаться директива ##include

Возвращает

string HTML-код шаблона, в котором все директивы заменены на соответствующие файлы

cms_output_parse_meta($template) 

Вставка мета-тегов при наличии конструкций вида Здесь же проводится замена задаваемых полей.

Аргументы

string$templateHTML-код шаблона, в котором может содержаться директива ##meta

Возвращает

string HTML-код шаблона, в котором все директивы заменены на META-теги

cms_output_parse_template($template) 

Обработка шаблона, применяемая только к общесайтовому шаблону. Именно здесь делается вставка подключения CSS, вывод отладочной информации и т.п.

Аргументы

string$templateHTML-код шаблона, в котором содержатся директивы шаблона

Возвращает

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$urlHURL страницы (относительно корня 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 запрошенной страницы.

cms_valid_file( $filename,
   $exist = false,
   $debug = false 
 )  

Функция проверяет имя файла на наличие недопустимых символов и, при необходимости, существование и доступность на чтение. При $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'
 

» » Функции ядра TextCMS