[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка шаблонов сайта с помощью XML технолог
yurok
Ранее я писал сайты используя tpl шаблоны. Обрабатывал их с помощью шаблонизатора Smarty. Как можно используя XML технологии делать тоже самое и вообще что для этого необходимо?



Спустя 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() выполняет инструкции в этом шаблоне.

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

Спустя 4 минуты, 13 секунд (20.07.2010 - 19:48) yurok написал(а):
ведь просто используя html я не смогу добипься динамичности сайта: чтобы отдельно были правая и левая часть сайта(которые тоже должны бать полностью динамичными) и центральная часть сайта. Весь контент находится в бд и формируется посредством php. И чтобы этого добиться мне нужны tpl шаблоны

Спустя 1 минута, 8 секунд (20.07.2010 - 19:49) ApuktaChehov написал(а):
Конечно tpl. С ними нужно правильно работать. А причем тут XML я вообще не понял.

На самом деле 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, вы найдете в лицензионном соглашении.

Спустя 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'));
$Xml = TCore::$Kernel->apiCreateObject('TXml', array('Location' =>'./test.xml'));
$Template = $Xml->apiGetObject('TObject', array('Name' => 'TestTemplate'));
echo $Object->apiInterpreterNode($Template->apiGetSource());
Выведет в браузере: Hello world. I am object and my name MyTestObject
Можно и так
echo $Template->apiInterpreter();
Тогда в браузере выведется: Hello world. I am object and my name TestTemplate
$Template->Name = 'ChangedNameTemplate';
$Xml->apiUpdate($Template);
После этого в xml-файле шаблон изменит свое свойство Name на значение ChangedNameTemplate.

Вот как-то так я работаю. Это только самый краешек айсберга.

Спустя 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 написал(а):
Конечно же ручками писаный.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.