2

Я следующий фрагмент кода из Smarty шаблона:Как передать несколько аргументов функции 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']) ? "&nbsp;&nbsp;" : $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']}' >&lt;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&gt;</a>"; 
    } 

    //$str_ret = $first . $previous . $str_ret . $next . $last; 
    if ($ret) 
    { 
     return implode($seprator, $ret); 
    } 
} 
?> 

Если я печатаю $params я получаю значения я переданные с помощью массив $pagination_links. Аналогично, я хочу добавить еще один аргумент с именем $total_pages к вышеуказанному вызову функции и использовать его в теле функции. Я пробовал много способов, но этого не могло быть. Может ли кто-нибудь, пожалуйста, направить меня в этом отношении, пожалуйста. Заранее спасибо.

ответ

0

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

вызов вашей функции с помощью переменной. smarty_function_pagination_link_01($params,&$smarty, $total_pages);

e.g. 

function smarty_function_pagination_link_01($params, &$smarty, $total_pages) 
{ 
2

Вы называете это, как это, где $ страниц переменная вы хотите передать:

<div class="pagination"> 
    {pagination_link_01 values=$pagination_links total_pages=$pages} 
</div> 

, а затем в функции

if isset($params['total_pages']) 
{ 
... do something with $params['total_pages']... 
} 
Смежные вопросы