Completed
Push — master ( 1dd400...cdfa80 )
by Alexey
04:26
created
system/modules/Exchange1c/objects/Parser/Item/Options.php 1 patch
Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -13,75 +13,75 @@
 block discarded – undo
13 13
 
14 14
 class Options extends \Migrations\Parser {
15 15
 
16
-  static $options;
16
+    static $options;
17 17
 
18
-  public function parse() {
18
+    public function parse() {
19 19
     if (!Options::$options) {
20
-      Options::$options = \Ecommerce\Item\Option::getList();
20
+        Options::$options = \Ecommerce\Item\Option::getList();
21 21
     }
22 22
     $options = [];
23 23
     $modelName = 'Ecommerce\Item\Option';
24 24
     foreach ($this->data['ЗначенияСвойства'] as $opt) {
25
-      $optionId = \App::$cur->migrations->ids['parseIds']['Ecommerce\Item\Option'][$opt['Ид']]->object_id;
26
-      if ($optionId && !isset(Options::$options[$optionId])) {
25
+        $optionId = \App::$cur->migrations->ids['parseIds']['Ecommerce\Item\Option'][$opt['Ид']]->object_id;
26
+        if ($optionId && !isset(Options::$options[$optionId])) {
27 27
         Options::$options = \Ecommerce\Item\Option::getList();
28
-      }
29
-      if (isset(Options::$options[$optionId]) && Options::$options[$optionId]->type == 'select') {
28
+        }
29
+        if (isset(Options::$options[$optionId]) && Options::$options[$optionId]->type == 'select') {
30 30
         if (empty($options[$optionId])) {
31
-          $options[$optionId] = [];
31
+            $options[$optionId] = [];
32 32
         } else {
33
-          if (!Options::$options[$optionId]->advance) {
33
+            if (!Options::$options[$optionId]->advance) {
34 34
             Options::$options[$optionId]->advance = ['multi' => true];
35 35
             Options::$options[$optionId]->save();
36
-          }
36
+            }
37 37
         }
38 38
         if ($opt['Значение'] && isset(\App::$cur->migrations->ids['parseIds']['Ecommerce\Item\Option\Item'][$opt['Значение']])) {
39
-          $options[$optionId][] = \App::$cur->migrations->ids['parseIds']['Ecommerce\Item\Option\Item'][$opt['Значение']]->object_id;
39
+            $options[$optionId][] = \App::$cur->migrations->ids['parseIds']['Ecommerce\Item\Option\Item'][$opt['Значение']]->object_id;
40 40
         }
41
-      } else {
41
+        } else {
42 42
         $options[$optionId] = $opt['Значение'];
43
-      }
43
+        }
44 44
     }
45 45
     $itemParams = \Ecommerce\Item\Param::getList(['where' => ['item_id', $this->model->id]]);
46 46
     foreach ($itemParams as $itemParam) {
47
-      if ($itemParam->item_option_id && !isset(Options::$options[$itemParam->item_option_id])) {
47
+        if ($itemParam->item_option_id && !isset(Options::$options[$itemParam->item_option_id])) {
48 48
         Options::$options = \Ecommerce\Item\Option::getList();
49
-      }
50
-      if (isset(Options::$options[$itemParam->item_option_id]) && Options::$options[$itemParam->item_option_id]->type == 'select') {
49
+        }
50
+        if (isset(Options::$options[$itemParam->item_option_id]) && Options::$options[$itemParam->item_option_id]->type == 'select') {
51 51
         if (empty($options[$itemParam->item_option_id]) || !in_array($itemParam->value, $options[$itemParam->item_option_id])) {
52
-          $itemParam->delete();
52
+            $itemParam->delete();
53 53
         } else {
54
-          unset($options[$itemParam->item_option_id][array_search($itemParam->value, $options[$itemParam->item_option_id])]);
54
+            unset($options[$itemParam->item_option_id][array_search($itemParam->value, $options[$itemParam->item_option_id])]);
55 55
         }
56
-      } else {
56
+        } else {
57 57
         if (empty($options[$itemParam->item_option_id])) {
58
-          $itemParam->delete();
58
+            $itemParam->delete();
59 59
         } else {
60
-          $itemParam->value = $options[$itemParam->item_option_id];
61
-          $itemParam->save();
62
-          unset($options[$itemParam->item_option_id]);
60
+            $itemParam->value = $options[$itemParam->item_option_id];
61
+            $itemParam->save();
62
+            unset($options[$itemParam->item_option_id]);
63
+        }
63 64
         }
64
-      }
65 65
     }
66 66
     foreach ($options as $optionId => $values) {
67
-      if (is_array($values)) {
67
+        if (is_array($values)) {
68 68
         foreach ($values as $value) {
69
-          $itemParam = new \Ecommerce\Item\Param([
70
-              'item_option_id' => $optionId,
71
-              'item_id' => $this->model->id,
72
-              'value' => $value
73
-          ]);
74
-          $itemParam->save();
69
+            $itemParam = new \Ecommerce\Item\Param([
70
+                'item_option_id' => $optionId,
71
+                'item_id' => $this->model->id,
72
+                'value' => $value
73
+            ]);
74
+            $itemParam->save();
75 75
         }
76
-      } else {
76
+        } else {
77 77
         $itemParam = new \Ecommerce\Item\Param([
78 78
             'item_option_id' => $optionId,
79 79
             'item_id' => $this->model->id,
80 80
             'value' => $values
81 81
         ]);
82 82
         $itemParam->save();
83
-      }
83
+        }
84
+    }
84 85
     }
85
-  }
86 86
 
87 87
 }
Please login to merge, or discard this patch.
system/modules/Migrations/Migrations.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -12,10 +12,10 @@  discard block
 block discarded – undo
12 12
  */
13 13
 class Migrations extends \Module {
14 14
 
15
-  public $ids = [];
16
-  public $migrationObjects = [];
15
+    public $ids = [];
16
+    public $migrationObjects = [];
17 17
 
18
-  public function startMigration($migrationId, $mapId, $filePath) {
18
+    public function startMigration($migrationId, $mapId, $filePath) {
19 19
     $log = new \Migrations\Log();
20 20
     $log->migration_id = $migrationId;
21 21
     $log->migration_map_id = $mapId;
@@ -24,11 +24,11 @@  discard block
 block discarded – undo
24 24
 
25 25
     $reader = new Migrations\Reader\Xml();
26 26
     if (!$reader->loadData($filePath)) {
27
-      $event = new Migrations\Log\Event();
28
-      $event->log_id = $log->id;
29
-      $event->type = 'load_data_error';
30
-      $event->save();
31
-      return false;
27
+        $event = new Migrations\Log\Event();
28
+        $event->log_id = $log->id;
29
+        $event->type = 'load_data_error';
30
+        $event->save();
31
+        return false;
32 32
     }
33 33
     $walker = new \Migrations\Walker();
34 34
     $walker->migration = Migrations\Migration::get($migrationId);
@@ -38,43 +38,43 @@  discard block
 block discarded – undo
38 38
     $walker->walk();
39 39
     $log->result = 'success';
40 40
     $log->save();
41
-  }
41
+    }
42 42
 
43
-  public function loadParseIds($type) {
43
+    public function loadParseIds($type) {
44 44
     $this->ids['parseIds'][$type] = \Migrations\Id::getList(['where' => ['type', $type], 'key' => 'parse_id']);
45
-  }
45
+    }
46 46
 
47
-  public function loadObjectIds($type) {
47
+    public function loadObjectIds($type) {
48 48
     $this->ids['objectIds'][$type] = \Migrations\Id::getList(['where' => ['type', $type], 'key' => 'object_id']);
49
-  }
49
+    }
50 50
 
51
-  public function findObject($parseId, $type) {
51
+    public function findObject($parseId, $type) {
52 52
     if (empty($this->ids['parseIds'][$type])) {
53
-      $this->loadParseIds($type);
54
-      ksort($this->ids['parseIds'][$type]);
53
+        $this->loadParseIds($type);
54
+        ksort($this->ids['parseIds'][$type]);
55 55
     }
56 56
     if (!empty($this->ids['parseIds'][$type][$parseId])) {
57
-      return $this->ids['parseIds'][$type][$parseId];
57
+        return $this->ids['parseIds'][$type][$parseId];
58
+    }
58 59
     }
59
-  }
60 60
 
61
-  public function findParse($objectId, $type) {
61
+    public function findParse($objectId, $type) {
62 62
     if (empty($this->ids['objectIds'][$type])) {
63
-      $this->loadObjectIds($type);
64
-      ksort($this->ids['objectIds'][$type]);
63
+        $this->loadObjectIds($type);
64
+        ksort($this->ids['objectIds'][$type]);
65 65
     }
66 66
     if (!empty($this->ids['objectIds'][$type][$objectId])) {
67
-      return $this->ids['objectIds'][$type][$objectId];
67
+        return $this->ids['objectIds'][$type][$objectId];
68
+    }
68 69
     }
69
-  }
70 70
 
71
-  public function getMigrationObject($objectId) {
71
+    public function getMigrationObject($objectId) {
72 72
     if (empty($this->migrationObjects)) {
73
-      $this->migrationObjects = \Migrations\Migration\Object::getList();
73
+        $this->migrationObjects = \Migrations\Migration\Object::getList();
74 74
     }
75 75
     if (!empty($this->migrationObjects[$objectId])) {
76
-      return $this->migrationObjects[$objectId];
76
+        return $this->migrationObjects[$objectId];
77
+    }
77 78
     }
78
-  }
79 79
 
80 80
 }
Please login to merge, or discard this patch.
system/modules/Migrations/objects/Walker.php 1 patch
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -13,61 +13,61 @@  discard block
 block discarded – undo
13 13
 
