From 0f4b2fb722662a897d8fc48e4d775740f3507402 Mon Sep 17 00:00:00 2001 From: "CORP\\phedor" Date: Fri, 23 Mar 2018 12:35:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=82=D0=BE=D0=BF?= =?UTF-8?q?=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Collection.php | 6 ++--- src/Connection/HttpResponse.php | 10 ++++---- src/Controller/Component.php | 38 ++++++++++++++++++++++++++--- src/Controller/Front.php | 6 ++--- src/Controller/Request.php | 8 ++++-- src/Controller/Service.php | 5 +++- src/Database/IdGenerator.php | 2 +- src/Database/PDOStatement.php | 2 +- src/Excel/DataTime.php | 2 +- src/Excel/Number.php | 2 +- src/Excel/Table.php | 4 +-- src/Filter/Login.php | 1 + src/Functions.php | 9 ++++--- src/Numbers.php | 3 ++- src/Path.php | 19 +++++++++------ src/Primitive.php | 6 ++--- src/Tools/Drawing.php | 3 ++- src/Tools/SQLStatementExtractor.php | 4 +-- src/Tools/String.php | 4 +-- src/Tools/TemplateImage.php | 19 +++++++++------ src/Validator/Rule/Code.php | 3 ++- src/Validator/Rule/Count.php | 2 +- src/Validator/Rule/Date.php | 1 + src/Validator/Rule/Time.php | 2 +- src/config.php | 1 + 25 files changed, 109 insertions(+), 53 deletions(-) diff --git a/src/Collection.php b/src/Collection.php index 467175e..e56b2d1 100644 --- a/src/Collection.php +++ b/src/Collection.php @@ -58,17 +58,17 @@ class Collection implements ArrayAccess public function getInt($key, $default = 0) { - return intval($this->get($key, $default)); + return (int)$this->get($key, $default); } public function getString($key, $default = '') { - return ((string) $this->get($key, $default)); + return (string)$this->get($key, $default); } public function getNat($key, $default = 1) { - $result = intval($this->get($key, $default)); + $result = (int)$this->get($key, $default); return (($result > 0) ? $result : $default); } diff --git a/src/Connection/HttpResponse.php b/src/Connection/HttpResponse.php index 9e94c9f..df08cbc 100644 --- a/src/Connection/HttpResponse.php +++ b/src/Connection/HttpResponse.php @@ -36,12 +36,12 @@ class Connection_HttpResponse if (isset($this->param['Transfer-Encoding']) && $this->param['Transfer-Encoding'] == 'chunked') { //$this->data = substr($this->response, $this->offset); - $line = hexdec($this->getLine()); + $index = hexdec($this->getLine()); $chunk = array(); - while ($line > 0) { - $chunk [] = substr($this->response, $this->offset, $line); - $this->offset += $line; - $line = hexdec($this->getLine()); + while ($index > 0) { + $chunk [] = substr($this->response, $this->offset, $index); + $this->offset += $index; + $index = hexdec($this->getLine()); } $this->data = implode("", $chunk); diff --git a/src/Controller/Component.php b/src/Controller/Component.php index efc3cdf..dce2076 100644 --- a/src/Controller/Component.php +++ b/src/Controller/Component.php @@ -38,6 +38,23 @@ class ComponentRequest { } } +class FakeTemplate { + public $_data = []; + public $_name = ''; + + function __construct($name) { + $this->_name = $name; + } + + function __set($key, $value) { + $this->_data[$key] = $value; + } + + function execute() { + return $this->_data; + } +} + /** * Класс компонента */ @@ -56,6 +73,7 @@ class Controller_Component public /*.Settings.*/$registry; public /*.Database.*/$db; public /*.Collection.*/$parameter; + public $output = 'html'; public $module; public $item_module; @@ -86,6 +104,10 @@ class Controller_Component public function getView($name) { + if ($this->output == 'json') { + return new FakeTemplate($name); + } + // /*.Settings.*/$registry = $this->registry; $template = ($this->template) ? $this->template : $registry->readKey(array('system', 'template')); @@ -164,8 +186,18 @@ class Controller_Component return $result; } + function findFile($pathList, $name) { + foreach($pathList as $item) { + $filename = Path::join($item, $name); + if (file_exists($filename)) { + return $filename; + } + } + return null; + } + function getInfo() { - $filename = Path::join($this->viewPath[0], 'install.json'); + $filename = $this->findFile($this->viewPath, 'install.json'); if (file_exists($filename)) { $settings = json_decode(File::getContents($filename), true); return $settings; @@ -262,13 +294,13 @@ class Controller_Component } $params = new Collection(); - $params->import(array_merge($_GET, $arguments)); + $params->import($arguments); $component->parameter = $params; $component->template = $params->get('template', false); $editor = $component->getEditUrl(); if ($editor) { - if(class_exists("Controller_Site")){ //Если мы в CMS2 + if(class_exists("Controller_Site")) { //Если мы в CMS2 $instance = Controller_Site::getInstance(); $instance->componentsConfig[] = $editor; } else { diff --git a/src/Controller/Front.php b/src/Controller/Front.php index af064ad..772d177 100644 --- a/src/Controller/Front.php +++ b/src/Controller/Front.php @@ -40,7 +40,7 @@ class Controller_Front extends Controller_Action * @param request $request Имя модуля * @return string */ - public function loadModule($name, Collection $request, $controller = false) + public function loadModule($name, Collection $request, $controller = null) { if ($this->isLoaded($name)) { $module = $this->modules[$name]; @@ -93,13 +93,13 @@ class Controller_Front extends Controller_Action $this->default = $name; } - public function execute(HTTPRequest $request) + public function execute(HttpRequest $request) { $name = explode("_", $request->get($this->_param, $this->default)); if (count($name) >= 2) { $controller = $name[1]; } else { - $controller = false; + $controller = null; } try{ return $this->loadModule($name[0], $request, $controller); diff --git a/src/Controller/Request.php b/src/Controller/Request.php index 01822e1..1ac7be4 100644 --- a/src/Controller/Request.php +++ b/src/Controller/Request.php @@ -1,13 +1,17 @@ r = $request; $this->id = $id; } - function get($name) { + function get($name, $def) { $v = $this->r->get($name); + $id = $this->id; if ($id && is_array($v)) { return isset($v[$id]) ? $v[$id] : $def; } diff --git a/src/Controller/Service.php b/src/Controller/Service.php index 46f96aa..64b8a59 100644 --- a/src/Controller/Service.php +++ b/src/Controller/Service.php @@ -5,12 +5,15 @@ */ class Controller_Service { - public $viewPath = array(); + public $viewPath = []; + public $webPath = []; public $registry; // Registry->getInstance public $template; public $templatePath; public $COMPONENTS_WEB; + public $db; + public function getTemplatePath($name) { return Path::join($this->viewPath[0], 'templates', 'modern', $name); diff --git a/src/Database/IdGenerator.php b/src/Database/IdGenerator.php index 045ec86..41ee235 100644 --- a/src/Database/IdGenerator.php +++ b/src/Database/IdGenerator.php @@ -21,6 +21,6 @@ class Database_IdGenerator { } else { $result = $this->db->fetchOneArray("SELECT last_insert_rowid() AS nextval"); } - return intval($result['nextval']); + return (int)$result['nextval']; } } diff --git a/src/Database/PDOStatement.php b/src/Database/PDOStatement.php index 1274e6e..e74a244 100644 --- a/src/Database/PDOStatement.php +++ b/src/Database/PDOStatement.php @@ -66,7 +66,7 @@ class Database_PDOStatement extends PDOStatement implements IteratorAggregate } function getInt($name) { - return intval($this->fields[$name]); + return (int)$this->fields[$name]; } function getBlob($name) { diff --git a/src/Excel/DataTime.php b/src/Excel/DataTime.php index 0536cbd..8e590d0 100644 --- a/src/Excel/DataTime.php +++ b/src/Excel/DataTime.php @@ -6,7 +6,7 @@ class Excel_DateTime function __construct($value) { - $this->value = intval($value); + $this->value = (int)$value; } function getString() diff --git a/src/Excel/Number.php b/src/Excel/Number.php index 66dd6b6..5d212fe 100644 --- a/src/Excel/Number.php +++ b/src/Excel/Number.php @@ -6,7 +6,7 @@ class Excel_Number function __construct($value) { - $this->value = intval($value); + $this->value = (int)$value; } function getString() diff --git a/src/Excel/Table.php b/src/Excel/Table.php index 162c823..63e2f80 100644 --- a/src/Excel/Table.php +++ b/src/Excel/Table.php @@ -50,7 +50,7 @@ class Excel_Table function __construct() { - $this->name = "Page " . intval(self::$index ++); + $this->name = "Page " . ((int)self::$index ++); } /** @@ -230,7 +230,7 @@ class Excel_Table } else { $doc->writeAttribute('ss:Type', "Number"); } - $doc->writeCData($this->encode($value)); + $doc->writeCdata($this->encode($value)); } $doc->endElement(); $doc->endElement(); diff --git a/src/Filter/Login.php b/src/Filter/Login.php index 70ad01d..df3476d 100644 --- a/src/Filter/Login.php +++ b/src/Filter/Login.php @@ -13,6 +13,7 @@ class Filter_Login extends Filter_Filter const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#'; const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign'; public $mode = 'ajax'; + public $user; //AJAX-Реквесты для которых не требуется авторизация, потребовалось для сбора статистики public $whiteRequestList = [['module' => "requiredcontent", "action" => "getcount"], diff --git a/src/Functions.php b/src/Functions.php index 3f888e7..61b9123 100644 --- a/src/Functions.php +++ b/src/Functions.php @@ -53,7 +53,8 @@ class __partial { function apply() { $params = func_get_args(); $result = array(); - for($i = 0, $j = 0; $i < count($this->params); $i++) { + $count = count($this->params); + for($i = 0, $j = 0; $i < $count; $i++) { if ($this->params[$i] == __) { $result [] = $params[$j]; $j++; @@ -77,7 +78,8 @@ class __compose { function apply () { $params = func_get_args (); $result = call_user_func_array($this->fns[0], $params); - for ($i = 1; $i < count($this->fns); $i++) { + $count = count($this->fns); + for ($i = 1; $i < $count; $i++) { $result = call_user_func($this->fns[$i], $result); } return $result; @@ -306,7 +308,8 @@ class Functions { assert(is_int($length)); $result = array(); - for($i = 0; $i < count($array); $i += $length) { + $count = count($array); + for($i = 0; $i < $count; $i += $length) { $result [] = array_slice($array, $i, $length); } return $result; diff --git a/src/Numbers.php b/src/Numbers.php index c0a39c7..9001e4a 100644 --- a/src/Numbers.php +++ b/src/Numbers.php @@ -15,7 +15,8 @@ class Numbers static function prefix($prefix, array $array, $key = false) { $result = array(); - for ($i = 0; $i < count($array); $i++) { + $count = count($array); + for ($i = 0; $i < $count; $i++) { $result [] = call_user_func($prefix, $i + 1) . '. ' . $array[$i]; } return $result; diff --git a/src/Path.php b/src/Path.php index ba78789..1116448 100644 --- a/src/Path.php +++ b/src/Path.php @@ -160,8 +160,9 @@ class Path // Сравнение двух путей на равентство public function equal(/*.Path.*/ $path) { - if (count($this->path) == count($path->path)) { - for ($i = 0; $i < count($this->path); $i++) { + $count = count($this->path); + if ($count == count($path->path)) { + for ($i = 0; $i < $count; $i++) { if ($this->path[$i] != $path->path[$i]) { return false; } @@ -207,8 +208,9 @@ class Path if (isset($this->url['host']) && isset($path->url['host']) && ($this->url['host'] != $path->url['host'])) return false; - if (count($path->path) > count($this->path)) { - for ($i = 0; $i < count($this->path); $i++) { + $count = count($this->path); + if (count($path->path) > $count) { + for ($i = 0; $i < $count; $i++) { if ($path->path[$i] != $this->path[$i]) { return false; } @@ -252,15 +254,18 @@ class Path $list_path = $list->getParts(); $result = array(); - for ($i = 0; $i < count($list_path); $i++) { + $count = count($list_path); + for ($i = 0; $i < $count; $i++) { if (($i >= count($self_path)) || $list_path[$i] != $self_path[$i]) { break; } } - for($j = $i; $j < count($list_path); $j++) { + $list_count = count($list_path); + for($j = $i; $j < $list_count; $j++) { array_push($result, '..'); } - for($j = $i; $j < count($self_path); $j++) { + $self_count = count($self_path); + for($j = $i; $j < $self_count; $j++) { array_push($result, $self_path[$j]); } return implode("/", $result); diff --git a/src/Primitive.php b/src/Primitive.php index aec45fd..e911916 100644 --- a/src/Primitive.php +++ b/src/Primitive.php @@ -48,9 +48,9 @@ class Primitive { if (!empty($tmp)) { if (count($tmp) != 3) return $result; - $year = intval($tmp[2]); - $month = intval($tmp[1]); - $day = intval($tmp[0]); + $year = (int)$tmp[2]; + $month = (int)$tmp[1]; + $day = (int)$tmp[0]; if ($month != 0 && $day != 0 && $year != 0) { if (checkdate($month, $day, $year)) { diff --git a/src/Tools/Drawing.php b/src/Tools/Drawing.php index e13a323..e3dc6b0 100644 --- a/src/Tools/Drawing.php +++ b/src/Tools/Drawing.php @@ -40,7 +40,8 @@ class Tools_Drawing $first_word = true; $last_width = 0; - for ($i = 0; $i < count($words); $i++) { + $count = count($words); + for ($i = 0; $i < $count; $i++) { $item = $words[$i]; $dimensions = imagettfbbox($size, $angle, $font, $current_line . ($first_word ? '' : ' ') . $item); $line_width = $dimensions[2] - $dimensions[0]; diff --git a/src/Tools/SQLStatementExtractor.php b/src/Tools/SQLStatementExtractor.php index 739f6c7..61a54a3 100644 --- a/src/Tools/SQLStatementExtractor.php +++ b/src/Tools/SQLStatementExtractor.php @@ -111,7 +111,7 @@ class Tools_SQLStatementExtractor { if ($check === "" || $check === $string) { return true; } else { - return (strpos($string, $check) === 0) ? true : false; + return (strpos($string, $check) === 0); } } @@ -125,7 +125,7 @@ class Tools_SQLStatementExtractor { if ($check === "" || $check === $string) { return true; } else { - return (strpos(strrev($string), strrev($check)) === 0) ? true : false; + return (strpos(strrev($string), strrev($check)) === 0); } } diff --git a/src/Tools/String.php b/src/Tools/String.php index bd6c2de..ab3bab5 100644 --- a/src/Tools/String.php +++ b/src/Tools/String.php @@ -15,7 +15,7 @@ class Tools_String { if ($in_subarr > 0) { // already in sub-array? $subarr[$in_subarr][] = $tok; if ('}' === substr($tok, -1, 1)) { // check to see if we just added last component - $res[] = strToArray(implode(',', $subarr[$in_subarr])); + $res[] = self::strToArray(implode(',', $subarr[$in_subarr])); $in_subarr--; } } elseif ($tok{0} === '{') { // we're inside a new sub-array @@ -25,7 +25,7 @@ class Tools_String { $subarr[$in_subarr] = array(); $subarr[$in_subarr][] = $tok; } else { - $res[] = strToArray($tok); + $res[] = self::strToArray($tok); } } else { // not sub-array $val = trim($tok, '"'); // remove " (surrounding strings) diff --git a/src/Tools/TemplateImage.php b/src/Tools/TemplateImage.php index 6ce9a33..f6509ca 100644 --- a/src/Tools/TemplateImage.php +++ b/src/Tools/TemplateImage.php @@ -33,13 +33,16 @@ class Tools_TemplateImage protected $data = array(); protected $base = "c:\\windows\\fonts\\"; protected $image; - protected $prepare = true; + protected $_prepare = true; public $debug = false; - function __construct ($template = false) + public $resource; + public $filename; + + function __construct ($template = null) { // assert(is_string($src)); - if($template) { + if ($template) { $this->data = $template; } } @@ -116,7 +119,7 @@ class Tools_TemplateImage return ""; } - function imageText($text, $value) + function imageText($text, /*.stdClass.*/$value) { assert(is_string($text)); @@ -134,7 +137,7 @@ class Tools_TemplateImage } if ($value->valign[0]) { - $valign = Drawing::ALIGN_TOP; + $valign = Tools_Drawing::ALIGN_TOP; } elseif ($value->valign[1]) { $valign = Tools_Drawing::ALIGN_CENTER; } else { @@ -159,7 +162,7 @@ class Tools_TemplateImage { $width = imagesx($this->image); $height = imagesy($this->image); - if($new_height == false) { + if ($new_height == null) { $new_height = ceil($height * $new_width / $width); } @@ -171,8 +174,8 @@ class Tools_TemplateImage } function prepare() { - if($this->prepare) { - $this->prepare = false; + if($this->_prepare) { + $this->_prepare = false; foreach ($this->data as $value) { $this->imageText($value->text, $value); // break; } diff --git a/src/Validator/Rule/Code.php b/src/Validator/Rule/Code.php index 2bcfbf8..1928685 100644 --- a/src/Validator/Rule/Code.php +++ b/src/Validator/Rule/Code.php @@ -25,7 +25,8 @@ class Validator_Rule_Code extends Validator_Rule_Abstract $name = $this->field; if (is_array($_POST[$name . '_code_genre'])) { - for($n = 0; $n < count($_POST[$name . '_code_genre']); $n++) { + $count = count($_POST[$name . '_code_genre']); + for($n = 0; $n < $count; $n++) { $code = array( $_POST[$name . '_code_genre'][$n], $_POST[$name . '_code_f'][$n], diff --git a/src/Validator/Rule/Count.php b/src/Validator/Rule/Count.php index 2afd612..47686b8 100644 --- a/src/Validator/Rule/Count.php +++ b/src/Validator/Rule/Count.php @@ -6,7 +6,7 @@ class Validator_Rule_Count extends Validator_Rule_Abstract { public $size = 1; - public $max = false; + public $max = null; public function getErrorMsg() { diff --git a/src/Validator/Rule/Date.php b/src/Validator/Rule/Date.php index be8e17e..166907a 100644 --- a/src/Validator/Rule/Date.php +++ b/src/Validator/Rule/Date.php @@ -15,6 +15,7 @@ class Validator_Rule_Date extends Validator_Rule_Abstract public function isValid(Collection $container, $status = null) { $pattern = "/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/"; + $matches = []; return (preg_match($pattern, $container->get($this->field), $matches) && checkdate($matches[2], $matches[1], $matches[3])); } diff --git a/src/Validator/Rule/Time.php b/src/Validator/Rule/Time.php index 05a7a46..a64655c 100644 --- a/src/Validator/Rule/Time.php +++ b/src/Validator/Rule/Time.php @@ -23,7 +23,7 @@ class Validator_Rule_Time extends Validator_Rule_Abstract { $tmp = explode($this->split, $container->get($this->field), 2); if ($tmp) { - if (self::checktime ($tmp[0], $tmp[1])) { + if (self::checktime ((int)$tmp[0], (int)$tmp[1])) { return true; } } diff --git a/src/config.php b/src/config.php index 3bbc19a..86c7dfb 100644 --- a/src/config.php +++ b/src/config.php @@ -1,6 +1,7 @@