Циклы foreach имеют свои собственные свойства. Получить доступ к ним можно таким образом: {$smarty.foreach.foreachname.varname}, где foreachname - это имя цикла, заданное его параметром name, а varname - имя свойства.

Оператор if, elseif, else

Синтаксис:

{if выражение} блок_действий

{elseif выражение1} блок_действий1

{else} блок_действий2

{/if}

Действие оператора практически аналогично оператору if...elseif...else языка PHP. В выражениях могут использоваться следующие операторы сравнения: eq, ne, neq, gt, lt, lte, le, gte, ge, is even, is odd, is not even, is not odd, not, mod, div by, even by, odd by, ==, !=, >, <, <=, >=. Каждый из них обязательно должен быть отделен от окружающих его значений пробелами. В выражениях можно использовать круглые скобки и вызывать php-функции.

{if $name eq 'Вася'}

Добро пожаловать, Вася.

{elseif $name eq 'Петя'}

Добро пожаловать, Петя.

{else}

Добро пожаловать. А вы кто?

{/if}

{* этот пример не будет работать,

поскольку не поставлены

пробелы вокруг операторов сравнения *}

{if $name=='Вася' || $name=='Петя'}

...

{/if}

Решение задачи с помощью шаблонов Smarty

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

{* Smarty template index.tpl *}

{config_load file='task.conf' }

<html>

<head><title>{#pageTitle#}</title>

</head>

<body>

<ol>

{section name=art loop=$title}

<li><a href='{$fulltext[art]}'>

{$title[art]}</a>

({$author[art]})

<br> <p> {$abstract[art]}

{/section}

</ol>

</body>

</html>

В файле конфигурации task.conf будем хранить название страницы и параметры для доступа к базе данных:

# глобальные переменные

pageTitle = 'List of documents'

[Customer]

pageTitle = 'Список статей'

[Database]

host=localhost

db=book

user=nina

pass=123

Скрипт (index.php), обрабатывающий написанный нами шаблон, может выглядеть таким образом:

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

Заключение

Итак, в этой лекции было рассказано о том, что такое шаблоны и как их можно использовать при программировании web-приложений на языке PHP. Мы рассмотрели три способа решения задачи отображения сложного списка документов: с помощью функции регулярной замены, с помощью класса шаблонов FastTemplate и с помощью языка шаблонов Smarty. При этом мы познакомились с основными свойствами, методами и функциями классов FastTemplate и Smarty.

Литература

Учебники к курсу

1. Савельева Н.В.

Основы программирования на PHP

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату