Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MVC и XSLT, Логика построения шаблонов 
:(
    Опции темы
malefici
  Дата 10.10.2011, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.10.2009

Репутация: нет
Всего: нет



Есть некоторый MVC'шный backend собраный на коленке, он собирает XML'ку из данных, что проходит обработку моделями контроллеров. В качестве шаблонизатора я использую XSLT, это удобно по многим причинам. 
Теперь пару слов о архитектуре backend'а. Backend собирает XML из hash'а. Из чего состоит hash:
  • данные роутера (локаль, контроллер, метод, алиас объекта)
  • данные контроллера (обработанные нужными моделями, естественно)
  • данные хуков
Так как это панель управления (хитрая админка), то там используюется большое количество методов каждого из контроллеров. Было бы очень удобно реализовать шаблонирование метода в шаблоне (сорри за тавтологию). Я не совсем представляю как это сделать. Вызывать шаблон по имени метода? Разносить шаблоны по методам контроллеров? Инклудить темплейты? Подскажите, пожалуйста.

UPD
Cам вопрос возник из-за структуры XML документа, я не имею представления о том, как здесь можно воспользоваться конструкцией
Код

<xsl:template match="method" />

так-как структура XML
Код

<root>
<router-data />
<controller-data /> <!-- тут данные для отображения страницы -->
<hooks-data />
<additional-data />
</root>


Это сообщение отредактировал(а) malefici - 10.10.2011, 12:37
PM MAIL   Вверх
magelan
Дата 10.10.2011, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 5.4.2010

Репутация: 7
Всего: 16



Задача не очень ясна.
Подходов может быть много.
например у вас есть некая псевдоструктура, которую вы вычитываете перед трансформацией:
Код

<tree>
    <page url="/" template="main.xsl"/>
    <page url="/adm" template="admin.xsl"/>
    <!-- ... -->
</tree>


либо вы модернизируете свой XML как-то так:
Код

<root>
    <router-data />
    <controller-data for="main-page" /> <!-- тут данные для отображения страницы -->
    <hooks-data />
    <additional-data />
</root>

тогда ваш XSL примет понятный вид
Код

<xsl:template match="/root/controller-data[@for='main-page']" />
<xsl:template match="/root/controller-data[@for='other-page']" />
<xsl:template match="/root/controller-data[@for='admin-page']" />
<!-- etc -->


в CMS обычно делают связь шаблонов на уровне страниц, где управляют как XML который будет получен при вызове страницы так и шаблоном для ее обработки.
PM MAIL   Вверх
malefici
Дата 10.10.2011, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.10.2009

Репутация: нет
Всего: нет



Ага, буду пробовать. 
Задачу пытался изложить максимально точно, как смог smile 
Цитата

в CMS обычно делают связь шаблонов на уровне страниц, где управляют как XML который будет получен при вызове страницы так и шаблоном для ее обработки.

Не понял. Можно поподробнее? Речь идет о том, что у контроллера есть определенный темплейт, и весь контент, что генерируется этим контроллером, обрабатывается этим самым определенным темплейтом? Я правильно понял?
PM MAIL   Вверх
magelan
Дата 11.10.2011, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 5.4.2010

Репутация: 7
Всего: 16



правильно.

мы немного в других терминах живем.

у нас есть "шаблоны" это микс из "элементов" - каждый из которых провайдер контента (новостная лента, документы, банеры, цсс и т.д.) и собственно XSL.
Разработчик сам решает, что нужно для страницы такого типа, набирая элементы из репозитория или заставляя программистов дописать ему те, что не хватает, пишет XSL их обрабатывающий.

После этого в неком другом вью накидывает "карту сайта", где ставит страницам соответствие шаблонов и настраивает провайдеры контента, т.е. указывает новостные линии, говорит, сколько новостей хочет на странице, за какой период, если это необходимо и тому подобное.

но начинали мы с файлика соответствий странице шаблона.
PM MAIL   Вверх
malefici
Дата 11.10.2011, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.10.2009

Репутация: нет
Всего: нет



Ну, не с файлика, я хотел узнать, как в шаблоне сделать конструкцию для обработки XML'я различными xsl:template в зависимости от метода контроллера. Вопрос решен. Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.