14 14
 class Walker {
15 15
 
16
-  public $migration = null;
17
-  public $map = null;
18
-  public $data = null;
19
-  public $mapPath = null;
20
-  public $mapPathParent = null;
21
-  public $curPath = '/';
22
-  public $migtarionLog = null;
16
+    public $migration = null;
17
+    public $map = null;
18
+    public $data = null;
19
+    public $mapPath = null;
20
+    public $mapPathParent = null;
21
+    public $curPath = '/';
22
+    public $migtarionLog = null;
23 23
 
24
-  //walk map pathes on cur path
25
-  public function walk() {
24
+    //walk map pathes on cur path
25
+    public function walk() {
26 26
     $walked = [];
27 27
     //walk know pathes
28 28
     foreach ($this->map->paths(['where' => ['path', $this->curPath]]) as $path) {
29
-      if (isset($this->data[$path->item])) {
29
+        if (isset($this->data[$path->item])) {
30 30
         if ($path->type == 'container') { //create walker for container
31
-          $walker = new Walker();
32
-          $walker->migration = $this->migration;
33
-          $walker->map = $this->map;
34
-          $walker->data = &$this->data[$path->item];
35
-          $walker->curPath = $this->curPath . $path->item . '/';
36
-          $walker->mapPath = $path;
37
-          $walker->mapPathParent = $this->mapPath;
38
-          $walker->migtarionLog = $this->migtarionLog;
39
-          $walker->walk();
31
+            $walker = new Walker();
32
+            $walker->migration = $this->migration;
33
+            $walker->map = $this->map;
34
+            $walker->data = &$this->data[$path->item];
35
+            $walker->curPath = $this->curPath . $path->item . '/';
36
+            $walker->mapPath = $path;
37
+            $walker->mapPathParent = $this->mapPath;
38
+            $walker->migtarionLog = $this->migtarionLog;
39
+            $walker->walk();
40 40
         } elseif ($path->type == 'object') { //start parse path data
41
-          $this->startObjectParse($path->object_id, $this->data[$path->item]);
41
+            $this->startObjectParse($path->object_id, $this->data[$path->item]);
42 42
         }
43
-      }
44
-      $walked[$path->item] = true;
43
+        }
44
+        $walked[$path->item] = true;
45 45
     }
46 46
     //check unparsed paths
47 47
     foreach ($this->data as $key => &$data) {
48
-      //skip parsed and attribtes
49
-      if ($key == '@attributes' || !empty($walked[$key])) {
48
+        //skip parsed and attribtes
49
+        if ($key == '@attributes' || !empty($walked[$key])) {
50 50
         continue;
51
-      }
52
-      //search object for parse
53
-      $object = Migration\Object::get([
54
-                  ['code', $key],
55
-                  ['migration_id', $this->migration->id]
56
-      ]);
57
-      if ($object) { //parse as object
51
+        }
52
+        //search object for parse
53
+        $object = Migration\Object::get([
54
+                    ['code', $key],
55
+                    ['migration_id', $this->migration->id]
56
+        ]);
57
+        if ($object) { //parse as object
58 58
         $this->startObjectParse($object, $data);
59
-      } else { //create new map path for configure unknown path
59
+        } else { //create new map path for configure unknown path
60 60
         $this->mapPath = new Migration\Map\Path();
61 61
         $this->mapPath->parent_id = $this->mapPathParent ? $this->mapPathParent->id : 0;
62 62
         $this->mapPath->path = $this->curPath;
63 63
         $this->mapPath->item = $key;
64 64
         $this->mapPath->migration_map_id = $this->map->id;
65 65
         $this->mapPath->save();
66
-      }
66
+        }
67
+    }
67 68
     }
68
-  }
69 69
 
70
-  private function startObjectParse($object_id, &$data) {
70
+    private function startObjectParse($object_id, &$data) {
71 71
     $objectParser = new Parser\Object();
72 72
     $objectParser->object = is_object($object_id) ? $object_id : \App::$cur->migrations->getMigrationObject($object_id);
73 73
     $objectParser->data = $data;
@@ -76,33 +76,33 @@  discard block
 block discarded – undo
76 76
 
77 77
     if ($objectParser->object->clear && json_decode($objectParser->object->clear, true)) {
78 78
 
79
-      $where = json_decode($objectParser->object->clear, true);
80
-      if (!$where) {
79
+        $where = json_decode($objectParser->object->clear, true);
80
+        if (!$where) {
81 81
         $where = [];
82
-      } else {
82
+        } else {
83 83
         $where = [[$where]];
84
-      }
85
-      if ($ids) {
84
+        }
85
+        if ($ids) {
86 86
         $where[] = ['id', implode(',', $ids), 'NOT IN'];
87
-      }
88
-      if (empty(\App::$cur->migrations->ids['objectIds'])) {
87
+        }
88
+        if (empty(\App::$cur->migrations->ids['objectIds'])) {
89 89
         \App::$cur->migrations->loadObjectIds($objectParser->object->model);
90
-      }
91
-      if (!empty(\App::$cur->migrations->ids['objectIds'][$objectParser->object->model])) {
90
+        }
91
+        if (!empty(\App::$cur->migrations->ids['objectIds'][$objectParser->object->model])) {
92 92
         $where[] = ['id', implode(',', array_keys(\App::$cur->migrations->ids['objectIds'][$objectParser->object->model])), 'IN'];
93
-      }
94
-      $modelName = $objectParser->object->model;
95
-      $objects = $modelName::getList(['where' => $where]);
96
-      foreach ($objects as $object) {
93
+        }
94
+        $modelName = $objectParser->object->model;
95
+        $objects = $modelName::getList(['where' => $where]);
96
+        foreach ($objects as $object) {
97 97
         $objectId = \App::$cur->migrations->findParse($object->id, $objectParser->object->model);
98 98
         if ($objectId) {
99
-          $objectId->delete();
100
-          unset(\App::$cur->migrations->ids['objectIds'][$objectParser->object->model][$object->id]);
101
-          unset(\App::$cur->migrations->ids['parseIds'][$objectParser->object->model][$objectId->parse_id]);
99
+            $objectId->delete();
100
+            unset(\App::$cur->migrations->ids['objectIds'][$objectParser->object->model][$object->id]);
101
+            unset(\App::$cur->migrations->ids['parseIds'][$objectParser->object->model][$objectId->parse_id]);
102 102
         }
103 103
         $object->delete();
104
-      }
104
+        }
105
+    }
105 106
     }
106
-  }
107 107
 
108 108
 }
Please login to merge, or discard this patch.
system/modules/Ui/widgets/Form/select.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -4,36 +4,36 @@  discard block
 block discarded – undo
4 4
 $optionsHtml = '';
5 5
 
6 6
 foreach ($options['values'] as $key => $value) {
7
-  $selected = '';
7
+    $selected = '';
8 8
 
9
-  $primaryValue = isset($options['value']) ? $options['value'] : null;
10
-  $primaryValue = is_array($primaryValue) && isset($primaryValue['primary']) ? $primaryValue['primary'] : $primaryValue;
11
-  if (is_numeric($key) && !is_array($primaryValue) && $primaryValue !== '') {
9
+    $primaryValue = isset($options['value']) ? $options['value'] : null;
10
+    $primaryValue = is_array($primaryValue) && isset($primaryValue['primary']) ? $primaryValue['primary'] : $primaryValue;
11
+    if (is_numeric($key) && !is_array($primaryValue) && $primaryValue !== '') {
12 12
     $primaryValue = (int) $primaryValue;
13
-  }
14
-  if (
15
-          (!is_array($primaryValue) && ($key === $primaryValue || (isset($form->userDataTree[$name]) && $form->userDataTree[$name] === $key))) ||
13
+    }
14
+    if (
15
+            (!is_array($primaryValue) && ($key === $primaryValue || (isset($form->userDataTree[$name]) && $form->userDataTree[$name] === $key))) ||
16 16
           (is_array($primaryValue) && (in_array($key, $primaryValue) || (isset($form->userDataTree[$name]) && in_array($key, $form->userDataTree[$name]))))
17
-  ) {
17
+    ) {
18 18
     $selected = ' selected="selected"';
19
-  }
20
-  if (is_array($value)) {
19
+    }
20
+    if (is_array($value)) {
21 21
     $aditionalInputs[] = $value['input'];
22 22
     if ($selected) {
23
-      $showedInput = count($aditionalInputs) - 1;
24
-      $aditionValue = !empty($options['aditionalValue']) ? $options['aditionalValue'] : '';
23
+        $showedInput = count($aditionalInputs) - 1;
24
+        $aditionValue = !empty($options['aditionalValue']) ? $options['aditionalValue'] : '';
25 25
     }
26 26
     $optionsHtml .= "<option data-aditionalInput='" . ( count($aditionalInputs) - 1) . "' value ='{$key}'{$selected}>{$value['text']}</option>";
27
-  } else {
27
+    } else {
28 28
     $optionsHtml .= "<option value ='{$key}'{$selected}>{$value}</option>";
29
-  }
29
+    }
30 30
 }
31 31
 ?>
32 32
 <?= empty($options['noContainer']) ? '<div class="form-group">' : ''; ?>
33 33
 <?= $label !== false ? "<label>{$label}" : ''; ?>
34 34
 <?php
35 35
 if ($label !== false && !empty($options['createBtn'])) {
36
-  echo ' (<a href="" onclick="' . $options['createBtn']['onclick'] . ';this.disabled=true;return false;">' . $options['createBtn']['text'] . '</a>)';
36
+    echo ' (<a href="" onclick="' . $options['createBtn']['onclick'] . ';this.disabled=true;return false;">' . $options['createBtn']['text'] . '</a>)';
37 37
 }
38 38
 ?>
39 39
 <?= $label !== false ? "</label>" : ''; ?>
@@ -42,18 +42,18 @@  discard block
 block discarded – undo
42 42
 </select>
43 43
 <?php
