Добавил namespace и зависимости
This commit is contained in:
parent
e9f7c23990
commit
32ec09a66a
92 changed files with 454 additions and 128 deletions
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class Arr {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace ctiso;
|
||||
/**
|
||||
* Коллекция
|
||||
*
|
||||
*/
|
||||
class Collection implements ArrayAccess
|
||||
class Collection implements \ArrayAccess
|
||||
{
|
||||
/**
|
||||
* Holds collective request data
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class Connection_HttpRequest
|
||||
namespace ctiso\Connection;
|
||||
use ctiso\File;
|
||||
|
||||
class HttpRequest
|
||||
{
|
||||
const POST = "POST";
|
||||
const GET = "GET";
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
/**
|
||||
* Обрабатывает HTTP ответ
|
||||
*/
|
||||
class Connection_HttpResponse
|
||||
namespace ctiso\Connection;
|
||||
|
||||
class HttpResponse
|
||||
{
|
||||
private $offset;
|
||||
private $param = array ();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso\Controller;
|
||||
use ctiso\Shortcut,
|
||||
Exception,
|
||||
ctiso\Path,
|
||||
ctiso\View\View,
|
||||
ctiso\Model\Factory,
|
||||
ctiso\HttpRequest,
|
||||
ctiso\Functions,
|
||||
ctiso\Settings,
|
||||
ctiso\Controller\State;
|
||||
|
||||
function forceUrl($name)
|
||||
{
|
||||
if (is_callable($name)) {
|
||||
|
|
@ -11,7 +22,7 @@ function forceUrl($name)
|
|||
/**
|
||||
* Контроллер страниц
|
||||
*/
|
||||
class Controller_Action
|
||||
class Action
|
||||
{
|
||||
|
||||
const TEMPLATE_EXTENSION = ".html"; // Расширение для шаблонов
|
||||
|
|
@ -78,7 +89,7 @@ class Controller_Action
|
|||
return Path::join(CMS_PATH, "modules", $name);
|
||||
}
|
||||
|
||||
public function addSuggest(View_View $view, $name)
|
||||
public function addSuggest(View $view, $name)
|
||||
{
|
||||
$suggest = array();
|
||||
$file = Path::join($this->viewPath, 'help', $name . '.suggest');
|
||||
|
|
@ -141,7 +152,7 @@ class Controller_Action
|
|||
public function getModel($name)
|
||||
{
|
||||
if (!$this->factory) {
|
||||
$this->factory = new Model_Factory($this->db, $this->_registry);
|
||||
$this->factory = new Factory($this->db, $this->_registry);
|
||||
}
|
||||
return $this->factory->getModel($name);
|
||||
}
|
||||
|
|
@ -364,7 +375,7 @@ class Controller_Action
|
|||
|
||||
function _getActionPath()
|
||||
{
|
||||
return new Controller_State('index');
|
||||
return new State('index');
|
||||
}
|
||||
|
||||
// Тоже убрать в метод Controller_Model
|
||||
|
|
|
|||
|
|
@ -1,5 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso\Controller;
|
||||
use ctiso\HttpRequest,
|
||||
ctiso\Arr,
|
||||
ctiso\Path,
|
||||
PHPTAL,
|
||||
PHPTAL_PreFilter_Normalize,
|
||||
ctiso\File,
|
||||
ctiso\Form\Form,
|
||||
ctiso\Form\OptionFactory,
|
||||
ctiso\Database,
|
||||
ctiso\Collection,
|
||||
ctiso\Controller\Site;
|
||||
|
||||
function replaceContent($match) {
|
||||
$result = phptal_component(htmlspecialchars_decode($match[3]));
|
||||
return $result;
|
||||
|
|
@ -58,7 +71,7 @@ class FakeTemplate {
|
|||
/**
|
||||
* Класс компонента
|
||||
*/
|
||||
class Controller_Component
|
||||
class Component
|
||||
{
|
||||
public $viewPath = array();
|
||||
public $webPath = array();
|
||||
|
|
@ -210,8 +223,8 @@ class Controller_Component
|
|||
*/
|
||||
public function setParameters(/*.View_Composite.*/$view)
|
||||
{
|
||||
$form = new Form_Form();
|
||||
$options = new Form_OptionFactory($this->db, $this->registry);
|
||||
$form = new Form();
|
||||
$options = new OptionFactory($this->db, $this->registry);
|
||||
|
||||
$settings = $this->getInfo();
|
||||
$form->addFieldList($settings['parameter'], $options);
|
||||
|
|
@ -301,7 +314,7 @@ class Controller_Component
|
|||
$editor = $component->getEditUrl();
|
||||
if ($editor) {
|
||||
if(class_exists("Controller_Site")) { //Если мы в CMS2
|
||||
$instance = Controller_Site::getInstance();
|
||||
$instance = Site::getInstance();
|
||||
$instance->componentsConfig[] = $editor;
|
||||
} else {
|
||||
global $componentsConfig;
|
||||
|
|
@ -356,7 +369,7 @@ class Controller_Component
|
|||
*/
|
||||
|
||||
function addRequireJsPath($name, $path, $shim = null) {
|
||||
Controller_Site::addRequireJsPath($name, $path, $shim);
|
||||
Site::addRequireJsPath($name, $path, $shim);
|
||||
}
|
||||
|
||||
function actionIndex(/*.ComponentRequest.*/ $request) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,15 @@
|
|||
* Первичный контроллер контроллер страниц
|
||||
* @package system.controller
|
||||
*/
|
||||
class Controller_Front extends Controller_Action
|
||||
namespace ctiso\Controller;
|
||||
use ctiso\Controller\Action,
|
||||
ctiso\Settings,
|
||||
ctiso\Database,
|
||||
ctiso\Collection,
|
||||
ctiso\Shortcut,
|
||||
ctiso\HttpRequest;
|
||||
|
||||
class Front extends Action
|
||||
{
|
||||
|
||||
/** @var Shortcut */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
<?php
|
||||
|
||||
class Controller_Installer
|
||||
namespace ctiso\Controller;
|
||||
use ctiso\Settings,
|
||||
ctiso\Path,
|
||||
ctiso\Database\JsonInstall;
|
||||
|
||||
class Installer
|
||||
{
|
||||
protected $db_manager;
|
||||
protected $installPath;
|
||||
|
|
@ -44,7 +49,7 @@ class Controller_Installer
|
|||
function installSQL(array $sql, $version_new, $version_old, $name)
|
||||
{
|
||||
$result = [];
|
||||
$json_installer = new Database_JsonInstall($this->db_manager);
|
||||
$json_installer = new JsonInstall($this->db_manager);
|
||||
foreach ($sql as $version => $install) {
|
||||
if (version_compare($version, $version_new, "<=") && version_compare($version, $version_old, ">")) {
|
||||
$file = Path::join(call_user_func($this->installPath, $name), "sql", $install);
|
||||
|
|
@ -58,7 +63,7 @@ class Controller_Installer
|
|||
function uninstall($name){
|
||||
$uninstall = $this->getUninstallFile($name);
|
||||
if (file_exists($uninstall)) {
|
||||
$json_installer = new Database_JsonInstall($this->db_manager);
|
||||
$json_installer = new JsonInstall($this->db_manager);
|
||||
$json_installer->install($uninstall,null);
|
||||
}
|
||||
$this->_registry->removeKey($name);
|
||||
|
|
@ -108,7 +113,7 @@ class Controller_Installer
|
|||
}
|
||||
|
||||
function install($dbinit_path, $dbfill_path = null) {
|
||||
$json_installer = new Database_JsonInstall($this->db_manager);
|
||||
$json_installer = new JsonInstall($this->db_manager);
|
||||
$json_installer->install($dbinit_path, $dbfill_path);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Controller_Request {
|
||||
namespace ctiso\Controller;
|
||||
|
||||
class Request {
|
||||
public $r;
|
||||
public $id;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
/**
|
||||
* Класс сервиса = Упрощенный компонент
|
||||
*/
|
||||
class Controller_Service
|
||||
namespace ctiso\Controller;
|
||||
use ctiso\Path;
|
||||
|
||||
class Service
|
||||
{
|
||||
public $viewPath = [];
|
||||
public $webPath = [];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class Controller_State
|
||||
namespace ctiso\Controller;
|
||||
use ctiso\Controller\Action;
|
||||
|
||||
class State
|
||||
{
|
||||
public $action = '';
|
||||
public $states = array();
|
||||
|
|
@ -13,7 +16,7 @@ class Controller_State
|
|||
|
||||
static function make($action)
|
||||
{
|
||||
return new Controller_State($action);
|
||||
return new State($action);
|
||||
}
|
||||
|
||||
public function addTitle($name, $url = array())
|
||||
|
|
@ -22,7 +25,7 @@ class Controller_State
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function addState(Controller_State $state)
|
||||
public function addState(State $state)
|
||||
{
|
||||
$this->states [$state->getAction()] = $state;
|
||||
return $this;
|
||||
|
|
@ -49,7 +52,7 @@ class Controller_State
|
|||
return false;
|
||||
}
|
||||
|
||||
function makeTitle(Controller_Action $module)
|
||||
function makeTitle(Action $module)
|
||||
{
|
||||
foreach ($this->titles as $item) {
|
||||
$module->path->addMenuItem($module->nUrl($this->action, $item[1]), $item[0]);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
<?php
|
||||
///<reference path="Database/PDOStatement.php" />
|
||||
|
||||
namespace ctiso;
|
||||
use PDO,
|
||||
ctiso\Database\Statement,
|
||||
ctiso\Database\IdGenerator;
|
||||
|
||||
/**
|
||||
* Класс оболочка для PDO для замены Creole
|
||||
|
|
@ -64,7 +68,7 @@ class Database extends PDO
|
|||
|
||||
public function prepareStatement($query)
|
||||
{
|
||||
return new Database_Statement($query, $this);
|
||||
return new Statement($query, $this);
|
||||
}
|
||||
|
||||
// Для совместимости со старым представлением баз данных CIS
|
||||
|
|
@ -161,7 +165,7 @@ class Database extends PDO
|
|||
}
|
||||
|
||||
function getIdGenerator() {
|
||||
return new Database_IdGenerator($this);
|
||||
return new IdGenerator($this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class Database_IdGenerator {
|
||||
namespace ctiso\Database;
|
||||
use ctiso\Database;
|
||||
|
||||
class IdGenerator {
|
||||
private $db;
|
||||
|
||||
function __construct(Database $db) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
<?php
|
||||
//Действия с базой данных согласно json файлу.
|
||||
|
||||
class Database_JsonInstall {
|
||||
namespace ctiso\Database;
|
||||
use ctiso\Database\Manager;
|
||||
|
||||
class JsonInstall {
|
||||
public $db_manager;
|
||||
public $serialColumns;
|
||||
|
||||
public function __construct(Database_Manager $db_manager) {
|
||||
public function __construct(Manager $db_manager) {
|
||||
$this->db_manager = $db_manager;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
<?php
|
||||
|
||||
class Database_Manager
|
||||
namespace ctiso\Database;
|
||||
use ctiso\Database,
|
||||
ctiso\Tools\SQLStatementExtractor,
|
||||
ctiso\Path,
|
||||
Exception;
|
||||
|
||||
class Manager
|
||||
{
|
||||
public /*.Database.*/$db;
|
||||
|
||||
|
|
@ -36,7 +42,7 @@ class Database_Manager
|
|||
$file = $action["source"];
|
||||
}
|
||||
|
||||
$stmtList = Tools_SQLStatementExtractor::extractFile(Path::join(dirname($db_file), $file));
|
||||
$stmtList = SQLStatementExtractor::extractFile(Path::join(dirname($db_file), $file));
|
||||
foreach($stmtList as $stmt) {
|
||||
$this->db->executeQuery($stmt);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace ctiso\Database\PDOStatement;
|
||||
use ctiso\\PDOStatement,
|
||||
ctiso\StatementIterator,
|
||||
PDO;
|
||||
use ctiso\Database\StatementIterator;
|
||||
|
||||
class PDOStatement extends \PDOStatement implements \IteratorAggregate
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
/**
|
||||
* Класс оболочка для PDOStatement для замены Creole
|
||||
*/
|
||||
class Database_Statement
|
||||
namespace ctiso\Database;
|
||||
use PDO;
|
||||
|
||||
class Statement
|
||||
{
|
||||
protected $limit = null;
|
||||
protected $offset = null;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class Database_StatementIterator implements Iterator
|
||||
namespace ctiso\Database;
|
||||
use PDO;
|
||||
|
||||
class StatementIterator implements Iterator
|
||||
{
|
||||
|
||||
private $result;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Excel_DateTime
|
||||
namespace ctiso\Excel;
|
||||
|
||||
class DateTime
|
||||
{
|
||||
public $value;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Документ
|
||||
*/
|
||||
class Excel_Document {
|
||||
namespace ctiso\Excel;
|
||||
use XMLWriter,
|
||||
Exception;
|
||||
|
||||
class Document {
|
||||
static $ns = "urn:schemas-microsoft-com:office:spreadsheet";
|
||||
private $table = array ();
|
||||
protected $styles = array();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Excel_Number
|
||||
namespace ctiso\Excel;
|
||||
|
||||
class Number
|
||||
{
|
||||
public $value;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
/**
|
||||
* Клетка таблицы
|
||||
*/
|
||||
namespace ctiso\Excel;
|
||||
|
||||
class TableCell
|
||||
{
|
||||
public $style = false;
|
||||
|
|
@ -38,7 +40,7 @@ class TableRow
|
|||
/**
|
||||
* Таблица
|
||||
*/
|
||||
class Excel_Table
|
||||
class Table
|
||||
{
|
||||
static $index;
|
||||
private $name;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
use Exception;
|
||||
|
||||
class File {
|
||||
static function getContents($filename) {
|
||||
$buffer = file_get_contents($filename);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Фильтр действий
|
||||
*/
|
||||
class Filter_ActionAccess
|
||||
namespace ctiso\Filter;
|
||||
use ctiso\Filter\UserAccess,
|
||||
ctiso\HttpRequest;
|
||||
|
||||
class ActionAccess
|
||||
{
|
||||
public $access = array();
|
||||
public $processor;
|
||||
|
|
@ -19,7 +23,7 @@ class Filter_ActionAccess
|
|||
*/
|
||||
function checkAction($action) {
|
||||
// Импликация !! http://ru.wikipedia.org/wiki/Импликация
|
||||
return (!isset($this->access[$action]) || in_array(Filter_UserAccess::$access, $this->access[$action]));
|
||||
return (!isset($this->access[$action]) || in_array(UserAccess::$access, $this->access[$action]));
|
||||
}
|
||||
|
||||
function execute(HttpRequest $request) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
<?php
|
||||
|
||||
class Filter_ActionLogger
|
||||
namespace ctiso\Filter;
|
||||
use ctiso\Shortcut,
|
||||
ctiso\HttpRequest,
|
||||
ctiso\Filter\UserAccess;
|
||||
|
||||
class ActionLogger
|
||||
{
|
||||
public $before = array();
|
||||
public $file;
|
||||
|
|
@ -15,7 +20,7 @@ class Filter_ActionLogger
|
|||
function execute(HttpRequest $request) {
|
||||
$action = $request->getAction();
|
||||
if(in_array($action, $this->before)) {
|
||||
fwrite($this->file, "time: " . date("r", time()) . " query: ". json_encode(array_merge($_POST, $_GET)) . " by: " . Filter_UserAccess::$name . "\n");
|
||||
fwrite($this->file, "time: " . date("r", time()) . " query: ". json_encode(array_merge($_POST, $_GET)) . " by: " . UserAccess::$name . "\n");
|
||||
}
|
||||
return $this->processor->execute($request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Filter_Authorization {
|
||||
namespace ctiso\Filter;
|
||||
|
||||
class Authorization {
|
||||
const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#';
|
||||
const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign';
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
/**
|
||||
* Попытка реализовать фильтр для запросов
|
||||
*/
|
||||
class Filter_Filter
|
||||
namespace ctiso\Filter;
|
||||
use ctiso\HttpRequest;
|
||||
|
||||
class Filter
|
||||
{
|
||||
public $processor;
|
||||
public function __construct(/*.Controller_Action.*/$processor)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,15 @@
|
|||
*/
|
||||
// В класс авторизации передавать обьект для управления пользователем
|
||||
// Вынести в отдельный файл
|
||||
class Filter_Login extends Filter_Filter
|
||||
namespace ctiso\Filter;
|
||||
use ctiso\Filter\Filter,
|
||||
ctiso\HttpRequest,
|
||||
ctiso\Filter\UserAccess,
|
||||
ctiso\Settings,
|
||||
ctiso\Database,
|
||||
ctiso\Collection;
|
||||
|
||||
class Login extends Filter
|
||||
{
|
||||
const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#';
|
||||
const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign';
|
||||
|
|
@ -29,17 +37,17 @@ class Filter_Login extends Filter_Filter
|
|||
// Авторизация
|
||||
session_start();
|
||||
$db = $this->getConnection();
|
||||
Filter_UserAccess::setUp($db); // Соединение
|
||||
UserAccess::setUp($db); // Соединение
|
||||
switch ($request->getAction()) {
|
||||
// Авторизация по постоянному паролю
|
||||
case 'login':
|
||||
$login = $request->get('login');
|
||||
$password = $request->get('password');
|
||||
|
||||
$result = Filter_UserAccess::getUserByLogin($login); // Поиск по логину
|
||||
$result = UserAccess::getUserByLogin($login); // Поиск по логину
|
||||
if ($result) {
|
||||
$userPassword = $result->getString('password');
|
||||
if (Filter_UserAccess::$access == 'site_root' && defined('PARENT_PATH')) {
|
||||
if (UserAccess::$access == 'site_root' && defined('PARENT_PATH')) {
|
||||
$s = new Settings(PARENT_PATH . '/settings.json');
|
||||
$s->read();
|
||||
$dsn = $s->readKey(array('system', 'dsn'));
|
||||
|
|
@ -63,7 +71,7 @@ class Filter_Login extends Filter_Filter
|
|||
case 'enter':
|
||||
$login = $request->get('login');
|
||||
$password = $request->get('sid');
|
||||
$result = Filter_UserAccess::getUserByLogin($login); // Поиск по логину
|
||||
$result = UserAccess::getUserByLogin($login); // Поиск по логину
|
||||
if ($result) {
|
||||
$temp = md5($result->getString('password') . $result->getString('login') . $result->getString('sid'));
|
||||
if ($password == $temp) {
|
||||
|
|
@ -77,7 +85,7 @@ class Filter_Login extends Filter_Filter
|
|||
// Если $hash не совпадает $_SESSION['hash'] то удаляем сессию
|
||||
if (isset($_SESSION ['access']) && isset($_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME])) {
|
||||
if ($hash == $_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME]) {
|
||||
$this->user = $user = Filter_UserAccess::getUserById($_SESSION['access']); // Поиск по идентификатору
|
||||
$this->user = $user = UserAccess::getUserById($_SESSION['access']); // Поиск по идентификатору
|
||||
if ($user && isset($_SESSION['random']) && ($user->get('sid') == $_SESSION['random'])) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
<?php
|
||||
|
||||
// Класс должен быть в библиотеке приложения
|
||||
class Filter_UserAccess
|
||||
namespace ctiso\Filter;
|
||||
use ctiso\Database,
|
||||
ctiso\Database\Statement;
|
||||
|
||||
class UserAccess
|
||||
{
|
||||
const LIFE_TIME = 1800; // = 30min * 60sec;
|
||||
|
||||
|
|
@ -21,7 +25,7 @@ class Filter_UserAccess
|
|||
self::$db = $db;
|
||||
}
|
||||
|
||||
public static function getUserByQuery(Database_Statement $stmt)
|
||||
public static function getUserByQuery(Statement $stmt)
|
||||
{
|
||||
global $GROUPS;
|
||||
$result = $stmt->executeQuery();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@
|
|||
/**
|
||||
* Поле с цветом
|
||||
*/
|
||||
class Form_Color extends Form_Field
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Field;
|
||||
|
||||
class Color extends Field
|
||||
{
|
||||
}
|
||||
|
|
@ -2,5 +2,8 @@
|
|||
/**
|
||||
* Поле с датой
|
||||
*/
|
||||
class Form_Date extends Form_Field {
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Field;
|
||||
|
||||
class Date extends Field {
|
||||
}
|
||||
|
|
@ -2,7 +2,9 @@
|
|||
/**
|
||||
* Элемент формы
|
||||
*/
|
||||
class Form_Field
|
||||
namespace ctiso\Form;
|
||||
|
||||
class Field
|
||||
{
|
||||
public $hidden = false;
|
||||
public $name;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,15 @@
|
|||
* При рендеринге каждому классу соответствует шаблон (см. themes/maxim/templates/macros.html)
|
||||
*/
|
||||
|
||||
class TCheckbox extends Form_Field
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Field,
|
||||
ctiso\Form\Select,
|
||||
ctiso\Form\Input,
|
||||
ctiso\View\View,
|
||||
ctiso\Validator\Validator,
|
||||
ctiso\HttpRequest;
|
||||
|
||||
class TCheckbox extends Field
|
||||
{
|
||||
public $checked = false;
|
||||
function setValue($value)
|
||||
|
|
@ -14,7 +22,7 @@ class TCheckbox extends Form_Field
|
|||
}
|
||||
}
|
||||
|
||||
class TQuestionType extends Form_Select
|
||||
class TQuestionType extends Select
|
||||
{
|
||||
function setValue($value)
|
||||
{
|
||||
|
|
@ -26,29 +34,29 @@ class TQuestionType extends Form_Select
|
|||
}
|
||||
}
|
||||
|
||||
class TDateTime extends Form_Input {
|
||||
class TDateTime extends Input {
|
||||
}
|
||||
|
||||
/**
|
||||
* Поле для ввода пароля
|
||||
*/
|
||||
class TSecret extends Form_Field {
|
||||
class TSecret extends Field {
|
||||
}
|
||||
|
||||
class TUpload extends Form_Field {
|
||||
class TUpload extends Field {
|
||||
}
|
||||
|
||||
class THidden extends Form_Input {
|
||||
class THidden extends Input {
|
||||
public $hidden = true;
|
||||
}
|
||||
|
||||
class TComponentBrowserInput extends Form_Input {
|
||||
class TComponentBrowserInput extends Input {
|
||||
}
|
||||
|
||||
/**
|
||||
* Форма для ввода
|
||||
*/
|
||||
class Form_Form extends View_View {
|
||||
class Form extends View {
|
||||
public $field = array(); //Поля формы
|
||||
public $fieldsets = array(); //Группы полей (fieldset). Некоторые поля могут не принадлежать никаким группам
|
||||
|
||||
|
|
@ -163,7 +171,7 @@ class Form_Form extends View_View {
|
|||
/**
|
||||
* Устанавливает ошибки после проверки
|
||||
*/
|
||||
function setError(Validator_Validator $validator)
|
||||
function setError(Validator $validator)
|
||||
{
|
||||
foreach ($validator->getErrorMsg() as $name => $error)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,5 +3,8 @@
|
|||
/**
|
||||
* Поле ввода Input
|
||||
*/
|
||||
class Form_Input extends Form_Field {
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Field;
|
||||
|
||||
class Input extends Field {
|
||||
}
|
||||
|
|
@ -1,6 +1,11 @@
|
|||
<?php
|
||||
|
||||
class Form_OptionFactory {
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Select,
|
||||
ctiso\Model\Resources,
|
||||
ctiso\Model\Factory;
|
||||
|
||||
class OptionFactory {
|
||||
public $db;
|
||||
public $registry;
|
||||
function __construct($db, $registry = null) {
|
||||
|
|
@ -8,23 +13,23 @@ class Form_OptionFactory {
|
|||
$this->registry = $registry;
|
||||
}
|
||||
|
||||
function create(Form_Select $field, $input) {
|
||||
function create(Select $field, $input) {
|
||||
if (isset($input['options.resid'])) {
|
||||
$type = $input['options.resid'];
|
||||
|
||||
$res = new Model_Resources($this->db);
|
||||
$res = new Resources($this->db);
|
||||
$field->options = $this->optionsArray('id_section', 'title', $res->getSubsections('', $type));
|
||||
|
||||
} else if (isset($input['options.res'])) {
|
||||
$type = $input['options.res'];
|
||||
|
||||
$res = new Model_Resources($this->db);
|
||||
$res = new Resources($this->db);
|
||||
$field->options = $this->optionsArray('path', 'title', $res->getSubsections('', $type));
|
||||
|
||||
} else if (isset($input['options.all_res'])) {
|
||||
$type = $input['options.all_res'];
|
||||
|
||||
$res = new Model_Resources($this->db);
|
||||
$res = new Resources($this->db);
|
||||
$field->options = $this->optionsArray('id_resource', 'subtitle', $res->getAllResource($type));
|
||||
|
||||
} else if (isset($input['options.db'])) {
|
||||
|
|
@ -39,7 +44,7 @@ class Form_OptionFactory {
|
|||
} elseif (isset($input['options.pair'])) {
|
||||
$field->options = $this->optionsPair($input['options.pair']);
|
||||
} elseif (isset($input['options.model'])) {
|
||||
$factory = new Model_Factory($this->db, $this->registry);
|
||||
$factory = new Factory($this->db, $this->registry);
|
||||
$model = $factory->getModel($input['options.model']);
|
||||
$field->options = $model->getAllAsOptions();
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class Form_Select extends Form_Field
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Field;
|
||||
|
||||
class Select extends Field
|
||||
{
|
||||
public $options = array();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class Form_SelectMany extends Form_Select
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Select;
|
||||
|
||||
class SelectMany extends Select
|
||||
{
|
||||
function setValue($value)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
/**
|
||||
* Выбор из одного элемента
|
||||
*/
|
||||
class Form_SelectOne extends Form_Select
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Select;
|
||||
|
||||
class SelectOne extends Select
|
||||
{
|
||||
function setValue($value)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
/**
|
||||
* Текстовое поле
|
||||
*/
|
||||
class Form_TextArea extends Form_Field {
|
||||
namespace ctiso\Form;
|
||||
use ctiso\Form\Field;
|
||||
|
||||
class TextArea extends Field {
|
||||
function setValue($value)
|
||||
{
|
||||
$this->value = $value;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@
|
|||
* http://www.alternateinterior.com/2006/09/a-viewstate-for-php.html
|
||||
* Управление состоянием между страницами
|
||||
*/
|
||||
class Form_ViewState // extends Collection
|
||||
namespace ctiso\Form;
|
||||
|
||||
class ViewState // extends Collection
|
||||
{
|
||||
private $values = array();
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@
|
|||
/**
|
||||
* Эмуляция каррированой функции
|
||||
*/
|
||||
class __right {
|
||||
namespace ctiso;
|
||||
|
||||
class right {
|
||||
protected $params;
|
||||
protected $fn;
|
||||
|
||||
|
|
@ -24,7 +26,7 @@ class __right {
|
|||
}
|
||||
}
|
||||
|
||||
class __left {
|
||||
class left {
|
||||
protected $params;
|
||||
protected $fn;
|
||||
|
||||
|
|
@ -41,7 +43,7 @@ class __left {
|
|||
}
|
||||
|
||||
define('__', '_ARGUMENT_PLACE_');
|
||||
class __partial {
|
||||
class partial {
|
||||
protected $params;
|
||||
protected $fn;
|
||||
|
||||
|
|
@ -69,7 +71,7 @@ class __partial {
|
|||
/**
|
||||
* Композиция функций
|
||||
*/
|
||||
class __compose {
|
||||
class compose {
|
||||
protected $fns;
|
||||
function __construct($list) {
|
||||
$this->fns = array_reverse($list);
|
||||
|
|
@ -89,7 +91,7 @@ class __compose {
|
|||
class Functions {
|
||||
|
||||
static function partial($_rest) {
|
||||
$closure = new __partial(func_get_args());
|
||||
$closure = new partial(func_get_args());
|
||||
return array($closure, 'apply');
|
||||
}
|
||||
|
||||
|
|
@ -102,7 +104,7 @@ class Functions {
|
|||
* @return array[int]mixed
|
||||
*/
|
||||
static function compose($_rest) {
|
||||
$closure = new __compose(func_get_args());
|
||||
$closure = new compose(func_get_args());
|
||||
return array($closure, 'apply');
|
||||
}
|
||||
|
||||
|
|
@ -112,7 +114,7 @@ class Functions {
|
|||
* @return array[int]mixed
|
||||
*/
|
||||
static function rcurry($_rest) {
|
||||
$closure = new __right(func_get_args ());
|
||||
$closure = new right(func_get_args ());
|
||||
return array($closure, 'apply');
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +124,7 @@ class Functions {
|
|||
* @return array[int]mixed
|
||||
*/
|
||||
static function lcurry($_rest) {
|
||||
$closure = new __left(func_get_args ());
|
||||
$closure = new left(func_get_args ());
|
||||
return array($closure, 'apply');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,11 @@
|
|||
/**
|
||||
* Неверный запрос
|
||||
*/
|
||||
namespace ctiso;
|
||||
use Exception,
|
||||
ctiso\Collection,
|
||||
ctiso\Session;
|
||||
|
||||
class WrongRequestException extends Exception
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Самый простой макет
|
||||
*/
|
||||
class Layout_Empty extends Filter_Filter
|
||||
namespace ctiso\Layout;
|
||||
use ctiso\Filter\Filter,
|
||||
ctiso\HttpRequest;
|
||||
|
||||
class Empty extends Filter
|
||||
{
|
||||
function execute(HttpRequest $request)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,7 +4,12 @@
|
|||
* Выбор макета страницы.
|
||||
* Выбор оформления страницы осуществляется если было совпадение с каким либо условием
|
||||
*/
|
||||
class Layout_Manager extends Filter_Filter
|
||||
namespace ctiso\Layout;
|
||||
use ctiso\Filter\Filter,
|
||||
ctiso\Functions,
|
||||
ctiso\HttpRequest;
|
||||
|
||||
class Manager extends Filter
|
||||
{
|
||||
// Массив условий с их макетами
|
||||
protected $condition = array();
|
||||
|
|
@ -17,7 +22,7 @@ class Layout_Manager extends Filter_Filter
|
|||
* addConditionGet(array('module' => 'personal'), 'personal')
|
||||
* addConditionGet(array('module' => 'login'), 'login')
|
||||
*/
|
||||
public function addConditionGet($get, Filter_Filter $layout)
|
||||
public function addConditionGet($get, Filter $layout)
|
||||
{
|
||||
$this->addCondition(Functions::rcurry(array($this, 'checkGet'), $get), $layout);
|
||||
}
|
||||
|
|
@ -25,7 +30,7 @@ class Layout_Manager extends Filter_Filter
|
|||
/**
|
||||
* Условие для аякс запросов. Тоже самое что и addConditionGet но еще проверяется является ли запрос ajax
|
||||
*/
|
||||
public function addConditionXHR($get, Filter_Filter $layout)
|
||||
public function addConditionXHR($get, Filter $layout)
|
||||
{
|
||||
$this->addCondition(Functions::rcurry(array($this, 'checkXHR'), $get), $layout);
|
||||
}
|
||||
|
|
@ -52,7 +57,7 @@ class Layout_Manager extends Filter_Filter
|
|||
* @parma $get function(HttpRequest) Функция
|
||||
* @parma $layout Layout Макет
|
||||
*/
|
||||
public function addCondition($get, Filter_Filter $layout)
|
||||
public function addCondition($get, Filter $layout)
|
||||
{
|
||||
$this->condition [] = array($get, $layout);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@
|
|||
* Класс для работы с почтой
|
||||
* http://en.wikipedia.org/wiki/MIME
|
||||
*/
|
||||
namespace ctiso;
|
||||
use ctiso\Path,
|
||||
Exception;
|
||||
|
||||
class Mail
|
||||
{
|
||||
public $_from;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
use PHPMailer;
|
||||
|
||||
class MailAlt
|
||||
{
|
||||
public $mailer;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class Model_Factory
|
||||
namespace ctiso\Model;
|
||||
use ctiso\Settings;
|
||||
|
||||
class Factory
|
||||
{
|
||||
static $shortcut = "model";
|
||||
public $db;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class Numbers
|
||||
{
|
||||
static function roman($i)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
*
|
||||
*/
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class Path
|
||||
{
|
||||
const SEPARATOR = "/";
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
* @package system
|
||||
*/
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class Primitive {
|
||||
// varchar
|
||||
public static function to_varchar($value)
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
* http://www.phppatterns.com/docs/design/the_registry?s=registry
|
||||
*/
|
||||
|
||||
namespace ctiso;
|
||||
use ctiso\Settings;
|
||||
|
||||
class Registry extends Settings
|
||||
{
|
||||
static $instance = null;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class Security {
|
||||
static function generatePassword($length = 9, $strength = 0) {
|
||||
$vowels = 'aeuy';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class Session
|
||||
{
|
||||
function get($key)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,11 @@
|
|||
* parameters1, parameters1 - Массивы с параметрами модуля
|
||||
* Имя необходимо чтобы потом легко было удалить ненужные ветки дерева
|
||||
*/
|
||||
namespace ctiso;
|
||||
use ctiso\Collection,
|
||||
ctiso\File,
|
||||
Exception;
|
||||
|
||||
class Settings extends Collection
|
||||
{
|
||||
protected $file;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@
|
|||
* $setup->executeActions('install');
|
||||
* </code>
|
||||
*/
|
||||
namespace ctiso;
|
||||
use ZipArchive,
|
||||
ctiso\Tools\SQLStatementExtractor;
|
||||
|
||||
class Setup
|
||||
{
|
||||
protected $actions = array();
|
||||
|
|
@ -198,7 +202,7 @@ class Setup
|
|||
*/
|
||||
function batchSQLZip(/*.Database.*/ $conn, $file)
|
||||
{
|
||||
$stmtList = Tools_SQLStatementExtractor::extract($this->zip->getFromName($file));
|
||||
$stmtList = SQLStatementExtractor::extract($this->zip->getFromName($file));
|
||||
foreach ($stmtList as $stmt) {
|
||||
$conn->executeQuery ($stmt);
|
||||
}
|
||||
|
|
@ -206,7 +210,7 @@ class Setup
|
|||
|
||||
static function batchSQL(/*.Database.*/ $conn, $file)
|
||||
{
|
||||
$stmtList = Tools_SQLStatementExtractor::extractFile($file);
|
||||
$stmtList = SQLStatementExtractor::extractFile($file);
|
||||
foreach ($stmtList as $stmt) {
|
||||
$conn->executeQuery ($stmt);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
/**
|
||||
* Класс для короткого доступа к файлам / папкам
|
||||
*/
|
||||
namespace ctiso;
|
||||
|
||||
class Shortcut
|
||||
{
|
||||
static $instance = null;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class SortRecord
|
||||
{
|
||||
public $key;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,13 @@
|
|||
/**
|
||||
* Расширения для PHPTAL для отображения времени и даты
|
||||
*/
|
||||
namespace ctiso;
|
||||
use PHPTAL_Php_TalesInternal,
|
||||
ctiso\Controller\Site,
|
||||
ctiso\Controller\Component,
|
||||
ctiso\HttpRequest,
|
||||
PHPTAL_TalesRegistry;
|
||||
|
||||
class DateTime_Tales implements PHPTAL_Tales
|
||||
{
|
||||
static public function date($expression, $nothrow = false)
|
||||
|
|
@ -48,10 +55,10 @@ class Tales {
|
|||
/*.Controller_Component.*/$component = null;
|
||||
|
||||
if (class_exists("Controller_Site")) { //Если мы в CMS2
|
||||
$component = Controller_Site::loadComponent($expression);
|
||||
$component = Site::loadComponent($expression);
|
||||
} else {
|
||||
global $db, $registry; // Иначе обращаемся к глобальным переменным
|
||||
$component = Controller_Component::loadComponent($expression, $db, $registry);
|
||||
$component = Component::loadComponent($expression, $db, $registry);
|
||||
}
|
||||
$req = new HttpRequest();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Tools_Drawing
|
||||
namespace ctiso\Tools;
|
||||
|
||||
class Drawing
|
||||
{
|
||||
const ALIGN_LEFT = "left";
|
||||
const ALIGN_TOP = "top";
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Tools_Image
|
||||
namespace ctiso\Tools;
|
||||
|
||||
class Image
|
||||
{
|
||||
static function load($uri)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -26,7 +26,10 @@
|
|||
* @version $Revision: 1.5 $
|
||||
* @package creole.util.sql
|
||||
*/
|
||||
class Tools_SQLStatementExtractor {
|
||||
namespace ctiso\Tools;
|
||||
use Exception;
|
||||
|
||||
class SQLStatementExtractor {
|
||||
|
||||
protected static $delimiter = ';';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Tools_String {
|
||||
namespace ctiso\Tools;
|
||||
|
||||
class String {
|
||||
|
||||
// from creole
|
||||
static function strToArray($str) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
/**
|
||||
* Формат для композиции изображений
|
||||
*/
|
||||
class Tools_TemplateImage
|
||||
namespace ctiso\Tools;
|
||||
use ctiso\Tools\Drawing;
|
||||
|
||||
class TemplateImage
|
||||
{
|
||||
static $listfiles = array('jpg' => 'jpeg', 'gif' => 'gif', 'png' => 'png', 'bmp' => 'wbmp');
|
||||
static $listfonts = array(
|
||||
|
|
@ -129,22 +132,22 @@ class Tools_TemplateImage
|
|||
|
||||
$color = intval(substr($value->color, 1), 16);
|
||||
if ($value->align[0]) {
|
||||
$align = Tools_Drawing::ALIGN_LEFT;
|
||||
$align = Drawing::ALIGN_LEFT;
|
||||
} elseif ($value->align[2]) {
|
||||
$align = Tools_Drawing::ALIGN_RIGHT;
|
||||
$align = Drawing::ALIGN_RIGHT;
|
||||
} else {
|
||||
$align = Tools_Drawing::ALIGN_CENTER;
|
||||
$align = Drawing::ALIGN_CENTER;
|
||||
}
|
||||
|
||||
if ($value->valign[0]) {
|
||||
$valign = Tools_Drawing::ALIGN_TOP;
|
||||
$valign = Drawing::ALIGN_TOP;
|
||||
} elseif ($value->valign[1]) {
|
||||
$valign = Tools_Drawing::ALIGN_CENTER;
|
||||
$valign = Drawing::ALIGN_CENTER;
|
||||
} else {
|
||||
$valign = Tools_Drawing::ALIGN_BOTTOM;
|
||||
$valign = Drawing::ALIGN_BOTTOM;
|
||||
}
|
||||
|
||||
Tools_Drawing::imagettftextbox($this->image, $size, 0, $value->left, $value->top, $color, $fontfile, $text,
|
||||
Drawing::imagettftextbox($this->image, $size, 0, $value->left, $value->top, $color, $fontfile, $text,
|
||||
$value->width, $value->height,
|
||||
$align, $valign);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
class UTF8 {
|
||||
static function str_split($str, $split_length = 1) {
|
||||
$split_length = (int) $split_length;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
* Исключение с понятным пользователю сообщением, которое имеет смысл ему показать.
|
||||
* @see Controller_Front
|
||||
*/
|
||||
namespace ctiso;
|
||||
use Exception;
|
||||
|
||||
class UserMessageException extends Exception {
|
||||
public $userMessage;
|
||||
public function __construct($message) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
abstract class Validator_Rule_Abstract
|
||||
abstract namespace ctiso\Validator\Rule;
|
||||
use ctiso\Collection;
|
||||
|
||||
class Abstract
|
||||
{
|
||||
public $field;
|
||||
protected $errorMsg;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка на число
|
||||
*/
|
||||
class Validator_Rule_Alpha extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Alpha extends Abstract
|
||||
{
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка формата электронной почты
|
||||
*/
|
||||
class Validator_Rule_Code extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Code extends Abstract
|
||||
{
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка формата даты
|
||||
*/
|
||||
class Validator_Rule_Count extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Count extends Abstract
|
||||
{
|
||||
public $size = 1;
|
||||
public $max = null;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка формата даты
|
||||
*/
|
||||
class Validator_Rule_Date extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Date extends Abstract
|
||||
{
|
||||
private $split = "\\/";
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка формата электронной почты
|
||||
*/
|
||||
class Validator_Rule_Email extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Email extends Abstract
|
||||
{
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка формата электронной почты
|
||||
*/
|
||||
class Validator_Rule_EmailList extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class EmailList extends Abstract
|
||||
{
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
<?php
|
||||
|
||||
class Validator_Rule_FileName extends Validator_Rule_Abstract {
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection,
|
||||
ctiso\Path;
|
||||
|
||||
class FileName extends Abstract {
|
||||
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка формата времени
|
||||
*/
|
||||
class Validator_Rule_IsFile extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class IsFile extends Abstract
|
||||
{
|
||||
private $type = array();
|
||||
private $maxsize = 1024;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка на равентство двух полей
|
||||
*/
|
||||
class Validator_Rule_Match extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Match extends Abstract
|
||||
{
|
||||
public $same;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
<?php
|
||||
|
||||
class Validator_Rule_Notnull extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Notnull extends Abstract
|
||||
{
|
||||
function skipEmpty() {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка на число
|
||||
*/
|
||||
class Validator_Rule_Numeric extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Numeric extends Abstract
|
||||
{
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
/**
|
||||
* Проверка формата времени
|
||||
*/
|
||||
class Validator_Rule_Time extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Time extends Abstract
|
||||
{
|
||||
private $split = ":";
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,11 @@
|
|||
|
||||
/**
|
||||
*/
|
||||
class Validator_Rule_Unique extends Validator_Rule_Abstract
|
||||
namespace ctiso\Validator\Rule;
|
||||
use ctiso\Validator\Rule\Abstract,
|
||||
ctiso\Collection;
|
||||
|
||||
class Unique extends Abstract
|
||||
{
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,11 @@
|
|||
/**
|
||||
* Проверка коллекции
|
||||
*/
|
||||
class Validator_Validator
|
||||
namespace ctiso\Validator;
|
||||
use Exception,
|
||||
ctiso\Collection;
|
||||
|
||||
class Validator
|
||||
{
|
||||
protected $chain = array(); // Массив правил
|
||||
protected $errorMsg = array(); // Массив ошибок
|
||||
|
|
|
|||
|
|
@ -4,7 +4,11 @@
|
|||
*/
|
||||
|
||||
// View_Base + PHPTAL = View_Template (View_Composite)
|
||||
class View_Composite extends View_View
|
||||
namespace ctiso\View;
|
||||
use ctiso\View\View,
|
||||
PHPTAL;
|
||||
|
||||
class Composite extends View
|
||||
{
|
||||
private $tal;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class View_List extends View_View
|
||||
namespace ctiso\View;
|
||||
use ctiso\View\View;
|
||||
|
||||
class List extends View
|
||||
{
|
||||
function execute()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
<?php
|
||||
|
||||
class View_Page extends View_View
|
||||
namespace ctiso\View;
|
||||
use ctiso\View\View,
|
||||
ctiso\Controller\Site,
|
||||
ctiso\Controller\Component,
|
||||
ctiso\HttpRequest;
|
||||
|
||||
class Page extends View
|
||||
{
|
||||
private $counter;
|
||||
public $text;
|
||||
|
|
@ -52,10 +58,10 @@ class View_Page extends View_View
|
|||
|
||||
|
||||
if(class_exists("Controller_Site")){ //Если мы в CMS2
|
||||
$component = Controller_Site::loadComponent($match);
|
||||
$component = Site::loadComponent($match);
|
||||
} else {
|
||||
global $db, $registry; //
|
||||
$component = Controller_Component::loadComponent($match, $db, $registry);
|
||||
$component = Component::loadComponent($match, $db, $registry);
|
||||
}
|
||||
|
||||
$req = new HttpRequest();
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
* @package system.widgets
|
||||
*/
|
||||
|
||||
class View_Pages
|
||||
namespace ctiso\View;
|
||||
|
||||
class Pages
|
||||
{
|
||||
static $range = 5;
|
||||
static function getPages($page, $onpage, $count, $prefix = '?')
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
/**
|
||||
* @package system.view
|
||||
*/
|
||||
class View_Plain
|
||||
namespace ctiso\View;
|
||||
|
||||
class Plain
|
||||
{
|
||||
protected $document;
|
||||
protected $values = array();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class View_Top extends View_Composite {
|
||||
namespace ctiso\View;
|
||||
use ctiso\View\Composite;
|
||||
|
||||
class Top extends Composite {
|
||||
/**
|
||||
* Общая строка заголовка
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
<?php
|
||||
|
||||
class View_View
|
||||
namespace ctiso\View;
|
||||
use Exception;
|
||||
|
||||
class View
|
||||
{
|
||||
protected $_section = array(); // Вложенные шаблоны
|
||||
// Блоки
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@
|
|||
/**
|
||||
* Расширение класса ZipArchive с возможность архивирования директории
|
||||
*/
|
||||
namespace ctiso;
|
||||
use ZipArchive;
|
||||
|
||||
class ZipFile extends ZipArchive
|
||||
{
|
||||
private $ignore = array('.', '..');
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
use Exception;
|
||||
|
||||
function loadConfig($filename) {
|
||||
$settings = null;
|
||||
if (@include($filename)) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace ctiso;
|
||||
|
||||
if (!function_exists('str_getcsv')) {
|
||||
function str_getcsv($input, $delimiter = ",", $enclosure = '"', $escape = "\\") {
|
||||
$fiveMBs = 1024;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@
|
|||
* @param array $table Таблица
|
||||
* @param Function $fn Функция которая применяется к каждой ветке дерева
|
||||
*/
|
||||
namespace ctiso;
|
||||
use ctiso\Functions;
|
||||
|
||||
function tableTreeWalk($level, $table, $fn) {
|
||||
if (empty ($level)) return $table;
|
||||
$name = array_shift ($level);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue