У нас есть магазин, работающий с Smarty. Мне нужно передать некоторые переменные Smarty функции PHP и получить возврат.
То, что я знаю, а также сделал до сих пор, следующее:
{$order_id|@get_order_total}
Таким образом, это передает переменную Smarty " $order_id
" в включенный PHP файл, который содержит функцию get_order_total($order_id)
и показывает мне возврат этой функции.
Теперь мне нужно передать 3 переменные функции PHP. Функция, например, будет выглядеть так:
handleDebit($order, $payCode, $insertId)
К сожалению, я до сих пор не нашел правильной вещи в умной документации. Кто-нибудь когда-либо делал это?
Если вам действительно нужно вызвать функцию из шаблонов smarty, зарегистрируйте функцию-оболочку как smarty-plugin:
<?php
$smarty->registerPlugin("function","handleDebit", "handleDebitSmarty");
function handleDebitSmarty($params, $smarty)
{
return handleDebit($params['order'], $params['payCode'], $params['insertId']);
}
Теперь вы можете использовать его как ярлык:
{handleDebit order=$blah payCode=$blub insertId=$yeahh}
Но вы должны подумать о совете @JonSterling и попытаться найти способ, чтобы контроллер выполнял handleDebit
-call, и вы обрабатываете только результаты/элементы отображения в шаблоне.