44 44
 foreach ($aditionalInputs as $key => $input) {
45
-  $input['options']['noContainer'] = true;
45
+    $input['options']['noContainer'] = true;
46 46
 
47
-  if ($key !== $showedInput) {
47
+    if ($key !== $showedInput) {
48 48
     $input['options']['disabled'] = true;
49 49
     $input['options']['class'] = !empty($input['options']['class']) ? $input['options']['class'] . ' hidden' : 'hidden';
50
-  } else {
50
+    } else {
51 51
     $input['options']['value'] = empty($input['options']['value']) ? $aditionValue : $input['options']['value'];
52
-  }
53
-  if ($input['type'] == 'select') {
52
+    }
53
+    if ($input['type'] == 'select') {
54 54
     $input['options']['values'] = \Ui\ActiveForm::getOptionsList($input);
55
-  }
56
-  $form->input($input['type'], empty($input['name']) ? $name . '[aditional]' : $input['name'], false, $input['options']);
55
+    }
56
+    $form->input($input['type'], empty($input['name']) ? $name . '[aditional]' : $input['name'], false, $input['options']);
57 57
 }
58 58
 ?>
59 59
 <?= empty($options['noContainer']) ? '</div>' : ''; ?>
60 60
\ No newline at end of file
Please login to merge, or discard this patch.
system/modules/Ui/objects/ActiveForm/Input/Select.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
 
14 14
 class Select extends \Ui\ActiveForm\Input {
15 15
 
16
-  public function draw() {
16
+    public function draw() {
17 17
     $inputName = $this->colName();
18 18
     $inputLabel = $this->colLabel();
19 19
     $inputParams = $this->colParams;
@@ -25,41 +25,41 @@  discard block
 block discarded – undo
25 25
     ];
26 26
     $modelName = '';
27 27
     switch ($inputParams['source']) {
28
-      case 'model':
28
+        case 'model':
29 29
         $modelName = $inputParams['model'];
30 30
         break;
31
-      case 'relation':
31
+        case 'relation':
32 32
         if ($this->activeForm->modelName) {
33
-          $itemModelName = $this->activeForm->modelName;
34
-          $relation = $itemModelName::getRelation($inputParams['relation']);
35
-          if ($relation['model'] && class_exists($relation['model'])) {
33
+            $itemModelName = $this->activeForm->modelName;
34
+            $relation = $itemModelName::getRelation($inputParams['relation']);
35
+            if ($relation['model'] && class_exists($relation['model'])) {
36 36
             $modelName = $relation['model'];
37
-          }
37
+            }
38 38
         }
39 39
     }
40 40
     if (!empty($modelName)) {
41
-      $inputOptions['createBtn'] = [
42
-          'text' => 'Создать',
43
-          'onclick' => 'inji.Ui.forms.popUp(\'' . addslashes($modelName) . '\',{},function(elem){'
44
-          . 'return function(data,modal){inji.Ui.forms.submitAjax($(elem).closest(\'form\')[0], {notSave: true});}}(this));return false;'
45
-      ];
41
+        $inputOptions['createBtn'] = [
42
+            'text' => 'Создать',
43
+            'onclick' => 'inji.Ui.forms.popUp(\'' . addslashes($modelName) . '\',{},function(elem){'
44
+            . 'return function(data,modal){inji.Ui.forms.submitAjax($(elem).closest(\'form\')[0], {notSave: true});}}(this));return false;'
45
+        ];
46 46
     }
47 47
     if (!empty($inputOptions['values'][$this->activeForm->model->{$this->colName}]) &&
48 48
             is_array($inputOptions['values'][$this->activeForm->model->{$this->colName}]) &&
49 49
             !empty($inputOptions['values'][$this->activeForm->model->{$this->colName}]['input'])) {
50
-      $aditionalCol = $inputOptions['values'][$this->activeForm->model->{$this->colName}]['input']['name'];
51
-      $inputOptions['aditionalValue'] = $this->activeForm->model->$aditionalCol;
50
+        $aditionalCol = $inputOptions['values'][$this->activeForm->model->{$this->colName}]['input']['name'];
51
+        $inputOptions['aditionalValue'] = $this->activeForm->model->$aditionalCol;
52 52
     }
53 53
 
54 54
     $preset = $this->preset();
55 55
 
56 56
     if ($preset !== null) {
57
-      $inputOptions['disabled'] = true;
58
-      $this->form->input('hidden', $inputName, '', $inputOptions);
59
-      return true;
57
+        $inputOptions['disabled'] = true;
58
+        $this->form->input('hidden', $inputName, '', $inputOptions);
59
+        return true;
60 60
     }
61 61
     $this->form->input('select', $inputName, $inputLabel, $inputOptions);
62 62
     return true;
63
-  }
63
+    }
64 64
 
65 65
 }
Please login to merge, or discard this patch.
system/modules/Ui/objects/ActiveForm/Input.php 1 patch
Indentation   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -13,15 +13,15 @@  discard block
 block discarded – undo
13 13
 
14 14
 class Input extends \Object {
15 15
 
16
-  public $form = null;
17
-  public $activeForm = null;
18
-  public $activeFormParams = [];
19
-  public $modelName = '';
20
-  public $colName = '';
21
-  public $colParams = [];
22
-  public $options = [];
16
+    public $form = null;
17
+    public $activeForm = null;
18
+    public $activeFormParams = [];
19
+    public $modelName = '';
20
+    public $colName = '';
21
+    public $colParams = [];
22
+    public $options = [];
23 23
 
24
-  public function draw() {
24
+    public function draw() {
25 25
     $inputName = $this->colName();
26 26
     $inputLabel = $this->colLabel();
27 27
 
@@ -31,78 +31,78 @@  discard block
 block discarded – undo
31 31
 
32 32
     $preset = $this->preset();
33 33
     if ($preset !== null) {
34
-      $inputOptions['disabled'] = true;
35
-      $this->form->input('hidden', $inputName, '', $inputOptions);
36
-      return true;
34
+        $inputOptions['disabled'] = true;
35
+        $this->form->input('hidden', $inputName, '', $inputOptions);
36
+        return true;
37 37
     }
38 38
     $classPath = explode('\\', get_called_class());
39 39
     $inputType = lcfirst(array_pop($classPath));
40 40
     $this->form->input($inputType, $inputName, $inputLabel, $inputOptions);
41 41
     return true;
42
-  }
42
+    }
43 43
 
44
-  public function parseRequest($request) {
44
+    public function parseRequest($request) {
45 45
     $colName = empty($this->colParams['col']) ? $this->colName : $this->colParams['col'];
46 46
     if (isset($request[$this->colName])) {
47
-      $this->activeForm->model->{$colName} = $request[$this->colName];
47
+        $this->activeForm->model->{$colName} = $request[$this->colName];
48 48
     } else {
49
-      $this->activeForm->model->{$colName} = 0;
50
-      $this->activeForm->model->{$colName} = '';
49
+        $this->activeForm->model->{$colName} = 0;
50
+        $this->activeForm->model->{$colName} = '';
51
+    }
51 52
     }
52
-  }
53 53
 
54
-  public function value() {
54
+    public function value() {
55 55
     $value = isset($this->colParams['default']) ? $this->colParams['default'] : '';
56 56
     if ($this->activeForm) {
57
-      $colName = empty($this->colParams['col']) ? $this->colName : $this->colParams['col'];
58
-      $value = ($this->activeForm && $this->activeForm->model && isset($this->activeForm->model->{$colName})) ? $this->activeForm->model->{$colName} : $value;
57
+        $colName = empty($this->colParams['col']) ? $this->colName : $this->colParams['col'];
58
+        $value = ($this->activeForm && $this->activeForm->model && isset($this->activeForm->model->{$colName})) ? $this->activeForm->model->{$colName} : $value;
59 59
     }
60 60
     return $value;
61
-  }
61
+    }
62 62
 
63
-  public function preset() {
63
+    public function preset() {
64 64
     $preset = !empty($this->activeForm->form['preset'][$this->colName]) ? $this->activeForm->form['preset'][$this->colName] : [];
65 65
     if (!empty($this->activeForm->form['userGroupPreset'][\Users\User::$cur->group_id][$this->colName])) {
66
-      $preset = array_merge($preset, $this->activeForm->form['userGroupPreset'][\Users\User::$cur->group_id][$this->colName]);
66
+        $preset = array_merge($preset, $this->activeForm->form['userGroupPreset'][\Users\User::$cur->group_id][$this->colName]);
67 67
     }
68 68
     if ($preset) {
69
-      $value = '';
70
-      if (!empty($preset['value'])) {
69
+        $value = '';
70
+        if (!empty($preset['value'])) {
71 71
         $value = $preset['value'];
72
-      } elseif (!empty($preset['userCol'])) {
72
+        } elseif (!empty($preset['userCol'])) {
73 73
         if (strpos($preset['userCol'], ':')) {
74
-          $rel = substr($preset['userCol'], 0, strpos($preset['userCol'], ':'));
75
-          $param = substr($preset['userCol'], strpos($preset['userCol'], ':') + 1);
76
-          $value = \Users\User::$cur->$rel->$param;
74
+            $rel = substr($preset['userCol'], 0, strpos($preset['userCol'], ':'));
75
+            $param = substr($preset['userCol'], strpos($preset['userCol'], ':') + 1);
76
+            $value = \Users\User::$cur->$rel->$param;
77 77
         }
78
-      }
79
-      return $value;
78
+        }
79
+        return $value;
80 80
     }
81 81
     return null;
82
-  }
82
+    }
83 83
 
84
-  public function colName() {
84
+    public function colName() {
85 85
     return "{$this->activeForm->requestFormName}[{$this->activeForm->modelName}]".(stristr($this->colName, '[')?$this->colName:"[{$this->colName}]");
86
-  }
86
+    }
87 87
 
88
-  public function colLabel() {
88
+    public function colLabel() {
89 89
     $modelName = $this->modelName;
90 90
     return isset($this->colParams['label']) ? $this->colParams['label'] : (($this->activeForm->model && !empty($modelName::$labels[$this->colName])) ? $modelName::$labels[$this->colName] : $this->colName);
91
-  }
91
+    }
92 92
 
93
-  public function readOnly() {
93
+    public function readOnly() {
94 94
     return !empty($this->activeForm->form['userGroupReadonly'][\Users\User::$cur->group_id]) && in_array($this->colName, $this->activeForm->form['userGroupReadonly'][\Users\User::$cur->group_id]);
95
-  }
95
+    }
96 96
 
97
-  public function validate(&$request) {
97
+    public function validate(&$request) {
98 98
     if (empty($request[$this->colName]) && !empty($this->colParams['required'])) {
99
-      throw new \Exception('Вы не заполнили: ' . $this->colLabel());
99
+        throw new \Exception('Вы не заполнили: ' . $this->colLabel());
100 100
     }
101 101
     if (!empty($this->colParams['validator'])) {
102
-      $modelName = $this->modelName;
103
-      $validator = $modelName::validator($this->colParams['validator']);
104
-      $validator($this->activeForm, $request);
102
+        $modelName = $this->modelName;
103
+        $validator = $modelName::validator($this->colParams['validator']);
104
+        $validator($this->activeForm, $request);
105
+    }
105 106
     }
106
-  }
107 107
 
108 108
 }
