ViewAction functional merged to Action, Model::inset now returns last insert id if returned or affected rows count, #16

git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/branches/evo@125 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
This commit is contained in:
pzinovkin
2010-03-14 12:12:17 +00:00
parent 8fc917dca2
commit d0630c4240
9 changed files with 32 additions and 52 deletions

View File

@ -12,8 +12,16 @@
abstract class Action abstract class Action
{ {
protected $template;
/**
* @var PHPView
*/
protected $view;
public function __construct() public function __construct()
{ {
$this->view = FrontController::getInstance()->getView();
$this->extractParams(); $this->extractParams();
$this->execute(); $this->execute();
} }
@ -45,4 +53,18 @@ abstract class Action
header('Location: ' . $url); header('Location: ' . $url);
exit(); exit();
} }
protected function getTemplate()
{
$class = get_class($this);
$template = ($this->template) ? $this->template : substr($class, 0, -6/*strlen('Action')*/);
$dir = array_slice(explode('/', Load::getFilePath($class)), -2, 1);
return '/actions/' . array_pop($dir) . '/' . $template;
}
public function fetch()
{
$this->view->assignObject($this);
return $this->view->fetch($this->getTemplate());
}
} }

View File

@ -9,7 +9,7 @@
* @filesource $URL$ * @filesource $URL$
*/ */
class ErrorAction extends ViewAction class ErrorAction extends Action
{ {
/** /**

View File

@ -9,13 +9,10 @@
* @filesource $URL$ * @filesource $URL$
*/ */
class PagerAction extends ViewAction class PagerAction extends Action
{ {
public $page; public $page;
public $last_page; public $last_page;
//protected $num_rows;
protected $offset = 0; protected $offset = 0;
protected $count = 0; protected $count = 0;
protected $limit; protected $limit;
@ -33,7 +30,6 @@ class PagerAction extends ViewAction
$this->last_page = ceil($this->count/$this->limit); $this->last_page = ceil($this->count/$this->limit);
$this->page = ($page <= $this->last_page && $page > 0) ? $page : 1; $this->page = ($page <= $this->last_page && $page > 0) ? $page : 1;
$this->offset = $this->limit * ($this->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() public function getOffset()
@ -51,16 +47,4 @@ class PagerAction extends ViewAction
$template = ($this->template) ? $this->template : substr(get_class($this), 0, -6/*strlen('Action')*/); $template = ($this->template) ? $this->template : substr(get_class($this), 0, -6/*strlen('Action')*/);
return '/actions/' . $template; 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);
}*/
} }

View File

@ -9,7 +9,7 @@
* @filesource $URL$ * @filesource $URL$
*/ */
abstract class StaticViewAction extends ViewAction abstract class StaticAction extends Action
{ {
protected function getTemplate() protected function getTemplate()

View File

@ -9,33 +9,7 @@
* @filesource $URL$ * @filesource $URL$
*/ */
abstract class ViewAction extends Action abstract class Action extends Action
{ {
protected $template;
/**
* @var PHPView
*/
protected $view;
public function __construct()
{
$this->view = FrontController::getInstance()->getView();
parent::__construct();
}
protected function getTemplate()
{
$class = get_class($this);
$template = ($this->template) ? $this->template : substr($class, 0, -6/*strlen('Action')*/);
$dir = array_slice(explode('/', Load::getFilePath($class)), -2, 1);
return '/actions/' . array_pop($dir) . '/' . $template;
}
public function fetch()
{
$this->view->assignObject($this);
return $this->view->fetch($this->getTemplate());
}
} }

View File

@ -82,7 +82,7 @@ class MemcacheCache extends Cache
*/ */
public function del($key) public function del($key)
{ {
return $this->connection->delete($this->getKey($key)); return $this->connection->delete($this->getKey($key), 0);
} }
/** /**

View File

@ -26,7 +26,7 @@ abstract class Layout
/** /**
* @param string $name * @param string $name
* @param ViewAction $action * @param Action $action
*/ */
protected function assign($name, $action) protected function assign($name, $action)
{ {
@ -36,7 +36,7 @@ abstract class Layout
abstract protected function execute(); abstract protected function execute();
/** /**
* @param ViewAction $action * @param Action $action
*/ */
public function fetch($action) public function fetch($action)
{ {

View File

@ -97,10 +97,10 @@ abstract class Model implements iCacheable
*/ */
public function insert($data, $on_duplicate = array()) public function insert($data, $on_duplicate = array())
{ {
if (!$res = $this->db->insert($this->table(false), $data, $on_duplicate)) { if (!$affected = $this->db->insert($this->table(false), $data, $on_duplicate)) {
return false; return false;
} }
return ($on_duplicate) ? $res : $this->getInsertId(); return ($this->getInsertId()) ? $this->getInsertId() : $affected;
} }
/** /**

View File

@ -40,7 +40,7 @@ class PHPView implements iView
} }
/** /**
* @param ViewAction $object * @param Action $object
*/ */
public function assignObject($object) public function assignObject($object)
{ {