Подскажите как передать данные из php скрипта в шаблон smarty, к примеру есть скрипт
test.php
<?php
//...
// Берём данные из базы и обрабатываем их
// ...
// На выходе получаем массив $array с данными
?>
и шаблон product.tpl в котором выводим что-то подобное
Привет {$array["0"]["firstname"]}
Официальную документацию по смарти читал и ничего не понял, мозг уже кипит, хелп.
Take a look here:
Для просмотра ссылки Войди или Зарегистрируйся
Smarty is a PHP template engine for PHP, which facilitates the separation of presentation (XHTML/CSS) from the PrestaShop's core functions/controllers.
A template file (usually with a .tpl extension in PrestaShop) is always called by a PHP controller file (it can be a Front-end core controller or a module controller).
Example: /prestashop/controllers/front/ContactController.php
$this->context->smarty->assign(array(
'contacts' => Contact::getContacts($this->context->language->id),
'message' => html_entity_decode(Tools::getValue('message'))
));
$this->setTemplate(_PS_THEME_DIR_.'contact-form.tpl');
We can see that this file is retrieving information from the database and assigning it to Smarty.
Then, the 'contact-form.tpl' template will display it to the visitors.
The syntax is pretty similar for modules, example:/prestashop/modules/blocklink/blocklink.php
public function hookLeftColumn($params)
{
$this->smarty->assign('blocklink_links', $this->getLinks());
return $this->display(__FILE__, 'blocklink.tpl');
}
Also, to store values in Smarty variables, you can use the 'assign' function in two ways:
- $this->context->smarty->assign('my_smarty_variable_name', $my_value);
or if you have several variables:
- $this->context->smarty->assign(array('my_smarty_variable_name1' => $my_value1), ('my_smarty_variable_name2' => $my_value2));
And then in the Smarty template:
The value of my variable is {$my_smarty_variable_name|escape:'htmlall':'UTF-8'}.
The 'escape' modifier is used to avoid XSS security issues.