Commit 0d0c080c7346da88dd8af3d0e84c1ceef6300251
1 parent
be02a25c
seo module filter meta robot
Showing
9 changed files
with
74 additions
and
24 deletions
Show diff stats
backend/views/seo/_form.php
... | ... | @@ -17,6 +17,8 @@ use mihaildev\elfinder\ElFinder; |
17 | 17 | |
18 | 18 | <?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?> |
19 | 19 | |
20 | + <?= $form->field($model, 'meta')->textInput(['maxlength' => true]) ?> | |
21 | + | |
20 | 22 | <?= $form->field($model, 'description')->textInput(['maxlength' => true]) ?> |
21 | 23 | |
22 | 24 | <?= $form->field($model, 'h1')->textInput(['maxlength' => true]) ?> | ... | ... |
backend/views/seo/_search.php
... | ... | @@ -19,7 +19,9 @@ use yii\widgets\ActiveForm; |
19 | 19 | |
20 | 20 | <?= $form->field($model, 'url') ?> |
21 | 21 | |
22 | - <?= $form->field($model, 'title') ?> | |
22 | + <?= $form->field($model, 'meta') ?> | |
23 | + | |
24 | + <?= $form->field($model, 'title') ?> | |
23 | 25 | |
24 | 26 | <?= $form->field($model, 'description') ?> |
25 | 27 | ... | ... |
backend/views/seo/index.php
backend/views/seo/view.php
common/models/Seo.php
... | ... | @@ -10,6 +10,7 @@ use Yii; |
10 | 10 | * @property integer $seo_id |
11 | 11 | * @property string $url |
12 | 12 | * @property string $title |
13 | + * @property string $meta | |
13 | 14 | * @property string $description |
14 | 15 | * @property string $h1 |
15 | 16 | * @property string $seo_text |
... | ... | @@ -32,7 +33,7 @@ class Seo extends \yii\db\ActiveRecord |
32 | 33 | return [ |
33 | 34 | [['url'], 'required'], |
34 | 35 | [['seo_text'], 'string'], |
35 | - [['url', 'title', 'description', 'h1'], 'string', 'max' => 255], | |
36 | + [['url', 'title', 'meta', 'description', 'h1'], 'string', 'max' => 255], | |
36 | 37 | ]; |
37 | 38 | } |
38 | 39 | |
... | ... | @@ -45,6 +46,7 @@ class Seo extends \yii\db\ActiveRecord |
45 | 46 | 'seo_id' => Yii::t('app', 'seo_id'), |
46 | 47 | 'url' => Yii::t('app', 'url'), |
47 | 48 | 'title' => Yii::t('app', 'title'), |
49 | + 'meta' => Yii::t('app', 'meta_title'), | |
48 | 50 | 'description' => Yii::t('app', 'description'), |
49 | 51 | 'h1' => Yii::t('app', 'h1'), |
50 | 52 | 'seo_text' => Yii::t('app', 'seo_text'), | ... | ... |
common/models/SeoSearch.php
... | ... | @@ -19,7 +19,7 @@ class SeoSearch extends Seo |
19 | 19 | { |
20 | 20 | return [ |
21 | 21 | [['seo_id'], 'integer'], |
22 | - [['url', 'title', 'description', 'h1', 'seo_text'], 'safe'], | |
22 | + [['url', 'title', 'meta', 'description', 'h1', 'seo_text'], 'safe'], | |
23 | 23 | ]; |
24 | 24 | } |
25 | 25 | |
... | ... | @@ -64,6 +64,7 @@ class SeoSearch extends Seo |
64 | 64 | |
65 | 65 | $query->andFilterWhere(['like', 'url', $this->url]) |
66 | 66 | ->andFilterWhere(['like', 'title', $this->title]) |
67 | + ->andFilterWhere(['like', 'meta', $this->meta]) | |
67 | 68 | ->andFilterWhere(['like', 'description', $this->description]) |
68 | 69 | ->andFilterWhere(['like', 'h1', $this->h1]) |
69 | 70 | ->andFilterWhere(['like', 'seo_text', $this->seo_text]); | ... | ... |
frontend/views/catalog/product.php
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | use yii\widgets\Breadcrumbs; |
3 | 3 | use yii\web\View; |
4 | 4 | use yii\helpers\Url; |
5 | -$this->params['seo']['title'] = $product->fullname ; | |
5 | +$this->params['seo']['title'] = $product->fullname; | |
6 | 6 | $this->title = $product->fullname; |
7 | 7 | //$this->title = (! empty($product->meta_title)) ? $product->meta_title : $product->fullname; |
8 | 8 | //$this->registerMetaTag (['name' => 'description', 'content' => ((! empty($product->meta_description)) ? $product->meta_description : $product->fullname)]); | ... | ... |
frontend/views/layouts/main.php
... | ... | @@ -85,6 +85,7 @@ ga('send', 'pageview'); |
85 | 85 | <?= Html::csrfMetaTags () ?> |
86 | 86 | <title><?= Seo::widget([ 'row'=>'title'])?></title> |
87 | 87 | <?= Seo::widget([ 'row'=>'description'])?> |
88 | + <?= Seo::widget([ 'row'=>'meta'])?> | |
88 | 89 | <link rel="shortcut icon" href="<?= Yii::$app->request->baseUrl ?>/img/favicon.ico" type="image/x-icon"/> |
89 | 90 | <?= HreflangWidget::widget ([]) ?> |
90 | 91 | <?php $this->head () ?> | ... | ... |
frontend/widgets/Seo.php
... | ... | @@ -12,6 +12,7 @@ class Seo extends Widget |
12 | 12 | public $fields; |
13 | 13 | public $description; |
14 | 14 | public $title; |
15 | + public $meta; | |
15 | 16 | public $seo_text; |
16 | 17 | public $h1; |
17 | 18 | public $key; |
... | ... | @@ -22,6 +23,7 @@ class Seo extends Widget |
22 | 23 | |
23 | 24 | const SEO_TEXT = 'seo_text'; |
24 | 25 | const DESCRIPTION = 'description'; |
26 | + const META = 'meta'; | |
25 | 27 | const H1 = 'h1'; |
26 | 28 | const TITLE = 'title'; |
27 | 29 | |
... | ... | @@ -52,27 +54,28 @@ class Seo extends Widget |
52 | 54 | break; |
53 | 55 | case self::TITLE: |
54 | 56 | |
55 | - $filter = \Yii::$app->request->get('filter', []); | |
56 | - if(!empty($filter)){ | |
57 | - $filter_row = ''; | |
58 | - foreach($filter as $sub_filter_name => $sub_filter_array){ | |
59 | - if($sub_filter_name=='options'){ | |
60 | - foreach($sub_filter_array as $f_name=>$f_values){ | |
61 | - $filter_row .= $f_name.':'.implode(',',$f_values).'|'; | |
62 | - } | |
63 | - } | |
64 | - | |
65 | - } | |
66 | - $this->fields['name'] = $filter_row; | |
67 | - } | |
57 | + $filter = \Yii::$app->request->get('filter', []); | |
58 | + // var_dump($filter );die(); | |
59 | +// if(!empty($filter)){ | |
60 | +// $filter_row = ''; | |
61 | +// foreach($filter as $sub_filter_name => $sub_filter_array){ | |
62 | +// if($sub_filter_name=='options'){ | |
63 | +// foreach($sub_filter_array as $f_name=>$f_values){ | |
64 | +// $filter_row .= $f_name.':'.implode(',',$f_values).'|'; | |
65 | +// } | |
66 | +// } | |
67 | +// | |
68 | +// } | |
69 | +// $this->fields['name'] = $filter_row; | |
70 | +// } | |
68 | 71 | |
69 | 72 | $title = $this->selectSeoData(self::TITLE); |
70 | 73 | |
71 | 74 | |
72 | - if(!empty($filter_row)){ | |
73 | - return $filter_row; | |
74 | - } | |
75 | - if(!empty($title)){ | |
75 | +// if(!empty($filter_row)){ | |
76 | +// return $filter_row; | |
77 | +// } | |
78 | + if (!empty($title)) { | |
76 | 79 | return $title; |
77 | 80 | } else { |
78 | 81 | return $this->project_name; |
... | ... | @@ -82,16 +85,54 @@ class Seo extends Widget |
82 | 85 | case self::DESCRIPTION: |
83 | 86 | $description = $this->selectSeoData(self::DESCRIPTION); |
84 | 87 | |
85 | - if(!empty($description)){ | |
88 | + if (!empty($description)) { | |
86 | 89 | |
87 | 90 | $this->getView()->registerMetaTag([ |
88 | 91 | 'name' => 'description', |
89 | - 'content' => $description | |
92 | + 'content' => $description | |
90 | 93 | ]); |
91 | 94 | |
92 | 95 | } |
93 | 96 | |
94 | 97 | break; |
98 | + case self::META: | |
99 | + $meta = $this->selectSeoData(self::META); | |
100 | + | |
101 | + $filter = \Yii::$app->request->get('filter', []); | |
102 | + | |
103 | + | |
104 | + | |
105 | + if(!empty($meta)){ | |
106 | + | |
107 | + $this->getView()->registerMetaTag([ | |
108 | + 'name' => 'robots', | |
109 | + 'content' => $meta | |
110 | + ]); | |
111 | + | |
112 | + } else if ( | |
113 | + isset($filter['brands']) && count($filter['brands']) > 1 | |
114 | + || isset($filter['options']["pol"]) && count($filter['options']["pol"]) > 1 | |
115 | + || isset($filter['options']["naznacenie"]) && count($filter['options']["naznacenie"]) > 1 | |
116 | + || isset($filter['options']["god"]) && count($filter['options']["god"]) > 1 | |
117 | + || isset($filter['brands']) && count($filter['brands']) <= 1 && isset($filter['options']) && count($filter['options'], COUNT_RECURSIVE) >= 4 | |
118 | + || isset($filter['options']) && count($filter['options'], COUNT_RECURSIVE) > 4 | |
119 | + | |
120 | + ){ | |
121 | + $this->getView()->registerMetaTag([ | |
122 | + 'name' => 'robots', | |
123 | + 'content' => 'noindex,follow' | |
124 | + ]); | |
125 | + | |
126 | + } else if($filter) { | |
127 | + | |
128 | + $this->getView()->registerMetaTag([ | |
129 | + 'name' => 'robots', | |
130 | + 'content' => 'index,follow' | |
131 | + ]); | |
132 | + } | |
133 | + | |
134 | + | |
135 | + break; | |
95 | 136 | } |
96 | 137 | |
97 | 138 | |
... | ... | @@ -145,7 +186,6 @@ class Seo extends Widget |
145 | 186 | }else if(!empty($this->$param)){ |
146 | 187 | |
147 | 188 | $result = $this->$param; |
148 | - | |
149 | 189 | } else { |
150 | 190 | |
151 | 191 | $widgetData = $this->findSeoByDynamic(); | ... | ... |