Разные шаблонизаторы. Плюсы и минусы.

:), шутишь или никогда не сталкивался с xslt и просто интересно?
 
AmdY
Извините -- виноват, из деревни -- глуповат.
Покажите мне нормальный, человеческий, посещаемый сайт который использует преобразование на стороне клиента.
Спасибо.
 
не трогай деревню, я сам оттуда.
а чем тебя не устроила моя предыдущая ссылка.
 
:) а с чего ты это взял, что отсутствует?
 
Хех, а я помню время, когда Фанат вопрошал в чем же принципиальное отличие Smarty от Php шаблонов, и зачем вообще нужен Smarty. Недавно была тема от Фаната про Smarty, теперь вот он говорит, что Smarty лучше XSLT. Понравилось чтоли ?

Про топик:
Использую обычные php шаблоны со своим классом.
Для страницы существует один главный шаблон. В нем можно использовать 3 тэга:
{BLOCK: "название_блока"}
{TEMPLATE: "файл_шаблона"}
{DYNAMIC: "номер_динамического_блока"}


{BLOCK} - заменяется на хтмл код, который приходит от какого-то действия. Например, есть действие showAllNews.
{BLOCK: "showAllNews"} будет заменен на хтмл код, который придет от действия showAllNews.

{TEMPLATE} - Подключает другой шаблон.

{DYNAMIC} - требуется пояснить, лучше всего на примере. Например, у нас есть 1 главный шаблон, который мы хотим использовать для нескольких страниц. Допустим, есть страницы "Новости" и "Опросы", которые выводят все новости или опросы.
PHP:
news.php:
<div id="top">Шапка</div>
<div id="left">Левое меню</div>
<div id="center">{BLOCK: "showAllNews"}</div>
<div id="right">Правое меню</div>
PHP:
polls.php:
<div id="top">Шапка</div>
<div id="left">Левое меню</div>
<div id="center">{BLOCK: "showAllpolls"}</div>
<div id="right">Правое меню</div>

Как видно, шаблоны полность идентичные, только содержание центрального блока разное. Чтобы не создавать много шаблонов (да и вдруг решишь что-нибудь поменять, придется изменять все шаблоны) можно воспользоваться блоком DYNAMIC. Шаблон будет выглядеть так:
PHP:
main.php:
<div id="top">Шапка</div>
<div id="left">Левое меню</div>
<div id="center">{DYNAMIC: "1"}</div>
<div id="right">Правое меню</div>

Теперь, в качестве главного шаблона для страниц Новости и Опросы мы указываем шаблон main.php, и в опциях "Динамические блоки" на странице "Новости" создаем новый блок:
1 - showAllNews

На странице опросов тоже самое:
1 - showAllPolls.
 
Кто-нибудь подкинет ссылку на сайт с xslt преобразованием на стороне клиента?
Чесслово, никогда в жизни не видел.
Спасибо.
 
AmdY
вот что мне выдал этот сайт:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
или это уже результат преобразования на моем клиенте?
 
сорри нужно посмотреть код ajax вызовов, они должны были быть с xslt. мот что-то изменилось.
 
Вообще без разницы, что он там себе пишет в meta. Сайт как минимум не проходит XHTML валидацию. XML бывает либо валидный, либо это не XML, следовательно код на сайте это не XML и речи о каких-либо преобразованиях идти не может.

-~{}~ 31.01.07 14:59:

???
Только через десять постов удосужился проверить то, что тыкает другим. Сорри теперь?
 
BubenPupen
это очень примитивный подход, годный только для очень простых сайтов.
что такое "действие"?

-~{}~ 31.01.07 17:02:

AmdY
мой браузер мне пишет
С этим XML-файлом не связана никакая таблица стилей. Ниже показано дерево элементов.
что я делаю не так?
 
AmdY
И что мне с этим XML-ем делать прикажете? Парсить?

И все же, где преобразование в браузере?
 
в браузере и есть результат соединения xml-ин с xslt-шками
правда он может получаться на стороне сервера, если браузер не поддерживает.
 
искренне, от неглубокого знания как работает данный движок
а в чём проблемма?
 
1. Ты сказал о перспективности парсинга на клиенте
2. Тебя попросили показать сайт, который это использует
3. Ты дал ссылку
4. Никаких преобразований на клиенте при просмотре этого сайта не происходит.
5. При этом ты продолжаешь утверждать, что все хорошо, все нормально.

В каком из утверждений я ошибся?
 
4
смотри исходники страниц, js.
когда мне нужен будет XSLT на хорошем уровне тоже буду окуратно въезжать, а так мои знания об данной реализации поверхностны.
 
Сверху