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