Engine.Lite, — XML-based Content Management Framework, — представляет собой некий механизм, позволяющий создавать простые сайты (в том числе и многоязычные, количество языков не ограничено) с небольшим количеством динамики. В принципе, возможности можно наращивать посредством написания собственных модулей, но это потребует довольно больших трудозатрат. Растпростроняется по лицензии GPL.
Все страницы оформленны в виде XML, если на странице используется какой-то модуль (например страница новостей), то файл модуля может делать все, что угодно (например доставать новости из базы данных), главное, чтобы он возвращал валидный XML. Итоговый XML-файл преобразуется XSL-шаблоном, установленным для всего сайта или для текущей страницы в частности.
В Lite-версии все настройки сайта и страниц храняться в двух INI-файлах, структура сайта в CFG-файле. База данных не используется.
Для подключения Engine.Lite необходимо инициализировать объект подключенного класса и распечатать его, например так:
^use[/Engine/Engine.p]
$oSite[^Engine::init[]]
^oSite.print[]
В качестве входных параметров при инициализации могут быть переданы два параметра (без завершающего слэша):
$oSite[^Engine::init[/../data;/../data/config]]
Доступны дополнительные параметры вывода страницы, включаемые переменной $form:mode:
| force |
Принудительно игнорировать кэширование для страницы
Используется только внешне в примере |
| xml | Пропустить XSL-трансформацию, вывести полученный XML документа |
Основной конфигурационный файл.
| iMultiLanguage | Флаг, указывающий многоязычный ли сайт (1 — многоязычный, 0 — нет) |
| sDefaultLanguage | Язык, используемый по-умолчанию |
| sTemplate | Шаблон страницы (если не указан — используется «default») |
| sDescription | Стандартное описание для страниц |
| sKeywords | Стандартные ключевые слова для страниц, разделенные запятыми |
| _Head |
Дополнительные теги для <link rel="shortcut icon" href="/favicon.ico" />
|
| _Style |
Путь к дополнительному файлу стилей для всех страниц. Если существует файл в папке с используемым шаблоном «s/default.css», то он будет загружен автоматически. Если путь указан от корня, то он будет использован как есть, в противном случае будет файл будет браться из вложенной папки «/s/» в папке с используемым шаблоном. |
| _Script | Путь к подключаемым скриптам по аналогии с предыдущим параметром. |
| _Module * | Путь к подключаемому модулю и параметры в формате: Module.p?param1=value1¶m2=value2 |
Если имя поля начинается с символа подчеркивания «_», значит можно указать несколько одноименных полей.
* В выходном XML-е страницы результат выполнения модуля будет представлен в виде XML-блока с именем файла без расширения (<Module>…</Module>), если указан параметр sBlockName, то эта строка будет использована в качестве имени тега, обрамляющего блок. Например: _Module = Module.p?sBlockName=Block — <Block />. Так же может быть передан параметр bEmptyBlock=true, в таком случае блок не будет отображен в выходном XML-е.
Файл представляет собой tab-разделенную таблицу с колонками:
| id | Уникальный ID раздела |
| parent_id | ID родительского раздела (у корневых разделов — 0) |
| level | Уровень вложенности (у корневых разделов — 1) |
| is_show_in_menu | Учитывать ли при построении навигации |
| dir | Папка (путь) раздела |
| title | Заголовок (используется в навигации, для задания заголовков в теге <title /> используется page.ini) |
| is_fake | Пустой раздел, фактически не существующий. Используется для группировки нескольких разделов в навигации (по-умолчанию — 0) |
Каждая секция — адрес страницы, например «/path/to/page/», при обработке строка запроса удаляется, таким образом нельзя назначить разные параметры для адресов: «/page/?param=1» и «/page/?param=2».
| sTitle | Заголовок страницы |
| sTemplate | Шаблон страницы (если не указан — берется из основного конфига) |
| sDescription | Описание страницы, (если не указано — берется из основного конфига) |
| sKeywords | Ключевые слова, разделенные запятыми (если не указаны — берутся из основного конфига) |
| _Module | Путь к подключаемому модулю и параметры в формате: «Module.p?param1=value1¶m2=value2» |
| _Head | Дополнительные теги для <head /> (см. config.ini) |
| _Style |
Путь к дополнительному файлу стилей для страницы. Если существует файл в папке с используемым шаблоном «/s/default.css», то он будет загружен автоматически. Если путь указан от корня, то он будет использован как есть, в противном случае будет файл будет браться из вложенной папки «/s/» в папке с используемым шаблоном. |
| _Script |
Путь к подключаемым скриптам по аналогии с предыдущим параметром. |
| iCacheTime |
Время кэширования в секундах Используется только внешне в примере |
Если имя поля начинается с символа подчеркивания «_», значит можно указать несколько одноименных полей.
);Все модули должны быть в папке «/папка с данными/modules/» (путь к папке с данными указывается при инициализации системы).
В модуле должен быть объявлен метод @create, принимащий в качестве параметров обязательно хэш, например:
@create[hParams]
$hParams[^hash::create[$hParams]]
Если этот метод не определен, то весь модуль считается его определением, по аналогии с @main.
Если сайт многоязычный, то при выполнении модуля будет передан еще один дополнительный параметр — $hParams.sLanguage, содержащий в себе двухбуквенную аббревиатуру текущего языка сайта в нижнем регистре.
© 2004—2008, Никита Козин