Спустя 14 минут, 40 секунд (20.07.2010 - 19:33) ApuktaChehov написал(а):
А с чего вы взяли что шаблоны нужно обрабатывать именно с помощью XML?
Спустя 3 минуты, 24 секунды (20.07.2010 - 19:36) yurok написал(а):
просто слышал что можно и так. А вообще как лучше
Спустя 2 минуты, 21 секунда (20.07.2010 - 19:39) KaFe написал(а):
yurok есть такой я язык Гипер Текст, от базируется на принципах XML и называется xHTML, в народе HTML
Спустя 1 минута, 28 секунд (20.07.2010 - 19:40) yurok написал(а):
мне надо чтобы весь контент был динамическим и формировался с помощью php
Спустя 3 минуты, 20 секунд (20.07.2010 - 19:44) ApuktaChehov написал(а):
Если цель строго отделить логику от представления, тогда можно юзать шаблонизатор. Но они не так быстры как хотелось. Лично я использую некий симбиоз простейшей шаблонизации и метода нашего эксперта twin-а.
Вот ссылка на труды twin-а:
http://irbis-team.com/15/4/5 см. функция parseTpl.
Она грузит шаблон в переменную, а потом с помощью eval() выполняет инструкции в этом шаблоне.
Так как, к примеру, создавать файлы для одной строки - неразумно. Я решил использовать регулярные выражения для разбора шаблонов. Проверял скорость работы. Скорость не отличается от скорости работы с файлами. В итоге очень удобно хранить шаблоны и работать с ними. Так как в любой момент, без вмешательство в код можно поправить дизайн или верстку системы.
Вот ссылка на труды twin-а:
http://irbis-team.com/15/4/5 см. функция parseTpl.
Она грузит шаблон в переменную, а потом с помощью eval() выполняет инструкции в этом шаблоне.
Так как, к примеру, создавать файлы для одной строки - неразумно. Я решил использовать регулярные выражения для разбора шаблонов. Проверял скорость работы. Скорость не отличается от скорости работы с файлами. В итоге очень удобно хранить шаблоны и работать с ними. Так как в любой момент, без вмешательство в код можно поправить дизайн или верстку системы.
Спустя 4 минуты, 13 секунд (20.07.2010 - 19:48) yurok написал(а):
ведь просто используя html я не смогу добипься динамичности сайта: чтобы отдельно были правая и левая часть сайта(которые тоже должны бать полностью динамичными) и центральная часть сайта. Весь контент находится в бд и формируется посредством php. И чтобы этого добиться мне нужны tpl шаблоны
Спустя 1 минута, 8 секунд (20.07.2010 - 19:49) ApuktaChehov написал(а):
Конечно tpl. С ними нужно правильно работать. А причем тут XML я вообще не понял.
На самом деле tpl всего лишь название для шаблонов. Динамичность сайта - заслуга PHP.
На самом деле tpl всего лишь название для шаблонов. Динамичность сайта - заслуга PHP.
Спустя 2 минуты, 16 секунд (20.07.2010 - 19:51) yurok написал(а):
ну например шаблоны(скины) для cms Joomla хранятся и обрабатываются использую xml
Спустя 2 минуты, 8 секунд (20.07.2010 - 19:53) yurok написал(а):
а вообще шаблонизатор Smarty можно использовать для написания коммерческих проектов?
Спустя 10 минут, 2 секунды (20.07.2010 - 20:03) ApuktaChehov написал(а):
Что значит использую XML? XML - это язык разметки документов. Как им можно пользоваться для создания динамических сайтов?
Всю информацию о использовании Smarty, вы найдете в лицензионном соглашении.
Всю информацию о использовании Smarty, вы найдете в лицензионном соглашении.
Спустя 13 часов, 33 минуты, 43 секунды (21.07.2010 - 09:37) linker написал(а):
Я использую шаблоны, базирующиеся на XML. Вся прелесть работы с XML заключается в динамичности, шаблоны можно править налету в реалтайм, работая с узлами. 100% разделение PHP кода от дизайна. Минимум управляющих конструкций. Блочное кэширование. Возможность хранить несколько логически связанных шаблонов в одном файле, а иметь к ним доступ через XPath, без всяких strpos, substr, preg_match и прочего хлама.
Спустя 13 дней, 10 часов, 19 минут, 44 секунды (4.08.2010 - 19:57) yurok написал(а):
linker
приведи пожалуйста пример такого шаблона и его обработки для вывода в браузер
приведи пожалуйста пример такого шаблона и его обработки для вывода в браузер
Спустя 1 час, 21 минута, 16 секунд (4.08.2010 - 21:18) linker написал(а):
<?xml version="1.0" encoding="utf-8"?>
<Templates>
<Template Class="TObject">
<Property Name="TestTemplate" />
<Source>
<!-- Можно так -->
<h1>Hello world. I am object and my name <b><?Property Name="Name"?></b></h1>
<!-- Можно и так -->
<![CDATA[<h1>Hello world. I am object and my name <b>{%Name}</b></h1>]]>
</Source>
</Template>
</Templates>
$Object = TCore::$Kernel->apiCreateObject('TObject', array('Name' =>'MyTestObject'));Выведет в браузере: Hello world. I am object and my name MyTestObject
$Xml = TCore::$Kernel->apiCreateObject('TXml', array('Location' =>'./test.xml'));
$Template = $Xml->apiGetObject('TObject', array('Name' => 'TestTemplate'));
echo $Object->apiInterpreterNode($Template->apiGetSource());
Можно и так
echo $Template->apiInterpreter();Тогда в браузере выведется: Hello world. I am object and my name TestTemplate
$Template->Name = 'ChangedNameTemplate';После этого в xml-файле шаблон изменит свое свойство Name на значение ChangedNameTemplate.
$Xml->apiUpdate($Template);
Вот как-то так я работаю. Это только самый краешек айсберга.
Спустя 15 часов, 32 минуты, 45 секунд (5.08.2010 - 12:51) yurok написал(а):
TCore это класс или что то другое
Спустя 5 минут, 42 секунды (5.08.2010 - 12:57) linker написал(а):
Конечно класс.
Спустя 1 час, 38 минут, 57 секунд (5.08.2010 - 14:35) yurok написал(а):
он встроенный или тобой написанный
Спустя 1 минута, 13 секунд (5.08.2010 - 14:37) linker написал(а):
Конечно же ручками писаный.