Commit 0b8441f2aa956c0e9402b4c5e228615f142ceaf2

Authored by Karnovsky A
1 parent fde39c35

Karnovsky-02052016

backend/controllers/BrandController.php
... ... @@ -79,6 +79,7 @@ class BrandController extends Controller
79 79 {
80 80 $model = new Brand();
81 81 if ($model->load(Yii::$app->request->post()) && $model->save()) {
  82 + exit;
82 83 return is_null(Yii::$app->request->post('create_and_new')) ? $this->redirect(['view', 'id' => $model->brand_id]) : $this->redirect(array_merge(['create'], Yii::$app->request->queryParams));
83 84 } else {
84 85 return $this->render('create', [
... ...
common/modules/product/models/Brand.php
... ... @@ -27,12 +27,6 @@ class Brand extends \yii\db\ActiveRecord
27 27 public function behaviors()
28 28 {
29 29 return [
30   - 'slug' => [
31   - 'class' => Slug::className(),
32   - 'in_attribute' => 'name',
33   - 'out_attribute' => 'alias',
34   - 'translit' => true
35   - ],
36 30 'artboxsynonym' => [
37 31 'class' => ArtboxSynonymBehavior::className(),
38 32 'keyNameValue' => 'brand_name_id',
... ... @@ -40,8 +34,13 @@ class Brand extends \yii\db\ActiveRecord
40 34 'valueOptionId' => 'brand_id',
41 35 'valueFields' => [ // postKey => DBFieldName
42 36 'name' => 'value'
  37 + ],
  38 + 'slug' => [
  39 + 'valueKeyName' => 'value',
  40 + 'slugKeyName' => 'alias',
  41 + 'translit' => true
43 42 ]
44   - ]
  43 + ],
45 44 ];
46 45 }
47 46  
... ... @@ -112,6 +111,6 @@ class Brand extends \yii\db\ActiveRecord
112 111 }
113 112  
114 113 public function getName() {
115   - return empty($this->brandName) ? null : $this->brandName->value;
  114 + return empty($this->brand_name_id) ? null : $this->brandName->value;
116 115 }
117 116 }
... ...
common/modules/product/models/Category.php
... ... @@ -42,12 +42,6 @@ class Category extends \yii\db\ActiveRecord
42 42 'keyNameGroup' => null,
43 43 'keyNamePath' => 'path',
44 44 ],
45   - 'slug' => [
46   - 'class' => RuSlug::className(),
47   - 'in_attribute' => 'name',
48   - 'out_attribute' => 'alias',
49   - 'translit' => true
50   - ],
51 45 'artboxsynonym' => [
52 46 'class' => ArtboxSynonymBehavior::className(),
53 47 'keyNameValue' => 'category_name_id',
... ... @@ -55,6 +49,11 @@ class Category extends \yii\db\ActiveRecord
55 49 'valueOptionId' => 'category_id',
56 50 'valueFields' => [ // postKey => DBFieldName
57 51 'name' => 'value'
  52 + ],
  53 + 'slug' => [
  54 + 'valueKeyName' => 'value',
  55 + 'slugKeyName' => 'alias',
  56 + 'translit' => true
58 57 ]
59 58 ],
60 59 [
... ...
common/modules/rubrication/behaviors/ArtboxSynonymBehavior.php
... ... @@ -3,11 +3,13 @@
3 3 namespace common\modules\rubrication\behaviors;
4 4  
5 5 use common\modules\rubrication\models\TaxValueString;
  6 +use dosamigos\transliterator\TransliteratorHelper;
6 7 use yii\base\Behavior;
7 8 use yii\base\Exception;
8 9 use yii\db\ActiveRecord;
9 10 use Yii;
10 11 use yii\helpers\ArrayHelper;
  12 +use yii\helpers\Inflector;
11 13 use yii\web\NotFoundHttpException;
12 14  
13 15 class ArtboxSynonymBehavior extends Behavior {
... ... @@ -23,6 +25,8 @@ class ArtboxSynonymBehavior extends Behavior {
23 25  
24 26 public $values = [];
25 27  
  28 + public $slug = null;
  29 +
26 30 /**
27 31 * @param ActiveRecord $owner
28 32 * @throws Exception
... ... @@ -84,6 +88,7 @@ class ArtboxSynonymBehavior extends Behavior {
84 88 $valueModel->setAttribute($this->valueOptionId, $this->owner->getAttribute($this->keyNameId));
85 89 $valueModel->save();
86 90 $this->owner->setAttribute($this->keyNameValue, $valueModel->getAttribute($this->valuePKey));
  91 + $this->owner->{$this->slug['slugKeyName']} = $this->slugify($valueModel->{$this->slug['valueKeyName']});
87 92 $this->owner->save(false);
88 93 }
89 94  
... ... @@ -111,6 +116,9 @@ class ArtboxSynonymBehavior extends Behavior {
111 116 if ($isave) {
112 117 $valueModel->setAttribute($this->valueOptionId, $this->owner->getAttribute($this->keyNameId));
113 118 $valueModel->save();
  119 + if (!empty($this->slug) && empty($this->owner->getAttribute($this->slug['slugKeyName']))) {
  120 + $this->owner->{$this->slug['slugKeyName']} = $this->slugify($valueModel->{$this->slug['valueKeyName']});
  121 + }
114 122 }
115 123 }
116 124  
... ... @@ -122,6 +130,11 @@ class ArtboxSynonymBehavior extends Behavior {
122 130 ]);
123 131 }
124 132  
  133 + private function slugify( $slug )
  134 + {
  135 + return Inflector::slug( TransliteratorHelper::process( $slug ), '-', true );
  136 + }
  137 +
125 138 /**
126 139 * @inheritdoc
127 140 */
... ...
common/translation/ru/product.php
1   -`<?php
  1 +<?php
2 2 return [
3 3 'Categories' => 'Категории',
4 4 'Create Category' => 'Создать Категорию',
... ...