Включение данных
В системе управления включением данных LXP центральное место занимает тег <include>. Он работает в разных режимах в зависимости от переданного атрибута method или контекста, определяемого значениями атрибутов.
В простейшем виде тег <i ncl ude> используется для простого включения файлов HTML– стандартных заголовков, панелей ссылок и нижних колонтитулов. Существуют и другие, не столь тривиальные применения – тег <include> может использоваться для разбора файлов, разделенных произвольными лексемами, и базовых документов XML, внедрения выходных данных РНР в документы LXP, непосредственной обработки запросов SQL и, конечно, включения других документов LXP.
В табл. 13.1 перечислены методы включения, поддерживаемые тегом <include>. В первом столбце указаны значения атрибута method тега <include>. Во втором столбце приведены псевдонимы – альтернативные имена для вызова метода. В столбце "По умолчанию" указаны значения атрибутов, при которых этот метод используется по умолчанию (при этом необходимость в явном указании атрибута method отпадает). В столбце "Описание" приводится краткое описание самого метода.
Таблица 13.1. Методы включения в LXP.
Метод | Псевдонимы | По умолчанию | Описание |
---|---|---|---|
LXP | Атрибут src завершается расширением .lхр | Файл обрабатывается средствами modjxp | |
flat | Неопознанное расширение в атрибуте src при отсутствии атрибутов sql и query | Простой вывод содержимого файла | |
parsed | Лексический разбор файла с разбиением на значения <field> | ||
XML | RSS, RDF | Атрибут src завершается расширением .xml, .rdf или .rss | Лексический разбор нормально сформированного файла XML с разбиением на значения <field> |
local | Apache | Атрибут src завершается расширением .php,. рhрЗ или .phtml | Воспроизведение выходных данных подзапроса Apache, атрибут src содержит имя файла |
URL | Воспроизведение выходных данных подзапроса Apache, атрибут src содержит HTTP URI | ||
SQL | Наличие атрибута sql или query | Выполнение команды SQL. Доступ к результатам запроса осуществляется при помощи переменных и тегов <field> |
Источник включаемых данных всегда задается атрибутом src тега <include>. В большинстве случаев это имя файла, хотя в зависимости от выбранного метода источником также может быть подключение к базе данных или URI. При включении файла с относительным путем (то есть не прослеживаемым к основанию файловой системы), LXP выбирает в качестве основания рабочий каталог документа LXP, в котором производится включение.
Примечание
Для предотвращения непреднамеренной бесконечной рекурсии (например, из-за включения файла, включающего самого себя) в документах LXP включение может производиться только до глубины, заданной директивой MaxIncludeDepth в файле Ixp.conf (см. подраздел "Настройка файла Ixp.conf" в разделе "Установка и настройка LXP"). По умолчанию максимальная глубина включения равна 15.