Please login to merge, or discard this patch.
system/modules/Ecommerce/appAdminControllers/EcommerceController.php 1 patch
Indentation   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -10,28 +10,28 @@  discard block
 block discarded – undo
10 10
  */
11 11
 class EcommerceController extends adminController {
12 12
 
13
-  public function dashboardAction() {
13
+    public function dashboardAction() {
14 14
     $this->view->setTitle('Онлайн магазин');
15 15
     $forms = \Ecommerce\Item::$magicForms;
16 16
     \Ecommerce\Item::$forms['simpleItem']['handler']();
17 17
     $this->view->page();
18
-  }
18
+    }
19 19
 
20
-  public function configureAction() {
20
+    public function configureAction() {
21 21
     if (!empty($_POST['config'])) {
22
-      $config = App::$cur->ecommerce->config;
23
-      $config['view_empty_warehouse'] = empty($_POST['config']['view_empty_warehouse']) ? false : true;
24
-      $config['view_empty_image'] = empty($_POST['config']['view_empty_image']) ? false : true;
25
-      $config['sell_empty_warehouse'] = empty($_POST['config']['sell_empty_warehouse']) ? false : true;
26
-      $config['sell_over_warehouse'] = empty($_POST['config']['sell_over_warehouse']) ? false : true;
27
-      $config['notify_mail'] = $_POST['config']['notify_mail'];
28
-      $config['defaultCategoryView'] = $_POST['config']['defaultCategoryView'];
29
-      $config['defaultCurrency'] = $_POST['config']['defaultCurrency'];
30
-      $config['orderPrefix'] = $_POST['config']['orderPrefix'];
31
-      $config['show_zero_price'] = empty($_POST['config']['show_zero_price']) ? false : true;
32
-      $config['show_without_price'] = empty($_POST['config']['show_without_price']) ? false : true;
33
-      Config::save('module', $config, 'Ecommerce');
34
-      Tools::redirect('/admin/ecommerce/configure', 'Настройки были изменены', 'success');
22
+        $config = App::$cur->ecommerce->config;
23
+        $config['view_empty_warehouse'] = empty($_POST['config']['view_empty_warehouse']) ? false : true;
24
+        $config['view_empty_image'] = empty($_POST['config']['view_empty_image']) ? false : true;
25
+        $config['sell_empty_warehouse'] = empty($_POST['config']['sell_empty_warehouse']) ? false : true;
26
+        $config['sell_over_warehouse'] = empty($_POST['config']['sell_over_warehouse']) ? false : true;
27
+        $config['notify_mail'] = $_POST['config']['notify_mail'];
28
+        $config['defaultCategoryView'] = $_POST['config']['defaultCategoryView'];
29
+        $config['defaultCurrency'] = $_POST['config']['defaultCurrency'];
30
+        $config['orderPrefix'] = $_POST['config']['orderPrefix'];
31
+        $config['show_zero_price'] = empty($_POST['config']['show_zero_price']) ? false : true;
32
+        $config['show_without_price'] = empty($_POST['config']['show_without_price']) ? false : true;
33
+        Config::save('module', $config, 'Ecommerce');
34
+        Tools::redirect('/admin/ecommerce/configure', 'Настройки были изменены', 'success');
35 35
     }
36 36
     $managers = [
37 37
         'Ecommerce\Delivery',
@@ -51,51 +51,51 @@  discard block
 block discarded – undo
51 51
     ];
52 52
     $this->view->setTitle('Настройки магазина');
53 53
     $this->view->page(['data' => compact('managers')]);
54
-  }
54
+    }
55 55
 
56
-  public function reBlockIndexAction() {
56
+    public function reBlockIndexAction() {
57 57
     set_time_limit(0);
58 58
     $carts = Cart::getList();
59 59
     foreach ($carts as $cart) {
60
-      $cart->save();
60
+        $cart->save();
61 61
     }
62 62
     Tools::redirect('/admin/ecommerce/configure', 'Данные о блокировках обновлены');
63
-  }
63
+    }
64 64
 
65
-  public function reSearchIndexAction($i = 0) {
65
+    public function reSearchIndexAction($i = 0) {
66 66
     set_time_limit(0);
67 67
     $count = 100;
68 68
     $items = Ecommerce\Item::getList(['start' => $i * $count, 'limit' => $count]);
69 69
     if (!$items) {
70
-      Tools::redirect('/admin/ecommerce/configure', 'Поисковый индекс обновлен');
70
+        Tools::redirect('/admin/ecommerce/configure', 'Поисковый индекс обновлен');
71 71
     } else {
72
-      $i++;
73
-      foreach ($items as $key => $item) {
72
+        $i++;
73
+        foreach ($items as $key => $item) {
74 74
         $item->save();
75 75
         unset($items[$key]);
76 76
         unset($item);
77
-      }
78
-      echo 'Происходит процесс индексации: проиндексировано ' . $i * $count;
79
-      Tools::redirect('/admin/ecommerce/reSearchIndex/' . $i);
77
+        }
78
+        echo 'Происходит процесс индексации: проиндексировано ' . $i * $count;
79
+        Tools::redirect('/admin/ecommerce/reSearchIndex/' . $i);
80
+    }
80 81
     }
81
-  }
82 82
 
83
-  public function newOrdersSubscribeAction() {
83
+    public function newOrdersSubscribeAction() {
84 84
     $this->Notifications->subscribe('Ecommerce-orders');
85
-  }
85
+    }
86 86
 
87
-  public function closeCartAction($cartId = 0) {
87
+    public function closeCartAction($cartId = 0) {
88 88
     $cart = Ecommerce\Cart::get((int) $cartId);
89 89
     $result = new Server\Result();
90 90
     if ($cart && $cart->cart_status_id != 5) {
91
-      $cart->cart_status_id = 5;
92
-      $cart->save();
93
-      $result->successMsg = 'Заказ был завершен';
94
-      $result->send();
91
+        $cart->cart_status_id = 5;
92
+        $cart->save();
93
+        $result->successMsg = 'Заказ был завершен';
94
+        $result->send();
95 95
     }
96 96
     $result->success = false;
97 97
     $result->content = 'Такая корзина не найдена';
98 98
     $result->send();
99
-  }
99
+    }
100 100
 
101 101
 }
Please login to merge, or discard this patch.
system/modules/Ecommerce/models/Item.php 1 patch
Indentation   +202 added lines, -202 removed lines patch added patch discarded remove patch
@@ -13,57 +13,57 @@  discard block
 block discarded – undo
13 13
 
