我有一个来自smarty模板的以下代码段:
<div class="pagination">
{pagination_link_01 values=$pagination_links}
</div>
以下是功能正文:
<?php
function smarty_function_pagination_link_01($params, &$smarty)
{
if ( !is_array($params['values']) )
{
return "is not array";
}
if ( 0 == count($params['values']) )
{
return "Empty Array";
}
if ( empty($params['values']['current_page']) )
{
return "Invalid Request";
}
$values = $params['values'];
//Seperator Used Betwinn Pagination Links
$seprator = empty( $params['seperator'] ) ? " " : $params['seperator'];
//Class Name For Links
$extra = empty( $params['extra'] ) ? "" : $params['extra'];
$current_page = (int)$values['current_page'];
if ( !empty($values['first']) )
{
//$ret[] = "<a $extra href='{$values['first']}' ><First</a>";
}
if ( !empty($values['previous'] ) )
{
$ret[] = "<a $extra href='{$values['previous']}' class='prev active'><span></span></a>";
}
$ret[] = "<ul>";
foreach( $values as $k => $v )
{
if( is_numeric( $k ) )
{
if ( $k == $current_page)
{
$ret[] = "<li><a $extra class='active'>$k</a></li>";
}
else
{
$ret[] = "<li><a $extra href='$v'>$k </a></li>";
}
}
}
if ( !empty($values['next'] ) )
{
$ret[] = "</ul><a $extra href='{$values['next']}' class='next active'><span></span></a>";
}
if ( !empty($values['last'] ) )
{
//$ret[] = "<a $extra href='{$values['last']}' >Last></a>";
}
//$str_ret = $first . $previous . $str_ret . $next . $last;
if ( $ret )
{
return implode( $seprator, $ret );
}
}
?>
如果我打印$params
我通过数组$pagination_links
得到了我传递的值。类似地,我想在上面的函数调用中再添加一个名为$total_pages
的参数,并在函数体中使用它。我尝试了很多方法,但不可能发生。任何人都可以请这方面指导我。提前谢谢。
答案 0 :(得分:2)
你这样称呼它,其中$ pages是你要传递的变量:
<div class="pagination">
{pagination_link_01 values=$pagination_links total_pages=$pages}
</div>
然后在函数
中if isset($params['total_pages'])
{
... do something with $params['total_pages']...
}
答案 1 :(得分:0)
你没有发布很多代码,但是你不能把它传递给函数吗?
使用您的变量调用您的函数。 smarty_function_pagination_link_01($params,&$smarty, $total_pages);
e.g.
function smarty_function_pagination_link_01($params, &$smarty, $total_pages)
{