Документация Smarty


Глава 4. Переменные

Smarty имеет несколько различных типов переменных. Он зависит от символа, с которого начинается, или в какой заключена переменная.

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

Пример 4-1. Пример использования переменных

[
{$Name}

{$product.part_no} <b>{$product.description}</b>

{$Contacts[row].Phone}

<body bgcolor="{#bgcolor#}">

Полезный совет: При помощи отладочной консоли можно легко просмотреть значения переменных Smarty.

Переменные, назначенные из PHP

К переменным, которые были назначены из PHP можно обратиться, указав перед их именем знак доллара ($). Переменные, назначенные внутри шаблона при помощи функции {assign} работают таким же образом.

Пример 4-2. Назначенные переменные

PHP-скрипт

<?php

$smarty 
= new Smarty;

$smarty->assign('firstname''Doug');
$smarty->assign('lastname''Evans');
$smarty->assign('meetingPlace''New York');

$smarty->display('index.tpl');

?>

Содержимое index.tpl:

Hello {$firstname} {$lastname}, glad to see you can make it.
<br />
{* это не сработает, потому что переменные чувствительны к регистру *}
This weeks meeting is in {$meetingplace}.
{* а это - сработает *}
This weeks meeting is in {$meetingPlace}.

Результат обработки:

Hello Doug Evans, glad to see you can make it.
<br />
This weeks meeting is in .
This weeks meeting is in New York.

Ассоциативные массивы

Вы можете также обращаться к ассоциативным массивам, которые назначены из PHP, указав ключ после символа '.' (точка).

Пример 4-3. Обращение к ассоциативному массиву

<?php
$smarty
->assign('Contacts',
    array(
'fax' => '555-222-9876',
          
'email' => '[email protected]',
          
'phone' => array('home' => '555-444-3333',
                           
'cell' => '555-111-1234')
                           )
         );
$smarty->display('index.tpl');
?>

Содержимое index.tpl:

{$Contacts.fax}<br />
{$Contacts.email}<br />
{* you can print arrays of arrays as well *}
{$Contacts.phone.home}<br />
{$Contacts.phone.cell}<br />

Результат обработки:

555-222-9876<br />
[email protected]<br />
555-444-3333<br />
555-111-1234<br />

Индексы массивов

Вы можете обращаться к массивам по их индексам примерно так же, как и в самом PHP.

Пример 4-4. Обращение к массиву по индексу

<?php
$smarty
->assign('Contacts', array(
                           
'555-222-9876',
                           
'[email protected]',
                            array(
'555-444-3333',
                                  
'555-111-1234')
                            ));
$smarty->display('index.tpl');
?>

Содержимое index.tpl:

{$Contacts[0]}<br />
{$Contacts[1]}<br />
{* you can print arrays of arrays as well *}
{$Contacts[2][0]}<br />
{$Contacts[2][1]}<br />

Результат обработки:

555-222-9876<br />
[email protected]<br />
555-444-3333<br />
555-111-1234<br />

Объекты

К свойствам объектов, назначенных из PHP, можно обратиться, указав имя свойства после символов '->'.

Пример 4-5. Обращение к свойствам объекта

name: {$person->name}<br />
email: {$person->email}<br />

Результат обработки:

name: Zaphod Beeblebrox<br />
email: [email protected]<br />
SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…

Linux Optimization

Размещена 30 июля 2012 года

Prelink

читать далее…