14 14
 class Item extends \Model {
15 15
 
16
-  public static $categoryModel = 'Ecommerce\Category';
17
-  public static $objectName = 'Товар';
18
-  public static $labels = [
19
-      'name' => 'Название',
20
-      'alias' => 'Алиас',
21
-      'category_id' => 'Раздел',
22
-      'description' => 'Описание',
23
-      'item_type_id' => 'Тип товара',
24
-      'image_file_id' => 'Изображение',
25
-      'best' => 'Лучшее предложение',
26
-      'options' => 'Параметры',
27
-      'offers' => 'Торговые предложения',
28
-      'widget' => 'Виджет для отображения в каталоге',
29
-      'view' => 'Шаблон для отображения полной информации',
30
-      'deleted' => 'Удален',
31
-      'imgs' => 'Фото'
32
-  ];
33
-  public static $cols = [
34
-      //Основные параметры
35
-      'category_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'category'],
36
-      'image_file_id' => ['type' => 'image'],
37
-      'name' => ['type' => 'text'],
38
-      'alias' => ['type' => 'text'],
39
-      'description' => ['type' => 'html'],
40
-      'item_type_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'type'],
41
-      'best' => ['type' => 'bool'],
42
-      'deleted' => ['type' => 'bool'],
43
-      //Системные
44
-      'user_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'user'],
45
-      'weight' => ['type' => 'number'],
46
-      'sales' => ['type' => 'number'],
47
-      'imported' => ['type' => 'text'],
48
-      'tree_path' => ['type' => 'text'],
49
-      'search_index' => ['type' => 'text'],
50
-      'date_create' => ['type' => 'dateTime'],
51
-      'widget' => ['type' => 'text'],
52
-      'view' => ['type' => 'text'],
53
-      //Менеджеры
54
-      'options' => ['type' => 'dataManager', 'relation' => 'options'],
55
-      'offers' => ['type' => 'dataManager', 'relation' => 'offers'],
56
-      'imgs' => ['type' => 'dataManager', 'relation' => 'images'],
57
-  ];
16
+    public static $categoryModel = 'Ecommerce\Category';
17
+    public static $objectName = 'Товар';
18
+    public static $labels = [
19
+        'name' => 'Название',
20
+        'alias' => 'Алиас',
21
+        'category_id' => 'Раздел',
22
+        'description' => 'Описание',
23
+        'item_type_id' => 'Тип товара',
24
+        'image_file_id' => 'Изображение',
25
+        'best' => 'Лучшее предложение',
26
+        'options' => 'Параметры',
27
+        'offers' => 'Торговые предложения',
28
+        'widget' => 'Виджет для отображения в каталоге',
29
+        'view' => 'Шаблон для отображения полной информации',
30
+        'deleted' => 'Удален',
31
+        'imgs' => 'Фото'
32
+    ];
33
+    public static $cols = [
34
+        //Основные параметры
35
+        'category_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'category'],
36
+        'image_file_id' => ['type' => 'image'],
37
+        'name' => ['type' => 'text'],
38
+        'alias' => ['type' => 'text'],
39
+        'description' => ['type' => 'html'],
40
+        'item_type_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'type'],
41
+        'best' => ['type' => 'bool'],
42
+        'deleted' => ['type' => 'bool'],
43
+        //Системные
44
+        'user_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'user'],
45
+        'weight' => ['type' => 'number'],
46
+        'sales' => ['type' => 'number'],
47
+        'imported' => ['type' => 'text'],
48
+        'tree_path' => ['type' => 'text'],
49
+        'search_index' => ['type' => 'text'],
50
+        'date_create' => ['type' => 'dateTime'],
51
+        'widget' => ['type' => 'text'],
52
+        'view' => ['type' => 'text'],
53
+        //Менеджеры
54
+        'options' => ['type' => 'dataManager', 'relation' => 'options'],
55
+        'offers' => ['type' => 'dataManager', 'relation' => 'offers'],
56
+        'imgs' => ['type' => 'dataManager', 'relation' => 'images'],
57
+    ];
58 58
 
59
-  public static function simpleItemHandler($request) {
59
+    public static function simpleItemHandler($request) {
60 60
     if ($request) {
61
-      $item = new Item();
62
-      $item->name = $request['name'];
63
-      $item->description = $request['description'];
64
-      $item->category_id = $request['category'];
65
-      $item->save();
66
-      if (!empty($_FILES['ActiveForm_simpleItem']['tmp_name']['Ecommerce\Item']['image'])) {
61
+        $item = new Item();
62
+        $item->name = $request['name'];
63
+        $item->description = $request['description'];
64
+        $item->category_id = $request['category'];
65
+        $item->save();
66
+        if (!empty($_FILES['ActiveForm_simpleItem']['tmp_name']['Ecommerce\Item']['image'])) {
67 67
         $file_id = \App::$primary->files->upload([
68 68
             'tmp_name' => $_FILES['ActiveForm_simpleItem']['tmp_name']['Ecommerce\Item']['image'],
69 69
             'name' => $_FILES['ActiveForm_simpleItem']['name']['Ecommerce\Item']['image'],
@@ -75,131 +75,131 @@  discard block
 block discarded – undo
75 75
             'accept_group' => 'image'
76 76
         ]);
77 77
         if ($file_id) {
78
-          $item->image_file_id = $file_id;
79
-          $item->save();
78
+            $item->image_file_id = $file_id;
79
+            $item->save();
80
+        }
80 81
         }
81
-      }
82
-      if (!empty($request['options']['option'])) {
82
+        if (!empty($request['options']['option'])) {
83 83
         foreach ($request['options']['option'] as $key => $option_id) {
84
-          $param = new Item\Param();
85
-          $param->item_id = $item->id;
86
-          $param->value = $request['options']['value'][$key];
87
-          $param->item_option_id = $option_id;
88
-          $param->save();
84
+            $param = new Item\Param();
85
+            $param->item_id = $item->id;
86
+            $param->value = $request['options']['value'][$key];
87
+            $param->item_option_id = $option_id;
88
+            $param->save();
89 89
         }
90
-      }
91
-      $offer = new Item\Offer();
92
-      $offer->item_id = $item->id;
93
-      $offer->save();
94
-      if (!empty($request['offerOptions']['option'])) {
90
+        }
91
+        $offer = new Item\Offer();
92
+        $offer->item_id = $item->id;
93
+        $offer->save();
94
+        if (!empty($request['offerOptions']['option'])) {
95 95
         foreach ($request['offerOptions']['option'] as $key => $option_id) {
96
-          $param = new Item\Offer\Param();
97
-          $param->item_offer_id = $offer->id;
98
-          $param->value = $request['offerOptions']['value'][$key];
99
-          $param->item_offer_option_id = $option_id;
100
-          $param->save();
96
+            $param = new Item\Offer\Param();
97
+            $param->item_offer_id = $offer->id;
98
+            $param->value = $request['offerOptions']['value'][$key];
99
+            $param->item_offer_option_id = $option_id;
100
+            $param->save();
101
+        }
101 102
         }
102
-      }
103
-      $price = new Item\Offer\Price();
104
-      $price->price = $request['price'];
105
-      $price->item_offer_id = $offer->id;
106
-      $price->currency_id = $request['currency'];
107
-      $price->save();
103
+        $price = new Item\Offer\Price();
104
+        $price->price = $request['price'];
105
+        $price->item_offer_id = $offer->id;
106
+        $price->currency_id = $request['currency'];
107
+        $price->save();
108
+    }
108 109
     }
109
-  }
110 110
 
111
-  public static $dataManagers = [
112
-      'manager' => [
113
-          'name' => 'Товары',
114
-          'cols' => [
115
-              'name',
116
-              'imgs',
117
-              'category_id',
118
-              'item_type_id',
119
-              'best',
120
-              'deleted',
121
-              'options',
122
-              'offers',
123
-          ],
124
-          'categorys' => [
125
-              'model' => 'Ecommerce\Category',
126
-          ],
127
-          'sortMode' => true
128
-      ]
129
-  ];
130
-  public static $forms = [
131
-      'manager' => [
132
-          'map' => [
133
-              ['name', 'alias'],
134
-              ['category_id', 'item_type_id', 'deleted'],
135
-              ['widget', 'view'],
136
-              ['best', 'image_file_id'],
137
-              ['description'],
138
-              ['imgs'],
139
-              ['options'],
140
-              ['offers'],
141
-          ]
142
-      ],
143
-      'simpleItem' => [
144
-          'options' => [
145
-              'access' => [
146
-                  'groups' => [
147
-                      3
148
-                  ]
149
-              ],
150
-          ],
151
-          'name' => 'Простой товар с ценой',
152
-          'inputs' => [
153
-              'name' => ['type' => 'text'],
154
-              'description' => ['type' => 'html'],
155
-              'category' => ['type' => 'select', 'source' => 'model', 'model' => 'Ecommerce\Category', 'label' => 'Категория'],
156
-              'image' => ['type' => 'image', 'label' => 'Изображение'],
157
-              'price' => ['type' => 'text', 'label' => 'Цена'],
158
-              'currency' => ['type' => 'select', 'source' => 'model', 'model' => 'Money\Currency', 'label' => 'Валюта'],
159
-              'options' => ['type' => 'dynamicList', 'source' => 'options', 'options' => [
160
-                      'inputs' => [
161
-                          'option' => ['type' => 'select', 'source' => 'model', 'model' => 'Ecommerce\Item\Option', 'label' => 'Свойство'],
162
-                          'value' => ['type' => 'dynamicType', 'typeSource' => 'selfMethod', 'selfMethod' => 'realType', 'label' => 'Значение'],
163
-                      ]
164
-                  ]
165
-              ],
166
-              'offerOptions' => ['type' => 'dynamicList', 'source' => 'options', 'options' => [
167
-                      'inputs' => [
168
-                          'option' => ['type' => 'select', 'source' => 'model', 'model' => 'Ecommerce\Item\Offer\Option', 'label' => 'Свойство предложения'],
169
-                          'value' => ['type' => 'dynamicType', 'typeSource' => 'selfMethod', 'selfMethod' => 'realType', 'label' => 'Значение'],
170
-                      ]
171
-                  ],'label'=>'Параметры предложения'
172
-              ]
173
-          ],
174
-          'map' => [
175
-              ['name', 'category'],
176
-              ['description'],
177
-              ['image'],
178
-              ['price', 'currency'],
179
-              ['options'],
180
-              ['offerOptions'],
181
-          ],
182
-          'handler' => 'simpleItemHandler'
183
-      ]
184
-  ];
111
+    public static $dataManagers = [
112
+        'manager' => [
113
+            'name' => 'Товары',
114
+            'cols' => [
115
+                'name',
116
+                'imgs',
117
+                'category_id',
118
+                'item_type_id',
119
+                'best',
120
+                'deleted',
121
+                'options',
122
+                'offers',
123
+            ],
124
+            'categorys' => [
125
+                'model' => 'Ecommerce\Category',
126
+            ],
127
+            'sortMode' => true
128
+        ]
129
+    ];
130
+    public static $forms = [
131
+        'manager' => [
132
+            'map' => [
133
+                ['name', 'alias'],
134
+                ['category_id', 'item_type_id', 'deleted'],
135
+                ['widget', 'view'],
136
+                ['best', 'image_file_id'],
137
+                ['description'],
138
+                ['imgs'],
139
+                ['options'],
140
+                ['offers'],
141
+            ]
142
+        ],
143
+        'simpleItem' => [
144
+            'options' => [
145
+                'access' => [
146
+                    'groups' => [
147
+                        3
148
+                    ]
149
+                ],
150
+            ],
151
+            'name' => 'Простой товар с ценой',
152
+            'inputs' => [
153
+                'name' => ['type' => 'text'],
154
+                'description' => ['type' => 'html'],
155
+                'category' => ['type' => 'select', 'source' => 'model', 'model' => 'Ecommerce\Category', 'label' => 'Категория'],
156
+                'image' => ['type' => 'image', 'label' => 'Изображение'],
157
+                'price' => ['type' => 'text', 'label' => 'Цена'],
158
+                'currency' => ['type' => 'select', 'source' => 'model', 'model' => 'Money\Currency', 'label' => 'Валюта'],
159
+                'options' => ['type' => 'dynamicList', 'source' => 'options', 'options' => [
160
+                        'inputs' => [
161
+                            'option' => ['type' => 'select', 'source' => 'model', 'model' => 'Ecommerce\Item\Option', 'label' => 'Свойство'],
162
+                            'value' => ['type' => 'dynamicType', 'typeSource' => 'selfMethod', 'selfMethod' => 'realType', 'label' => 'Значение'],
163
+                        ]
164
+                    ]
165
+                ],
166
+                'offerOptions' => ['type' => 'dynamicList', 'source' => 'options', 'options' => [
167
+                        'inputs' => [
168
+                            'option' => ['type' => 'select', 'source' => 'model', 'model' => 'Ecommerce\Item\Offer\Option', 'label' => 'Свойство предложения'],
169
+                            'value' => ['type' => 'dynamicType', 'typeSource' => 'selfMethod', 'selfMethod' => 'realType', 'label' => 'Значение'],
170
+                        ]
171
+                    ],'label'=>'Параметры предложения'
172
+                ]
173
+            ],
174
+            'map' => [
175
+                ['name', 'category'],
176
+                ['description'],
177
+                ['image'],
178
+                ['price', 'currency'],
179
+                ['options'],
180
+                ['offerOptions'],
181
+            ],
182
+            'handler' => 'simpleItemHandler'
183
+        ]
184
+    ];
185 185
 
186
-  public function realType() {
186
+    public function realType() {
187 187
     if ($this->option && $this->option->type) {
188
-      $type = $this->option->type;
188
+        $type = $this->option->type;
189 189
 
190
-      if ($type == 'select') {
190
+        if ($type == 'select') {
191 191
         return [
192 192
             'type' => 'select',
193 193
             'source' => 'relation',
194 194
             'relation' => 'option:items',
195 195
         ];
196
-      }
197
-      return $type;
196
+        }
197
+        return $type;
198 198
     }
199 199
     return 'text';
200
-  }
200
+    }
201 201
 
202
-  public static function indexes() {
202
+    public static function indexes() {
203 203
     return [
204 204
         'ecommerce_item_item_category_id' => [
205 205
             'type' => 'INDEX',
@@ -220,45 +220,45 @@  discard block
 block discarded – undo
220 220
             ]
221 221
         ],
222 222
     ];
223
-  }
223
+    }
224 224
 
