parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Мысли о пользе структуры сайта в 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.