* @link http://netmonsters.ru * @package Majestic * @subpackage app * @since 2010-03-07 * @version SVN: $Id$ * @filesource $URL$ */ class PagerAction extends Action { public $page; public $last_page; 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() { $this->last_page = ceil($this->count / $this->limit); if (Env::Get('p') == 'last') { $page = $this->last_page; } else { $page = (int) Env::Get('p'); } $this->page = ($page <= $this->last_page && $page > 0) ? $page : 1; $this->offset = $this->limit * ($this->page - 1); } 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; } }