如何将 Smarty 变量传递给 PHP 函数?
How to pass Smarty variable to PHP function?
这不是一个重复的问题,我无法使用其他线程的答案解决我的问题,而且我的问题是不同的。
我正在尝试在 Smarty 插件函数中使用 PHP 打印带有附加参数的 URL。我用的软件是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 as $affiliateid
好像不行。
我在这里缺少什么?有什么建议吗?谢谢。
您可以这样使用您的函数:
{aff affiliateid=$affiliateid}
有关详细信息,请参阅此 link:http://www.smarty.net/docsv2/en/plugins.functions.tpl
它指出:
All attributes passed to template functions from the template are contained in the $params as an associative array.
属性 (http://www.smarty.net/docsv2/en/language.syntax.attributes.tpl) 是我上面代码行中的 affiliateid=$affiliateid
部分。
这不是一个重复的问题,我无法使用其他线程的答案解决我的问题,而且我的问题是不同的。
我正在尝试在 Smarty 插件函数中使用 PHP 打印带有附加参数的 URL。我用的软件是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 as $affiliateid
好像不行。
我在这里缺少什么?有什么建议吗?谢谢。
您可以这样使用您的函数:
{aff affiliateid=$affiliateid}
有关详细信息,请参阅此 link:http://www.smarty.net/docsv2/en/plugins.functions.tpl
它指出:
All attributes passed to template functions from the template are contained in the $params as an associative array.
属性 (http://www.smarty.net/docsv2/en/language.syntax.attributes.tpl) 是我上面代码行中的 affiliateid=$affiliateid
部分。