Хочу посоветоваться со специалистом по XML, XSLT и PHP @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ 1 сообщение ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
andygray Муж.
соучастник
10
Сообщения: 980
Зарегистрирован: 10.12.01
Откуда: Ukraine, Kiev
Заголовок сообщения: Хочу посоветоваться со специалистом по XML, XSLT и PHP
Сообщение Добавлено: 7 Октябрь 2004, 14:00:26 
Hey!

Нужен совет по реализации моей задумки.
В качестве примера возьмём формирование структуры каталога (дирректории) вида:
+DirA
__-DirAA
__-DirBB
+DirB
__-DirBA
__-DirBB
__-DirBC
+DirC


Вывод поддиректорий текущей cur_dir осушествляется html'ом вида:
Код:
    |<table>
    |     |<tr>
    |     |    |<td>
(1)|(2)|(3)|<a href="[dir_link]">[dir_name]</a>
    |     |    |</td>
    |     |</tr>
    |</table>
, где:
(1) structure
(2) line
(3) element

line имеет параметр num_el, значение которого должно импортироваться из внешнего файла настроек. Его значение определяет, сколько раз будет повторятся элемент element, другими словами - количество элементов в строке. Так же line содержит собственно element

element, в свою очередь, содержит элементы dir_link и dir_name.

Следовательно, должен быть шаблон вида (по сути-info файл):
Template1.???
Код:
<cur_dir type="input">$cur_dir</cur_dir>
<html_rules>Html-rules1.???</html_rules>
<php_rules>Php-rules1.php</php_rules>
<sum_el type="calc">sum_el</sum_el>
<structure>
  <line>
    <num_el type="cfg">$n</num_el>
    <element>
      <dir_name>$dir_name</dir_name>
      <dir_link type="calc">$dir_link</dir_link>
    </element>
  </line>
</structure>

Шаблон должен иметь подобную понятную структуру, что бы быть легко редактируемым. К примеру, если я захочу вставить рядом с каждой директорией количество поддиректорий - [DirA(2) DirB(3) DirC], то шаблон изменяется следующим образом:
Template1.???
Код:
<cur_dir type="input">$cur_dir</cur_dir>
<html_rules>Html-rules1.???</html_rules>
<php_rules>Php-rules1.php</php_rules>
<sum_el type="calc">sum_el</sum_el>
<structure>
  <line>
    <num_el type="cfg">$n</num_el>
    <element>
      <dir_name>$dir_name</dir_name>
      <dir_link type="calc">$dir_link</dir_link>
      <sub_dirs_num type="calc">$sub_dirs_num</sub_dirs_num>
    </element>
  </line>
</structure>

Кроме того, правила преобразования в html должны быть максимально просто описаны, для правки как html-верстальщиком, так и php-кодером (не девелопером). Что то похожее на это:
Html-rules1.???
Код:
structire:
<table>[line]</table>
line (loop-[round(sum_el/num_el+1)]-times):
<tr>[element]</tr>
element (loop-[num_el]-times):
<td>
[dir_link][dir_name/][sub_dirs_num/][/dir_link]
<br></td>
dir_link:
-begin<a href="[#value]">
-end</a>
dir_name:
[#value]
sub_dir_num:
&пbsp([#value])


Итак, у нас есть Template1.??? и html-rules1.???
Ещё должен быть php файл Php-rules1.php, содержащий обработчики полей присутствующих типов - cfg и calc.
Вот у нас и есть полноценный набор файлов, представляющих собой совершенно независимый шаблон.

Вооот...
Как же это должно работать?
Допустим есть некая система, которая на лету позволяет подключать шаблоны. Вот краткий сценарий:
1. Инсталлируем новый шаблон работы со структурой директорий:
- указываем путь к папке с шаблоном
- система запрашивает у пользователя имя шаблона и добавляет элемент <name>TypedName</name> в Template1.???
- система парсит шаблон и создаёт под него соотв. базу данных с именем TypedName и полями ID и name (поля типов cfg и calc не создаются, т.к. они расчитываются в дальнейшем по своим правилам)
2. Заполняем базу
- система, на основе Template1.??? создаёт интерфейс для добавления/удаления/редактирования элементов по своим внутренним правилам
3. Просматриваем результаты
- В лоадер Php-rules1.php передается параметр cur_dir, затем загружается и исполняется файл Html-rules.??? - на экран выводятся поддиректории текущей (cur_dir). Вуаля!


Вот собственно то, что я вижу. То, как это должно работать.

ВНИМАНИЕ.
Вопрос.

Очень очень очень очень сильно не хочу придумывать с нуля языки шаблонов, правил и т.п. Я знаю, что уже есть готовые средства и механизмы создания подобных извращений (если вам так показалось) и не использовать их было бы грех. Как мне показалось, под мои нужды целиком и полностью подходят PHP+mySQL vs XML vs XSLT. Кто нибудь может нарисовать, с использованием этих технологий сделать данный пример? Я практик, и теорию начинаю усваивать и делать частью своего мышления только в случае, если ясно вижу способы использования. Сейчас это так, но не до конца, поэтому прошу совета/помощи. Возможно я не прав, и XMS+XSLT нужно оставить в стороне, использовав Smarty-templates. В любом случае жду совета.

Thx!

Crossposted to PhpClub.net
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ 1 сообщение ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100