Как передать переменную Smarty в функцию PHP?

Это не повторяющийся вопрос, я не мог решить свою проблему, используя ответы из других тем, кроме того, у меня другая проблема.

Я пытаюсь напечатать URL с добавленным параметром, используя PHP в функции плагина Smarty. Я использую ПО WHMCS.

Ниже приведен пример кода моей функции:

<?php 
/* 
 * Smarty plugin 
 * ------------------------------------------------------------- 
 * File:     function.aff.php 
 * Type:     function 
 * Name:     aff 
 * Purpose:  outputs a random magic answer 
 * ------------------------------------------------------------- 
 */ 
function smarty_function_aff($params, &$smarty) 
    { 
           $affiliateid = $params['affiliateid']; 
           $refflink = 'http://example.com/aff.php?aff=' . $affiliateid .''; 

           print $refflink; 
    } 
?>

В файле шаблона я использую {aff} который должен печатать весь URL, включая добавленный параметр, однако он печатает URL следующим образом: http://example.com/aff.php?aff= как будто $affiliateid переменная не существует.

Теперь, если я использовал следующее ($affiliateid} непосредственно в файле шаблона, он выведет ID партнера пользователя. Но мне нужно использовать его в функции PHP выше. Написание этого прямо в PHP как $affiliateid не похоже на работу.

Что мне здесь не хватает? Любые предложения, пожалуйста? Спасибо.

1 ответ

Решение

Вы можете использовать свою функцию следующим образом:

{aff affiliateid=$affiliateid}

Смотрите эту ссылку для получения дополнительной информации: http://www.smarty.net/docsv2/en/plugins.functions.tpl

Говорится:

Все атрибуты, передаваемые шаблонным функциям из шаблона, содержатся в $params в виде ассоциативного массива.

атрибут ( http://www.smarty.net/docsv2/en/language.syntax.attributes.tpl) является affiliateid=$affiliateid часть в моей строке кода выше.

Другие вопросы по тегам