Чтение онлайн

ЖАНРЫ

Курс "Язык программирования PHP"

Савельева Нина Владимировна

Шрифт:

<li><a href="#"

target=new><!title></a>

(<!author>)<br><!abstract>

Кроме того, здесь есть еще одна загвоздка - с отображением ссылки на полный текст статьи. Если мы будем действовать по правилу подстановки (менять все метасимволы на их значения из базы данных), то может получиться, что вместо <!fulltext> вставим не ссылку на текст, а сам текст. То есть для этого элемента нужна дополнительная проверка перед заменой и какие-то дополнительные действия в случае, если в поле fulltext содержится текст статьи,

а не ссылка на файл. Не будем усложнять себе жизнь и договоримся, что в поле fulltext всегда содержится только ссылка на файл. Тогда задачу можно решить следующим образом:

<?

$li_tmpl = file_get_contents("tmpl.html");

// считываем шаблон строки из файла

// устанавливаем соединение и выбираем

// базу данных

$conn = mysql_connect("localhost",

"nina","123")

or die("Cant connect");

mysql_select_db("book");

$sql = "SELECT * FROM Articles";

$q = mysql_query($sql,$conn);

// отправляем запрос

$num = mysql_num_rows($q);

for($i=0; $i<$num; $i++){

$tmpl .= $li_tmpl;

$tmpl = str_replace("<!title>",

mysql_result($q,$i,"title"),$tmpl);

$tmpl = str_replace("<!author>",

mysql_result($q,$i,"author"),$tmpl);

$tmpl = str_replace("<!abstract>",

mysql_result($q,$i,"abstract"),$tmpl);

$tmpl = str_replace("<!fulltext>",

mysql_result($q,$i,"fulltext"),$tmpl);

}

echo $tmpl;

?>

Если шаблон был такой, как приведен выше, то получим примерно следующее.

Введение в PHP (Савельева Н.В.)

Лекция дает представление о том, что такое язык PHP, для чего он создавался изначально и как используется теперь, какими возможностями обладает.

Установка и настройка ПО (Иванов Иван)

Рекомендации по установке и настройке web-сервера и интерпретатора PHP

В принципе метод достаточно прост и удобен, но требует дополнительных усилий программиста при возникновении задач более сложных, чем простая подстановка значений. Для решения задач, где требуется делать подстановку целых блоков или даже проверять условия, создают классы шаблонов, такие как FastTemplate и Smarty. Обсудим их подробнее.

Шаблоны FastTemplate

FastTemplate - это набор классов, позволяющих реализовать работу с шаблонами. Логику добавить в шаблон FastTemplate нельзя, вся она должна находиться в коде программы. Идея работы шаблонов FastTemplate заключается в том, что любая большая страница состоит из множества кусочков, самые маленькие из которых - обычные строки текста, и они получают имя и значение.

Что представляет собой файл шаблона FastTemplate? Это обычный html-файл, в котором могут встречаться переменные особого вида, впоследствии обрабатываемые методами класса FastTemplate.

Синтаксис переменных в шаблонах FastTemplate

описывается следующим выражением: {([A-Z0-9_]+)}

Это значит, что переменная должна начинаться с фигурной скобки "{". Второй и последующие символы должны быть буквами верхнего регистра от A до Z, цифрами или символами подчеркивания. Переменная вычисляется с помощью закрывающей фигурной скобки "}".

{TITLE}

{AUTH20}

{TOP_OF_PAGE}

Как уже было сказано, основная идея FastTemplate - создание страницы с помощью вложенных шаблонов. Например, для решения нашей задачи можно создать три файла шаблона:

<html>

<head><title>{TITLE_}</title>

</head>

<body>

{MAIN}

</body>

</html>

<ul>

{LIST_ELEMENT}

</ul>

<li><a href="#">{TITLE}</a>

({AUTHOR})

<br> {ABSTRACT}

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

Перед началом работы с шаблонами FastTemplate нужно подключить этот набор классов к нашей программе. В реальной жизни набор классов FastTemplate записан в один файл, как правило, с названием class.FastTemplate.php3, поэтому подключить его можно, например, с помощью команды:

include("class.FastTemplate.php3");

Следующий важный шаг - это создание объекта класса FastTemplate, с которым впоследствии мы будем работать:

$tpl = new FastTemplate(

"/path/to/templates");

В качестве параметра передается путь к месту, где находятся наши шаблоны.

Методы FastTemplate

Далее необходимо изучить методы, которые можно применять к созданному объекту класса FastTemplate. Параллельно обратим внимание, как их можно использовать для решения нашей задачи.

Для работы с FastTemplate нужно знать четыре основных метода: define, assign, parse и FastPrint.

Метод define

Синтаксис:

define( array ( ключ => значение,

ключ1 => значение1, ... ))

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

Поделиться с друзьями: