Содержание
Список примеров
Cairo представляет собой совокупность программных и визуальных интерфейсов, предназначенных для управления структурированным контентом, а также вспомогательных утилит, библиотек и классов.
Настройки платформы и интерфейса администратора находятся в каталоге
[DocumentRoot]/etc
, где
[DocumentRoot]
- имя каталога, в котором установлена
система. Данный документ содержит подробное описание всех настроек Cairo.
Файл core.ini
содержит основные настройки системы, которые определяют ее поведение и внешний вид.
Содержание
general.moddir — Каталог, содержащий модули интерфейса
Универсальный интерфейс администратора предоставляет базовые возможности для работы с сущностями. Расширение возможностей интерфейса администратора производится при помощи модулей. Некоторые модули поставляются по умолчанию. К таким модулям относятся: "Управление структурой данных", "Управление справочниками", "Управление пользователями".
general.gmt.client — Часовой пояс клиента
Параметр содержит часовой пояс клиента. Это значение используется для корректировки работы с датами. Все данные хранятся в часовом поясе сервера. Для того, чтобы пользователь видел даты, скорректированные для его региона, данный параметр должен содержать смещение часового пояса клиента относительно Гринвича.
Например, для Украины правильным значением будет "+0200", а для России - "+0300".
locale.LANG — Язык локали по умолчанию
Установка локали влияет на язык интерфейса и некоторые внутренние функции системы, такие, как сравнение строк, формат вывода вещественных чисел и т.п. Параметр определяет локаль по-умолчанию. Это значение может быть переопределено для каждого отдельного ресурса в файле login.ini
.
Для работы с русской локализацией интерфейса в кодировке windows-1251
необходимо задать значение ru_RU.CP1251
.
Используемая кодировка должна быть установлена на сервера. Если кодировка не установлена, обратитесь к своему системному администратору.
locale.decimal.view — Десятичный разделитель, выводимый на сайте и в интерфейсе администратора Cairo
debug.show_php_errors — Выводить ли расширенную статистику по SQL-запросам
Параметр может принимать два значения: "on"
и
"off"
. Если параметр имеет значение
"on"
, то все ошибки PHP будут
выводиться непосредственно на веб-страницах, иначе ошибки выводиться не
будут и доступ к ним можно будет получить только через журнал ошибок
веб-сервера.
На действующем ресурсе этот параметр должен быть отключен.
debug.show_stat — Вывод статистики после генерации страницы
Параметр может принимать два значения: "on"
и
"off"
. Если параметр имеет значение
"on"
, то в нижней части страницы будет выводиться
размер документа HTML, размер документа после сжатия,
если оно включено и время генерации страницы.
На действующем ресурсе этот параметр должен быть отключен.
debug.sql_stat — Сбор статистики SQL-запросов
Параметр может принимать два значения: "on"
и
"off"
. Если параметр имеет значение
"on"
, то информация обо всех
SQL-запросах будет сохраняться в оперативной
памяти.
Параметр влияет на два аспекта поведения системы: журналирование SQL-запросов и вывод расширенной статистика по SQL-запросам.
Для вывода журнала SQL-запросов в конце страницы
необходимо, чтобы значение данного параметра было равно
"on"
и значение параметра debug.show_stat было равно
"on"
.
На действующем ресурсе этот параметр должен быть отключен.
debug.show_runtime_errors — Выводить ли ошибки этапа выполнения
Параметр может принимать два значения: "on"
и
"off"
.
К ошибкам этапа выполнения относятся ошибки целостности данных и ошибки настройки системы. В большинстве случаев данная опция должна быть отключена. Ее можно использовать для отладки при проектировании структуры данных.
На действующем ресурсе этот параметр должен быть отключен.
image.thumb_width — Ширина эскизов изображений
В интерфейсе администратора Cairo значение полей типа "Изображение"
выводится в виде уменьшенных копий изображений. Параметр
image.thumb_width
определяет ширину выводимых эскизов.
Если значение параметра будет равно 0, то ширина будет подбираться
пропорционально размерам изображения. В этом случае должна быть задана
высота.
image.thumb_height — Высота эскизов изображений
В интерфейсе администратора Cairo содержимое полей типа
"Изображение" выводится в виде уменьшенных копий изображений. Параметр
image.thumb_height
определяет высоту выводимых эскизов.
Если значение параметра будет равно 0, то высота будет подбираться
пропорционально размерам изображения. В этом случае должна быть задана
ширина.
image.thumb_handler — Способ, которым будут создаваться уменьшенные копии изображений
Создание эскизов изображений может осуществляться двумя способами: с
помощью библиотеки GD (значение параметра "GD"
) и
с помощью внешней утилиты convert, входящей в пакет
Image Magic
(значение параметра
"ImageMagic"
).
При использовании ImageMagic
качество эскизов
значительно выше, однако, данный способ требует вызова внешней утилиты,
которая не всегда установлена на сервере.
В обоих случаях эскизы изображений генерируются один раз. Затем используются кэшированные версии эскизов.
image.gd_ver — Версия GD
Параметр используется только в случае, если в параметре image.thumb_handler указано использование библиотеки GD
.
Значение параметра влияет на то, какая функция будет использоваться для получения уменьшенной копии изображения. Если версия GD
< 2.0, то будет использоваться функция imagecopyresized()
. Если же версия библиотеки GD
>= 2.0, то будет использоваться функция imagecopyresampled()
. Использование функции imagecopyresampled()
позволяет получать эскизы более высокого качества.
image.convert — Полный путь к утилите convert
Параметр используется только в случае, если в параметре image.thumb_handler указано использование пакета ImageMagic
.
Значение параметра указывает полный путь к утилите convert, используемой для сжатия изображения.
[utils] — Секция содержит пути к внешним программам
В секции [utils]
задаются полные пути к системным
утилитам (zip, unzip, mysqldump), которые использует Cairo в своей работе.
Эти утилиты необходимы для организации импорта данных в систему. Если Вы
не собираетесь использовать импорт, то значения параметров в секции utils
можно оставить пустыми.
Если Вам, при создании собственных модулей, необходимо использовать
внешние утилиты, то пути к ним должны определяться в секции
[utils]
.
Файл fields.ini
содержит настройки полей
данных. Эти настройки используются в модуле управления структурой данных
как настройки по умолчанию для различных типов полей.
Параметры каждого типа данных оформляются в виде отдельной секции. Имя секции должно совпадать с именем типа данных. Набор параметров в секции постоянен, отличаются только их значения. Например, описание типа "Строка" выглядит следующим образом:
[string] handler = fldAbstract alias = string format = template = string sql_type = VARCHAR size = 255 format_preg = /.*/ default_val = condition = er_msg = ntf_msg = required = comment = visible = in_title = is_shown = order_type = ent_title =
В данном разделе описываются параметры типа данных, которые используются в каждой секции.
Содержание
format — Формат поля
Параметр format
используется для передачи классу обработчику дополнительных настроек. Например, для полей типа "Справочник" в параметре format
передается идентификатор справочника, элементы которого используются.
Назначение и содержимое параметра format
может существенно отличаться у различных типов.
template — Префикс шаблона
Для отображения содержимого полей в различных состояниях (вывод, редактирование, фильтры) используются специализированные шаблоны. Имена шаблонов, предназначенных для одного типа, имеют один префикс. Например, шаблон редактирования поля E-mail называется email_show_edit.tpl.php
, а шаблон редактирования поля "Текст" - text_show_edit.tpl.php
.
Если шаблон поля с заданным префиксом не найден, то используется аналогичный шаблон с префиксом "default"
.
sql_type — SQL-тип, используемый для хранения содержимого поля
Значения полей хранятся в базе данных (исключением являются поля
типа "Изображение" и "Файл", значения которых хранятся в файловой
системе). Обычно, для хранения одного значения поля используется одно поле
таблицы БД. Параметр sql_type
содержит тип данных SQL,
используемый для хранения значений полей данного типа.
format_preg — Регулярное выражение для проверки значения поля
Система Cairo поддерживает несколько способов проверки введенных значений. Первый из них - проверка введенного значения на соответствие шаблону, заданному регулярному выражению. Если введенное значение не будет соответствовать шаблону, то сущность сохранена не будет.
В параметре format_preg
используется синтаксис
Perl-совместимых регулярных выражений. Выражения должны содержать
ограничители в виде слэша ("/") и модификаторы регулярного выражения, если
они необходимы.
Параметр не должен быть пустым. Если регулярное выражение использоваться не будет, то следует определять его следующим образом:
format_preg = "/.*/"
condition — Условие истинности
Условие истинности используется для дополнительной проверки вводимых
данных. С помощью сравнения с шаблоном (см. format_preg
)
невозможно добиться некоторых видов проверок, например, невозможно задать
дату большую, чем текущий момент и т.п. Для таких проверок может
использоваться параметр condition
.
Выражение в condition
представляет собой фрагмент
PHP-кода, который должен возвращать true
или
false
. Если выражение возвращает
true
, то считается, что проверка пройдена. В качестве
переменных в выражении допускается использовать любые поля, относящиеся к
текущему типу сущности. Используя данный параметр, можно задвать различные условия. Например, может быть задано условие, при
котором дата рождения не может быть больше даты окончания ВУЗ'а.
er_msg — Сообщение об ошибке
В случае если введенное значение не соответствует шаблону, заданному
в поле format_preg
или
условию, определенному в condition
,
пользователю будет выведено сообщение, указанное в параметре
er_msg
.
Файл import.ini
содержит настройки модуля
импорта, который обеспечивает единый механизм импорта для различных
информационных ресурсов.
Для структур данных любой степени сложности используется единый формат файлов импорта. Описание формата можно найти в руководстве "Система управления контентом CAIRO: Формат файла импорта". Этот формат позволяет добавлять, обновлять и удалять данные в системе Cairo.
Для каждого ресурса данных, использующего импорт, в файле
import.ini
должна содержаться секция с именем
ресурса таким же, как и в файле login.ini
. Секция должна
содержать идентификаторы пользователя и группы, от которых производится
импорт, идентификатор родительской сущности, используемой по умолчанию и
перечень первичных ключей для всех типов, которые будут
импортироваться.
Секция ресурса имеет следующий синтаксис:
[<Имя ресурса>] uid = <ID пользователя, от которого производится импорт> gid = <ID группы, от которой производится импорт> set.parentid = <ID родительской сущности по умолчанию> <имя импортируемого типа (таблицы) #1> = "<Имя первичного ключа в файле>, <Имя первичного ключа в БД>" <имя импортируемого типа (таблицы) #2> = "<Имя первичного ключа в файле>, <Имя первичного ключа в БД>"
Содержание
uid — ID пользователя, от которого производится импорт
Параметр содержит идентификатор пользователя, от которого будет производиться импорт.
При использовании импорта может быть удобным выделить для этого процесса отдельного пользователя и группу. Такой подход позволяет отслеживать те изменения, которые внесены импортом. Тем не менее, импорт может осуществляться и от обычного пользователя.
gid — ID группы, от которой производится импорт
Параметр содержит идентификатор группы, от которой будет производиться импорт.
При использовании импорта может быть удобным выделить для этого процесса отдельного пользователя и группу. Такой подход позволяет отслеживать те изменения, которые внесены импортом. Тем не менее, импорт может осуществляться и от обычного пользователя.
Для каждого типа сущностей, который будет импортироваться, необходимо прописать какие его поля считать первичным ключом и как эти поля будут называться в файле импорта.
Первичные ключи используются при сопоставлении сущностей в импортируемом файле с сущностями уже существующими в БД. Если сопоставление найдено, то сущность будет обновляться, иначе она считается новой и будет добавляться.
Строка описания первичных ключей выглядит следующим образом:
<имя импортируемого типа (таблицы)> = "<Имя первичного ключа в файле>, <Имя первичного ключа в БД>"
Под "именем импортируемого типа (таблицы)" подразумевается имя основной таблицы, в которой хранятся данные этого типа сущностей. Имя таблицы можно узнать через интерфейс администратора Cairo в разделе "Управление структурой данных" на странице параметров типа.
"Имя первичного ключа в файле" это имя параметра, указанного в теге
<name>
. А "Имя первичного ключа в БД" - имя поля,
по которому данные доступны в БД. Если поле является составным, то следует
использовать главное имя (которое является префиксом всех остальных).
Файл login.ini
содержит настройки всех ресурсов
данных. Только после описания в данном файле ресурс данных будет доступен
через интерфейс администратора Cairo.
Каждый ресурс данных представлен в файле отдельной секцией, в которой заданы все его параметры. Секция имеет следующую структуру:
[<Имя ресурса>] dbhost = <Адрес сервера БД> dbuser = <Имя пользователя БД> dbpasswd = <Пароль к БД> dbname = <Имя БД> dbcharset = <Кодировка БД> dbversion = <Версия БД> authhost = <Имя хоста, по которому доступен интерфейс администратора> basedir = <Полный путь установки> uploaddir = <Полный путь к загружаемому каталогу> cachedir = <Полный путь к каталогу кэша> frmtext_files = <Внутренний путь к каталогу форматированного текста> httphost = <Имя хоста ресурса> locale = <Локаль интерфейса администратора> auth_user = <Список администраторов ресурса> auth_group = <Список групп ресурса> <имя модуля>.accept_users = <Пользователи модуля> <имя модуля>.accept_groups = <Группы модуля>
Содержание
authhost — Имя хоста, по которому доступен интерфейс администратора
Параметр authhost
содержит имя хоста, с которого
осуществляется доступ к интерфейсу администратора описываемого ресурса.
Значение параметра используется для разделения доступа к ресурсам по
доменному имени. Представим себе следующую ситуацию: на сервере установлен
один экземпляр системы Cairo, под управлением которой работает множество
ресурсов данных. На странице авторизации интерфейса администратора Cairo в
выпадающем списке "Ресурс" выводится перечень всех доступных ресурсов
данных. Нам нужно организовать работу двух клиентов: Алисы и Боба. При
этом система должна быть настроена так, чтобы в выпадающем списке
ресурсов Алиса видела только свои ресурсы, а Боб - только свои. Чтобы
решить поставленную задачу, следует создать виртуальный хост для
интерфейса администратора, например, auth.cairo
, и
добавить к нему два псевдонима (alice.auth.cairo
и
bob.auth.cairo
). После этого в настройках каждого
ресурса данных Алисы в authhost
записывается значение
alice.auth.cairo
, а для ресурса Боба соответственно
bob.auth.cairo
. В результате на странице авторизации,
доступной по адресу alice.auth.cairo/auth/
в списке
ресурсов будут доступны только ресурсы Алисы, а на странице
bob.auth.cairo/auth/
- только ресурсы Боба.
basedir — Полный путь к каталогу ресурса данных
frmtext_files — Каталог файлов для форматированного текста
Параметр используется для подключаемых WYSIWYG-редакторов, которые
позволяют работать с изображениями. В нем указывается каталог, в котором
хранятся изображения для полей типа "Форматированный текст". В большинстве
случаев значение параметра должно быть basedir/var/frmtext-files
, где
вместо basedir
следует подставить значение из соответствующего параметра.
auth_group — Список групп администраторов ресурса
Параметр auth_group
определяет, какие группы
пользователей имеют право доступа к системе администрирования. Значения
параметра - список идентификаторов групп пользователей, разделенных
запятой. Если параметр не заполнен, то доступ в систему администрирования
будет иметь только пользователь root
.
Функциональность универсального интерфейса администратора может расширяться за счет модулей. В стандартной поставке идут следующие модули:
Управление структурой данных
Управление справочниками
Импорт данных
Управление пользователями
Существует возможность создания дополнительных модулей.
По умолчанию доступ к модулям имеет только пользователь
root
. Чтобы разрешить использование модулей другим
пользователям/группам, необходимо для каждого такого модуля в секции
соответствующего ресурса данных описать перечень пользователей и групп,
которые имеют доступ к модулям:
<имя модуля>.accept_users = <Пользователи модуля> <имя модуля>.accept_groups = <Группы модуля>
Списки оформляются в виде идентификаторов пользователей/групп, разделенных запятыми. Например,
modtypes.accept_users = 2,3 modtypes.accept_groups = 1 moddict.accept_users = 16 moddict.accept_groups = modimport.accept_users = 1 modimport.accept_groups = modusers.accept_users = modusers.accept_groups = 1,3
Файл mimes.ini
содержит соответствия расширений
файлов их MIME-типам. Каждое расширение описывается в формате:
<Расширение> = <MIME-тип>
Ниже приведен пример файла mimes.ini
.
;# This file contents MIME-types that ;# Cairo can recognize jpg = image/jpeg jpe = image/jpeg png = image/png gif = image/gif htm = text/html html = text/html js = application/x-javascript
Такое соответствие необходимо для отображения иконок файлов при выводе значений полей типа "Файл" в интерфейсе администратора Cairo.