Get Smarty

Donate

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from Cheapglasses123.com and save up to 80%.

Where to buy prescription glasses? EyewearCanada.com is your best choice!

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Shop for 2018 World Cup Football Boots Online sale at guthjcc.com

Browse best 2018 world cup soccer cleats and shoes from SoccerAzteca.com

Advertisement

Составные шаблоны

По традиции, программирование шаблонов в вашем приложении идёт следующим путём: Сначала вы формируете переменные внутри вашего приложения PHP (возможно, используя запросы к базе данных). Затем вы создаёте экземпляр объекта Smarty, назначаете переменные и отображаете шаблон. Давайте представим себе такую ситуацию: К примеру, у нас есть котировщик ценных бумаг в нашем шаблоне. Мы собираем данные о котировках ценных бумаг в нашем приложении, затем передаём эти переменные в шаблон и отображаем его. Правда, было бы здорово, если бы этот котировщик можно было перенести в другое приложение, просто подключив к нему шаблон, не беспокоясь об источнике данных.

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

Example 18.7. составной шаблон

function.load_ticker.php - поместите файл в директорию $plugins


<?php

// настраиваем нашу функцию для получения информации о ценных бумагах
function fetch_ticker($symbol)
{
   // здесь находится логика формирования $ticker_info
   // из какого-то источника
   return $ticker_info;
}

function smarty_function_load_ticker($params, &$smarty)
{
   // вызываем функцию
   $ticker_info = fetch_ticker($params['symbol']);

   // присваиваем переменную шаблона
   $smarty->assign($params['assign'], $ticker_info);
}
?>

   

index.tpl


{load_ticker symbol='SMARTY' assign='ticker'}

Stock Name: {$ticker.name} Stock Price: {$ticker.price}

   

См. также {include_php}, {include} и {php}.

Comments
No comments for this page.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 17 plus 10? (Are you human?)

Advertisement