Blame view

artweb/artbox-catalog/widgets/GroupCategoryWidget.php 1.82 KB
16f1e516   mzavalniuk   add artbox-catalo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  <?php
      
      namespace artbox\catalog\widgets;
      
      use artbox\catalog\models\Category;
      use artbox\catalog\models\ProductOptionGroupExcl;
      use artbox\catalog\models\ProductOptionGroupExclToCategory;
      use yii\base\Widget;
      use yii\widgets\ActiveForm;
      
      /**
       * Class GroupCategoryWidget
       *
       * @package artbox\catalog\widgets
       */
      class GroupCategoryWidget extends Widget
      {
          /**
           * @var ActiveForm
           */
          public $form;
          
          /**
           * @var array
           */
          public $categoryIds;
          
          /**
           * @var Category[]
           */
          protected $allCategories;
          
          /**
           * @var ProductOptionGroupExclToCategory
           */
          protected $currentCategories = [];
      
          /**
           * @var ProductOptionGroupExcl
           */
          public $model;
          
          /**
           * @inheritdoc
           */
          public function init()
          {
              $this->allCategories = Category::find()
                                             ->with('lang')
                                             ->indexBy('id')
                                             ->all();
              $this->currentCategories = $this->model->getProductOptionGroupExclToCategories()
                                                     ->indexBy('category_id')
                                                     ->all();
          }
          
          /**
           * @inheritdoc
           */
          public function run()
          {
              return $this->render(
                  '_group_category',
                  [
                      'form'              => $this->form,
                      'categories'        => $this->allCategories,
                      'currentCategories' => $this->currentCategories,
                  ]
              );
          }
      }