<?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 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;
    }
}