225
-  public function beforeSave() {
225
+    public function beforeSave() {
226 226
 
227 227
     if ($this->id) {
228
-      $this->search_index = $this->name . ' ';
229
-      if ($this->category) {
228
+        $this->search_index = $this->name . ' ';
229
+        if ($this->category) {
230 230
         $this->search_index .= $this->category->name . ' ';
231
-      }
232
-      if ($this->options) {
231
+        }
232
+        if ($this->options) {
233 233
         foreach ($this->options as $option) {
234
-          if ($option->item_option_searchable && $option->value) {
234
+            if ($option->item_option_searchable && $option->value) {
235 235
             if ($option->item_option_type != 'select') {
236
-              $this->search_index .= $option->value . ' ';
236
+                $this->search_index .= $option->value . ' ';
237 237
             } elseif (!empty($option->option->items[$option->value])) {
238
-              $option->option->items[$option->value]->value . ' ';
238
+                $option->option->items[$option->value]->value . ' ';
239 239
             }
240
-          }
240
+            }
241
+        }
241 242
         }
242
-      }
243
-      if ($this->offers) {
243
+        if ($this->offers) {
244 244
         foreach ($this->offers as $offer) {
245
-          if ($offer->options) {
245
+            if ($offer->options) {
246 246
             foreach ($offer->options as $option) {
247
-              if ($option->item_offer_option_searchable && $option->value) {
247
+                if ($option->item_offer_option_searchable && $option->value) {
248 248
                 if ($option->item_offer_option_type != 'select') {
249
-                  $this->search_index .= $option->value . ' ';
249
+                    $this->search_index .= $option->value . ' ';
250 250
                 } elseif (!empty($option->option->items[$option->value])) {
251
-                  $option->option->items[$option->value]->value . ' ';
251
+                    $option->option->items[$option->value]->value . ' ';
252 252
                 }
253
-              }
253
+                }
254
+            }
254 255
             }
255
-          }
256 256
         }
257
-      }
257
+        }
258
+    }
258 259
     }
259
-  }
260 260
 
261
-  public static function relations() {
261
+    public static function relations() {
262 262
 
263 263
     return [
264 264
         'category' => [
@@ -296,55 +296,55 @@  discard block
 block discarded – undo
296 296
             'col' => 'user_id'
297 297
         ]
298 298
     ];
299
-  }
299
+    }
300 300
 
301
-  public function getPrice() {
301
+    public function getPrice() {
302 302
     $offers = $this->offers(['key' => false]);
303 303
     $curPrice = null;
304 304
 
305 305
     foreach ($offers[0]->prices as $price) {
306
-      if (!$price->type) {
306
+        if (!$price->type) {
307 307
         $curPrice = $price;
308
-      } elseif (
309
-              (!$price->type->roles && !$curPrice) ||
308
+        } elseif (
309
+                (!$price->type->roles && !$curPrice) ||
310 310
               ($price->type->roles && !$curPrice && strpos($price->type->roles, "|" . \Users\User::$cur->role_id . "|") !== false)
311
-      ) {
311
+        ) {
312 312
         $curPrice = $price;
313
-      }
313
+        }
314 314
     }
315 315
     return $curPrice;
316
-  }
316
+    }
317 317
 
318
-  public function name() {
318
+    public function name() {
319 319
     if (!empty(\App::$primary->ecommerce->config['item_option_as_name'])) {
320
-      $param = Item\Param::get([['item_id', $this->id], ['item_option_id', \App::$primary->ecommerce->config['item_option_as_name']]]);
321
-      if ($param && $param->value) {
320
+        $param = Item\Param::get([['item_id', $this->id], ['item_option_id', \App::$primary->ecommerce->config['item_option_as_name']]]);
321
+        if ($param && $param->value) {
322 322
         return $param->value;
323
-      }
323
+        }
324 324
     }
325 325
     return $this->name;
326
-  }
326
+    }
327 327
 
328
-  public function beforeDelete() {
328
+    public function beforeDelete() {
329 329
     if ($this->id) {
330
-      if ($this->options) {
330
+        if ($this->options) {
331 331
         foreach ($this->options as $option) {
332
-          $option->delete();
332
+            $option->delete();
333
+        }
333 334
         }
334
-      }
335
-      if ($this->offers) {
335
+        if ($this->offers) {
336 336
         foreach ($this->offers as $offer) {
337
-          $offer->delete();
337
+            $offer->delete();
338 338
         }
339
-      }
340
-      if ($this->image) {
339
+        }
340
+        if ($this->image) {
341 341
         $this->image->delete();
342
-      }
342
+        }
343
+    }
343 344
     }
344
-  }
345 345
 
346
-  public function getHref() {
346
+    public function getHref() {
347 347
     return "/ecommerce/view/{$this->pk()}";
348
-  }
348
+    }
349 349
 
350 350
 }
Please login to merge, or discard this patch.
system/Inji/Tools.php 1 patch
Indentation   +227 added lines, -227 removed lines patch added patch discarded remove patch
@@ -12,84 +12,84 @@  discard block
 block discarded – undo
12 12
  */
