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

Bermuda

Новичок
AmdY
Мля, проверил несколько раз.
В IE 7 показывает структуру XML без преобразования и без форматирования, в Firefox показывает структуру XML без преобразования и без форматирования.

Скриншот нужен или поверишь наслово?
 

Фанат

oncle terrible
Команда форума
AmdY
То есть, твоих неглубоких знаний хватает на то, чтобы утверждать это определенно?
 

BubenPupen

Новичок
Фанат
это очень примитивный подход, годный только для очень простых сайтов.
И почему это он не годен для сложных сайтов ?

что такое "действие"?
Действие (Action) - это всего навсего метод модуля.

PHP:
class News
{
    function showAllNews() {}

    function showNewsByCategory() {}

    function showNewsById() {}
}
В системе есть "страницы", для которых указаны все действия которые там должны выполнится.
Для страницы
PHP:
/news/
указано выполнить действие
PHP:
showAllNews
Вызывается
PHP:
News->showAllNews()
система получает от него данные, подгружает нужный шаблон, парсит его, полученный хтмл кладется в
PHP:
$html["showAllNews"]
Все, в главном шаблоне
PHP:
{BLOCK: "showAllNews"}
будет заменен на хтмл из
PHP:
$html["showAllNews"]
 

Фанат

oncle terrible
Команда форума
а шаблон, как уже говорилось - это чистый пхп?
а почему тогда он не применяется в приведённом здесь коде?
 

BubenPupen

Новичок
Фанат
а шаблон, как уже говорилось - это чистый пхп?
а почему тогда он не применяется в приведённом здесь коде?
Php может применяться и в главном шаблоне, просто в этом простом примере я его не привел.

А вот в шаблоне showAllNews.php он используется:
PHP:
<h2>Новости</h3>
<? foreach($content['news'] as $id => $news): ?>
<?=$id?>. <b><?=$news['author']?></b>:
<?=$news['text']?>
<br /><br />
<? endforeach; ?>
Массив $content заполняется действием showAllNews


По поводу XSLT, да, он может выполнятся на стороне клиента, только я не помню какие браузеры это умеют. Но в будующем, я думаю так будут делать все.
 

hermit_refined

Отшельник
угу, я тоже думаю, что спустя лет 5-10 некое xslt-подобное преобразование на стороне клиента будет широко использоваться. и это будет очень удобно и мило.
вот тогда об этом и поговорим ;-)
 

BubenPupen

Новичок
hermit_refined
угу, я тоже думаю, что спустя лет 5-10 некое xslt-подобное преобразование на стороне клиента будет широко использоваться. и это будет очень удобно и мило.
вот тогда об этом и поговорим ;-)
Почему так долго ? Думаю года через 3 уже будет.
 

AmdY

Пью пиво
Команда форума
ну ёпт.
в приведённом примере подтягивается только xml (я показал его пример), на стороне клиента он сливается с xslt (большинство из которых уже загружены). преобразование делает браузер !!!

это проеобразование может проводить как ie так и ff - уже сейчас.

я скоро расплачусь от бессилья. ;(

красота метода в том, что xslt используются многократно, меняется только xml - а это сокращает трафик.
как парсить xslt c xml на клиенте, это вопрос javascript, ели он отключен, то преобразование производятся на стороне клиента.

чел который писал движок не только понял xslt преобразование, но и грамотно реализовал их.
 

Bermuda

Новичок
BubenPupen
View source
Я в браузер получил HTML + Javascript.
А должен был получить XML.

Ну вытягивает он с сервера с помощью Javascript XML и XSL, потом парсит, но смысл?
С таким же успехом он мог бы парсить ini-файл.
 

AmdY

Пью пиво
Команда форума
смысл в xml+xslt+xpath - это части одного целого.
 

hermit_refined

Отшельник
мда... глубокомысленность на глубокомысленности сидит и глубокомысленностью погоняет.
как и в любом другом топике по поводу xslt.

в частности потому-то и не жду от xsl технологий в ближайшее время чего-то хорошего, поскольку практически у всех людей, её использующих, потрясающая каша в голове.
 

AmdY

Пью пиво
Команда форума
hermit_refined, к сожалению, полностью с тобой согласен, потому голосовал за смарти.
 

Фанат

oncle terrible
Команда форума
AmdY
это проеобразование может проводить как ie так и ff - уже сейчас.
может. но не проводит.
чел который писал движок не только понял xslt преобразование, но и грамотно реализовал их.
а ты ему поверил. наивный, ха-ха.
я скоро расплачусь от бессилья. ;(
расплачься лучше от собственной глупости и наивности.
Тебе сказали, что движок проводит преобразование на стороне клиента, а ты и поверил.

попробуй ВНИКНУТЬ в проблему и хоть чуть-чуть понять, КАК работает преобразование наклиенте. Не в твоём воображении, а в РЕАЛЬНОСТИ. И сравни потом эту технологию с тем, что ты видишь на приведённом сайте.
а до тех пор лучше не пиши ничего, не позорься.

Все мы бываем жертвами своей наивности. Я, например, когда-то дума, что сессии - это какой-то особенный протокол, которому не требуются стандартные средства НТТР.
В таких фантазиях нет ничего обидного или глупого. Глупо упорствовать после того, как тебе указали на ошибку.
 

Фанат

oncle terrible
Команда форума
BubenPupen
почему такая странная двухуровневая система шаблона?
почему нельзя написать
<div id="center"><?=$BLOCK->showAllNews?></div>
 

AmdY

Пью пиво
Команда форума
Фанат
ты, посмотри на сайт, посмотри что происходит по клике (тянется xml), посмотри этот xml, почеши затылок, думая как это тянется xml, а выводится html.
посмотри исходный код страниц и js.
посмотри сслыку BubenPupen.
посмотри http://www.w3schools.com/xsl/tryit.asp?filename=cdcatalog

и если ты после этого будешь утверждать что нету никаких преобразований. То значит не парся, просто тебе этого не дано.

Да и в каком месте мне указали на ошибку?
Да, я упартый, но не пру против фактов.
 

Фанат

oncle terrible
Команда форума
Ты об этой ссылке - http://bisole.com/about.xml ?
у меня по ней не выводится html

посмотри http://www.w3schools.com/xsl/tryit....ename=cdcatalog
не надо мне показывать банальный аякс.
У тебя просили не это.
 

AmdY

Пью пиво
Команда форума
Фанат не парся :)
-------------------------------
для остальных по ссылке http://bisole.com/about.xml выводится xml, он подтягивается с помощью ajax. дальше уже этот xml соединяется с xslt (см. http://www.w3schools.com/xsl/tryit.asp?filename=cdcatalog - это пример xslt преобразования) и, о боже, html код, полученный после этого преобразование ложится в div.

на самам деле, несложно.

всё правильно?
 
Сверху