GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

m141023_084857_init::up()   F
last analyzed

Complexity

Conditions 26
Paths 1470

Size

Total Lines 1884

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1884
rs 0
c 0
b 0
f 0
cc 26
nc 1470
nop 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
use app\backend\models\ApiService;
4
use app\backend\models\Notification;
5
use app\backend\models\OrderChat;
6
use app\components\Helper;
7
use app\modules\shop\models\Category;
8
use app\modules\shop\models\CategoryGroup;
9
use app\modules\shop\models\CategoryGroupRouteTemplates;
10
use app\models\DynamicContent;
11
use app\models\ErrorLog;
12
use app\models\ErrorUrl;
13
use app\models\Form;
14
use app\modules\image\models\Image;
15
use app\models\Layout;
16
use app\models\BaseObject;
17
use app\models\ObjectPropertyGroup;
18
use app\models\ObjectStaticValues;
19
use app\modules\shop\models\Order;
20
use app\modules\shop\models\OrderItem;
21
use app\modules\shop\models\OrderTransaction;
22
use app\modules\page\models\Page;
23
use app\modules\shop\models\PaymentType;
24
use app\modules\shop\models\Product;
25
use app\models\Property;
26
use app\models\PropertyGroup;
27
use app\models\PropertyHandler;
28
use app\models\PropertyStaticValues;
29
use app\models\Route;
30
use app\modules\shop\models\ShippingOption;
31
use app\models\Submission;
32
use app\models\SubscribeEmail;
33
use app\modules\review\models\Review;
34
use app\modules\user\models\User;
35
use app\modules\user\models\UserService;
36
use app\models\View;
37
use app\models\ViewObject;
38
use app\widgets\navigation\models\Navigation;
39
use yii\db\Migration;
40
use yii\helpers\Json;
41
42
class m141023_084857_init extends Migration
43
{
44
    public function up()
45
    {
46
        mb_internal_encoding("UTF-8");
47
        // Schemes
48
        $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB';
49
        $this->createTable(
50
            ApiService::tableName(),
51
            [
52
                'service_id' => 'VARCHAR(255) NOT NULL PRIMARY KEY',
53
                'access_token' => 'VARCHAR(255) NOT NULL',
54
                'token_type' => 'VARCHAR(255) NOT NULL ',
55
                'expires_in' => 'INT UNSIGNED NOT NULL ',
56
                'create_ts' => 'INT UNSIGNED NOT NULL ',
57
            ],
58
            $tableOptions
59
        );
60
        $this->createTable(
61
            '{{%session}}',
62
            [
63
                'id' => 'char(40) NOT NULL PRIMARY KEY',
64
                'expire' => 'INT DEFAULT NULL',
65
                'data' => 'BLOB',
66
            ],
67
            $tableOptions
68
        );
69
        $this->createTable(
70
            Image::tableName(),
71
            [
72
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
73
                'object_id' => 'INT UNSIGNED NOT NULL',
74
                'object_model_id' => 'INT UNSIGNED NOT NULL',
75
                'filename' => 'VARCHAR(255) NOT NULL',
76
                'image_src' => 'VARCHAR(255) NOT NULL',
77
                'thumbnail_src' => 'VARCHAR(255) DEFAULT NULL',
78
                'image_description' => 'VARCHAR(255) NOT NULL',
79
                'sort_order' => 'INT DEFAULT \'0\'',
80
                'KEY `ix-image-object_id-object_model_id` (`object_id`, `object_model_id`)',
81
                'KEY `ix-image-filename` (`filename`)',
82
            ],
83
            $tableOptions
84
        );
85
        $this->createTable(
86
            Navigation::tableName(),
87
            [
88
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
89
                'parent_id' => 'INT UNSIGNED NOT NULL',
90
                'name' => 'VARCHAR(255) NOT NULL',
91
                'url' => 'VARCHAR(255)',
92
                'route' => 'VARCHAR(255)',
93
                'route_params' => 'TEXT DEFAULT NULL',
94
                'advanced_css_class' => 'VARCHAR(255)',
95
                'sort_order' => 'INT DEFAULT \'0\'',
96
                'KEY `ix-navigation-parent_id` (`parent_id`)',
97
            ],
98
            $tableOptions
99
        );
100
        $this->createTable(
101
            DynamicContent::tableName(),
102
            [
103
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
104
                'route' => 'VARCHAR(255) DEFAULT NULL',
105
                'name' => 'VARCHAR(255) DEFAULT NULL',
106
                'content_block_name' => 'VARCHAR(80) DEFAULT \'bottom_text\'',
107
                'content' => 'TEXT DEFAULT NULL',
108
                'append_content' => 'TINYINT DEFAULT \'0\'',
109
                'title' => 'VARCHAR(255)',
110
                'append_title' => 'TINYINT DEFAULT \'0\'',
111
                'h1' => 'VARCHAR(255) DEFAULT NULL',
112
                'append_h1' => 'TINYINT DEFAULT \'0\'',
113
                'meta_description' => 'VARCHAR(255) DEFAULT NULL',
114
                'append_meta_description' => 'TINYINT DEFAULT \'0\'',
115
                'apply_if_last_category_id' => 'INT UNSIGNED DEFAULT NULL',
116
                'apply_if_params' => 'TEXT DEFAULT NULL',
117
                'object_id' => 'INT UNSIGNED DEFAULT NULL',
118
            ],
119
            $tableOptions
120
        );
121
        $this->createTable(
122
            BaseObject::tableName(),
123
            [
124
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
125
                'name' => 'VARCHAR(255) NOT NULL',
126
                'object_class' => 'VARCHAR(255) NOT NULL',
127
                'object_table_name' => 'VARCHAR(255) NOT NULL',
128
                'column_properties_table_name' => 'VARCHAR(255) NOT NULL',
129
                'eav_table_name' => 'VARCHAR(255) NOT NULL',
130
                'categories_table_name' => 'VARCHAR(255) NOT NULL',
131
                'link_slug_category' => 'VARCHAR(255) NOT NULL',
132
                'link_slug_static_value' => 'VARCHAR(255) NOT NULL',
133
                'object_slug_attribute' => 'VARCHAR(255) NOT NULL',
134
                'KEY `ix-object-object_class` (`object_class`)',
135
            ],
136
            $tableOptions
137
        );
138
        $this->createTable(
139
            ObjectPropertyGroup::tableName(),
140
            [
141
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
142
                'object_id' => 'INT UNSIGNED NOT NULL',
143
                'object_model_id' => 'INT UNSIGNED NOT NULL',
144
                'property_group_id' => 'INT UNSIGNED NOT NULL',
145
                'KEY `ix-object_property_group-object_id-object_model_id` (`object_id`,`object_model_id`)',
146
            ],
147
            $tableOptions
148
        );
149
        $this->createTable(
150
            ObjectStaticValues::tableName(),
151
            [
152
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
153
                'object_id' => 'INT UNSIGNED NOT NULL',
154
                'object_model_id' => 'INT UNSIGNED NOT NULL',
155
                'property_static_value_id' => 'INT UNSIGNED NOT NULL',
156
                'KEY `ix-object-static-values-object_id-object_model_id` (`object_id`, `object_model_id`)',
157
            ],
158
            $tableOptions
159
        );
160
        $this->createTable(
161
            PropertyGroup::tableName(),
162
            [
163
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
164
                'object_id' => 'INT UNSIGNED NOT NULL',
165
                'name' => 'VARCHAR(255) NOT NULL',
166
                'sort_order' => 'INT DEFAULT \'0\'',
167
                'is_internal' => 'TINYINT DEFAULT \'0\'',
168
                'hidden_group_title' => 'TINYINT DEFAULT \'0\'',
169
                'KEY `ix-property_group-object_id` (`object_id`)',
170
            ],
171
            $tableOptions
172
        );
173
        $this->createTable(
174
            PropertyHandler::tableName(),
175
            [
176
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
177
                'name' => 'VARCHAR(255) NOT NULL',
178
                'frontend_render_view' => 'VARCHAR(255) NOT NULL',
179
                'frontend_edit_view' => 'VARCHAR(255) NOT NULL',
180
                'backend_render_view' => 'VARCHAR(255) NOT NULL',
181
                'backend_edit_view' => 'VARCHAR(255) NOT NULL',
182
                'handler_class_name' => 'VARCHAR(255) NOT NULL',
183
            ],
184
            $tableOptions
185
        );
186
        $this->createTable(
187
            PropertyStaticValues::tableName(),
188
            [
189
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
190
                'property_id' => 'INT UNSIGNED NOT NULL',
191
                'name' => 'VARCHAR(255) NOT NULL',
192
                'value' => 'VARCHAR(255) NOT NULL',
193
                'slug' => 'VARCHAR(255) NOT NULL',
194
                'sort_order' => 'INT DEFAULT \'0\'',
195
                'title_append' => 'VARCHAR(255) DEFAULT NULL',
196
                'KEY `ix-property_static_values-property_id` (`property_id`)',
197
            ],
198
            $tableOptions
199
        );
200
        $this->createTable(
201
            '{{%product_category_full_slug}}',
202
            [
203
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
204
                'category_id' => 'INT UNSIGNED NOT NULL',
205
                'full_slug_id' => 'INT UNSIGNED NOT NULL',
206
                'KEY `category_id` (`category_id`)',
207
            ],
208
            $tableOptions
209
        );
210
        $this->createTable(
211
            '{{%product_static_value_full_slug}}',
212
            [
213
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
214
                'full_slug_id' => 'INT UNSIGNED NOT NULL',
215
                'property_static_value_id' => 'INT UNSIGNED NOT NULL',
216
                'KEY `property_static_value_id` (`property_static_value_id`)',
217
            ],
218
            $tableOptions
219
        );
220
        $this->createTable(
221
            '{{%product_eav}}',
222
            [
223
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
224
                'object_model_id' => 'INTEGER UNSIGNED NOT NULL',
225
                'key' => 'VARCHAR(255) NOT NULL',
226
                'value' => 'TEXT DEFAULT NULL',
227
                'sort_order' => 'INTEGER DEFAULT \'0\'',
228
                'KEY  `object_model_id` (`object_model_id`)',
229
            ],
230
            $tableOptions
231
        );
232
        $this->createTable(
233
            Route::tableName(),
234
            [
235
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
236
                'route' => 'VARCHAR(255) NOT NULL',
237
                'url_template' => 'TEXT',
238
                'object_id' => 'INT UNSIGNED DEFAULT NULL',
239
                'name' => 'VARCHAR(255)',
240
            ],
241
            $tableOptions
242
        );
243
        $this->createTable(
244
            Property::tableName(),
245
            [
246
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
247
                'property_group_id' => 'INT UNSIGNED NOT NULL',
248
                'name' => 'VARCHAR(255) NOT NULL',
249
                'key' => 'VARCHAR(20) DEFAULT \'\'',
250
                'value_type' => 'ENUM(\'STRING\',\'NUMBER\') DEFAULT \'STRING\'',
251
                'property_handler_id' => 'INT UNSIGNED NOT NULL',
252
                'has_static_values' => 'TINYINT DEFAULT \'0\'',
253
                'has_slugs_in_values' => 'TINYINT DEFAULT \'0\'',
254
                'is_eav' => 'TINYINT DEFAULT \'0\'',
255
                'is_column_type_stored' => 'TINYINT DEFAULT \'0\'',
256
                'multiple' => 'TINYINT DEFAULT \'0\'',
257
                'sort_order' => 'INT DEFAULT \'0\'',
258
                'handler_additional_params' => 'TEXT NOT NULL',
259
                'display_only_on_depended_property_selected' => 'TINYINT DEFAULT \'0\'',
260
                'depends_on_property_id' => 'INT DEFAULT \'0\'',
261
                'depended_property_values' => 'TEXT DEFAULT NULL',
262
                'depends_on_category_group_id' => 'INT DEFAULT \'0\'',
263
                'hide_other_values_if_selected' => 'TINYINT DEFAULT \'0\'',
264
                'KEY `ix-property-property_group_id` (`property_group_id`)',
265
            ],
266
            $tableOptions
267
        );
268
        $this->createTable(
269
            Product::tableName(),
270
            [
271
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
272
                'main_category_id' => 'INT UNSIGNED NOT NULL',
273
                'parent_id' => 'INT UNSIGNED DEFAULT \'0\'',
274
                'option_generate' => 'TEXT DEFAULT NULL',
275
                'name' => 'VARCHAR(255) NOT NULL',
276
                'title' => 'VARCHAR(255) DEFAULT NULL',
277
                'h1' => 'VARCHAR(255) DEFAULT NULL',
278
                'meta_description' => 'VARCHAR(255) DEFAULT NULL',
279
                'breadcrumbs_label' => 'VARCHAR(255) DEFAULT NULL',
280
                'slug' => 'VARCHAR(80) DEFAULT \'\'',
281
                'slug_compiled' => 'VARCHAR(180) DEFAULT \'\'',
282
                'slug_absolute' => 'TINYINT DEFAULT \'0\'',
283
                'content' => 'TEXT DEFAULT NULL',
284
                'announce' => 'TEXT DEFAULT NULL',
285
                'sort_order' => 'INT DEFAULT \'0\'',
286
                'active' => 'TINYINT DEFAULT \'1\'',
287
                'price' => 'FLOAT UNSIGNED DEFAULT \'0\'',
288
                'old_price' => 'FLOAT UNSIGNED DEFAULT \'0\'',
289
                'is_deleted' => 'TINYINT UNSIGNED DEFAULT \'0\'',
290
                'KEY `ix-product-active-slug` (`active`, `slug`)',
291
                'KEY `ix-product-parent_id` (`parent_id`)',
292
            ],
293
            $tableOptions
294
        );
295
        $this->createTable(
296
            '{{%product_property}}',
297
            [
298
                'object_model_id' => 'INT UNSIGNED NOT NULL PRIMARY KEY',
299
            ],
300
            $tableOptions
301
        );
302
        $this->createTable(
303
            Layout::tableName(),
304
            [
305
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
306
                'name' => 'VARCHAR(255) NOT NULL',
307
                'layout' => 'VARCHAR(255) NOT NULL',
308
            ],
309
            $tableOptions
310
        );
311
        $this->createTable(
312
            View::tableName(),
313
            [
314
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
315
                'name' => 'VARCHAR(255) NOT NULL',
316
                'view' => 'TEXT NOT NULL',
317
                'category' => 'VARCHAR(255) DEFAULT NULL',
318
                'internal_name' => 'VARCHAR(255) DEFAULT NULL',
319
                'KEY `ix-view-internal_name-category` (`internal_name`, `category`)',
320
            ],
321
            $tableOptions
322
        );
323
        $this->createTable(
324
            ViewObject::tableName(),
325
            [
326
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
327
                'object_id' => 'INT UNSIGNED NOT NULL',
328
                'object_model_id' => 'INT UNSIGNED NOT NULL',
329
                'view_id' => 'INT UNSIGNED NOT NULL',
330
                'UNIQUE KEY `uq-view_object-object_id-object_model_id` (`object_id`, `object_model_id`)'
331
            ],
332
            $tableOptions
333
        );
334
        $this->createTable(
335
            Page::tableName(),
336
            [
337
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
338
                'parent_id' => 'INT UNSIGNED NOT NULL',
339
                'slug' => 'VARCHAR(80) NOT NULL',
340
                'slug_compiled' => 'VARCHAR(180) NOT NULL DEFAULT \'\'',
341
                'slug_absolute' => 'TINYINT(1) UNSIGNED DEFAULT \'0\'',
342
                'content' => 'LONGTEXT',
343
                'show_type' => "ENUM('show','list') DEFAULT 'show'",
344
                'published' => 'TINYINT(1) UNSIGNED DEFAULT \'1\'',
345
                'searchable' => 'TINYINT(1) UNSIGNED DEFAULT \'1\'',
346
                'robots' => 'TINYINT(3) UNSIGNED DEFAULT \'3\'',
347
                'title' => 'TEXT NOT NULL',
348
                'h1' => 'TEXT DEFAULT NULL',
349
                'meta_description' => 'TEXT DEFAULT NULL',
350
                'breadcrumbs_label' => 'TEXT DEFAULT NULL',
351
                'announce' => 'TEXT DEFAULT NULL',
352
                'sort_order' => 'INT DEFAULT \'0\'',
353
                'date_added' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
354
                'date_modified' => 'TIMESTAMP NULL',
355
                'is_deleted' => 'TINYINT UNSIGNED DEFAULT \'0\'',
356
                'KEY `ix-page-slug_compiled-published` (`slug_compiled`, `published`)',
357
                'KEY `ix-page-parent_id` (`parent_id`)',
358
            ],
359
            $tableOptions
360
        );
361
        $this->createTable(
362
            '{{%page_property}}',
363
            [
364
                'object_model_id' => 'INT UNSIGNED NOT NULL PRIMARY KEY',
365
            ],
366
            $tableOptions
367
        );
368
        $this->createTable(
369
            '{{%page_category}}',
370
            [
371
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
372
                'category_id' => 'INT UNSIGNED NOT NULL',
373
                'object_model_id' => 'INT UNSIGNED NOT NULL',
374
            ],
375
            $tableOptions
376
        );
377
        $this->createTable(
378
            '{{%page_eav}}',
379
            [
380
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
381
                'object_model_id' => 'INT UNSIGNED NOT NULL',
382
                'key' => 'VARCHAR(255) NOT NULL',
383
                'value' => 'TEXT DEFAULT NULL',
384
                'sort_order' => 'INTEGER DEFAULT \'0\'',
385
                'KEY `object_model_id` (`object_model_id`)',
386
            ],
387
            $tableOptions
388
        );
389
        $this->createTable(
390
            CategoryGroup::tableName(),
391
            [
392
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
393
                'name' => 'VARCHAR(255) NOT NULL',
394
            ],
395
            $tableOptions
396
        );
397
        $this->createTable(
398
            Category::tableName(),
399
            [
400
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
401
                'category_group_id' => 'INT UNSIGNED NOT NULL',
402
                'parent_id' => 'INT UNSIGNED NOT NULL',
403
                'name' => 'VARCHAR(255) NOT NULL',
404
                'title' => 'VARCHAR(255) NOT NULL',
405
                'h1' => 'VARCHAR(255) NOT NULL',
406
                'meta_description' => 'VARCHAR(255) DEFAULT NULL',
407
                'breadcrumbs_label' => 'VARCHAR(255) DEFAULT NULL',
408
                'slug' => 'VARCHAR(80) DEFAULT \'\'',
409
                'slug_compiled' => 'VARCHAR(180) DEFAULT \'\'',
410
                'slug_absolute' => 'TINYINT DEFAULT \'0\'',
411
                'content' => 'TEXT DEFAULT NULL',
412
                'announce' => 'TEXT DEFAULT NULL',
413
                'sort_order' => 'INT DEFAULT \'0\'',
414
                'title_append' => 'VARCHAR(255) DEFAULT NULL',
415
                'is_deleted' => 'TINYINT UNSIGNED DEFAULT \'0\'',
416
                'active' => 'TINYINT UNSIGNED DEFAULT \'1\'',
417
                'KEY `ix-category-category_group_id` (`category_group_id`, `parent_id`)',
418
                'KEY `ix-category-parent_id` (`parent_id`)',
419
            ],
420
            $tableOptions
421
        );
422
        $this->createTable(
423
            '{{%category_eav}}',
424
            [
425
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
426
                'object_model_id' => 'INT UNSIGNED NOT NULL',
427
                'key' => 'VARCHAR(255) NOT NULL',
428
                'value' => 'TEXT DEFAULT NULL',
429
                'sort_order' => 'INT DEFAULT \'0\'',
430
                'KEY `object_model_id` (`object_model_id`)',
431
            ],
432
            $tableOptions
433
        );
434
        $this->createTable(
435
            '{{%property_category}}',
436
            [
437
                'object_model_id' => 'INT UNSIGNED NOT NULL PRIMARY KEY',
438
            ],
439
            $tableOptions
440
        );
441
        $this->createTable(
442
            '{{%product_category}}',
443
            [
444
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
445
                'category_id' => 'INT UNSIGNED NOT NULL',
446
                'object_model_id' => 'INT UNSIGNED NOT NULL',
447
                'sort_order' => 'INT DEFAULT \'0\'',
448
            ],
449
            $tableOptions
450
        );
451
        $this->createTable(
452
            CategoryGroupRouteTemplates::tableName(),
453
            [
454
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
455
                'category_group_id' => 'int(11) unsigned NOT NULL',
456
                'route_id' => 'INT UNSIGNED NOT NULL',
457
                'template_json' => 'TEXT NOT NULL',
458
                'KEY `ix-category-group-route-templates-category_group_id-route_id` (`category_group_id`, `route_id`)',
459
            ],
460
            $tableOptions
461
        );
462
        $this->createTable(
463
            SubscribeEmail::tableName(),
464
            [
465
                'id' => 'INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
466
                'email' => 'VARCHAR(100) DEFAULT NULL',
467
                'name' => 'VARCHAR(50) DEFAULT NULL',
468
                'is_active' => 'TINYINT DEFAULT \'0\'',
469
                'last_notify' => 'INTEGER DEFAULT \'0\'',
470
            ],
471
            $tableOptions
472
        );
473
        $this->createTable(
474
            Order::tableName(),
475
            [
476
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
477
                'user_id' => 'INT UNSIGNED NOT NULL',
478
                'manager_id' => 'INT UNSIGNED DEFAULT \'0\'',
479
                'start_date' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
480
                'end_date' => "TIMESTAMP NULL",
481
                'cart_forming_time' => 'INT DEFAULT \'0\'',
482
                'order_status_id' => 'INT UNSIGNED NOT NULL',
483
                'shipping_option_id' => 'INT UNSIGNED DEFAULT \'0\'',
484
                'payment_type_id' => 'INT UNSIGNED DEFAULT \'0\'',
485
                'external_id' => 'VARCHAR(38) DEFAULT NULL',
486
                'items_count' => 'INT UNSIGNED DEFAULT \'0\'',
487
                'total_price' => 'FLOAT DEFAULT \'0\'',
488
                'hash' => 'CHAR(32) NOT NULL',
489
                'KEY `ix-order-user_id` (`user_id`)',
490
                'KEY `ix-order-manager_id` (`manager_id`)',
491
                'UNIQUE KEY `uq-order-hash` (`hash`)',
492
            ],
493
            $tableOptions
494
        );
495
        $this->createTable(
496
            OrderItem::tableName(),
497
            [
498
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
499
                'order_id' => 'INT UNSIGNED DEFAULT \'0\'',
500
                'product_id' => 'INT UNSIGNED NOT NULL',
501
                'quantity' => 'INT UNSIGNED DEFAULT \'1\'',
502
                'KEY `ix-order_item-order_id` (`order_id`)',
503
            ],
504
            $tableOptions
505
        );
506
        $this->createTable(
507
            OrderTransaction::tableName(),
508
            [
509
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
510
                'order_id' => 'INT UNSIGNED NOT NULL',
511
                'payment_type_id' => 'INT UNSIGNED NOT NULL',
512
                'start_date' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
513
                'end_date' => 'TIMESTAMP NULL',
514
                'status' => 'TINYINT UNSIGNED NOT NULL',
515
                'total_sum' => 'DECIMAL(10, 2) NOT NULL',
516
                'params' => 'TEXT',
517
                'result_data' => 'TEXT',
518
                'KEY `ix-order_transaction-order_id` (`order_id`)'
519
            ],
520
            $tableOptions
521
        );
522
        $this->createTable(
523
            OrderChat::tableName(),
524
            [
525
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
526
                'order_id' => 'INTEGER UNSIGNED NOT NULL',
527
                'user_id' => 'INTEGER UNSIGNED NOT NULL',
528
                'date' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
529
                'message' => 'TEXT DEFAULT NULL',
530
                'KEY `ix-order_chat-order_id` (`order_id`)',
531
            ],
532
            $tableOptions
533
        );
534
        $this->createTable(
535
            ShippingOption::tableName(),
536
            [
537
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
538
                'name' => 'VARCHAR(255) NOT NULL',
539
                'description' => 'VARCHAR(255) NOT NULL',
540
                'price_from' => 'FLOAT DEFAULT 0',
541
                'price_to' => 'FLOAT DEFAULT 0',
542
                'cost' => 'FLOAT DEFAULT 0',
543
                'sort' => 'INT DEFAULT \'0\'',
544
                'active' => 'TINYINT DEFAULT \'0\'',
545
                'KEY `ix-shipping_option-active` (`active`)',
546
            ],
547
            $tableOptions
548
        );
549
        $this->createTable(
550
            PaymentType::tableName(),
551
            [
552
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
553
                'name' => 'VARCHAR(255) NOT NULL',
554
                'class' => 'VARCHAR(255) NOT NULL',
555
                'params' => 'TEXT DEFAULT NULL',
556
                'logo' => 'VARCHAR(255) DEFAULT NULL',
557
                'commission' => 'FLOAT DEFAULT \'0\'',
558
                'active' => 'TINYINT DEFAULT \'0\'',
559
                'payment_available' => 'TINYINT DEFAULT \'1\'',
560
                'sort' => 'TINYINT DEFAULT \'1\'',
561
                'KEY `ix-payment_type-active` (`active`)',
562
            ],
563
            $tableOptions
564
        );
565
        $this->createTable(
566
            '{{%order_property}}',
567
            [
568
                'object_model_id' => 'INTEGER UNSIGNED NOT NULL PRIMARY KEY',
569
            ],
570
            $tableOptions
571
        );
572
        $this->createTable(
573
            '{{%order_eav}}',
574
            [
575
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
576
                'object_model_id' => 'INTEGER UNSIGNED NOT NULL',
577
                'key' => 'VARCHAR(255) NOT NULL',
578
                'value' => 'TEXT DEFAULT NULL',
579
                'sort_order' => 'INTEGER DEFAULT \'0\'',
580
                'KEY `object_model_id` (`object_model_id`)',
581
            ],
582
            $tableOptions
583
        );
584
        $this->createTable(
585
            '{{%order_category}}',
586
            [
587
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
588
                'category_id' => 'INTEGER UNSIGNED NOT NULL',
589
                'object_model_id' => 'INTEGER UNSIGNED NOT NULL',
590
            ],
591
            $tableOptions
592
        );
593
        $this->createTable(
594
            Form::tableName(),
595
            [
596
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
597
                'name' => 'VARCHAR(255) NOT NULL',
598
                'form_view' => 'VARCHAR(255) DEFAULT NULL',
599
                'form_success_view' => 'VARCHAR(255) DEFAULT NULL',
600
                'email_notification_addresses' => 'TEXT NOT NULL',
601
                'email_notification_view' => 'VARCHAR(255) DEFAULT NULL',
602
                'form_open_analytics_action_id' => 'INT UNSIGNED DEFAULT NULL',
603
                'form_submit_analytics_action_id' => 'INT UNSIGNED DEFAULT NULL',
604
            ],
605
            $tableOptions
606
        );
607
        $this->createTable(
608
            '{{%form_eav}}',
609
            [
610
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
611
                'object_model_id' => 'INT UNSIGNED NOT NULL',
612
                'key' => 'VARCHAR(255) NOT NULL',
613
                'value' => 'TEXT',
614
                'sort_order' => 'INTEGER DEFAULT \'0\'',
615
                'KEY  `object_model_id` (`object_model_id`)',
616
            ],
617
            $tableOptions
618
        );
619
        $this->createTable(
620
            '{{%form_property}}',
621
            [
622
                'object_model_id' => 'INT UNSIGNED NOT NULL PRIMARY KEY',
623
            ],
624
            $tableOptions
625
        );
626
        $this->createTable(
627
            Submission::tableName(),
628
            [
629
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
630
                'form_id' => 'INT UNSIGNED NOT NULL',
631
                'date_received' => 'DATETIME DEFAULT NULL',
632
                'ip' => 'VARCHAR(255) DEFAULT NULL',
633
                'user_agent' => 'VARCHAR(255) DEFAULT NULL',
634
                'piwik_visitor_id' => 'VARCHAR(255) DEFAULT NULL',
635
                'additional_information' => 'LONGTEXT',
636
                'date_viewed' => 'DATETIME DEFAULT NULL',
637
                'date_processed' => 'DATETIME DEFAULT NULL',
638
                'processed_by_user_id' => 'INT UNSIGNED DEFAULT NULL',
639
                'processed' => 'TINYINT(1) DEFAULT \'0\'',
640
                'internal_comment' => 'TEXT DEFAULT NULL',
641
                'submission_referrer' => 'VARCHAR(255) DEFAULT NULL',
642
                'visitor_referrer' => 'VARCHAR(255) DEFAULT NULL',
643
                'visitor_landing' => 'VARCHAR(255) DEFAULT NULL',
644
                'visit_start_date' => 'DATETIME DEFAULT NULL',
645
                'form_fill_time' => 'INT DEFAULT NULL',
646
                'spam' => 'VARCHAR(25) DEFAULT NULL',
647
                'KEY `submission-form_id` (`form_id`)',
648
            ],
649
            $tableOptions
650
        );
651
        $this->createTable(
652
            '{{%submission_property}}',
653
            [
654
                'object_model_id' => 'INT UNSIGNED NOT NULL PRIMARY KEY',
655
            ],
656
            $tableOptions
657
        );
658
        $this->createTable(
659
            '{{%submission_category}}',
660
            [
661
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
662
                'category_id' => 'INT UNSIGNED NOT NULL',
663
                'object_model_id' => 'INT UNSIGNED NOT NULL',
664
            ],
665
            $tableOptions
666
        );
667
        $this->createTable(
668
            '{{%submission_eav}}',
669
            [
670
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
671
                'object_model_id' => 'INT UNSIGNED NOT NULL',
672
                'key' => 'VARCHAR(255) NOT NULL',
673
                'value' => 'TEXT DEFAULT NULL',
674
                'sort_order' => 'INTEGER DEFAULT \'0\'',
675
                'KEY  `object_model_id` (`object_model_id`)',
676
            ],
677
            $tableOptions
678
        );
679
        $this->createTable(
680
            Notification::tableName(),
681
            [
682
                'id' => 'BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
683
                'user_id' => 'INTEGER UNSIGNED NOT NULL',
684
                'date' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
685
                'type' => 'ENUM(\'default\', \'primary\', \'success\', \'info\', \'warning\', \'danger\') DEFAULT \'default\'',
686
                'label' => 'VARCHAR(255) NOT NULL',
687
                'message' => 'TEXT NOT NULL',
688
                'viewed' => 'TINYINT UNSIGNED DEFAULT \'0\'',
689
                'KEY `user_id` (`user_id`)',
690
            ],
691
            $tableOptions
692
        );
693
        $this->createTable(
694
            Review::tableName(),
695
            [
696
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
697
                'object_id' => 'INT UNSIGNED DEFAULT \'0\'',
698
                'object_model_id' => 'INT UNSIGNED NOT NULL',
699
                'date_submitted' => 'TIMESTAMP NULL DEFAULT NULL',
700
                'author_user_id' => 'INT UNSIGNED DEFAULT NULL',
701
                'author_name' => 'VARCHAR(255) DEFAULT NULL',
702
                'author_email' => 'VARCHAR(255) DEFAULT NULL',
703
                'author_phone' => 'VARCHAR(255) DEFAULT NULL',
704
                'text' => 'TEXT DEFAULT NULL',
705
                'rate' => 'TINYINT DEFAULT NULL',
706
                'status' => 'enum(\'NEW\',\'APPROVED\',\'NOT APPROVED\') DEFAULT \'NEW\'',
707
                'KEY `ix-review-object_id-object_model_id-status` (`object_id`, `object_model_id`, `status`)',
708
            ],
709
            $tableOptions
710
        );
711
        $this->createTable(
712
            ErrorLog::tableName(),
713
            [
714
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
715
                'url_id' => 'INT UNSIGNED NOT NULL',
716
                'http_code' => 'SMALLINT',
717
                'timestamp' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
718
                'info' => 'TEXT DEFAULT NULL',
719
                'server_vars' => 'TEXT DEFAULT NULL',
720
                'request_vars' => 'TEXT DEFAULT NULL',
721
            ],
722
            $tableOptions
723
        );
724
        $this->createTable(
725
            ErrorUrl::tableName(),
726
            [
727
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
728
                'url' => 'TEXT DEFAULT NULL',
729
                'immediate_notify_count' => 'INT UNSIGNED DEFAULT \'0\'',
730
            ],
731
            $tableOptions
732
        );
733
        $this->createTable(
734
            '{{%auth_rule}}',
735
            [
736
                'name' => 'VARCHAR(64) NOT NULL PRIMARY KEY',
737
                'data' => 'TEXT',
738
                'created_at' => 'INT DEFAULT NULL',
739
                'updated_at' => 'INT DEFAULT NULL',
740
            ],
741
            $tableOptions
742
        );
743
        $this->createTable(
744
            '{{%auth_item}}',
745
            [
746
                'name' => 'VARCHAR(64) NOT NULL PRIMARY KEY',
747
                'type' => 'INT NOT NULL',
748
                'description' => 'TEXT',
749
                'rule_name' => 'VARCHAR(64)',
750
                'data' => 'TEXT',
751
                'created_at' => 'INT DEFAULT NULL',
752
                'updated_at' => 'INT DEFAULT NULL',
753
                'KEY `rule_name` (`rule_name`)',
754
                'KEY `type` (`type`)',
755
                'CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`)
756
                    REFERENCES {{%auth_rule}} (`name`) ON DELETE SET NULL ON UPDATE CASCADE'
757
            ],
758
            $tableOptions
759
        );
760
        $this->createTable(
761
            '{{%auth_item_child}}',
762
            [
763
                'parent' => 'VARCHAR(64) NOT NULL',
764
                'child' => 'VARCHAR(64) NOT NULL',
765
                'PRIMARY KEY (`parent`, `child`)',
766
                'KEY `child` (`child`)',
767
                'CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`)
768
                    REFERENCES {{%auth_item}} (`name`) ON DELETE CASCADE ON UPDATE CASCADE',
769
                'CONSTRAINT `auth_item_child_ibfk_2` FOREIGN KEY (`child`)
770
                    REFERENCES {{%auth_item}} (`name`) ON DELETE CASCADE ON UPDATE CASCADE',
771
            ],
772
            $tableOptions
773
        );
774
        $this->createTable(
775
            '{{%auth_assignment}}',
776
            [
777
                'item_name' => 'VARCHAR(64) NOT NULL',
778
                'user_id' => 'VARCHAR(64) NOT NULL',
779
                'created_at' => 'INT DEFAULT NULL',
780
                'updated_at' => 'INT DEFAULT NULL',
781
                'rule_name' => 'VARCHAR(64) DEFAULT NULL',
782
                'data' => 'TEXT',
783
                'PRIMARY KEY (`item_name`, `user_id`)',
784
                'KEY `rule_name` (`rule_name`)',
785
                'CONSTRAINT `auth_assignment_ibfk_1` FOREIGN KEY (`item_name`)
786
                    REFERENCES {{%auth_item}} (`name`) ON DELETE CASCADE ON UPDATE CASCADE',
787
                'CONSTRAINT `auth_assignment_ibfk_2` FOREIGN KEY (`rule_name`)
788
                    REFERENCES {{%auth_rule}} (`name`) ON DELETE SET NULL ON UPDATE CASCADE',
789
            ],
790
            $tableOptions
791
        );
792
        $this->createTable(
793
            User::tableName(),
794
            [
795
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
796
                'username' => 'VARCHAR(255) NOT NULL',
797
                'auth_key' => 'varbinary(32) NOT NULL',
798
                'password_hash' => 'VARCHAR(255) NOT NULL',
799
                'password_reset_token' => 'varbinary(32)',
800
                'email' => 'VARCHAR(255) NOT NULL',
801
                'status' => 'TINYINT UNSIGNED DEFAULT 10',
802
                'create_time' => 'INT NOT NULL',
803
                'update_time' => 'INT NOT NULL',
804
                'first_name' => 'VARCHAR(255)',
805
                'last_name' => 'VARCHAR(255)',
806
                'UNIQUE KEY `uq-user-username` (`username`)',
807
            ],
808
            $tableOptions
809
        );
810
        $this->createTable(
811
            UserService::tableName(),
812
            [
813
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
814
                'user_id' => 'INT UNSIGNED NOT NULL',
815
                'service_type' => 'VARCHAR(255) NOT NULL',
816
                'service_id' => 'VARCHAR(255) NOT NULL',
817
                'KEY `ix-user_service-user_id` (`user_id`)',
818
                'UNIQUE KEY `uq-user-service-service_type-service_id` (`service_type`, `service_id`)',
819
            ],
820
            $tableOptions
821
        );
822
        $this->createTable(
823
            '{{%user_property}}',
824
            [
825
                'object_model_id' => 'INTEGER UNSIGNED NOT NULL PRIMARY KEY',
826
            ],
827
            $tableOptions
828
        );
829
        $this->createTable(
830
            '{{%user_eav}}',
831
            [
832
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
833
                'object_model_id' => 'INTEGER UNSIGNED NOT NULL',
834
                'key' => 'VARCHAR(255) NOT NULL',
835
                'value' => 'TEXT DEFAULT NULL',
836
                'sort_order' => 'INTEGER DEFAULT \'0\'',
837
                'KEY `object_model_id` (`object_model_id`)',
838
            ],
839
            $tableOptions
840
        );
841
        $this->createTable(
842
            '{{%user_category}}',
843
            [
844
                'id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT',
845
                'category_id' => 'INTEGER UNSIGNED NOT NULL',
846
                'object_model_id' => 'INTEGER UNSIGNED NOT NULL',
847
            ],
848
            $tableOptions
849
        );
850
        // Data
851
        $this->batchInsert(
852
            BaseObject::tableName(),
853
            [
854
                'name',
855
                'object_class',
856
                'object_table_name',
857
                'column_properties_table_name',
858
                'eav_table_name',
859
                'categories_table_name',
860
                'link_slug_category',
861
                'link_slug_static_value',
862
                'object_slug_attribute',
863
            ],
864
            [
865
                [
866
                    'Page',
867
                    Page::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
868
                    Yii::$app->db->schema->getRawTableName(Page::tableName()),
869
                    Yii::$app->db->schema->getRawTableName('{{%page_property}}'),
870
                    Yii::$app->db->schema->getRawTableName('{{%page_eav}}'),
871
                    Yii::$app->db->schema->getRawTableName('{{%page_category}}'),
872
                    Yii::$app->db->schema->getRawTableName('{{%page_category_full_slug}}'),
873
                    Yii::$app->db->schema->getRawTableName('{{%page_static_value_category}}'),
874
                    'slug',
875
                ],
876
                [
877
                    'Category',
878
                    Category::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
879
                    Yii::$app->db->schema->getRawTableName(Category::tableName()),
880
                    Yii::$app->db->schema->getRawTableName('{{%category_properties}}'),
881
                    Yii::$app->db->schema->getRawTableName('{{%category_eav}}'),
882
                    Yii::$app->db->schema->getRawTableName('{{%category_category}}'),
883
                    Yii::$app->db->schema->getRawTableName('{{%category_category_full_slug}}'),
884
                    Yii::$app->db->schema->getRawTableName('{{%category_static_value_category}}'),
885
                    'slug',
886
                ],
887
            ]
888
        );
889
        $this->insert(
890
            BaseObject::tableName(),
891
            [
892
                'name' => 'Product',
893
                'object_class' => Product::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
894
                'object_table_name' => Yii::$app->db->schema->getRawTableName(Product::tableName()),
895
                'column_properties_table_name' => Yii::$app->db->schema->getRawTableName('{{%product_properties}}'),
896
                'eav_table_name' => Yii::$app->db->schema->getRawTableName('{{%product_eav}}'),
897
                'categories_table_name' => Yii::$app->db->schema->getRawTableName('{{%product_category}}'),
898
                'link_slug_category' => Yii::$app->db->schema->getRawTableName('{{%product_category_full_slug}}'),
899
                'link_slug_static_value' => Yii::$app->db->schema->getRawTableName('{{%product_static_value_category}}'),
900
                'object_slug_attribute' => 'slug',
901
            ]
902
        );
903
        $lastInsertId = Yii::$app->db->lastInsertID;
904
        $this->batchInsert(
905
            Route::tableName(),
906
            ['route', 'url_template', 'object_id', 'name'],
907
            [
908
                [
909
                    'shop/product/list',
910
                    Json::encode(
911
                        [
912
                            [
913
                                "class" => "app\\properties\\url\\StaticPart",
914
                                "static_part" => "catalog",
915
                                "parameters" => [
916
                                    "category_group_id" => 1,
917
                                ],
918
                            ],
919
                            [
920
                                "class" => "app\\properties\\url\\PartialCategoryPathPart",
921
                                "category_group_id" => 1
922
                            ],
923
                        ]
924
                    ),
925
                    $lastInsertId,
926
                    ''
927
                ],
928
                [
929
                    'shop/product/show',
930
                    Json::encode(
931
                        [
932
                            [
933
                                "class" => "app\\properties\\url\\StaticPart",
934
                                "static_part" => "catalog",
935
                            ],
936
                            [
937
                                "class" => "app\\properties\\url\\FullCategoryPathPart",
938
                                "category_group_id" => 1,
939
                            ],
940
                            [
941
                                "class" => "app\\properties\\url\\ObjectSlugPart",
942
                            ],
943
                        ]
944
                    ),
945
                    $lastInsertId,
946
                    ''
947
                ],
948
            ]
949
        );
950
        $this->batchInsert(
951
            PropertyHandler::tableName(),
952
            [
953
                'name',
954
                'frontend_render_view',
955
                'frontend_edit_view',
956
                'backend_render_view',
957
                'backend_edit_view',
958
                'handler_class_name'
959
            ],
960
            [
961
                [
962
                    'Text',
963
                    'frontend-render',
964
                    'frontend-edit',
965
                    'backend-render',
966
                    'backend-edit',
967
                    '\app\properties\handlers\text\TextProperty',
968
                ],
969
                [
970
                    'Select',
971
                    'frontend-render',
972
                    'frontend-edit',
973
                    'backend-render',
974
                    'backend-edit',
975
                    '\app\properties\handlers\select\SelectProperty',
976
                ],
977
                [
978
                    'Checkbox',
979
                    'frontend-render',
980
                    'frontend-edit',
981
                    'backend-render',
982
                    'backend-edit',
983
                    '\app\properties\handlers\checkbox\CheckboxProperty',
984
                ],
985
                [
986
                    'Text area',
987
                    'frontend-render',
988
                    'frontend-edit',
989
                    'backend-render',
990
                    'backend-edit',
991
                    '\app\properties\handlers\textArea\TextAreaProperty',
992
                ],
993
            ]
994
        );
995
        $this->batchInsert(
996
            Layout::tableName(),
997
            [
998
                'name',
999
                'layout',
1000
            ],
1001
            [
1002
                ['Default', '\\\\layouts\main'],
1003
                ['Main page', '\\\\layouts\main-page'],
1004
                ['Page without sidebar', '\\\\layouts\no-sidebar'],
1005
            ]
1006
        );
1007
        $this->insert(
1008
            View::tableName(),
1009
            [
1010
                'name' => 'Default',
1011
                'view' => 'show',
1012
                'category' => 'app',
1013
                'internal_name' => 'default',
1014
            ]
1015
        );
1016
        $this->insert(
1017
            Page::tableName(),
1018
            [
1019
                'slug' => ':mainpage:',
1020
                'content' => 'This is main page!',
1021
                'parent_id' => 0,
1022
                'title' => 'Main page',
1023
            ]
1024
        );
1025
        $this->insert(
1026
            CategoryGroup::tableName(),
1027
            [
1028
                'name' => 'Shop',
1029
            ]
1030
        );
1031
        $this->insert(
1032
            Category::tableName(),
1033
            [
1034
                'category_group_id' => Yii::$app->db->lastInsertID,
1035
                'parent_id' => 0,
1036
                'name' => 'Catalog',
1037
                'title' => 'Catalog',
1038
                'h1' => 'Catalog',
1039
                'meta_description' => 'Catalog',
1040
                'breadcrumbs_label' => 'Catalog',
1041
                'slug' => 'catalog',
1042
                'slug_compiled' => 'catalog',
1043
            ]
1044
        );
1045
        $this->batchInsert(
1046
            ShippingOption::tableName(),
1047
            ['name', 'description', 'price_from', 'price_to', 'cost', 'sort', 'active'],
1048
            [
1049
                [
1050
                    'Доставка курьером',
1051
                    '<p>Наши курьеры быстро доставят товар в любую точку Москвы и Московской области!</p>',
1052
                    '0',
1053
                    '0',
1054
                    '0',
1055
                    '1',
1056
                    '1',
1057
                ],
1058
                [
1059
                    'Самовывоз',
1060
                    '<p>Вы можете самостоятельно забрать заказ из нашего магазина.</p>',
1061
                    '0',
1062
                    '0',
1063
                    '0',
1064
                    '2',
1065
                    '1',
1066
                ],
1067
                [
1068
                    'Бесплатная доставка по Москве при заказе от 2500р',
1069
                    '<p>Для Вас доставим бесплатно!</p>',
1070
                    '0',
1071
                    '0',
1072
                    '0',
1073
                    '3',
1074
                    '1',
1075
                ],
1076
            ]
1077
        );
1078
        $this->batchInsert(
1079
            PaymentType::tableName(),
1080
            ['name', 'class', 'params', 'active', 'sort'],
1081
            [
1082
                [
1083
                    'Наличные',
1084
                    app\components\payment\CashPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1085
                    '[]',
1086
                    '1',
1087
                    '1'
1088
                ],
1089
                [
1090
                    'Робокасса (VISA, Webmoney, Яндекс.Деньги и др.)',
1091
                    app\components\payment\RobokassaPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1092
                    Json::encode(
1093
                        [
1094
                            'merchantLogin' => '',
1095
                            'merchantPass1' => '',
1096
                            'merchantPass2' => '',
1097
                            'merchantUrl' => '',
1098
                        ]
1099
                    ),
1100
                    '1',
1101
                    '2'
1102
                ],
1103
                [
1104
                    'PayU',
1105
                    app\components\payment\PayUPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1106
                    Json::encode(
1107
                        [
1108
                            'merchantName' => '',
1109
                            'secretKey' => '',
1110
                        ]
1111
                    ),
1112
                    '0',
1113
                    '3'
1114
                ],
1115
                [
1116
                    'RBK Money',
1117
                    app\components\payment\RBKMoneyPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1118
                    Json::encode(
1119
                        [
1120
                            'eshopId' => '',
1121
                            'currency' => 'RUR', // RUR, USD, EUR, UAH
1122
                            'language' => 'ru', // en, ru
1123
                            'secretKey' => '',
1124
                            'serviceName' => '',
1125
                        ]
1126
                    ),
1127
                    '0',
1128
                    '4'
1129
                ],
1130
                [
1131
                    'IntellectMoney',
1132
                    app\components\payment\IntellectMoneyPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1133
                    Json::encode(
1134
                        [
1135
                            'eshopId' => '',
1136
                            'currency' => 'RUR', // RUR, USD, EUR, UAH
1137
                            'language' => 'ru', // en, ru
1138
                            'secretKey' => '',
1139
                            'serviceName' => '',
1140
                        ]
1141
                    ),
1142
                    '0',
1143
                    '5'
1144
                ],
1145
                [
1146
                    'Interkassa',
1147
                    app\components\payment\InterkassaPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1148
                    Json::encode(
1149
                        [
1150
                            'checkoutId' => '',
1151
                            'currency' => 'RUB', // RUB, USD, EUR, UAH, BYR, XAU, XTS
1152
                            'locale' => 'ru',
1153
                            'secretKey' => '',
1154
                        ]
1155
                    ),
1156
                    '0',
1157
                    '6'
1158
                ],
1159
                [
1160
                    'Futubank',
1161
                    app\components\payment\FutubankPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1162
                    Json::encode(
1163
                        [
1164
                            'testing' => '1',
1165
                            'merchant' => '',
1166
                            'currency' => 'RUB',
1167
                            'secretKey' => '',
1168
                        ]
1169
                    ),
1170
                    '0',
1171
                    '7'
1172
                ],
1173
                [
1174
                    'Pay2Pay',
1175
                    app\components\payment\Pay2PayPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1176
                    Json::encode(
1177
                        [
1178
                            'hiddenKey' => '',
1179
                            'currency' => 'RUB',
1180
                            'language' => 'ru',
1181
                            'merchantId' => '',
1182
                            'secretKey' => '',
1183
                            'testMode' => 0,
1184
                        ]
1185
                    ),
1186
                    '0',
1187
                    '8'
1188
                ],
1189
                [
1190
                    'SpryPay',
1191
                    app\components\payment\SpryPayPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1192
                    Json::encode(
1193
                        [
1194
                            'currency' => 'rur',
1195
                            'language' => 'ru',
1196
                            'shopId' => '',
1197
                            'secretKey' => '',
1198
                        ]
1199
                    ),
1200
                    '0',
1201
                    '9'
1202
                ],
1203
                [
1204
                    'WalletOne',
1205
                    app\components\payment\WalletOnePayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1206
                    Json::encode(
1207
                        [
1208
                            'currency' => 643,
1209
                            'locale' => 'ru-RU',
1210
                            'merchantId' => '',
1211
                            'secretKey' => '',
1212
                        ]
1213
                    ),
1214
                    '0',
1215
                    '10'
1216
                ],
1217
                [
1218
                    'PayOnline',
1219
                    app\components\payment\PayOnlinePayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1220
                    Json::encode(
1221
                        [
1222
                            'currency' => 'RUB',
1223
                            'language' => 'ru',
1224
                            'merchantId' => '',
1225
                            'privateKey' => '',
1226
                        ]
1227
                    ),
1228
                    '0',
1229
                    '11'
1230
                ],
1231
                [
1232
                    'LiqPay',
1233
                    app\components\payment\LiqPayPayment::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1234
                    Json::encode(
1235
                        [
1236
                            'currency' => 'RUB',
1237
                            'language' => 'ru',
1238
                            'privateKey' => '',
1239
                            'publicKey' => '',
1240
                        ]
1241
                    ),
1242
                    '0',
1243
                    '12'
1244
                ],
1245
            ]
1246
        );
1247
        $this->insert(
1248
            BaseObject::tableName(),
1249
            [
1250
                'name' => 'Order',
1251
                'object_class' => Order::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1252
                'object_table_name' => Yii::$app->db->schema->getRawTableName(Order::tableName()),
1253
                'column_properties_table_name' => Yii::$app->db->schema->getRawTableName('{{%order_property}}'),
1254
                'eav_table_name' => Yii::$app->db->schema->getRawTableName('{{%order_eav}}'),
1255
                'categories_table_name' => Yii::$app->db->schema->getRawTableName('{{%order_category}}'),
1256
                'link_slug_category' => Yii::$app->db->schema->getRawTableName('{{%order_category_full_slug}}'),
1257
                'link_slug_static_value' => Yii::$app->db->schema->getRawTableName('{{%order_static_value_full_slug}}'),
1258
                'object_slug_attribute' => 'slug',
1259
            ]
1260
        );
1261
        $this->insert(
1262
            PropertyGroup::tableName(),
1263
            [
1264
                'object_id' => Yii::$app->db->lastInsertID,
1265
                'name' => 'Order form',
1266
                'hidden_group_title' => 1,
1267
            ]
1268
        );
1269
        $propertyGroupId = Yii::$app->db->lastInsertID;
1270
        $this->batchInsert(
1271
            Property::tableName(),
1272
            ['property_group_id', 'name', 'key', 'property_handler_id', 'is_eav', 'handler_additional_params'],
1273
            [
1274
                [$propertyGroupId, 'Name', 'name', 1, 1, '{"rules":["required"]}'],
1275
                [$propertyGroupId, 'Phone', 'phone', 1, 1, '{"rules":["required"]}'],
1276
                [$propertyGroupId, 'E-mail', 'email', 1, 1, '{"rules":["required"]}'],
1277
                [$propertyGroupId, 'Address', 'address', 1, 1, '{"rules":["required"]}'],
1278
            ]
1279
        );
1280
        $this->batchInsert(
1281
            BaseObject::tableName(),
1282
            [
1283
                'name',
1284
                'object_class',
1285
                'object_table_name',
1286
                'column_properties_table_name',
1287
                'eav_table_name',
1288
                'categories_table_name',
1289
                'link_slug_category',
1290
                'link_slug_static_value',
1291
                'object_slug_attribute'
1292
            ],
1293
            [
1294
                [
1295
                    'Form',
1296
                    \app\models\Form::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1297
                    Yii::$app->db->schema->getRawTableName(\app\models\Form::tableName()),
1298
                    Yii::$app->db->schema->getRawTableName('{{%form_property}}'),
1299
                    Yii::$app->db->schema->getRawTableName('{{%form_eav}}'),
1300
                    Yii::$app->db->schema->getRawTableName('{{%form_category}}'),
1301
                    Yii::$app->db->schema->getRawTableName('{{%form_category_full_slug}}'),
1302
                    Yii::$app->db->schema->getRawTableName('{{%form_static_value_full_sluug}}'),
1303
                    'slug'
1304
                ],
1305
                [
1306
                    'Submission',
1307
                    \app\models\Submission::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1308
                    Yii::$app->db->schema->getRawTableName(\app\models\Submission::tableName()),
1309
                    Yii::$app->db->schema->getRawTableName('{{%submission_property}}'),
1310
                    Yii::$app->db->schema->getRawTableName('{{%submission_eav}}'),
1311
                    Yii::$app->db->schema->getRawTableName('{{%submission_category}}'),
1312
                    Yii::$app->db->schema->getRawTableName('{{%submission_category_full_slug}}'),
1313
                    Yii::$app->db->schema->getRawTableName('{{%submission_static_value_full_slug}}'),
1314
                    'slug'
1315
                ]
1316
            ]
1317
        );
1318
        $this->insert(
1319
            BaseObject::tableName(),
1320
            [
1321
                'name' => 'User',
1322
                'object_class' => User::className(),
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1323
                'object_table_name' => Yii::$app->db->schema->getRawTableName(User::tableName()),
1324
                'column_properties_table_name' => Yii::$app->db->schema->getRawTableName('{{%user_property}}'),
1325
                'eav_table_name' => Yii::$app->db->schema->getRawTableName('{{%user_eav}}'),
1326
                'categories_table_name' => Yii::$app->db->schema->getRawTableName('{{%user_category}}'),
1327
                'link_slug_category' => Yii::$app->db->schema->getRawTableName('{{%user_category_full_slug}}'),
1328
                'link_slug_static_value' => Yii::$app->db->schema->getRawTableName('{{%user_static_value_full_slug}}'),
1329
                'object_slug_attribute' => 'slug',
1330
            ]
1331
        );
1332
        $this->insert(
1333
            PropertyGroup::tableName(),
1334
            [
1335
                'object_id' => Yii::$app->db->lastInsertID,
1336
                'name' => 'User form',
1337
            ]
1338
        );
1339
        $this->insert(
1340
            Navigation::tableName(),
1341
            [
1342
                'parent_id' => 0,
1343
                'name' => 'Main menu',
1344
                'route_params' => '{}',
1345
            ]
1346
        );
1347
        $username = $email = $password = null;
0 ignored issues
show
Unused Code introduced by
$password is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
Unused Code introduced by
$email is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
Unused Code introduced by
$username is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1348
1349
        if (getenv("ADMIN_USERNAME")) {
1350
            echo "INFO: Using admin user details provided by ENV variables...\n";
1351
            $username = getenv("ADMIN_USERNAME");
1352
            $email = getenv("ADMIN_EMAIL");
1353
            $password = getenv("ADMIN_PASSWORD");
1354
1355
        } else {
1356
            $stdIn = fopen("php://stdin", "r");
1357
            do {
1358
                echo 'Enter admin username (3 or more chars): ';
1359
                $username = trim(fgets($stdIn));
1360
            } while (mb_strlen($username) < 3);
1361
            do {
1362
                echo 'Enter admin email: ';
1363
                $email = trim(fgets($stdIn));
1364
            } while (preg_match('#^\w[\w\d\.\-_]*@[\w\d\.\-_]+\.\w{2,6}$#i', $email) != 1);
1365
            do {
1366
                do {
1367
                    echo 'Enter admin password (8 or more chars): ';
1368
                    $password = trim(fgets($stdIn));
1369
                } while (mb_strlen($password) < 8);
1370
                do {
1371
                    echo 'Confirm admin password: ';
1372
                    $confirmPassword = trim(fgets($stdIn));
1373
                } while (mb_strlen($confirmPassword) < 8);
1374
                if ($password != $confirmPassword) {
1375
                    echo "Password does not match the confirm password\n";
1376
                }
1377
            } while ($password != $confirmPassword);
1378
            fclose($stdIn);
1379
        }
1380
1381
        $user = new User(['scenario' => 'signup']);
1382
        $user->username = $username;
1383
        $user->password = $password;
1384
        $user->email = $email;
1385
        $user->save(false);
1386
1387
        if (getenv("INSTALL_RUSSIAN_TRANSLATIONS")) {
1388
            echo "INFO: Using translations details provided by ENV variables...\n";
1389
            if (trim(strtolower(getenv("INSTALL_RUSSIAN_TRANSLATIONS"))) === 'y') {
1390
                Yii::$app->language = 'ru-RU';
1391
            }
1392
        }
1393
        else {
1394
            $f = fopen( 'php://stdin', 'r' );
1395
            echo "Install Russian translations? [y/N] ";
1396
            while (true) {
1397
                $answer = trim(fgets($f));
1398
1399
                if ($answer === 'y' || $answer === 'Y') {
1400
                    Yii::$app->language = 'ru-RU';
1401
                    break;
1402
                } elseif ($answer === 'n' || $answer === 'N') {
1403
                    break;
1404
                }
1405
                echo "Install Russian translations? [y/N]";
1406
            }
1407
            fclose($f);
1408
        }
1409
        $this->batchInsert(
1410
            '{{%auth_item}}',
1411
            ['name', 'type', 'description'],
1412
            [
1413
                ['admin', '1', Yii::t('app','Administrator')],
1414
                ['manager', '1', Yii::t('app','Manager')],
1415
                ['administrate', '2', Yii::t('app','Administrate panel')],
1416
                ['api manage', '2', Yii::t('app','API management')],
1417
                ['seo manage', '2', Yii::t('app','SEO management')],
1418
                ['task manage', '2', Yii::t('app','Task management')],
1419
                ['user manage', '2', Yii::t('app','User management')],
1420
                ['cache manage', '2', Yii::t('app','Cache management')],
1421
                ['content manage', '2', Yii::t('app','Content management')],
1422
                ['shop manage', '2', Yii::t('app','Shop management')],
1423
                ['order manage', '2', Yii::t('app','Order management')],
1424
                ['category manage', '2', Yii::t('app','Category management')],
1425
                ['product manage', '2', Yii::t('app','Product management')],
1426
                ['property manage', '2', Yii::t('app','Property management')],
1427
                ['view manage', '2', Yii::t('app','View management')],
1428
                ['review manage', '2', Yii::t('app','Review management')],
1429
                ['navigation manage', '2', Yii::t('app','Navigation management')],
1430
                ['form manage', '2', Yii::t('app','Form management')],
1431
                ['media manage', '2', Yii::t('app','Media management')],
1432
                ['order status manage', '2', Yii::t('app','Order status management')],
1433
                ['payment manage', '2', Yii::t('app','Payment type management')],
1434
                ['shipping manage', '2', Yii::t('app','Shipping option management')],
1435
                ['newsletter manage', '2', Yii::t('app','Newsletter management')],
1436
                ['monitoring manage', '2', Yii::t('app','Monitoring management')],
1437
                ['data manage', '2', Yii::t('app','Data management')],
1438
                ['setting manage', '2', Yii::t('app','Setting management')],
1439
            ]
1440
        );
1441
        $this->batchInsert(
1442
            '{{%auth_item_child}}',
1443
            ['parent', 'child'],
1444
            [
1445
                ['shop manage', 'category manage'],
1446
                ['shop manage', 'product manage'],
1447
                ['shop manage', 'order manage'],
1448
                ['manager', 'administrate'],
1449
                ['manager', 'content manage'],
1450
                ['manager', 'order manage'],
1451
                ['manager', 'shop manage'],
1452
                ['manager', 'category manage'],
1453
                ['manager', 'product manage'],
1454
                ['manager', 'property manage'],
1455
                ['manager', 'view manage'],
1456
                ['manager', 'review manage'],
1457
                ['manager', 'navigation manage'],
1458
                ['manager', 'form manage'],
1459
                ['manager', 'media manage'],
1460
                ['admin', 'administrate'],
1461
                ['admin', 'api manage'],
1462
                ['admin', 'order manage'],
1463
                ['admin', 'seo manage'],
1464
                ['admin', 'task manage'],
1465
                ['admin', 'user manage'],
1466
                ['admin', 'cache manage'],
1467
                ['admin', 'content manage'],
1468
                ['admin', 'shop manage'],
1469
                ['admin', 'category manage'],
1470
                ['admin', 'product manage'],
1471
                ['admin', 'property manage'],
1472
                ['admin', 'view manage'],
1473
                ['admin', 'review manage'],
1474
                ['admin', 'navigation manage'],
1475
                ['admin', 'form manage'],
1476
                ['admin', 'media manage'],
1477
                ['admin', 'order status manage'],
1478
                ['admin', 'payment manage'],
1479
                ['admin', 'shipping manage'],
1480
                ['admin', 'monitoring manage'],
1481
                ['admin', 'newsletter manage'],
1482
                ['admin', 'data manage'],
1483
                ['admin', 'setting manage'],
1484
            ]
1485
        );
1486
        $this->insert(
1487
            '{{%auth_assignment}}',
1488
            [
1489
                'item_name' => 'admin',
1490
                'user_id' => $user->id,
1491
            ]
1492
        );
1493
        // demo data
1494
        $demo = null;
0 ignored issues
show
Unused Code introduced by
$demo is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1495
        if (getenv("INSTALL_DEMO_DATA")) {
1496
            $demo = getenv("INSTALL_DEMO_DATA");
1497
        } else {
1498
            $stdIn = fopen("php://stdin", "r");
1499
            do {
1500
                echo 'Do you want to install demo data [y/n]: ';
1501
                $demo = strtolower(trim(fgets($stdIn)));
1502
            } while (!in_array($demo, ['y', 'n']));
1503
            fclose($stdIn);
1504
        }
1505
        if ($demo == 'y') {
1506
            echo "INFO: Installing demo data\n";
1507
            $object = BaseObject::getForClass(Product::className());
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1508
            $propertyGroup = new PropertyGroup;
1509
            $propertyGroup->attributes = [
1510
                'object_id' => $object->id,
1511
                'name' => 'Тестовый набор свойств',
1512
                'hidden_group_title' => 1,
1513
            ];
1514
            $propertyGroup->save();
1515
            $propertyStaticValuesCount = [5, 3, 3, 2, 4, 5, 2];
1516
            $propertyValues = [];
1517
            for ($i = 1, $k = 1; $i <= 7; $i++) {
1518
                $property = new Property;
1519
                $property->attributes = [
1520
                    'property_group_id' => $propertyGroup->id,
1521
                    'name' => 'Свойство ' . $i,
1522
                    'key' => 'svoystvo_' . $i,
1523
                    'value_type' => 'STRING',
1524
                    'property_handler_id' => 2,
1525
                    'has_static_values' => 1,
1526
                    'has_slugs_in_values' => 1,
1527
                    'handler_additional_params' => '{}',
1528
                ];
1529
                $property->save(
1530
                    true,
1531
                    [
1532
                        'property_group_id',
1533
                        'name',
1534
                        'key',
1535
                        'value_type',
1536
                        'property_handler_id',
1537
                        'has_static_values',
1538
                        'has_slugs_in_values',
1539
                        'handler_additional_params',
1540
                    ]
1541
                );
1542
                $propertyValues[$property->id] = [];
1543
                for ($j = 1; $j <= $propertyStaticValuesCount[$i - 1]; $j++) {
1544
                    $psv = new PropertyStaticValues;
1545
                    $name = 'Значение ' . $k;
1546
                    $psv->attributes = [
1547
                        'property_id' => $property->id,
1548
                        'name' => $name,
1549
                        'value' => $name,
1550
                        'slug' => Helper::createSlug($name),
1551
                    ];
1552
                    $psv->save(
1553
                        true,
1554
                        [
1555
                          'property_id' ,
1556
                          'name' ,
1557
                          'value' ,
1558
                          'slug' ,
1559
                        ]
1560
                    );
1561
                    $propertyValues[$property->id][] = $psv->id;
1562
                    $k++;
1563
                }
1564
            }
1565
            $property = $psv = $propertyStaticValuesCount = null;
0 ignored issues
show
Unused Code introduced by
$propertyStaticValuesCount is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
Unused Code introduced by
$psv is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
Unused Code introduced by
$property is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1566
            $route = Route::findOne(['route' => 'shop/product/list']);
1567
            $urlTemplate = Json::decode($route->url_template);
1568
            foreach ($propertyValues as $propertyId => $values) {
1569
                $urlTemplate[] = [
1570
                    'class' => 'app\\properties\\url\\PropertyPart',
1571
                    'property_id' => $propertyId,
1572
                ];
1573
            }
1574
            $route->url_template = Json::encode($urlTemplate);
1575
            $route->save(false, ['url_template']);
1576
            $route = null;
0 ignored issues
show
Unused Code introduced by
$route is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1577
            $categories = [
1578
                'Фотоаппараты',
1579
                'Телевизоры',
1580
                'Мультиварки',
1581
                'Музыкальные центры',
1582
                'Холодильники',
1583
                'Пылесосы',
1584
                'Телефоны',
1585
                'Планшеты',
1586
                'Соковыжималки',
1587
                'Электромясорубки',
1588
                'Блендеры',
1589
                'Аккустические системы',
1590
                'Вентиляторы',
1591
                'Кондиционеры',
1592
            ];
1593
            $category = \app\modules\shop\models\Category::findOne(['parent_id' => 0]);
1594
            $category->attributes = [
1595
                'name' => 'Каталог',
1596
                'h1' => 'Каталог',
1597
            ];
1598
            $category->save();
1599
            srand();
1600
            $counter = 1;
1601
            foreach ($categories as $categoryName) {
1602
                $newCategory = new Category;
1603
                $newCategory->attributes = [
1604
                    'category_group_id' => 1,
1605
                    'parent_id' => $category->id,
1606
                    'name' => $categoryName,
1607
                    'title' => 'Купить ' . mb_strtolower($categoryName, 'UTF-8') . ' в Москве и области',
1608
                    'h1' => $categoryName,
1609
                    'breadcrumbs_label' => $categoryName,
1610
                    'slug' => Helper::createSlug($categoryName),
1611
                    'announce' => '<p>Значимость этих проблем настолько очевидна, что рамки и место обучения кадров влечет за собой процесс внедрения и модернизации модели развития. Значимость этих проблем настолько очевидна, что укрепление и развитие структуры играет важную роль в формировании модели развития.</p>',
1612
                    'content' => '<p>Таким образом рамки и место обучения кадров позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании системы обучения кадров, соответствует насущным потребностям. Таким образом начало повседневной работы по формированию позиции влечет за собой процесс внедрения и модернизации систем массового участия. Идейные соображения высшего порядка, а также реализация намеченных плановых заданий позволяет выполнять важные задания по разработке существенных финансовых и административных условий.</p>
1613
1614
<p>Товарищи! сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании систем массового участия. Разнообразный и богатый опыт постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Повседневная практика показывает, что укрепление и развитие структуры требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Товарищи! постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.</p>
1615
1616
<p>Товарищи! укрепление и развитие структуры требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности обеспечивает широкому кругу (специалистов) участие в формировании позиций, занимаемых участниками в отношении поставленных задач. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения системы обучения кадров, соответствует насущным потребностям.</p>',
1617
                ];
1618
                $newCategory->save();
1619
                for ($i = 1; $i <= 16; $i++) {
1620
                    $name = 'Товар #' . $counter;
1621
                    $product = new Product;
1622
                    $product->attributes = [
1623
                        'main_category_id' => $newCategory->id,
1624
                        'name' => $name,
1625
                        'title' => 'Купить ' . mb_strtolower($name, "UTF-8") . ' в Москве по превлекательной цене',
1626
                        'slug' => Helper::createSlug($name),
1627
                        'price' => rand(99, 999),
1628
                        'announce' => '<p>Задача организации, в особенности же новая модель организационной деятельности в значительной степени обуславливает создание дальнейших направлений развития.</p>',
1629
                        'content' => '<p>Повседневная практика показывает, что укрепление и развитие структуры способствует подготовки и реализации систем массового участия. Равным образом новая модель организационной деятельности обеспечивает широкому кругу (специалистов) участие в формировании модели развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки систем массового участия.</p>
1630
1631
<p>Таким образом сложившаяся структура организации играет важную роль в формировании соответствующий условий активизации. Не следует, однако забывать, что консультация с широким активом способствует подготовки и реализации модели развития. С другой стороны дальнейшее развитие различных форм деятельности играет важную роль в формировании направлений прогрессивного развития.</p>
1632
1633
<p>Не следует, однако забывать, что сложившаяся структура организации способствует подготовки и реализации новых предложений. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности обеспечивает широкому кругу (специалистов) участие в формировании модели развития.</p>',
1634
                    ];
1635
                    $product->save(true, ['main_category_id', 'name', 'title', 'slug', 'price', 'announce', 'content']);
1636
                    $images = [];
1637
                    for ($j = 0; $j <= 6; $j++) {
1638
                        if ($j == 0) {
1639
                            $images[] = [
1640
                                $object->id,
1641
                                $product->id,
1642
                                $name . '-' . $j . '.jpg',
1643
                                '/demo/images/products/' . ($product->id % 13 + 1) . '.jpg',
1644
                                '/demo/images/products/' . ($product->id % 13 + 1) . '.jpg',
1645
                                'Изображение #' . $j . ' товара #' . $product->id,
1646
                            ];
1647
                        } else {
1648
                            $images[] = [
1649
                                $object->id,
1650
                                $product->id,
1651
                                $name . '-' . $j . '.jpg',
1652
                                '/demo/images/products/large/' . (($product->id + $j) % 12 + 1) . '.jpg',
1653
                                '/demo/images/products/large/' . (($product->id + $j) % 12 + 1) . '.jpg',
1654
                                'Изображение #' . $j . ' товара #' . $product->id,
1655
                            ];
1656
                        }
1657
                    }
1658
                    $this->batchInsert(
1659
                        Image::tableName(),
1660
                        [
1661
                            'object_id',
1662
                            'object_model_id',
1663
                            'filename',
1664
                            'image_src',
1665
                            'thumbnail_src',
1666
                            'image_description',
1667
                        ],
1668
                        $images
1669
                    );
1670
                    $this->batchInsert(
1671
                        '{{%product_category}}',
1672
                        [
1673
                            'category_id',
1674
                            'object_model_id'
1675
                        ],
1676
                        [
1677
                            [$category->id, $product->id],
1678
                            [$newCategory->id, $product->id],
1679
                        ]
1680
                    );
1681
                    $opg = new ObjectPropertyGroup;
1682
                    $opg->attributes = [
1683
                        'object_id' => $object->id,
1684
                        'object_model_id' => $product->id,
1685
                        'property_group_id' => $propertyGroup->id,
1686
                    ];
1687
                    $opg->save();
1688
                    $rows = [];
1689
                    foreach ($propertyValues as $propertyId => $values) {
1690
                        $rows[] = [$object->id, $product->id, $values[rand(0, count($values) - 1)]];
1691
                    }
1692
                    $this->batchInsert(
1693
                        ObjectStaticValues::tableName(),
1694
                        ['object_id', 'object_model_id', 'property_static_value_id'],
1695
                        $rows
1696
                    );
1697
                    $counter++;
1698
                }
1699
            }
1700
            $page = Page::findOne(['parent_id' => 0]);
1701
            $this->batchInsert(
1702
                Page::tableName(),
1703
                [
1704
                    'slug',
1705
                    'slug_compiled',
1706
                    'content',
1707
                    'show_type',
1708
                    'breadcrumbs_label',
1709
                    'title',
1710
                    'h1',
1711
                    'parent_id',
1712
                ],
1713
                [
1714
                    [
1715
                        'contacts',
1716
                        'contacts',
1717
                        '<p>Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации системы обучения кадров, соответствует насущным потребностям. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки системы обучения кадров, соответствует насущным потребностям. Равным образом реализация намеченных плановых заданий обеспечивает широкому кругу (специалистов) участие в формировании соответствующий условий активизации. Не следует, однако забывать, что рамки и место обучения кадров позволяет оценить значение дальнейших направлений развития. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности играет важную роль в формировании соответствующий условий активизации. Товарищи! реализация намеченных плановых заданий представляет собой интересный эксперимент проверки новых предложений.</p>
1718
<p>Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации направлений прогрессивного развития. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности влечет за собой процесс внедрения и модернизации системы обучения кадров, соответствует насущным потребностям. Значимость этих проблем настолько очевидна, что сложившаяся структура организации требуют от нас анализа дальнейших направлений развития. Повседневная практика показывает, что консультация с широким активом обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития.</p>
1719
<p>Разнообразный и богатый опыт новая модель организационной деятельности играет важную роль в формировании дальнейших направлений развития. Идейные соображения высшего порядка, а также консультация с широким активом в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение новых предложений. Идейные соображения высшего порядка, а также дальнейшее развитие различных форм деятельности позволяет оценить значение соответствующий условий активизации. Равным образом консультация с широким активом в значительной степени обуславливает создание систем массового участия.</p>',
1720
                        'show',
1721
                        'Контакты',
1722
                        'Контакты',
1723
                        'Контакты',
1724
                        $page->id,
1725
                    ],
1726
                    [
1727
                        'delivery',
1728
                        'delivery',
1729
                        '<p>Товарищи! дальнейшее развитие различных форм деятельности позволяет оценить значение существенных финансовых и административных условий. Товарищи! рамки и место обучения кадров способствует подготовки и реализации систем массового участия. Задача организации, в особенности же консультация с широким активом требуют определения и уточнения модели развития. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации системы обучения кадров, соответствует насущным потребностям. Идейные соображения высшего порядка, а также постоянное информационно-пропагандистское обеспечение нашей деятельности обеспечивает широкому кругу (специалистов) участие в формировании форм развития.</p>
1730
<p>Товарищи! постоянный количественный рост и сфера нашей активности требуют определения и уточнения модели развития. Значимость этих проблем настолько очевидна, что рамки и место обучения кадров позволяет выполнять важные задания по разработке форм развития.</p>
1731
<p>С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании форм развития. Значимость этих проблем настолько очевидна, что консультация с широким активом играет важную роль в формировании систем массового участия. Таким образом укрепление и развитие структуры играет важную роль в формировании существенных финансовых и административных условий. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание соответствующий условий активизации. Задача организации, в особенности же новая модель организационной деятельности позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Идейные соображения высшего порядка, а также новая модель организационной деятельности способствует подготовки и реализации модели развития.</p>',
1732
                        'show',
1733
                        'Доставка',
1734
                        'Доставка',
1735
                        'Доставка',
1736
                        $page->id,
1737
                    ],
1738
                    [
1739
                        'special-offer',
1740
                        'special-offer',
1741
                        '<p>Товарищи! реализация намеченных плановых заданий позволяет выполнять важные задания по разработке системы обучения кадров, соответствует насущным потребностям. Таким образом постоянный количественный рост и сфера нашей активности требуют от нас анализа дальнейших направлений развития.</p>
1742
<p>Не следует, однако забывать, что дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании существенных финансовых и административных условий. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности влечет за собой процесс внедрения и модернизации новых предложений. Повседневная практика показывает, что рамки и место обучения кадров в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.</p>
1743
<p>Товарищи! укрепление и развитие структуры способствует подготовки и реализации дальнейших направлений развития. Таким образом постоянный количественный рост и сфера нашей активности способствует подготовки и реализации форм развития. Не следует, однако забывать, что новая модель организационной деятельности требуют определения и уточнения позиций, занимаемых участниками в отношении поставленных задач.</p>',
1744
                        'show',
1745
                        'Специальные предложения',
1746
                        'Специальные предложения',
1747
                        'Специальные предложения',
1748
                        $page->id,
1749
                    ],
1750
                ]
1751
            );
1752
            $contactPageId = Yii::$app->db->lastInsertID;
1753
            $this->insert(
1754
                Page::tableName(),
1755
                [
1756
                    'slug' => 'news',
1757
                    'slug_compiled' => 'news',
1758
                    'show_type' => 'list',
1759
                    'title' => 'Новости',
1760
                    'breadcrumbs_label' => 'Новости',
1761
                    'h1' => 'Новости',
1762
                    'parent_id' => $page->id,
1763
                ]
1764
            );
1765
            $newsPageId = Yii::$app->db->lastInsertID;
1766
            $this->batchInsert(
1767
                Page::tableName(),
1768
                [
1769
                    'slug',
1770
                    'slug_compiled',
1771
                    'content',
1772
                    'announce',
1773
                    'show_type',
1774
                    'title',
1775
                    'breadcrumbs_label',
1776
                    'h1',
1777
                    'parent_id',
1778
                ],
1779
                [
1780
                    [
1781
                        'first',
1782
                        'news/first',
1783
                        '<p>Разнообразный и богатый опыт начало повседневной работы по формированию позиции позволяет выполнять важные задания по разработке систем массового участия. Идейные соображения высшего порядка, а также консультация с широким активом влечет за собой процесс внедрения и модернизации существенных финансовых и административных условий. Таким образом постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание направлений прогрессивного развития. Товарищи! консультация с широким активом влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Разнообразный и богатый опыт реализация намеченных плановых заданий в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач.</p>
1784
<p>Задача организации, в особенности же реализация намеченных плановых заданий влечет за собой процесс внедрения и модернизации дальнейших направлений развития. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности влечет за собой процесс внедрения и модернизации систем массового участия. Не следует, однако забывать, что консультация с широким активом требуют от нас анализа дальнейших направлений развития. Идейные соображения высшего порядка, а также новая модель организационной деятельности требуют от нас анализа системы обучения кадров, соответствует насущным потребностям.</p>',
1785
                        '<p>Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании систем массового участия. С другой стороны укрепление и развитие структуры позволяет выполнять важные задания по разработке позиций, занимаемых участниками в отношении поставленных задач.</p>',
1786
                        'show',
1787
                        'Первая новость',
1788
                        'Первая новость',
1789
                        'Первая новость',
1790
                        $newsPageId,
1791
                    ],
1792
                    [
1793
                        'second',
1794
                        'news/second',
1795
                        '<p>Не следует, однако забывать, что реализация намеченных плановых заданий позволяет выполнять важные задания по разработке новых предложений. Товарищи! укрепление и развитие структуры позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Задача организации, в особенности же консультация с широким активом способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Идейные соображения высшего порядка, а также сложившаяся структура организации требуют от нас анализа соответствующий условий активизации.</p>
1796
<p>Разнообразный и богатый опыт укрепление и развитие структуры в значительной степени обуславливает создание форм развития. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке дальнейших направлений развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании систем массового участия.
1797
Не следует, однако забывать, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки модели развития. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности способствует подготовки и реализации модели развития.</p>',
1798
                        '<p>Идейные соображения высшего порядка, а также рамки и место обучения кадров обеспечивает широкому кругу (специалистов) участие в формировании дальнейших направлений развития.</p>',
1799
                        'show',
1800
                        'Вторая новость',
1801
                        'Вторая новость',
1802
                        'Вторая новость',
1803
                        $newsPageId,
1804
                    ],
1805
                    [
1806
                        'third',
1807
                        'news/third',
1808
                        '<p>Таким образом начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности играет важную роль в формировании соответствующий условий активизации. С другой стороны начало повседневной работы по формированию позиции влечет за собой процесс внедрения и модернизации новых предложений.</p>
1809
<p>Задача организации, в особенности же новая модель организационной деятельности представляет собой интересный эксперимент проверки новых предложений. Таким образом рамки и место обучения кадров влечет за собой процесс внедрения и модернизации модели развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание соответствующий условий активизации. Равным образом укрепление и развитие структуры в значительной степени обуславливает создание систем массового участия.</p>
1810
<p>Значимость этих проблем настолько очевидна, что новая модель организационной деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции играет важную роль в формировании дальнейших направлений развития.</p>',
1811
                        '<p>С другой стороны новая модель организационной деятельности играет важную роль в формировании систем массового участия. Таким образом укрепление и развитие структуры влечет за собой процесс внедрения и модернизации форм развития.</p>',
1812
                        'show',
1813
                        'Третья новость',
1814
                        'Третья новость',
1815
                        'Третья новость',
1816
                        $newsPageId,
1817
                    ],
1818
                    [
1819
                        'fourth',
1820
                        'news/fourth',
1821
                        '<p>Товарищи! постоянное информационно-пропагандистское обеспечение нашей деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Идейные соображения высшего порядка, а также рамки и место обучения кадров позволяет оценить значение дальнейших направлений развития. С другой стороны дальнейшее развитие различных форм деятельности в значительной степени обуславливает создание соответствующий условий активизации. Разнообразный и богатый опыт начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Товарищи! консультация с широким активом способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач.</p>
1822
<p>Разнообразный и богатый опыт сложившаяся структура организации позволяет оценить значение дальнейших направлений развития. Таким образом укрепление и развитие структуры обеспечивает широкому кругу (специалистов) участие в формировании существенных финансовых и административных условий.</p>',
1823
                        '<p>Идейные соображения высшего порядка, а также дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке существенных финансовых и административных условий.</p>',
1824
                        'show',
1825
                        'Четвертая новость',
1826
                        'Четвертая новость',
1827
                        'Четвертая новость',
1828
                        $newsPageId,
1829
                    ],
1830
                    [
1831
                        'fifth',
1832
                        'news/fifth',
1833
                        '<p>Не следует, однако забывать, что новая модель организационной деятельности позволяет оценить значение направлений прогрессивного развития. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение модели развития. Равным образом начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании позиций, занимаемых участниками в отношении поставленных задач.</p>
1834
<p>Таким образом начало повседневной работы по формированию позиции в значительной степени обуславливает создание форм развития. Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки систем массового участия. Идейные соображения высшего порядка, а также укрепление и развитие структуры способствует подготовки и реализации дальнейших направлений развития. Таким образом консультация с широким активом требуют определения и уточнения новых предложений. Равным образом консультация с широким активом в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.</p>',
1835
                        '<p>Повседневная практика показывает, что консультация с широким активом способствует подготовки и реализации модели развития.</p>',
1836
                        'show',
1837
                        'Пятая новость',
1838
                        'Пятая новость',
1839
                        'Пятая новость',
1840
                        $newsPageId,
1841
                    ],
1842
                ]
1843
            );
1844
            $navigation = Navigation::findOne(['parent_id' => 0]);
1845
            $this->batchInsert(
1846
                Navigation::tableName(),
1847
                [
1848
                    'parent_id',
1849
                    'name',
1850
                    'url',
1851
                    'route_params',
1852
                ],
1853
                [
1854
                    [$navigation->id, 'Новости', '/news', '{}'],
1855
                    [$navigation->id, 'Специальные предложения', '/special-offer', '{}'],
1856
                    [$navigation->id, 'Доставка', '/delivery', '{}'],
1857
                    [$navigation->id, 'Контакты', '/contacts', '{}'],
1858
                ]
1859
            );
1860
            $object = BaseObject::getForClass(Form::className());
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1861
            $this->insert(
1862
                PropertyGroup::tableName(),
1863
                [
1864
                    'object_id' => $object->id,
1865
                    'name' => 'Contact form',
1866
                    'hidden_group_title' => 1,
1867
                ]
1868
            );
1869
            $propertyGroupId = Yii::$app->db->lastInsertID;
1870
            $this->batchInsert(
1871
                Property::tableName(),
1872
                ['property_group_id', 'name', 'key', 'property_handler_id', 'is_eav', 'handler_additional_params'],
1873
                [
1874
                    [$propertyGroupId, 'Имя', 'name', 1, 1, '{"rules":["required"]}'],
1875
                    [$propertyGroupId, 'E-mail', 'email', 1, 1, '{"rules":["required"]}'],
1876
                    [$propertyGroupId, 'Сообщение', 'message', 1, 1, '{"rules":["required"]}'],
1877
                ]
1878
            );
1879
            $this->insert(
1880
                Form::tableName(),
1881
                [
1882
                    'name' => 'Контактная форма',
1883
                    'email_notification_addresses' => '[email protected]'
1884
                ]
1885
            );
1886
            $formId = Yii::$app->db->lastInsertID;
1887
            $this->insert(
1888
                ObjectPropertyGroup::tableName(),
1889
                [
1890
                    'object_id' => $object->id,
1891
                    'object_model_id' => $formId,
1892
                    'property_group_id' => $propertyGroupId,
1893
                ]
1894
            );
1895
            $this->insert(
1896
                View::tableName(),
1897
                [
1898
                    'name' => 'Contact page view',
1899
                    'view' => '@app/views/default/contact',
1900
                    'category' => 'app',
1901
                    'internal_name' => 'contact',
1902
                ]
1903
            );
1904
            $viewId = Yii::$app->db->lastInsertID;
1905
            $object = BaseObject::getForClass(Page::className());
0 ignored issues
show
Deprecated Code introduced by
The method yii\base\BaseObject::className() has been deprecated with message: since 2.0.14. On PHP >=5.5, use `::class` instead.

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
1906
            $this->insert(
1907
                ViewObject::tableName(),
1908
                [
1909
                    'object_id' => $object->id,
1910
                    'object_model_id' => $contactPageId,
1911
                    'view_id' => $viewId,
1912
                ]
1913
            );
1914
            $user = new User(['scenario' => 'signup']);
1915
            $user->username = 'manager';
1916
            $user->password = 'manager';
1917
            $user->email = '[email protected]';
1918
            $user->save(false);
1919
            $this->insert(
1920
                '{{%auth_assignment}}',
1921
                [
1922
                    'item_name' => 'manager',
1923
                    'user_id' => $user->id,
1924
                ]
1925
            );
1926
        }
1927
    }
1928
1929
    public function down()
1930
    {
1931
        $this->dropTable('{{%user_category}}');
1932
        $this->dropTable('{{%user_eav}}');
1933
        $this->dropTable('{{%user_property}}');
1934
        $this->dropTable(UserService::tableName());
1935
        $this->dropTable(User::tableName());
1936
        $this->dropTable('{{%auth_assignment}}');
1937
        $this->dropTable('{{%auth_item_child}}');
1938
        $this->dropTable('{{%auth_item}}');
1939
        $this->dropTable('{{%auth_rule}}');
1940
        $this->dropTable(ErrorUrl::tableName());
1941
        $this->dropTable(ErrorLog::tableName());
1942
        $this->dropTable(Review::tableName());
1943
        $this->dropTable(Notification::tableName());
1944
        $this->dropTable('{{%submission_eav}}');
1945
        $this->dropTable('{{%submission_category}}');
1946
        $this->dropTable('{{%submission_property}}');
1947
        $this->dropTable(Submission::tableName());
1948
        $this->dropTable('{{%form_property}}');
1949
        $this->dropTable('{{%form_eav}}');
1950
        $this->dropTable(Form::tableName());
1951
        $this->dropTable('{{%order_category}}');
1952
        $this->dropTable('{{%order_eav}}');
1953
        $this->dropTable('{{%order_property}}');
1954
        $this->dropTable(PaymentType::tableName());
1955
        $this->dropTable(ShippingOption::tableName());
1956
        $this->dropTable(OrderChat::tableName());
1957
        $this->dropTable(OrderTransaction::tableName());
1958
        $this->dropTable(OrderItem::tableName());
1959
        $this->dropTable(Order::tableName());
1960
        $this->dropTable(SubscribeEmail::tableName());
1961
        $this->dropTable(CategoryGroupRouteTemplates::tableName());
1962
        $this->dropTable('{{%product_category}}');
1963
        $this->dropTable('{{%property_category}}');
1964
        $this->dropTable('{{%category_eav}}');
1965
        $this->dropTable(Category::tableName());
1966
        $this->dropTable(CategoryGroup::tableName());
1967
        $this->dropTable('{{%page_eav}}');
1968
        $this->dropTable('{{%page_category}}');
1969
        $this->dropTable('{{%page_property}}');
1970
        $this->dropTable(Page::tableName());
1971
        $this->dropTable(ViewObject::tableName());
1972
        $this->dropTable(View::tableName());
1973
        $this->dropTable(Layout::tableName());
1974
        $this->dropTable('{{%product_property}}');
1975
        $this->dropTable(Product::tableName());
1976
        $this->dropTable(Property::tableName());
1977
        $this->dropTable(Route::tableName());
1978
        $this->dropTable('{{%product_eav}}');
1979
        $this->dropTable('{{%product_static_value_full_slug}}');
1980
        $this->dropTable('{{%product_category_full_slug}}');
1981
        $this->dropTable(PropertyStaticValues::tableName());
1982
        $this->dropTable(PropertyHandler::tableName());
1983
        $this->dropTable(PropertyGroup::tableName());
1984
        $this->dropTable(ObjectStaticValues::tableName());
1985
        $this->dropTable(ObjectPropertyGroup::tableName());
1986
        $this->dropTable(BaseObject::tableName());
1987
        $this->dropTable(DynamicContent::tableName());
1988
        $this->dropTable(Navigation::tableName());
1989
        $this->dropTable(Image::tableName());
1990
        $this->dropTable('{{%session}}');
1991
        $this->dropTable(ApiService::tableName());
1992
    }
1993
}
1994