Example #1
0
 * @link      http://www.opensource-socialnetwork.org/licence
 */
$pages = range(1, $params['total']);
//unset non-required vars
unset($_GET['h']);
unset($_GET['p']);
unset($_GET['offset']);
$args_url = OssnPagination::constructUrlArgs();
//if there is only one page don't show pagination
if (count($pages) !== 1) {
    $spilt = array_chunk($pages, 4);
    $spilt = arraySerialize($spilt);
    foreach ($spilt as $page) {
        $serialized_pages[] = arraySerialize($page);
    }
    $serialized_pages = arraySerialize($serialized_pages);
    //get key by offset
    $key = ossn_recursive_array_search($params['offset'], $serialized_pages);
    $new_total = count($serialized_pages);
    //get last page
    $last = array_reverse($serialized_pages[$new_total]);
    $last = $last[0];
    //get first page
    $first = $serialized_pages[1][1];
    if (isset($serialized_pages[$key])) {
        if (isset($serialized_pages[$key + 1]) && isset($serialized_pages[$key - 1])) {
            $pages = array_merge($serialized_pages[$key - 1], $serialized_pages[$key], $serialized_pages[$key + 1]);
        }
        if (!isset($serialized_pages[$key + 1]) && $key > 1) {
            $pages = array_merge($serialized_pages[$key - 1], $serialized_pages[$key]);
        }
 /**
  * Output pagination bar;
  *
  * @return html;
  */
 public function pagination()
 {
     if (!isset($this->setItem)) {
         return false;
     }
     $item = $this->setItem;
     if (is_array($item)) {
         $newitem = array_chunk($item, $this->ppage);
         $newitem_total = count($newitem);
         $pages = arraySerialize($newitem);
         $offset = (int) input('offset');
         if (!array_key_exists($offset, $pages)) {
             $view = 1;
         } elseif (array_key_exists($offset, $pages)) {
             $view = $offset;
         }
         $params['offset'] = $view;
         $params['total'] = $newitem_total;
         return $this->view($params);
     }
 }