13 13
 class Tools extends Model {
14 14
 
15
-  /**
16
-   * Return random string
17
-   * 
18
-   * @param int $length
19
-   * @param string $characters
20
-   * @return string
21
-   */
22
-  public static function randomString($length = 20, $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') {
15
+    /**
16
+     * Return random string
17
+     * 
18
+     * @param int $length
19
+     * @param string $characters
20
+     * @return string
21
+     */
22
+    public static function randomString($length = 20, $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') {
23 23
     $charactersLength = strlen($characters);
24 24
     $randomString = '';
25 25
     for ($i = 0; $i < $length; $i++) {
26
-      $randomString .= $characters[rand(0, $charactersLength - 1)];
26
+        $randomString .= $characters[rand(0, $charactersLength - 1)];
27 27
     }
28 28
     return $randomString;
29
-  }
29
+    }
30 30
 
31
-  /**
32
-   * Clean and return user query params
33
-   * 
34
-   * @param string $uri
35
-   * @return array
36
-   */
37
-  public static function uriParse($uri) {
31
+    /**
32
+     * Clean and return user query params
33
+     * 
34
+     * @param string $uri
35
+     * @return array
36
+     */
37
+    public static function uriParse($uri) {
38 38
     $answerPos = strpos($uri, '?');
39 39
     $params = array_slice(explode('/', substr($uri, 0, $answerPos ? $answerPos : strlen($uri) )), 1);
40 40
 
41 41
     foreach ($params as $key => $param) {
42
-      if ($param != '') {
42
+        if ($param != '') {
43 43
         $params[$key] = urldecode($param);
44
-      } else {
44
+        } else {
45 45
         unset($params[$key]);
46
-      }
46
+        }
47 47
     }
48 48
     return $params;
49
-  }
49
+    }
50 50
 
51
-  /**
52
-   * Recursive create dir
53
-   * 
54
-   * @param string $path
55
-   * @return boolean
56
-   */
57
-  public static function createDir($path) {
51
+    /**
52
+     * Recursive create dir
53
+     * 
54
+     * @param string $path
55
+     * @return boolean
56
+     */
57
+    public static function createDir($path) {
58 58
     if (file_exists($path))
59
-      return true;
59
+        return true;
60 60
 
61 61
     $path = explode('/', $path);
62 62
     $cur = '';
63 63
     foreach ($path as $item) {
64
-      $cur .= $item . '/';
65
-      if (!file_exists($cur)) {
64
+        $cur .= $item . '/';
65
+        if (!file_exists($cur)) {
66 66
         mkdir($cur);
67
-      }
67
+        }
68 68
     }
69 69
     return true;
70
-  }
70
+    }
71 71
 
72
-  /**
73
-   * Resize image in path
74
-   * 
75
-   * @param string $img_path
76
-   * @param int $max_width
77
-   * @param int $max_height
78
-   * @param string|false $crop
79
-   * @param string $pos
80
-   * @return string
81
-   */
82
-  public static function resizeImage($img_path, $max_width = 1000, $max_height = 1000, $crop = false, $pos = 'center') {
72
+    /**
73
+     * Resize image in path
74
+     * 
75
+     * @param string $img_path
76
+     * @param int $max_width
77
+     * @param int $max_height
78
+     * @param string|false $crop
79
+     * @param string $pos
80
+     * @return string
81
+     */
82
+    public static function resizeImage($img_path, $max_width = 1000, $max_height = 1000, $crop = false, $pos = 'center') {
83 83
     ini_set("gd.jpeg_ignore_warning", 1);
84 84
     list( $img_width, $img_height, $img_type, $img_tag ) = getimagesize($img_path);
85 85
     switch ($img_type) {
86
-      case 1:
86
+        case 1:
87 87
         $img_type = 'gif';
88 88
         break;
89
-      case 3:
89
+        case 3:
90 90
         $img_type = 'png';
91 91
         break;
92
-      case 2:
92
+        case 2:
93 93
       default:
94 94
         $img_type = 'jpeg';
95 95
         break;
@@ -97,55 +97,55 @@  discard block
 block discarded – undo
97 97
     $imagecreatefromX = "imagecreatefrom{$img_type}";
98 98
     $src_res = $imagecreatefromX($img_path);
99 99
     if (!$src_res) {
100
-      return false;
100
+        return false;
101 101
     }
102 102
 
103 103
     if ($img_width / $max_width > $img_height / $max_height)
104
-      $separator = $img_width / $max_width;
104
+        $separator = $img_width / $max_width;
105 105
     else
106
-      $separator = $img_height / $max_height;
106
+        $separator = $img_height / $max_height;
107 107
 
108 108
     if ($crop === true || $crop == 'q') {
109
-      if ($img_width > $img_height) {
109
+        if ($img_width > $img_height) {
110 110
         $imgX = floor(( $img_width - $img_height ) / 2);
111 111
         $imgY = 0;
112 112
         $img_width = $img_height;
113 113
         $new_width = $max_width;
114 114
         $new_height = $max_height;
115
-      } else {
115
+        } else {
116 116
         $imgX = 0;
117 117
         $imgY = floor(( $img_height - $img_width ) / 2);
118 118
         $img_height = $img_width;
119 119
         $new_width = $max_width;
120 120
         $new_height = $max_height;
121
-      }
122
-      if ($pos == 'top') {
121
+        }
122
+        if ($pos == 'top') {
123 123
         $imgY = 0;
124
-      }
124
+        }
125 125
     } elseif ($crop == 'c') {
126 126
 //Вычисляем некий коэффициент масштабирования
127
-      $k1 = $img_width / $max_width;
128
-      $k2 = $img_height / $max_height;
129
-      $k = $k1 > $k2 ? $k2 : $k1;
130
-      $ow = $img_width;
131
-      $oh = $img_height;
127
+        $k1 = $img_width / $max_width;
128
+        $k2 = $img_height / $max_height;
129
+        $k = $k1 > $k2 ? $k2 : $k1;
130
+        $ow = $img_width;
131
+        $oh = $img_height;
132 132
 //Вычисляем размеры области для нового изображения
133
-      $img_width = intval($max_width * $k);
134
-      $img_height = intval($max_height * $k);
135
-      $new_width = $max_width;
136
-      $new_height = $max_height;
133
+        $img_width = intval($max_width * $k);
134
+        $img_height = intval($max_height * $k);
135
+        $new_width = $max_width;
136
+        $new_height = $max_height;
137 137
 //Находим начальные координаты (центрируем новое изображение)
138
-      $imgX = (int) (($ow / 2) - ($img_width / 2) );
139
-      if ($pos == 'center') {
138
+        $imgX = (int) (($ow / 2) - ($img_width / 2) );
139
+        if ($pos == 'center') {
140 140
         $imgY = (int) (($oh / 2) - ($img_height / 2));
141
-      } else {
141
+        } else {
142 142
         $imgY = 0;
143
-      }
143
+        }
144 144
     } else {
145
-      $imgX = 0;
146
-      $imgY = 0;
147
-      $new_width = floor($img_width / $separator);
148
-      $new_height = floor($img_height / $separator);
145
+        $imgX = 0;
146
+        $imgY = 0;
147
+        $new_width = floor($img_width / $separator);
148
+        $new_height = floor($img_height / $separator);
149 149
     }
150 150
 
151 151
     $new_res = imagecreatetruecolor($new_width, $new_height);
@@ -154,128 +154,128 @@  discard block
 block discarded – undo
154 154
     imagecopyresampled($new_res, $src_res, 0, 0, $imgX, $imgY, $new_width, $new_height, $img_width, $img_height);
155 155
 
156 156
     if ($img_type == 'jpeg') {
157
-      imageinterlace($new_res, 1); // чересстрочное формирование изображение
158
-      imagejpeg($new_res, $img_path, 85);
157
+        imageinterlace($new_res, 1); // чересстрочное формирование изображение
158
+        imagejpeg($new_res, $img_path, 85);
159 159
     } else {
160
-      $imageX = "image{$img_type}";
161
-      $imageX($new_res, $img_path);
160
+        $imageX = "image{$img_type}";
161
+        $imageX($new_res, $img_path);
162 162
     }
163 163
 
164 164
     imagedestroy($new_res);
165 165
     imagedestroy($src_res);
166 166
     return $img_type;
167
-  }
167
+    }
168 168
 
169
-  /**
170
-   * Send mail
171
-   * 
172
-   * @param string $from
173
-   * @param string $to
174
-   * @param string $subject
175
-   * @param string $text
176
-   * @param string $charset
177
-   * @param string $ctype
178
-   * @return boolean
179
-   */
180
-  public static function sendMail($from, $to, $subject, $text, $charset = 'utf-8', $ctype = 'text/html') {
169
+    /**
170
+     * Send mail
171
+     * 
172
+     * @param string $from
173
+     * @param string $to
174
+     * @param string $subject
175
+     * @param string $text
176
+     * @param string $charset
177
+     * @param string $ctype
178
+     * @return boolean
179
+     */
180
+    public static function sendMail($from, $to, $subject, $text, $charset = 'utf-8', $ctype = 'text/html') {
181 181
     $msg = compact('from', 'to', 'subject', 'text', 'charset', 'ctype');
182 182
     $msg = Inji::$inst->event('sendMail', $msg);
183 183
     if (is_array($msg)) {
184
-      $headers = "From: {$msg['from']}\r\n";
185
-      $headers .= "Content-type: {$msg['ctype']}; charset={$msg['charset']}\r\n";
186
-      $headers .= "Mime-Version: 1.0\r\n";
187
-      return mail($msg['to'], $msg['subject'], $msg['text'], $headers);
184
+        $headers = "From: {$msg['from']}\r\n";
185
+        $headers .= "Content-type: {$msg['ctype']}; charset={$msg['charset']}\r\n";
186
+        $headers .= "Mime-Version: 1.0\r\n";
187
+        return mail($msg['to'], $msg['subject'], $msg['text'], $headers);
188 188
     }
189 189
     return $msg;
190
-  }
190
+    }
191 191
 
192
-  /**
193
-   * Redirect user from any place of code
194
-   * 
195
-   * Also add message to message query for view
196
-   * 
197
-   * @param string $href
198
-   * @param string $text
199
-   * @param string $status
200
-   */
201
-  public static function redirect($href = null, $text = false, $status = 'info') {
192
+    /**
193
+     * Redirect user from any place of code
194
+     * 
195
+     * Also add message to message query for view
196
+     * 
197
+     * @param string $href
198
+     * @param string $text
199
+     * @param string $status
200
+     */
201
+    public static function redirect($href = null, $text = false, $status = 'info') {
202 202
     if ($href === null) {
203
-      $href = $_SERVER['REQUEST_URI'];
203
+        $href = $_SERVER['REQUEST_URI'];
204 204
     }
205 205
     if ($text !== false) {
206
-      Msg::add($text, $status);
206
+        Msg::add($text, $status);
207 207
     }
208 208
     if (!headers_sent()) {
209
-      header("Location: {$href}");
209
+        header("Location: {$href}");
210 210
     } else {
211
-      echo '\'"><script>window.location="' . $href . '";</script>';
211
+        echo '\'"><script>window.location="' . $href . '";</script>';
212 212
     }
213 213
     exit("Перенаправление на: <a href = '{$href}'>{$href}</a>");
214
-  }
214
+    }
215 215
 
216
-  /**
217
-   * Функция возвращает окончание для множественного числа слова на основании числа и массива окончаний
218
-   * @param  $number Integer Число на основе которого нужно сформировать окончание
219
-   * @param  $endingsArray  Array Массив слов или окончаний для чисел (1, 4, 5),
220
-   *         например array('яблоко', 'яблока', 'яблок')
221
-   * @return String
222
-   */
223
-  public static function getNumEnding($number, $endingArray) {
216
+    /**
217
+     * Функция возвращает окончание для множественного числа слова на основании числа и массива окончаний
218
+     * @param  $number Integer Число на основе которого нужно сформировать окончание
219
+     * @param  $endingsArray  Array Массив слов или окончаний для чисел (1, 4, 5),
220
+     *         например array('яблоко', 'яблока', 'яблок')
221
+     * @return String
222
+     */
223
+    public static function getNumEnding($number, $endingArray) {
224 224
     $number = $number % 100;
225 225
     if ($number >= 11 && $number <= 19) {
226
-      $ending = $endingArray[2];
226
+        $ending = $endingArray[2];
227 227
     } else {
228
-      $i = $number % 10;
229
-      switch ($i) {
228
+        $i = $number % 10;
229
+        switch ($i) {
230 230
         case (1): $ending = $endingArray[0];
231
-          break;
231
+            break;
232 232
         case (2):
233 233
         case (3):
234 234
         case (4): $ending = $endingArray[1];
235
-          break;
235
+            break;
236 236
         default: $ending = $endingArray[2];
237
-      }
237
+        }
238 238
     }
239 239
     return $ending;
240
-  }
240
+    }
241 241
 
242
-  /**
243
-   * Clean request path
244
-   * 
245
-   * @param string $path
246
-   * @return string
247
-   */
248
-  public static function parsePath($path) {
242
+    /**
243
+     * Clean request path
244
+     * 
245
+     * @param string $path
246
+     * @return string
247
+     */
248
+    public static function parsePath($path) {
249 249
     $path = str_replace('\\', '/', $path);
250 250
     $pathArray = explode('/', $path);
251 251
     $cleanPathArray = [];
252 252
     do {
253
-      $changes = 0;
254
-      foreach ($pathArray as $pathItem) {
253
+        $changes = 0;
254
+        foreach ($pathArray as $pathItem) {
255 255
         if (trim($pathItem) === '' || $pathItem == '.') {
256
-          $changes++;
257
-          continue;
256
+            $changes++;
257
+            continue;
258 258
         }
259 259
         if ($pathItem == '..') {
260
-          array_pop($cleanPathArray);
261
-          $changes++;
262
-          continue;
260
+            array_pop($cleanPathArray);
261
+            $changes++;
262
+            continue;
263 263
         }
264 264
         $cleanPathArray[] = $pathItem;
265
-      }
266
-      $pathArray = $cleanPathArray;
267
-      $cleanPathArray = [];
265
+        }
266
+        $pathArray = $cleanPathArray;
267
+        $cleanPathArray = [];
268 268
     } while ($changes);
269 269
     return (strpos($path, '/') === 0 ? '/' : '') . implode('/', $pathArray);
270
-  }
270
+    }
271 271
 
272
-  /**
273
-   * Show date in rus
274
-   * 
275
-   * @param string $date
276
-   * @return string
277
-   */
278
-  public static function toRusDate($date) {
272
+    /**
273
+     * Show date in rus
274
+     * 
275
+     * @param string $date
276
+     * @return string
277
+     */
278
+    public static function toRusDate($date) {
279 279
     $yy = (int) substr($date, 0, 4);
280 280
     $mm = (int) substr($date, 5, 2);
281 281
     $dd = (int) substr($date, 8, 2);
@@ -284,114 +284,114 @@  discard block
 block discarded – undo
284 284
 
285 285
     $month = array('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
286 286
     if (empty($month[$mm - 1])) {
287
-      return 'Не указано';
287
+        return 'Не указано';
288 288
     }
289 289
     return ($dd > 0 ? $dd . " " : '') . $month[$mm - 1] . " " . $yy . " " . $hours;
290
-  }
290
+    }
291 291
 
292
-  /**
293
-   * Set header
294
-   * 
295
-   * @param string $code
296
-   * @param boolean $exit
297
-   */
298
-  public static function header($code, $exit = false) {
292
+    /**
293
+     * Set header
294
+     * 
295
+     * @param string $code
296
+     * @param boolean $exit
297
+     */
298
+    public static function header($code, $exit = false) {
299 299
     if (!headers_sent()) {
300
-      switch ($code) {
300
+        switch ($code) {
301 301
         case '404':
302 302
           header('HTTP/1.1 404 Not Found');
303
-          break;
303
+            break;
304 304
         default :
305 305
           header($code);
306
-      }
306
+        }
307 307
     }
308 308
     if ($exit) {
309
-      exit;
309
+        exit;
310
+    }
310 311
     }
311
-  }
312 312
 
313
-  /**
314
-   * Return exist path from array
315
-   * 
316
-   * If no exist path in array - return default
317
-   * 
318
-   * @param array $paths
319
-   * @param string|false $default
320
-   * @return string|false
321
-   */
322
-  public static function pathsResolve($paths = [], $default = false) {
313
+    /**
314
+     * Return exist path from array
315
+     * 
316
+     * If no exist path in array - return default
317
+     * 
318
+     * @param array $paths
319
+     * @param string|false $default
320
+     * @return string|false
321
+     */
322
+    public static function pathsResolve($paths = [], $default = false) {
323 323
     foreach ($paths as $path) {
324
-      if (file_exists($path)) {
324
+        if (file_exists($path)) {
325 325
         return $path;
326
-      }
326
+        }
327 327
     }
328 328
     return $default;
329
-  }
329
+    }
330 330
 
331
-  /**
332
-   * Convert acronyms to bites
333
-   * 
334
-   * @param string $val
335
-   * @return int
336
-   */
337
-  public static function toBytes($val) {
331
+    /**
332
+     * Convert acronyms to bites
333
+     * 
334
+     * @param string $val
335
+     * @return int
336
+     */
337
+    public static function toBytes($val) {
338 338
     $val = trim($val);
339 339
     $last = strtolower($val[strlen($val) - 1]);
340 340
     switch ($last) {
341
-      case 'g':
341
+        case 'g':
342 342
         $val *= 1024;
343
-      case 'm':
343
+        case 'm':
344 344
         $val *= 1024;
345
-      case 'k':
345
+        case 'k':
346 346
         $val *= 1024;
347 347
     }
348 348
 
349 349
     return $val;
350
-  }
350
+    }
351 351
 
352
-  /**
353
-   * Recursive copy directories and files
354
-   * 
355
-   * @param string $from
356
-   * @param string $to
357
-   */
358
-  public static function copyFiles($from, $to) {
352
+    /**
353
+     * Recursive copy directories and files
354
+     * 
355
+     * @param string $from
356
+     * @param string $to
357
+     */
358
+    public static function copyFiles($from, $to) {
359 359
     $from = rtrim($from, '/');
360 360
     $to = rtrim($to, '/');
361 361
     self::createDir($to);
362 362
     $files = scandir($from);
363 363
     foreach ($files as $file) {
364
-      if (in_array($file, ['.', '..'])) {
364
+        if (in_array($file, ['.', '..'])) {
365 365
         continue;
366
-      }
367
-      if (is_dir($from . '/' . $file)) {
366
+        }
367
+        if (is_dir($from . '/' . $file)) {
368 368
         self::copyFiles($from . '/' . $file, $to . '/' . $file);
369
-      } else {
369
+        } else {
370 370
         copy($from . '/' . $file, $to . '/' . $file);
371
-      }
371
+        }
372
+    }
372 373
     }
373
-  }
374 374
 
375
-  /**
376
-   * Translit function
377
-   * 
378
-   * @param string $str
379
-   * @return string
380
-   */
381
-  public static function translit($str) {
375
+    /**
376
+     * Translit function
377
+     * 
378
+     * @param string $str
379
+     * @return string
380
+     */
381
+    public static function translit($str) {
382 382
     $rus = array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');
383 383
     $lat = array('A', 'B', 'V', 'G', 'D', 'E', 'E', 'Gh', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', 'Ch', 'Sh', 'Sch', 'Y', 'Y', 'Y', 'E', 'Yu', 'Ya', 'a', 'b', 'v', 'g', 'd', 'e', 'e', 'gh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', 'y', 'y', 'y', 'e', 'yu', 'ya');
384 384
     return str_replace($rus, $lat, $str);
385
-  }
385
+    }
386 386
 
387
-  /**
388
-   * get youtube video ID from URL
389
-   *
390
-   * @author http://stackoverflow.com/a/6556662
391
-   * @param string $url
392
-   * @return string Youtube video id or FALSE if none found. 
393
-   */
394
-  public static function youtubeIdFromUrl($url) {
387
+    /**
388
+     * get youtube video ID from URL
389
+     *
390
+     * @author http://stackoverflow.com/a/6556662
391
+     * @param string $url
392
+     * @return string Youtube video id or FALSE if none found. 
393
+     */
394
+    public static function youtubeIdFromUrl($url) {
395 395
     $pattern = '%^# Match any youtube URL
396 396
         (?:https?://)?  # Optional scheme. Either http or https
397 397
         (?:www\.)?      # Optional www subdomain
@@ -409,20 +409,20 @@  discard block
 block discarded – undo
409 409
     ;
410 410
     $result = preg_match($pattern, $url, $matches);
411 411
     if (false !== $result) {
412
-      return $matches[1];
412
+        return $matches[1];
413 413
     }
414 414
     return false;
415
-  }
415
+    }
416 416
 
417
-  /**
418
-   * check array is associative
419
-   *
420
-   * @author http://stackoverflow.com/a/173479
421
-   * @param array $arr
422
-   * @return boolean
423
-   */
424
-  public static function isAssoc(&$arr) {
417
+    /**
418
+     * check array is associative
419
+     *
420
+     * @author http://stackoverflow.com/a/173479
421
+     * @param array $arr
422
+     * @return boolean
423
+     */
424
+    public static function isAssoc(&$arr) {
425 425
     return array_keys($arr) !== range(0, count($arr) - 1);
426
-  }
426
+    }
427 427
 
428 428
 }
Please login to merge, or discard this patch.