2015-11-18 2 views
1

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

То, что я знаю, и также сделал до сих пор является следующее:

{$order_id|@get_order_total} 

Так это проходит Smarty переменной «$order_id» к включенным PHP-файл, который содержит функцию get_order_total($order_id) и показывает мне возвращение этой функции ,

Теперь мне нужно передать 3 переменные функции PHP. Эта функция будет выглядеть примерно так:

handleDebit($order, $payCode, $insertId) 

К сожалению, я до сих пор не нашел правильной вещи в документах по умению. Кто-нибудь когда-либо делал это?

+1

Вопрос. Почему вы делаете это от smarty вообще и не имеете дело с ним в своем контроллере (или что вы используете)? –

ответ

1

Если вам действительно нужно вызвать функцию из шаблонов Smarty, зарегистрировать функцию-обертку, как Smarty-плагин:

<?php 
$smarty->registerPlugin("function","handleDebit", "handleDebitSmarty"); 

function handleDebitSmarty($params, $smarty) 
{ 
    return handleDebit($params['order'], $params['payCode'], $params['insertId']); 
} 

Теперь вы можете использовать его как Smarty тег:

{handleDebit order=$blah payCode=$blub insertId=$yeahh} 

Но вы должны подумать о совете @JonSterling и попытаться найти способ, чтобы контроллер делал handleDebit -call, и вы обрабатываете только результат/отображение материала в шаблоне.