Инжектирование Xml контента

В продолжение темы о PHP Application Tools. Прошлый раз я лишь указал средство так называемое интерполирование, или на простом языке замещение. С одной стороны, некоторые проблемы с этим снимаются, но все равно хотелось бы побольше прозрачности. О ней сейчас то и пойдет речь. Я делаю вольный перевод статьи с weberdev.com (Injecting XML Content Into Page Templates With patXMLRenderer).

 

В чем будет заключаться нынешний метод? В хранении информации в xml файлах, а сами значения будут замещаться в шаблоне, и как вы увидите все будет довольно прозрачно и более гибко.

Простой пример

Я не буду описывать установку и настройку PHP Application Tools, при наличии граблей, я думаю что разобраться можно без труда. Я просто скажу что теперь в нашу структуру каталогов добавится еще один, для хранения xml документов.

CODE
<!--ec1-->
<?xml version="1.0"?>
<!-- friends.xml -->
<friendlist>
<item>Naikon</item>
<item>[RC]Admin</item>
<item>Kpumuk</item>
<item>VirtKat</item>
<item>_ben</item>
</friendlist>
<!--c2-->

<!--ec2-->

Вот такой вот френдлист в виде xml документа, самый простой шаблон для его вывода выглядит примерно так.

<!--c1-->

CODE
<!--ec1-->
<patTemplate:tmpl name="friendlist">
<html>
<head>
<title>My Friend List</title>
</head>
<body>
<b>My friend list:</b>
<ul>
{CONTENT}
</ul>
</body>
</html>
</patTemplate:tmpl>

<patTemplate:tmpl name="item">
<li>{CONTENT}</li>
</patTemplate:tmpl>
<!--c2-->

<!--ec2-->

Обратите внимание что специальная переменная {CONTENT} зарезервирована и заменяется значением из XML документа.

<!--c1-->

CODE
<!--ec1-->
<?php
require_once( "config/patXMLRenderer.php" );
require_once( "include/patTemplate.php" );
require_once( "include/patXMLRenderer.php" );

$randy = new patXMLRenderer;
$randy->setXMLDir("xml/");
$randy->setXMLFile("friendlist.xml");

$template = new patTemplate();
$template->setBaseDir("tmpl/");
$randy->setTemplate($template);

$randy->addTemplateFile("friendlist.tmpl");
$randy->setSkins($skins);
$randy->initRenderer();

$randy->displayRenderedContent();
?>
<!--c2-->

<!--ec2-->

Кстати шаблоны Randy (уменьшительно ласкательное для XMLRenderer) ничего не напоминают?
По своей структуре...

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

А пока, все smile.gif Хорошего по чуть чуть...




Рекомендуем почитать

 

Добавить комментарий


Ваше имя:


Комментарий:


Введите: Картинка