Включение файлов LXP
В файлы LXP можно включать другие файлы LXP, если сервер Apache имеет доступ по чтению к документу, заданному в атрибуте src. Все переменные, заданные во включающем документе LXP, будут доступны для чтения и модификации во включаемом документе LXP.
Чтобы включить файл LXP, откройте блок LXP н воспользуйтесь следующей командой (файл_1хр — имя включаемого файла LXP): <include 5гс="фзйл_1хр" />
ПРИМЕЧАНИЕ
Включаемый файл LXP обрабатывается по тем же правилам, что и при непосредственном вызове. Следовательно, чтобы вы могли использовать теги LXP во включаемом файле, в нем необходимо предварительно открыть блок LXP тегом <1хр>.>
Поскольку вывод включаемого документа LXP подставляется на место включающего
тега <i ncl ude>, закрывающий тег при таком способе включения не
нужен. В этом случае тег <include> является тегом с пустым блоком
(то есть с завершающим символом /). Если включаемый файл LXP не имеет
расширения .1хр, вы можете обеспечить его принудительную обработку как
модуля LXP при помощи атрибута method="lxp".
Допустим, у вас имеется приложение LXP, которое предоставляет разную информацию в зависимости от виртуального хоста, от которого поступило обращение. В каталоге DocumentRoot каждого виртуального хоста может храниться всего один файл index.Ixp, настроенный на включение корневого приложения LXP из другого каталога. В листинге 13.21 приведен пример простого файла верхнего уровня, который задает значения двух защищенных переменных LXP и включает корневой файл LXP.
Листинг 13.21. Включение документа LXP
<1хр>
<setvar lxp.virtual_host="0" />
<setvar lxp.access_level="l" />
<1nclude src="../application/index.Ixp" />
</lxp>
Включение неструктурированных файлов
Неструктурированным, или плоским, файлом называется простой текстовый документ. С точки зрения сервера неструктурированный файл не нужно подвергать лексическому разбору.
Как и при включении документа LXP, метод f I at не требует закрывающего тега и поэтому используется только в виде тега с пустым блоком и завершающим символом /. Чтобы включить неструктурированный файл, откройте блок LXP н воспользуйтесь следующей командой (файл — имя включаемого файла LXP):
include srс="файл_lxp" />
Если включаемый файл имеет одно из распознаваемых расширений, вы можете инициировать его включение как неструктурированного файла при помощи атрибута method="f I at". В листинге 13.22 приведен документ LXP, включающий три файла HTML из относительного каталога parts. В этих файлах подгружаются компонепты web-страницы — заголовок, панель ссылок и нижний колонтитул. Расширения этих файлов не подразумевают более сложные методы, поэтому файлы просто включаются без дополнительных уточнений.
Листинг 13.22. Включение неструктурированных файлов
<1хр>
<include src="parts/header.html" />
<include src="parts/leftbar.html" />
Welcome to my home page.<br />
<include src="parts/footer.html />
<1хр>
Подобные включения упрощают сопровождение web-сайтов с модульной структурой — логические компоненты оформляются в виде отдельных модулей по аналогии с тем, как это делается при использовании серверных включений или функции PHP readfileO. Кроме того, включение неструктурированных файлов позволяет добиться того же уровня модульности без потери простоты и элегантности разметочной структуры документа. Впрочем, этим возможности тега <include> далеко не исчерпываются.