Commit e57ad02f6f63ad94e9933a78961ee4b9e7abd653

Authored by Administrator
1 parent b7c30426

14.09.16

Showing 1 changed file with 58 additions and 120 deletions   Show diff stats
frontend/widgets/Seo.php
... ... @@ -101,21 +101,49 @@ class Seo extends Widget
101 101  
102 102 $filter = \Yii::$app->request->get('filters', []);
103 103  
104   - $default = $this->selectSeoData(self::H1);
105 104  
106   - if ($default != $this->{self::H1}) {
107 105  
108   - return $default;
  106 + if (isset($filter['brands']) && count($filter['brands']) == 1) {
109 107  
  108 + $model = Brand::find()->where(['alias' => $filter['brands'][0]])->one();
  109 + if(!$model instanceof Brand){
110 110  
111   - } else if(!empty($filter) && !$this->checkFilter($filter)){
  111 + \Yii::$app->response->redirect(['/site/error'],404);
  112 + } else {
  113 + if($this->selectSeoData(self::H1) == $this->category_name) {
112 114  
113   - $array = $this->arrayBuilder($filter);
114   - return $this->getNameString($array);
115   - }
116   - else {
  115 + return $this->selectSeoData(self::H1) . ' ' . $model->name ;
  116 + }else {
  117 +
  118 + return $this->selectSeoData(self::H1);
  119 +
  120 + }
  121 + }
  122 +
  123 +
  124 +
  125 + } else if (isset($filter["naznacenie"]) && count($filter["naznacenie"]) == 1) {
  126 +
  127 + $model = TaxOption::find()->where(['alias' => $filter["naznacenie"]])->one();
  128 + if(!$model instanceof TaxOption){
  129 +
  130 + \Yii::$app->response->redirect(['/site/error'],404);
  131 + } else {
  132 + if($this->selectSeoData(self::H1) == $this->category_name) {
117 133  
118   - return $default;
  134 + return $this->selectSeoData(self::H1) . ' ' . $model->value->value;
  135 + }else {
  136 +
  137 + return $this->selectSeoData(self::H1);
  138 +
  139 + }
  140 +
  141 + }
  142 +
  143 +
  144 +
  145 + } else {
  146 + return $this->selectSeoData(self::H1);
119 147 }
120 148 break;
121 149 case self::TITLE:
... ... @@ -192,18 +220,6 @@ class Seo extends Widget
192 220 'content' => $description
193 221 ]);
194 222  
195   - } else {
196   -
197   - $filter = \Yii::$app->request->get('filters', []);
198   -
199   - if(!empty($filter)){
200   - $array = $this->arrayBuilder($filter);
201   - $this->getView()->registerMetaTag([
202   - 'name' => 'description',
203   - 'content' => $this->getDescriptionString($array)
204   - ]);
205   - }
206   -
207 223 }
208 224  
209 225 break;
... ... @@ -211,20 +227,31 @@ class Seo extends Widget
211 227  
212 228 $meta = $this->selectSeoData(self::META);
213 229  
  230 + $widgetData = static::findSeoByUrl($this->url);
  231 +
