diff --git a/src/Controller/Action.php b/src/Controller/Action.php index 6e314e2..67b213a 100644 --- a/src/Controller/Action.php +++ b/src/Controller/Action.php @@ -372,4 +372,9 @@ class Controller_Action { $this->_getActionPath()->getPath($this, ($action) ? $action : $request->getAction()); } + + function redirect($action) { + header('location: ' . $this->fUrl($action)); + exit(); + } } diff --git a/src/Database.php b/src/Database.php index c4cd264..eb87479 100644 --- a/src/Database.php +++ b/src/Database.php @@ -1,6 +1,6 @@ -require_once "database/pdostatement.php"; +require_once "Database/PDOStatement.php"; /** * Класс оболочка для PDO для замены Creole */ diff --git a/src/Model/Factory.php b/src/Model/Factory.php new file mode 100644 index 0000000..82ec890 --- /dev/null +++ b/src/Model/Factory.php @@ -0,0 +1,33 @@ +db = $db; + $this->_registry = $_registry; + } + + /** + * Создает модель + * @param string $name + * @return model + */ + public function getModel ($name) + { + require_once (Shortcut::getUrl(self::$shortcut, strtolower($name))); + $modelName = $name . "Mapper"; + $model = new $modelName(); + $model->db = $this->db; + $model->factory = $this; + $model->_registry = $this->_registry; + $model->setUp(); + // + return $model; + } +} diff --git a/src/Validator/Rule/IsFile.php b/src/Validator/Rule/IsFile.php index c19cf12..64d5f97 100644 --- a/src/Validator/Rule/IsFile.php +++ b/src/Validator/Rule/IsFile.php @@ -3,7 +3,7 @@ /** * Проверка формата времени */ -class Validator_Rule_IsFile extends Rule_Abstract +class Validator_Rule_IsFile extends Validator_Rule_Abstract { private $type = array(); private $maxsize = 1024; diff --git a/src/Validator/Validator.php b/src/Validator/Validator.php index fe3ea2e..06b8213 100644 --- a/src/Validator/Validator.php +++ b/src/Validator/Validator.php @@ -68,7 +68,7 @@ class Validator_Validator } } - public function addRule(/*.any.*/&$rule) { + public function addRule(/*.any.*/$rule) { if (is_array($rule)) { $this->chain = array_merge($this->chain, $rule); } else { diff --git a/src/View/Pages.php b/src/View/Pages.php new file mode 100644 index 0000000..736a861 --- /dev/null +++ b/src/View/Pages.php @@ -0,0 +1,57 @@ + $n) $page = $n; + if ($page < 1) $page = 1; + $url = 'page='; + $result = array(); + for ($i = max($page - self::$range, 1); $i <= min($n, $page + self::$range); $i++) { + $result [] = array('page' => $i, 'href' => ($i != $page) ? self::href($prefix, $url . $i) : false); + } + return array( + 'all' => ($n > 1), + 'list' => $result, + 'first' => self::href($prefix, $url . 1), + 'last' => self::href($prefix, $url . $n), + 'next' => ($page == $n)? false : self::href($prefix, $url . ($page + 1)) , + 'prev' => ($page == 1)? false : self::href($prefix, $url . ($page - 1))); + } + + /** + * @deprecated + * @param $page int номер страницы + * @param $onpage int количество элем на странице + * @return string + */ + static function getLimit(/*.number.*/$page, /*.number.*/$onpage) { + if ($page <= 0) { $page = 1; } + return "LIMIT $onpage OFFSET " . ($page - 1) * $onpage; + } + + /** + * @param $page int номер страницы + * @param $onpage int количество элем на странице + * @return array + */ + static function _getLimit($page, $onpage) { + if ($page <= 0) { $page = 1; } + return array( + 'count' => $onpage, + 'start' => ($page - 1) * $onpage, + ); + } + + static function href($prefix, $x) { + return $prefix . $x; + } + +} +