Мысли о пользе структуры сайта в XML.
Nexus 02.09.2002 17:37
Недавно начал ставить эксперимент по хранению структуры сайта в одном файле XML, который выглядит примерно так :
<?xml version="1.0" encoding="windows-1251"?>
<site>
<page name="/" scheme="left_right_middle">
<left>
<block name="leftmenu"/>
</left>
<middle>
<security access="user">
<block name="forum"/>
</security>
</middle>
<right>
<block name="content"/>
</right>
</page>
<page name="/test/" scheme="left_right">
<left>
<block name="leftmenu"></block>
</left>
<right>
<security>
<block name="content"></block>
</security>
</right>
</page>
<page name="/news/" scheme="left_right">
<process>
^auth:process[]
</process>
<left>
<block name="leftmenu"></block>
<block name="auth"></block>
</left>
<right>
<block name="news"></block>
</right>
</page>
</site>
<page> - страница, scheme - схема страницы (left,right,middle)
<block name="auth"></block> - блок авторизации
<block name="forum"/> - форум
<block name="content"/> - блок текста из базы (fetch по url)
<security>...</security> - блок, доступный авторизированным
пользователям.
<process>...</process> - блок обработки данных (задачи типа
авторизации) и т.д.
Что позволяет в перспективе сделать "редактор сайта", простой
даже для любого пользователя. Все что нужно - поменять блоки местами, добавить новые и т.д.
Все через mod_rewrite, а в transform передается часть uri.
Все в конечном итоге обрабатывается 2 трансформа.
Первый - проход по блокам, формирование парсер-кода, потом
^process[...] по сформированному коду.
И второй проход - формирование дизайна страницы (шапку, ноги и т.д.)
Все это есть уже в рабочем состоянии. Правда, есть неудобства, что все оформление ведется в xhtml, и переработка старого дизайна под новый - утомительная задача.
Какие есть мысли, идеи, предложения ?
P.S. А вот MS .NET по поводу моего XML сказала :
The same table(block) cannot be child table in two nested relations,
что наталкивает на мысль о неправильности структуры, хотя все well-formed.
- Мысли о пользе структуры сайта в XML., Nexus 02.09.2002 17:37