214 232 $filter = \Yii::$app->request->get('filters', []);
215 233 $sort = \Yii::$app->request->get('sort', []);
216 234 $paginate = \Yii::$app->request->get('page', []);
217 235  
218 236  
219   -
220   - if (!empty($meta) && empty($sort) && empty($paginate) && !isset($filter['prices']) ) {
  237 + if (!empty($meta)) {
221 238  
222 239 $this->getView()->registerMetaTag([
223 240 'name' => 'robots',
224 241 'content' => $meta
225 242 ]);
226 243  
227   - } else if(!empty($filter['special'])){
  244 + }
  245 + else if ($widgetData instanceof \common\models\Seo) {
  246 +
  247 + $this->getView()->registerMetaTag([
  248 + 'name' => 'robots',
  249 + 'content' =>'index,follow'
  250 + ]);
  251 +
  252 + }
  253 +
  254 + else if(!empty($filter['special'])){
228 255  
229 256 $this->getView()->registerMetaTag([
230 257 'name' => 'robots',
... ... @@ -232,24 +259,24 @@ class Seo extends Widget
232 259 ]);
233 260  
234 261 } else if (
235   - isset($filter['brands']) && count($filter['brands']) > 1
236   - || isset($filter) && $this->checkFilter($filter)|| !empty($sort) || !empty($paginate) || isset($filter['prices'])
  262 + isset($filter['brands']) && count($filter['brands']) > 1 || isset($filter) && $this->checkFilter($filter)
237 263  
238 264 ) {
239   -
240   -
241 265 $this->getView()->registerMetaTag([
242 266 'name' => 'robots',
243 267 'content' => 'noindex,nofollow'
244 268 ]);
245 269  
246   - } else if ( isset($filter) && count($filter, COUNT_RECURSIVE) > 4) {
  270 + } else if (
  271 + isset($filter['brands']) && count($filter['brands']) <= 1 && isset($filter) && count($filter, COUNT_RECURSIVE) >= 2
  272 + || isset($filter) && count($filter, COUNT_RECURSIVE) >= 2
  273 + || !empty($sort) || !empty($paginate) || isset($filter['prices'])
  274 + ) {
247 275 $this->getView()->registerMetaTag([
248 276 'name' => 'robots',
249 277 'content' => 'noindex,follow'
250 278 ]);
251   - }
252   - else {
  279 + } else {
253 280  
254 281 $this->getView()->registerMetaTag([
255 282 'name' => 'robots',
... ... @@ -381,93 +408,4 @@ class Seo extends Widget
381 408 return $fc.mb_substr($str, 1);
382 409 }
383 410  
384   - public function getDescriptionString($array){
385   - // "{Название раздела | Название блока фильтра: Фильтр 1 | Название блока фильтра: Фильтр 2 | Название блока фильтра: Фильтр 3}. по самой лучшей цене с гарантией от производителя - Ruzkachok.com.ua";
386   - $row = '';
387   - foreach($array as $name => $field){
388   -
389   - if($name == 'category' ){
390   - $row = $field.' '.$row;
391   - } else {
392   - $row .= $field['name'] .' '.$field['value'].' ' ;
393   - }
394   -
395   -
396   -
397   - }
398   - $row = substr($row, 0,-2 );
399   - $row .= " по самой лучшей цене с гарантией от производителя - Rukzachok.com.ua";
400   - return $row;
401   -
402   - }
403   -
404   -
405   - public function getNameString($array){
406   - $row = '';
407   - foreach($array as $name => $field){
408   -
409   - if($name == 'category' ){
410   - $row = $field.' '.$row;
411   - } else {
412   - $row .= $field['name'] .' '.$field['value'].' ' ;
413   - }
414   -
415   -
416   -
417   - }
418   - $row = substr($row, 0,-2 );
419   - return $row;
420   -
421   - }
422   -
423   - public function arrayBuilder($filter)
424   - {
425   -
426   - $array = [
427   - 'category' => $this->category_name
428   - ];
429   -
430   -
431   - if (isset($filter['brands']) && count($filter['brands']) == 1) {
432   - $model = Brand::find()->where(['alias' => $filter['brands'][0]])->one();
433   - if (!$model instanceof Brand) {
434   -
435   - \Yii::$app->response->redirect(['/site/error'], 404);
436   - } else {
437   - $array['brand']['name'] = 'Бренд';
438   - $array['brand']['value'] = $model->name;
439   - }
440   -
441   - }
442   -
443   -
444   - $optionsList = ArrayHelper::map(TaxGroup::find()->where(['is_filter' => 'TRUE'])->all(), 'alias', 'name');
445   -
446   -
447   - foreach ($optionsList as $optionList => $name) {
448   -
449   -
450   - if (isset($filter[$optionList]) && count($filter[$optionList]) == 1) {
451   -
452   - $model = TaxOption::find()->where(['alias' => $filter[$optionList]])->one();
453   - if (!$model instanceof TaxOption) {
454   -
455   - \Yii::$app->response->redirect(['site/error'], 404);
456   - } else {
457   - $array[$optionList]['value'] = $model->value;
458   - $array[$optionList]['name'] = $name;
459   - }
460   -
461   -
462   - }
463   -
464   -
465   - }
466   -
467   - return $array;
468   -
469   - }
470   -
471   -
472   -
473 411 }
474 412 \ No newline at end of file
... ...