CodeIgniter пользовательский помощник для разбивки на страницы

Я хотел создать свой собственный помощник в CodeIgniter, и я не знаю, что случилось. Я скопирую свой вспомогательный файл, и в другом файле я инициализирую этого помощника и попытаюсь повторить эхо, и ничего не появится.

 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

     if (!function_exists('pagination'))

{

    function prikazi($per_page, $page, $url, $total)
    {
        $CI =& get_instance();
           $adjacents = "2";


    $page = ($page == 0 ? 1 : $page); 
    $start = ($page - 1) * $per_page;                              

    $prev = $page - 1;                         
    $next = $page + 1;
    $lastpage = ceil($total/$per_page);
    $lpm1 = $lastpage - 1;

    $pagination = "";
    if($lastpage > 1)
    {  
       $pagination .= "
    "; $pagination .= "
  • Page $page of $lastpage
  • "; if ($lastpage < 7 + ($adjacents * 2)) { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "
  • $counter
  • "; else $pagination.= "
  • $counter
  • "; } } elseif($lastpage > 5 + ($adjacents * 2)) { if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "
  • $counter
  • "; else $pagination.= "
  • $counter
  • "; } $pagination.= "
  • ...
  • "; $pagination.= "
  • $lpm1
  • "; $pagination.= "
  • $lastpage
  • "; } elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "
  • 1
  • "; $pagination.= "
  • 2
  • "; $pagination.= "
  • ...
  • "; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "
  • $counter
  • "; else $pagination.= "
  • $counter
  • "; } $pagination.= "
  • ..
  • "; $pagination.= "
  • $lpm1
  • "; $pagination.= "
  • $lastpage
  • "; } else { $pagination.= "
  • 1
  • "; $pagination.= "
  • 2
  • "; $pagination.= "
  • ..
  • "; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "
  • $counter
  • "; else $pagination.= "
  • $counter
  • "; } } } if ($page < $counter - 1){ $pagination.= "
  • Next
  • "; //$pagination.= "
  • Last
  • "; }else{ //$pagination.= "
  • Next
  • "; //$pagination.= "
  • Last
  • "; } $pagination.= "
\n";     
    }          
        return $pagination;
    }
}

И в другом файле я пытаюсь повторить так:

  $this->load->helper('pagination');
    echo prikazi($bypage,$page,$link,$total); 
0
добавлено
Просмотры: 2
nl ja de
& bypage = 5, $ page = 1; if (isset ($ _ GET ['page']) && $ _GET ['page']! = '') {$ page = $ _ GET ['page']; }, $ link = "some string" и $ total = to mysqlnumrows, если это то, что вы имели в виду?
добавлено автор Djordje Rajic, источник
какие значения вы используете при вызове функции?
добавлено автор dmaij, источник

1 ответы

Когда вы смотрите на

$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;

$pagination = "";
if($lastpage > 1)
{  
...
} else
return $pagination;

это, вероятно, сводится к тому, что $ lastpage равно 0, поэтому возвращается пустая строка.

Вы можете взглянуть на

 if (!function_exists('pagination'))

{

function prikazi($per_page, $page, $url, $total)
{

тоже потому, что имена функций не совпадают

0
добавлено
Вы были правы, он возвращает пустую строку, но как ее исправить?
добавлено автор Djordje Rajic, источник
Это было, вы помогли поблагодарить вас, мне это не понравилось, у меня нет управления coplete, но спасибо :)
добавлено автор Djordje Rajic, источник
Я ожидаю, что сумма $ (которая представляет количество строк) равна 0. Может быть, странный вопрос, но почему вы не используете помощник для разбивки на страницы?
добавлено автор dmaij, источник
np, рад помочь.
добавлено автор dmaij, источник