Blame view

frontend/widgets/Rubrics.php 1.47 KB
dc2cd017   Karnovsky A   -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  <?php
  
  namespace frontend\widgets;
  
  use common\modules\product\models\Category;
  use common\modules\product\models\CategorySearch;
  use Yii;
  use yii\base\Widget;
  use yii\web\View;
  use yii\helpers\Url;
  
  class Rubrics extends Widget {
      public $active;
  
      public $wrapper = '';
  
bac5886c   Karnovsky A   -
17
18
19
20
      public $includes = [];
  
      private $categories = [];
  
dc2cd017   Karnovsky A   -
21
22
      public function run()
      {
bac5886c   Karnovsky A   -
23
          if (empty($this->active)) {
dc2cd017   Karnovsky A   -
24
25
              $this->active = Yii::$app->request->get('category');
          }
e2651dcd   Karnovsky A   Special-product-f...
26
          if (!empty($this->active) && !is_object($this->active)) {
dc2cd017   Karnovsky A   -
27
28
29
30
31
32
              $this->active = CategorySearch::findByAlias($this->active);
          }
          if (!empty($this->active)) {
              $this->active = $this->active->category_id;
          }
          $items = [];
bac5886c   Karnovsky A   -
33
34
  
          if (empty($this->categories)) {
c7852657   Karnovsky A   -
35
              $this->categories = Category::find()->orderBy('category_id', SORT_ASC)->all();
bac5886c   Karnovsky A   -
36
37
38
39
40
          }
          foreach ($this->categories as $category) {
              if (!empty($this->includes) && !in_array($category->category_id, $this->includes)) {
                  continue;
              }
dc2cd017   Karnovsky A   -
41
              $items[] = $category;[
8724ec1f   Karnovsky A   -
42
                  'label' => $category->name,
dc2cd017   Karnovsky A   -
43
44
45
46
47
48
49
50
                  'url' => Url::to(['catalog/category', 'category' => $category]),
                  'active' => !empty($categoryObject) && $categoryObject->alias == $category->alias ? true : false,
              ];
          }
  
          return $this->render('rubrics', ['items' => $items, 'wrapper' => $this->wrapper, 'active' => $this->active]);
      }
  }