Passed
Push — master ( dd4450...9a9614 )
by Andrey
05:55
created

ProductController::getAdditionFields()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 30
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 20
c 0
b 0
f 0
nc 3
nop 0
dl 0
loc 30
rs 9.6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A ProductController::getModelName() 0 3 1
A ProductController::getSearchModelName() 0 3 1
1
<?php
2
3
namespace app\controllers\admin;
4
5
use app\models\{Category, Product, ProductSearch};
6
use app\traits\{LanguageTrait, AdminBeforeActionTrait, AccessTrait, AdditionFieldsTrait};
7
use Itstructure\MFUploader\interfaces\UploadModelInterface;
8
use Itstructure\AdminModule\controllers\CommonAdminController;
9
10
/**
11
 * Class ProductController
12
 * ProductController implements the CRUD actions for Page model.
13
 *
14
 * @package app\controllers\admin
15
 */
16
class ProductController extends CommonAdminController
17
{
18
    use LanguageTrait, AdminBeforeActionTrait, AccessTrait, AdditionFieldsTrait;
0 ignored issues
show
Bug introduced by
The trait app\traits\LanguageTrait requires the property $request which is not provided by app\controllers\admin\ProductController.
Loading history...
introduced by
The trait app\traits\AdditionFieldsTrait requires some properties which are not provided by app\controllers\admin\ProductController: $offset, $limit
Loading history...
Bug introduced by
The trait app\traits\AccessTrait requires the property $user which is not provided by app\controllers\admin\ProductController.
Loading history...
introduced by
The trait app\traits\AdminBeforeActionTrait requires some properties which are not provided by app\controllers\admin\ProductController: $request, $controller
Loading history...
19
20
    /**
21
     * @var bool
22
     */
23
    protected $isMultilanguage = true;
24
25
    /**
26
     * @var bool
27
     */
28
    protected $setEditingScenarios = true;
29
30
    /**
31
     * @return mixed|string
32
     */
33
    public function actionIndex()
34
    {
35
        if (!$this->checkAccessToIndex()) {
36
            return $this->accessError();
37
        }
38
39
        return parent::actionIndex();
40
    }
41
42
    /**
43
     * @param int|string $id
44
     *
45
     * @return mixed
46
     */
47
    public function actionView($id)
48
    {
49
        if (!$this->checkAccessToView()) {
50
            return $this->accessError();
51
        }
52
53
        $this->additionFields['images'] = $this->getMediaFiles(Product::tableName(), (int)$id, UploadModelInterface::FILE_TYPE_IMAGE);
54
55
        return parent::actionView($id);
56
    }
57
58
    /**
59
     * @return mixed|string|\yii\web\Response
60
     */
61
    public function actionCreate()
62
    {
63
        if (!$this->checkAccessToCreate()) {
64
            return $this->accessError();
65
        }
66
67
        $this->additionFields['categories'] = Category::getMenu();
68
        $this->additionFields['albums'] = $this->getAlbums();
69
70
        return parent::actionCreate();
71
    }
72
73
    /**
74
     * @param int|string $id
75
     *
76
     * @return string|\yii\web\Response
77
     */
78
    public function actionUpdate($id)
79
    {
80
        if (!$this->checkAccessToUpdate()) {
81
            return $this->accessError();
82
        }
83
84
        $this->additionFields['categories'] = Category::getMenu();
85
        $this->additionFields['albums'] = $this->getAlbums();
86
        $this->additionFields['images'] = $this->getMediaFiles(Product::tableName(), (int)$id, UploadModelInterface::FILE_TYPE_IMAGE);
87
88
        return parent::actionUpdate($id);
89
    }
90
91
    /**
92
     * @param int|string $id
93
     *
94
     * @return mixed|\yii\web\Response
95
     */
96
    public function actionDelete($id)
97
    {
98
        if (!$this->checkAccessToDelete()) {
99
            return $this->accessError();
100
        }
101
102
        return parent::actionDelete($id);
103
    }
104
105
    /**
106
     * Returns Product model name.
107
     *
108
     * @return string
109
     */
110
    protected function getModelName():string
111
    {
112
        return Product::class;
113
    }
114
115
    /**
116
     * Returns ProductSearch model name.
117
     *
118
     * @return string
119
     */
120
    protected function getSearchModelName():string
121
    {
122
        return ProductSearch::class;
123
    }
124
}
125