Example #1
0
 public static function init($items, $per_page = 25, $key = 'pg')
 {
     // load the class properties
     self::$key = $key;
     self::$perpage = $per_page;
     self::$items = $items;
     self::$query = $_GET;
     self::$script_url = self::current_url();
     // determine what page we are on
     foreach (explode('/', self::$script_url) as $segment) {
         list($pg, $num) = explode(':', $segment);
         if ($pg == $key && (int) $num > 0) {
             self::$current = (int) $num;
             break;
         }
     }
     if (self::$current <= 0) {
         self::$current = 1;
     }
     // run the page calculations
     self::$pages = self::$items > 0 ? (int) ceil(self::$items / $per_page) : 1;
     self::$offset = (self::$current - 1) * $per_page;
     // redirect to the first page if the page no. is out of range
     if (self::$current > self::$pages || self::$current < 1) {
         die(self::get_url(1));
         self::redirect(self::get_url(1));
     }
     // load the config file if present
     if (file_exists(APPPATH . 'config/pagination' . EXT)) {
         include APPPATH . 'config/pagination' . EXT;
         # enclosing markup
         if (isset($config['full_tag_open'])) {
             self::$full_tag_open = $config['full_tag_open'];
         }
         if (isset($config['full_tag_close'])) {
             self::$full_tag_close = $config['full_tag_close'];
         }
         # first link
         if (isset($config['first_link'])) {
             self::$first_link = $config['first_link'];
         }
         if (isset($config['first_tag_open'])) {
             self::$first_tag_open = $config['first_tag_open'];
         }
         if (isset($config['first_tag_close'])) {
             self::$first_tag_close = $config['first_tag_close'];
         }
         # last link
         if (isset($config['last_link'])) {
             self::$last_link = $config['last_link'];
         }
         if (isset($config['last_tag_open'])) {
             self::$last_tag_open = $config['last_tag_open'];
         }
         if (isset($config['last_tag_close'])) {
             self::$last_tag_close = $config['last_tag_close'];
         }
         # next link
         if (isset($config['next_link'])) {
             self::$next_link = $config['next_link'];
         }
         if (isset($config['next_tag_open'])) {
             self::$next_tag_open = $config['next_tag_open'];
         }
         if (isset($config['next_tag_close'])) {
             self::$next_tag_close = $config['next_tag_close'];
         }
         # previous link
         if (isset($config['prev_link'])) {
             self::$prev_link = $config['prev_link'];
         }
         if (isset($config['prev_tag_open'])) {
             self::$prev_tag_open = $config['prev_tag_open'];
         }
         if (isset($config['prev_tag_close'])) {
             self::$prev_tag_close = $config['prev_tag_close'];
         }
         # current page
         if (isset($config['cur_tag_open'])) {
             self::$cur_tag_open = $config['cur_tag_open'];
         }
         if (isset($config['cur_tag_close'])) {
             self::$cur_tag_close = $config['cur_tag_close'];
         }
         # digit link
         if (isset($config['num_tag_open'])) {
             self::$num_tag_open = $config['num_tag_open'];
         }
         if (isset($config['num_tag_close'])) {
             self::$num_tag_close = $config['num_tag_close'];
         }
     }
 }