/** * Setup adapter * * @param Jelly_Builder $source * @param array $config pagination config */ public function __construct(Jelly_Builder $source, array $config = null) { $this->_target = new Pagination(); $this->_source = $source; //merge config $this->_config += $this->_target->config_group(); //merge config if ($config) { $this->_config += $config; } $order_how = isset($this->_config['current_order']) ? Request::current()->query($this->_config['current_order']['key']) : 'DESC'; $this->_direct = $order_how == 'DESC' ? 'ASC' : 'DESC'; $this->_limit = isset($this->_config['current_limit']) ? Request::current()->query($this->_config['current_limit']['key']) ? Request::current()->query($this->_config['current_limit']['key']) : 10 : 10; $this->_sort_column = Request::current()->query($this->_config['current_sort']['key']); $this->_target->setup(array('total_items' => $source->select()->count(), 'items_per_page' => $this->_limit)); if (!is_null($this->_sort_column)) { $this->_source->order_by($this->_sort_column, $order_how); } // Get the current route name $current_route = Route::name(Request::initial()->route()); //Current route $this->_route = Route::get($current_route); }
public function select($db = NULL) { /*$db = $this->_db($db); $cache_key = sha1($this->compile(Database::instance($db))); if(!$result = Kohana::cache($cache_key)) { $result = parent::select($db); if(Kohana::$caching) { Kohana::cache($cache_key, $result); } } return $result;*/ return parent::select($db); }