Передать несколько переменных из Smarty в функцию PHP

1

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

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

{$order_id|@get_order_total}

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

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

handleDebit($order, $payCode, $insertId)

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

  • 1
    Вопрос. Почему вы вообще делаете это с помощью smarty и не имеете дела с этим в вашем контроллере (или что бы вы ни использовали)?
Теги:
smarty

1 ответ

1
Лучший ответ

Если вам действительно нужно вызвать функцию из шаблонов 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, и вы обрабатываете только результаты/элементы отображения в шаблоне.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню