robguy21
1/14/2016 - 6:40 PM

easy_pagination.php

<?php


trait Paginator {
  static function __paginatorInitialize($obj) {
    $obj->helper('render_pagination');
  }



  private function get_link_markup($num_url, $active = false) {
    $item_state = '<li class="blog-pagination__item ' . ($active ? 'active' : '') . '">';
    $link_url = '<a href="page' . $num_url . '">';
    $close_tags = $num_url . '</a></li>';

    return $item_state . $link_url . $close_tags;
  }

  public function render_pagination() {
    $total_pages = $this->total_pages;
    $current_page = $this->input->pageNum;
    $lower_limit = max(min(max($current_page - 2, 1), $total_pages  - 4), 1);
    $upper_limit = min($lower_limit + 4, $total_pages);
    $output = '';

    for ($pageNumber=$lower_limit; $pageNumber <= $upper_limit; $pageNumber++) {
      $output .= self::get_link_markup($pageNumber, $pageNumber == $current_page);
    }

    return $output;
  }
}