Memcache, refactoring, View helpers, #16
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/branches/evo@124 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
This commit is contained in:
66
app/PagerAction.php
Normal file
66
app/PagerAction.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright NetMonsters <team@netmonsters.ru>
|
||||
* @link http://netmonsters.ru
|
||||
* @package Majestic
|
||||
* @subpackage app
|
||||
* @since 2010-03-07
|
||||
* @version SVN: $Id$
|
||||
* @filesource $URL$
|
||||
*/
|
||||
|
||||
class PagerAction extends ViewAction
|
||||
{
|
||||
public $page;
|
||||
public $last_page;
|
||||
|
||||
//protected $num_rows;
|
||||
|
||||
protected $offset = 0;
|
||||
protected $count = 0;
|
||||
protected $limit;
|
||||
|
||||
public function __construct($count, $limit = 20)
|
||||
{
|
||||
$this->count = $count;
|
||||
$this->limit = $limit;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
protected function execute()
|
||||
{
|
||||
$page = (int) Env::Get('p');
|
||||
$this->last_page = ceil($this->count/$this->limit);
|
||||
$this->page = ($page <= $this->last_page && $page > 0) ? $page : 1;
|
||||
$this->offset = $this->limit * ($this->page - 1);
|
||||
//$this->num_rows = ($this->limit + $this->offset) <= $this->count ? ($this->limit + $this->offset) : $this->count;
|
||||
}
|
||||
|
||||
public function getOffset()
|
||||
{
|
||||
return $this->offset;
|
||||
}
|
||||
|
||||
public function getLimit()
|
||||
{
|
||||
return $this->limit;
|
||||
}
|
||||
|
||||
protected function getTemplate()
|
||||
{
|
||||
$template = ($this->template) ? $this->template : substr(get_class($this), 0, -6/*strlen('Action')*/);
|
||||
return '/actions/' . $template;
|
||||
}
|
||||
|
||||
|
||||
/* public function setNumRows($num_rows)
|
||||
{
|
||||
$this->num_rows = $num_rows;
|
||||
}
|
||||
*/
|
||||
/*function prepare()
|
||||
{
|
||||
$this->templater->assign('page', $this->page);
|
||||
$this->templater->assign('page_max', $this->max_page_num);
|
||||
}*/
|
||||
}
|
Reference in New Issue
Block a user