Commit f202ab2b57b31def6c257f2dc3060aada96bef8b
1 parent
5c2eb7c8
Article table refactor.
Showing
19 changed files
with
123 additions
and
246 deletions
Show diff stats
backend/assets/AdminLteAsset.php
... | ... | @@ -27,9 +27,7 @@ class AdminLteAsset extends AssetBundle |
27 | 27 | ]; |
28 | 28 | public $depends = [ |
29 | 29 | 'yii\web\YiiAsset', |
30 | - 'common\modules\file\FileUploadAsset', | |
31 | 30 | 'yii\bootstrap\BootstrapPluginAsset', |
32 | 31 | 'backend\assets\FontAwesomeAsset', |
33 | - | |
34 | 32 | ]; |
35 | 33 | } |
36 | 34 | \ No newline at end of file | ... | ... |
backend/controllers/ArticlesController.php renamed to backend/controllers/ArticleController.php
... | ... | @@ -2,18 +2,18 @@ |
2 | 2 | |
3 | 3 | namespace backend\controllers; |
4 | 4 | |
5 | + use common\models\Article; | |
6 | + use common\models\ArticleSearch; | |
5 | 7 | use Yii; |
6 | - use common\models\Articles; | |
7 | - use common\models\ArticlesSearch; | |
8 | 8 | use yii\web\Controller; |
9 | 9 | use yii\web\NotFoundHttpException; |
10 | 10 | use yii\filters\VerbFilter; |
11 | 11 | use developeruz\db_rbac\behaviors\AccessBehavior; |
12 | 12 | |
13 | 13 | /** |
14 | - * ArticlesController implements the CRUD actions for Articles model. | |
14 | + * ArticleController implements the CRUD actions for Article model. | |
15 | 15 | */ |
16 | - class ArticlesController extends Controller | |
16 | + class ArticleController extends Controller | |
17 | 17 | { |
18 | 18 | |
19 | 19 | /** |
... | ... | @@ -46,12 +46,12 @@ |
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
49 | - * Lists all Articles models. | |
49 | + * Lists all Article models. | |
50 | 50 | * @return mixed |
51 | 51 | */ |
52 | 52 | public function actionIndex() |
53 | 53 | { |
54 | - $searchModel = new ArticlesSearch(); | |
54 | + $searchModel = new ArticleSearch(); | |
55 | 55 | $dataProvider = $searchModel->search(Yii::$app->request->queryParams); |
56 | 56 | |
57 | 57 | return $this->render('index', [ |
... | ... | @@ -61,7 +61,7 @@ |
61 | 61 | } |
62 | 62 | |
63 | 63 | /** |
64 | - * Displays a single Articles model. | |
64 | + * Displays a single Article model. | |
65 | 65 | * |
66 | 66 | * @param integer $id |
67 | 67 | * |
... | ... | @@ -75,13 +75,13 @@ |
75 | 75 | } |
76 | 76 | |
77 | 77 | /** |
78 | - * Creates a new Articles model. | |
78 | + * Creates a new Article model. | |
79 | 79 | * If creation is successful, the browser will be redirected to the 'view' page. |
80 | 80 | * @return mixed |
81 | 81 | */ |
82 | 82 | public function actionCreate() |
83 | 83 | { |
84 | - $model = new Articles(); | |
84 | + $model = new Article(); | |
85 | 85 | $model->generateLangs(); |
86 | 86 | if($model->load(Yii::$app->request->post())) { |
87 | 87 | $model->loadLangs(\Yii::$app->request); |
... | ... | @@ -99,7 +99,7 @@ |
99 | 99 | } |
100 | 100 | |
101 | 101 | /** |
102 | - * Updates an existing Articles model. | |
102 | + * Updates an existing Article model. | |
103 | 103 | * If update is successful, the browser will be redirected to the 'view' page. |
104 | 104 | * |
105 | 105 | * @param integer $id |
... | ... | @@ -126,7 +126,7 @@ |
126 | 126 | } |
127 | 127 | |
128 | 128 | /** |
129 | - * Deletes an existing Articles model. | |
129 | + * Deletes an existing Article model. | |
130 | 130 | * If deletion is successful, the browser will be redirected to the 'index' page. |
131 | 131 | * |
132 | 132 | * @param integer $id |
... | ... | @@ -142,17 +142,17 @@ |
142 | 142 | } |
143 | 143 | |
144 | 144 | /** |
145 | - * Finds the Articles model based on its primary key value. | |
145 | + * Finds the Article model based on its primary key value. | |
146 | 146 | * If the model is not found, a 404 HTTP exception will be thrown. |
147 | 147 | * |
148 | 148 | * @param integer $id |
149 | 149 | * |
150 | - * @return Articles the loaded model | |
150 | + * @return Article the loaded model | |
151 | 151 | * @throws NotFoundHttpException if the model cannot be found |
152 | 152 | */ |
153 | 153 | protected function findModel($id) |
154 | 154 | { |
155 | - if(( $model = Articles::find() | |
155 | + if(( $model = Article::find() | |
156 | 156 | ->where([ 'id' => $id ]) |
157 | 157 | ->with('lang') |
158 | 158 | ->one() ) !== NULL | ... | ... |
backend/views/articles/_form.php renamed to backend/views/article/_form.php
1 | 1 | <?php |
2 | - use common\models\Articles; | |
3 | - use common\models\ArticlesLang; | |
2 | + use common\models\Article; | |
3 | + use common\models\ArticleLang; | |
4 | 4 | use common\modules\language\widgets\LanguageForm; |
5 | 5 | use yii\helpers\Html; |
6 | 6 | use yii\web\View; |
7 | 7 | use yii\widgets\ActiveForm; |
8 | - use mihaildev\ckeditor\CKEditor; | |
9 | - use mihaildev\elfinder\ElFinder; | |
10 | 8 | use yii\jui\DatePicker; |
11 | 9 | |
12 | 10 | /** |
13 | - * @var View $this | |
14 | - * @var Articles $model | |
15 | - * @var ArticlesLang[] $model_langs | |
16 | - * @var ActiveForm $form | |
11 | + * @var View $this | |
12 | + * @var Article $model | |
13 | + * @var ArticleLang[] $model_langs | |
14 | + * @var ActiveForm $form | |
17 | 15 | */ |
18 | 16 | ?> |
19 | 17 | |
20 | -<div class="articles-form"> | |
18 | +<div class="article-form"> | |
21 | 19 | |
22 | 20 | <?php $form = ActiveForm::begin([ |
23 | 21 | 'enableClientValidation' => false, |
... | ... | @@ -25,7 +23,7 @@ |
25 | 23 | ]); ?> |
26 | 24 | |
27 | 25 | |
28 | - <?= $form->field($model, 'date') | |
26 | + <?= $form->field($model, 'created_at') | |
29 | 27 | ->widget(DatePicker::className(), [ |
30 | 28 | 'dateFormat' => 'dd-MM-yyyy', |
31 | 29 | ]) ?> |
... | ... | @@ -54,13 +52,13 @@ |
54 | 52 | <?php |
55 | 53 | echo LanguageForm::widget([ |
56 | 54 | 'model_langs' => $model_langs, |
57 | - 'formView' => '@backend/views/articles/_form_language', | |
55 | + 'formView' => '@backend/views/article/_form_language', | |
58 | 56 | 'form' => $form, |
59 | 57 | ]); |
60 | 58 | ?> |
61 | 59 | |
62 | 60 | <div class="form-group"> |
63 | - <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?> | |
61 | + <?= Html::submitButton($model->isNewRecord ? \Yii::t('app', 'Create') : \Yii::t('app', 'Update'), [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?> | |
64 | 62 | </div> |
65 | 63 | |
66 | 64 | <?php ActiveForm::end(); ?> | ... | ... |
backend/views/articles/_form_language.php renamed to backend/views/article/_form_language.php
1 | 1 | <?php |
2 | - use common\models\ArticlesLang; | |
2 | + use common\models\ArticleLang; | |
3 | 3 | use common\modules\language\models\Language; |
4 | 4 | use mihaildev\ckeditor\CKEditor; |
5 | 5 | use mihaildev\elfinder\ElFinder; |
... | ... | @@ -7,10 +7,10 @@ |
7 | 7 | use yii\widgets\ActiveForm; |
8 | 8 | |
9 | 9 | /** |
10 | - * @var ArticlesLang $model_lang | |
11 | - * @var Language $language | |
12 | - * @var ActiveForm $form | |
13 | - * @var View $this | |
10 | + * @var ArticleLang $model_lang | |
11 | + * @var Language $language | |
12 | + * @var ActiveForm $form | |
13 | + * @var View $this | |
14 | 14 | */ |
15 | 15 | ?> |
16 | 16 | <?= $form->field($model_lang, '[' . $language->language_id . ']title') | ... | ... |
backend/views/articles/_search.php renamed to backend/views/article/_search.php
backend/views/articles/create.php renamed to backend/views/article/create.php
1 | 1 | <?php |
2 | - use common\models\Articles; | |
3 | - use common\models\ArticlesLang; | |
2 | + use common\models\Article; | |
3 | + use common\models\ArticleLang; | |
4 | 4 | use yii\helpers\Html; |
5 | 5 | use yii\web\View; |
6 | 6 | |
7 | 7 | /** |
8 | 8 | * @var View $this |
9 | - * @var Articles $model | |
10 | - * @var ArticlesLang[] $model_langs | |
9 | + * @var Article $model | |
10 | + * @var ArticleLang[] $model_langs | |
11 | 11 | */ |
12 | - $this->title = \Yii::t('app', 'Create Articles'); | |
12 | + $this->title = \Yii::t('app', 'Create Article'); | |
13 | 13 | $this->params[ 'breadcrumbs' ][] = [ |
14 | - 'label' => \Yii::t('app', 'Articles'), | |
14 | + 'label' => \Yii::t('app', 'Article'), | |
15 | 15 | 'url' => [ 'index' ], |
16 | 16 | ]; |
17 | 17 | $this->params[ 'breadcrumbs' ][] = $this->title; |
18 | 18 | ?> |
19 | -<div class="articles-create"> | |
19 | +<div class="article-create"> | |
20 | 20 | |
21 | 21 | <h1><?= Html::encode($this->title) ?></h1> |
22 | 22 | ... | ... |
backend/views/articles/index.php renamed to backend/views/article/index.php
... | ... | @@ -4,9 +4,9 @@ |
4 | 4 | use yii\grid\GridView; |
5 | 5 | |
6 | 6 | /** |
7 | - * @var yii\web\View $this | |
8 | - * @var common\models\ArticlesSearch $searchModel | |
9 | - * @var yii\data\ActiveDataProvider $dataProvider | |
7 | + * @var yii\web\View $this | |
8 | + * @var common\models\ArticleSearch $searchModel | |
9 | + * @var yii\data\ActiveDataProvider $dataProvider | |
10 | 10 | */ |
11 | 11 | |
12 | 12 | $this->title = \Yii::t('app', 'Articles'); |
... | ... | @@ -26,7 +26,7 @@ |
26 | 26 | 'attribute' => 'title', |
27 | 27 | 'value' => 'lang.title', |
28 | 28 | ], |
29 | - 'date:date', | |
29 | + 'created_at:date', | |
30 | 30 | 'imageUrl:image', |
31 | 31 | [ 'class' => 'yii\grid\ActionColumn' ], |
32 | 32 | ], | ... | ... |
backend/views/articles/update.php renamed to backend/views/article/update.php
1 | 1 | <?php |
2 | - use common\models\Articles; | |
3 | - use common\models\ArticlesLang; | |
2 | + use common\models\Article; | |
3 | + use common\models\ArticleLang; | |
4 | 4 | use yii\helpers\Html; |
5 | 5 | use yii\web\View; |
6 | 6 | |
7 | 7 | /** |
8 | - * @var View $this | |
9 | - * @var Articles $model | |
10 | - * @var ArticlesLang[] $model_langs | |
8 | + * @var View $this | |
9 | + * @var Article $model | |
10 | + * @var ArticleLang[] $model_langs | |
11 | 11 | */ |
12 | - $this->title = \Yii::t('app', 'Update Articles').': ' . $model->id; | |
12 | + $this->title = \Yii::t('app', 'Update Article') . ': ' . $model->lang->title; | |
13 | 13 | $this->params[ 'breadcrumbs' ][] = [ |
14 | - 'label' => \Yii::t('app', 'Articles'), | |
14 | + 'label' => \Yii::t('app', 'Article'), | |
15 | 15 | 'url' => [ 'index' ], |
16 | 16 | ]; |
17 | 17 | $this->params[ 'breadcrumbs' ][] = [ |
18 | - 'label' => $model->id, | |
18 | + 'label' => $model->lang->title, | |
19 | 19 | 'url' => [ |
20 | 20 | 'view', |
21 | 21 | 'id' => $model->id, |
... | ... | @@ -23,7 +23,7 @@ |
23 | 23 | ]; |
24 | 24 | $this->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Update'); |
25 | 25 | ?> |
26 | -<div class="articles-update"> | |
26 | +<div class="article-update"> | |
27 | 27 | |
28 | 28 | <h1><?= Html::encode($this->title) ?></h1> |
29 | 29 | ... | ... |
backend/views/articles/view.php renamed to backend/views/article/view.php
... | ... | @@ -4,18 +4,18 @@ |
4 | 4 | use yii\widgets\DetailView; |
5 | 5 | |
6 | 6 | /** |
7 | - * @var yii\web\View $this | |
8 | - * @var common\models\Articles $model | |
7 | + * @var yii\web\View $this | |
8 | + * @var common\models\Article $model | |
9 | 9 | */ |
10 | 10 | |
11 | 11 | $this->title = $model->lang->title; |
12 | 12 | $this->params[ 'breadcrumbs' ][] = [ |
13 | - 'label' => \Yii::t('app', 'Articles'), | |
13 | + 'label' => \Yii::t('app', 'Article'), | |
14 | 14 | 'url' => [ 'index' ], |
15 | 15 | ]; |
16 | 16 | $this->params[ 'breadcrumbs' ][] = $this->title; |
17 | 17 | ?> |
18 | -<div class="articles-view"> | |
18 | +<div class="article-view"> | |
19 | 19 | <h1><?= Html::encode($this->title) ?></h1> |
20 | 20 | <p> |
21 | 21 | <?= Html::a(\Yii::t('app', 'Update'), [ |
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | 'model' => $model, |
38 | 38 | 'attributes' => [ |
39 | 39 | 'id', |
40 | - 'date:date', | |
40 | + 'created_at:date', | |
41 | 41 | 'lang.title', |
42 | 42 | 'lang.body:html', |
43 | 43 | 'imageUrl:image', | ... | ... |
backend/views/layouts/main-sidebar.php
... | ... | @@ -117,8 +117,8 @@ use yii\widgets\Menu; |
117 | 117 | [ |
118 | 118 | 'label' => 'Статьи', |
119 | 119 | 'template'=>'<a href="{url}"> <i class="glyphicon glyphicon-pencil"></i> <span>{label}</span></a>', |
120 | - 'url' => ['/articles/index'], | |
121 | - 'options' => ['class'=>\Yii::$app->user->can('articles') ? '' :'hide'], | |
120 | + 'url' => ['/article/index'], | |
121 | + 'options' => ['class'=>\Yii::$app->user->can('article') ? '' :'hide'], | |
122 | 122 | ], |
123 | 123 | [ |
124 | 124 | 'label' => 'Акции', | ... | ... |
common/behaviors/NotifyBehavior.php
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace common\behaviors; |
4 | 4 | |
5 | - use common\models\Articles; | |
5 | + use common\models\Article; | |
6 | 6 | use common\modules\comment\models\CommentModel; |
7 | 7 | use common\modules\product\models\Product; |
8 | 8 | use common\widgets\Mailer; |
... | ... | @@ -53,15 +53,15 @@ |
53 | 53 | * @todo Change that statements |
54 | 54 | */ |
55 | 55 | if($model::className() == Product::className()) { |
56 | - $url .= '/product/'.$model->alias.'#artbox-comment'; | |
57 | - } elseif($model::className() == Articles::className()) { | |
58 | - $url .= '/blog/'.$model->translit.'#artbox-comment'; | |
56 | + $url .= '/product/' . $model->alias . '#artbox-comment'; | |
57 | + } elseif($model::className() == Article::className()) { | |
58 | + $url .= '/blog/' . $model->translit . '#artbox-comment'; | |
59 | 59 | } |
60 | 60 | $mailer = Mailer::widget([ |
61 | 61 | 'type' => 'comment_notify', |
62 | 62 | 'params' => [ |
63 | - 'model' => $model, | |
64 | - 'url' => $url, | |
63 | + 'model' => $model, | |
64 | + 'url' => $url, | |
65 | 65 | 'comment' => $owner, |
66 | 66 | ], |
67 | 67 | 'subject' => 'Ваш комментарий опубликован', | ... | ... |
common/behaviors/RatingBehavior.php
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace common\behaviors; |
4 | 4 | |
5 | - use common\models\Articles; | |
5 | + use common\models\Article; | |
6 | 6 | use common\modules\comment\models\CommentModel; |
7 | 7 | use common\modules\product\models\Product; |
8 | 8 | use yii\base\Behavior; |
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 | * @var CommentModel $owner |
32 | 32 | */ |
33 | 33 | $owner = $this->owner; |
34 | - if($owner->entity == Product::className() || $owner->entity == Articles::className()) { | |
34 | + if($owner->entity == Product::className() || $owner->entity == Article::className()) { | |
35 | 35 | $entity = $owner->entity; |
36 | 36 | $model = $entity::findOne($owner->entity_id); |
37 | 37 | if($model != NULL) { | ... | ... |
common/models/Articles.php renamed to common/models/Article.php
... | ... | @@ -4,8 +4,8 @@ |
4 | 4 | |
5 | 5 | use common\modules\language\behaviors\LanguageBehavior; |
6 | 6 | use common\behaviors\SaveImgBehavior; |
7 | - use common\modules\comment\models\CommentModel; | |
8 | 7 | use Yii; |
8 | + use yii\behaviors\TimestampBehavior; | |
9 | 9 | use yii\db\ActiveQuery; |
10 | 10 | use yii\db\ActiveRecord; |
11 | 11 | use yii\web\Request; |
... | ... | @@ -13,16 +13,15 @@ |
13 | 13 | /** |
14 | 14 | * This is the model class for table "articles". |
15 | 15 | * @property integer $id |
16 | - * @property integer $date | |
16 | + * @property integer $created_at | |
17 | 17 | * @property string $image |
18 | - * @property ArticleToRating $averageRating | |
19 | 18 | * * From language behavior * |
20 | - * @property ArticlesLang $lang | |
21 | - * @property ArticlesLang[] $langs | |
22 | - * @property ArticlesLang $object_lang | |
19 | + * @property ArticleLang $lang | |
20 | + * @property ArticleLang[] $langs | |
21 | + * @property ArticleLang $object_lang | |
23 | 22 | * @property string $ownerKey |
24 | 23 | * @property string $langKey |
25 | - * @property ArticlesLang[] $model_langs | |
24 | + * @property ArticleLang[] $model_langs | |
26 | 25 | * @property bool $transactionStatus |
27 | 26 | * @method string getOwnerKey() |
28 | 27 | * @method void setOwnerKey( string $value ) |
... | ... | @@ -30,7 +29,7 @@ |
30 | 29 | * @method void setLangKey( string $value ) |
31 | 30 | * @method ActiveQuery getLangs() |
32 | 31 | * @method ActiveQuery getLang( integer $language_id ) |
33 | - * @method ArticlesLang[] generateLangs() | |
32 | + * @method ArticleLang[] generateLangs() | |
34 | 33 | * @method void loadLangs( Request $request ) |
35 | 34 | * @method bool linkLangs() |
36 | 35 | * @method bool saveLangs() |
... | ... | @@ -43,7 +42,7 @@ |
43 | 42 | * @method string|null getImageUrl( int $field ) |
44 | 43 | * * End SaveImgBehavior |
45 | 44 | */ |
46 | - class Articles extends ActiveRecord | |
45 | + class Article extends ActiveRecord | |
47 | 46 | { |
48 | 47 | |
49 | 48 | /** |
... | ... | @@ -51,7 +50,7 @@ |
51 | 50 | */ |
52 | 51 | public static function tableName() |
53 | 52 | { |
54 | - return 'articles'; | |
53 | + return 'article'; | |
55 | 54 | } |
56 | 55 | |
57 | 56 | /** |
... | ... | @@ -65,13 +64,17 @@ |
65 | 64 | 'fields' => [ |
66 | 65 | [ |
67 | 66 | 'name' => 'image', |
68 | - 'directory' => 'articles', | |
67 | + 'directory' => 'article', | |
69 | 68 | ], |
70 | 69 | ], |
71 | 70 | ], |
72 | 71 | 'language' => [ |
73 | 72 | 'class' => LanguageBehavior::className(), |
74 | 73 | ], |
74 | + [ | |
75 | + 'class' => TimestampBehavior::className(), | |
76 | + 'updatedAtAttribute' => false, | |
77 | + ], | |
75 | 78 | ]; |
76 | 79 | } |
77 | 80 | |
... | ... | @@ -82,18 +85,11 @@ |
82 | 85 | { |
83 | 86 | return [ |
84 | 87 | [ |
85 | - [ 'date' ], | |
86 | - 'default', | |
87 | - 'value' => function() { | |
88 | - return time(); | |
89 | - }, | |
90 | - ], | |
91 | - [ | |
92 | - [ 'date' ], | |
88 | + [ 'created_at' ], | |
93 | 89 | 'safe', |
94 | 90 | ], |
95 | 91 | [ |
96 | - [ 'date' ], | |
92 | + [ 'created_at' ], | |
97 | 93 | 'filter', |
98 | 94 | 'filter' => function($value) { |
99 | 95 | return strtotime($value) ? : time(); |
... | ... | @@ -108,53 +104,10 @@ |
108 | 104 | public function attributeLabels() |
109 | 105 | { |
110 | 106 | return [ |
111 | - 'id' => Yii::t('app', 'ID'), | |
112 | - 'date' => Yii::t('app', 'Date'), | |
113 | - 'image' => Yii::t('app', 'Image'), | |
114 | - 'imageUrl' => Yii::t('app', 'Image'), | |
107 | + 'id' => Yii::t('app', 'ID'), | |
108 | + 'created_at' => Yii::t('app', 'Date'), | |
109 | + 'image' => Yii::t('app', 'Image'), | |
110 | + 'imageUrl' => Yii::t('app', 'Image'), | |
115 | 111 | ]; |
116 | 112 | } |
117 | - | |
118 | - public function recalculateRating() | |
119 | - { | |
120 | - /** | |
121 | - * @var ArticleToRating $averageRating | |
122 | - */ | |
123 | - $average = $this->getComments() | |
124 | - ->joinWith('rating') | |
125 | - ->select([ 'average' => 'avg(artbox_comment_rating.value)::float' ]) | |
126 | - ->scalar(); | |
127 | - if(!$average) { | |
128 | - $average = 0; | |
129 | - } | |
130 | - $averageRating = $this->averageRating; | |
131 | - if(!empty( $averageRating )) { | |
132 | - $averageRating->value = $average; | |
133 | - } else { | |
134 | - $averageRating = new ArticleToRating([ | |
135 | - 'articles_id' => $this->id, | |
136 | - 'value' => $average, | |
137 | - ]); | |
138 | - } | |
139 | - if($averageRating->save()) { | |
140 | - return true; | |
141 | - } else { | |
142 | - return false; | |
143 | - } | |
144 | - } | |
145 | - | |
146 | - public function getComments() | |
147 | - { | |
148 | - return $this->hasMany(CommentModel::className(), [ 'entity_id' => 'id' ]) | |
149 | - ->where([ | |
150 | - 'artbox_comment.entity' => self::className(), | |
151 | - 'artbox_comment.status' => CommentModel::STATUS_ACTIVE, | |
152 | - 'artbox_comment.artbox_comment_pid' => NULL, | |
153 | - ]); | |
154 | - } | |
155 | - | |
156 | - public function getAverageRating() | |
157 | - { | |
158 | - return $this->hasOne(ArticleToRating::className(), [ 'articles_id' => 'id' ]); | |
159 | - } | |
160 | 113 | } | ... | ... |
common/models/ArticlesLang.php renamed to common/models/ArticleLang.php
... | ... | @@ -7,8 +7,8 @@ |
7 | 7 | use yii\db\ActiveRecord; |
8 | 8 | |
9 | 9 | /** |
10 | - * This is the model class for table "articles_lang". | |
11 | - * @property integer $articles_id | |
10 | + * This is the model class for table "article_lang". | |
11 | + * @property integer $article_id | |
12 | 12 | * @property integer $language_id |
13 | 13 | * @property string $title |
14 | 14 | * @property string $body |
... | ... | @@ -19,16 +19,16 @@ |
19 | 19 | * @property string $h1 |
20 | 20 | * @property string $body_preview |
21 | 21 | * @property string $alias |
22 | - * @property Articles $articles | |
22 | + * @property Article $article | |
23 | 23 | * @property Language $language |
24 | 24 | */ |
25 | - class ArticlesLang extends ActiveRecord | |
25 | + class ArticleLang extends ActiveRecord | |
26 | 26 | { |
27 | 27 | |
28 | 28 | public static function primaryKey() |
29 | 29 | { |
30 | 30 | return [ |
31 | - 'articles_id', | |
31 | + 'article_id', | |
32 | 32 | 'language_id', |
33 | 33 | ]; |
34 | 34 | } |
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 | */ |
39 | 39 | public static function tableName() |
40 | 40 | { |
41 | - return 'articles_lang'; | |
41 | + return 'article_lang'; | |
42 | 42 | } |
43 | 43 | |
44 | 44 | public function behaviors() |
... | ... | @@ -88,22 +88,22 @@ |
88 | 88 | ], |
89 | 89 | [ |
90 | 90 | [ |
91 | - 'articles_id', | |
91 | + 'article_id', | |
92 | 92 | 'language_id', |
93 | 93 | ], |
94 | 94 | 'unique', |
95 | 95 | 'targetAttribute' => [ |
96 | - 'articles_id', | |
96 | + 'article_id', | |
97 | 97 | 'language_id', |
98 | 98 | ], |
99 | - 'message' => 'The combination of Articles ID and Language ID has already been taken.', | |
99 | + 'message' => 'The combination of Article ID and Language ID has already been taken.', | |
100 | 100 | ], |
101 | 101 | [ |
102 | - [ 'articles_id' ], | |
102 | + [ 'article_id' ], | |
103 | 103 | 'exist', |
104 | 104 | 'skipOnError' => true, |
105 | - 'targetClass' => Articles::className(), | |
106 | - 'targetAttribute' => [ 'articles_id' => 'id' ], | |
105 | + 'targetClass' => Article::className(), | |
106 | + 'targetAttribute' => [ 'article_id' => 'id' ], | |
107 | 107 | ], |
108 | 108 | [ |
109 | 109 | [ 'language_id' ], |
... | ... | @@ -121,7 +121,7 @@ |
121 | 121 | public function attributeLabels() |
122 | 122 | { |
123 | 123 | return [ |
124 | - 'articles_id' => Yii::t('app', 'lang-Articles ID'), | |
124 | + 'article_id' => Yii::t('app', 'lang-Article ID'), | |
125 | 125 | 'language_id' => Yii::t('app', 'lang-Language ID'), |
126 | 126 | 'title' => Yii::t('app', 'lang-Title'), |
127 | 127 | 'body' => Yii::t('app', 'lang-Body'), |
... | ... | @@ -137,9 +137,9 @@ |
137 | 137 | /** |
138 | 138 | * @return \yii\db\ActiveQuery |
139 | 139 | */ |
140 | - public function getArticles() | |
140 | + public function getArticle() | |
141 | 141 | { |
142 | - return $this->hasOne(Articles::className(), [ 'id' => 'articles_id' ]) | |
142 | + return $this->hasOne(Article::className(), [ 'id' => 'article_id' ]) | |
143 | 143 | ->inverseOf('langs'); |
144 | 144 | } |
145 | 145 | ... | ... |
common/models/ArticlesSearch.php renamed to common/models/ArticleSearch.php
... | ... | @@ -6,9 +6,9 @@ |
6 | 6 | use yii\data\ActiveDataProvider; |
7 | 7 | |
8 | 8 | /** |
9 | - * ArticlesSearch represents the model behind the search form about `common\models\Articles`. | |
9 | + * ArticleSearch represents the model behind the search form about `common\models\Article`. | |
10 | 10 | */ |
11 | - class ArticlesSearch extends Articles | |
11 | + class ArticleSearch extends Article | |
12 | 12 | { |
13 | 13 | |
14 | 14 | public $title; |
... | ... | @@ -53,8 +53,8 @@ |
53 | 53 | */ |
54 | 54 | public function search($params) |
55 | 55 | { |
56 | - $query = Articles::find() | |
57 | - ->joinWith('lang', true, 'INNER JOIN'); | |
56 | + $query = Article::find() | |
57 | + ->joinWith('lang'); | |
58 | 58 | |
59 | 59 | // add conditions that should always apply here |
60 | 60 | |
... | ... | @@ -64,8 +64,8 @@ |
64 | 64 | 'attributes' => [ |
65 | 65 | 'id', |
66 | 66 | 'title' => [ |
67 | - 'asc' => [ 'articles_lang.title' => SORT_ASC ], | |
68 | - 'desc' => [ 'articles_lang.title' => SORT_DESC ], | |
67 | + 'asc' => [ 'article_lang.title' => SORT_ASC ], | |
68 | + 'desc' => [ 'article_lang.title' => SORT_DESC ], | |
69 | 69 | ], |
70 | 70 | ], |
71 | 71 | ], |
... | ... | @@ -86,7 +86,7 @@ |
86 | 86 | |
87 | 87 | $query->andFilterWhere([ |
88 | 88 | 'like', |
89 | - 'articles_lang.title', | |
89 | + 'article_lang.title', | |
90 | 90 | $this->title, |
91 | 91 | ]); |
92 | 92 | ... | ... |
common/models/ArticleToRating.php deleted
1 | -<?php | |
2 | - | |
3 | - namespace common\models; | |
4 | - | |
5 | - use yii\db\ActiveRecord; | |
6 | - | |
7 | - /** | |
8 | - * This is the model class for table "article_to_rating". | |
9 | - * @property integer $article_to_rating_id | |
10 | - * @property integer $articles_id | |
11 | - * @property double $value | |
12 | - * @property Articles $articles | |
13 | - */ | |
14 | - class ArticleToRating extends ActiveRecord | |
15 | - { | |
16 | - | |
17 | - /** | |
18 | - * @inheritdoc | |
19 | - */ | |
20 | - public static function tableName() | |
21 | - { | |
22 | - return 'article_to_rating'; | |
23 | - } | |
24 | - | |
25 | - /** | |
26 | - * @inheritdoc | |
27 | - */ | |
28 | - public function rules() | |
29 | - { | |
30 | - return [ | |
31 | - [ | |
32 | - [ 'articles_id' ], | |
33 | - 'required', | |
34 | - ], | |
35 | - [ | |
36 | - [ 'articles_id' ], | |
37 | - 'integer', | |
38 | - ], | |
39 | - [ | |
40 | - [ 'value' ], | |
41 | - 'number', | |
42 | - ], | |
43 | - [ | |
44 | - [ 'articles_id' ], | |
45 | - 'exist', | |
46 | - 'skipOnError' => true, | |
47 | - 'targetClass' => Articles::className(), | |
48 | - 'targetAttribute' => [ 'articles_id' => 'id' ], | |
49 | - ], | |
50 | - ]; | |
51 | - } | |
52 | - | |
53 | - /** | |
54 | - * @inheritdoc | |
55 | - */ | |
56 | - public function attributeLabels() | |
57 | - { | |
58 | - return [ | |
59 | - 'article_to_rating_id' => 'Article To Rating ID', | |
60 | - 'articles_id' => 'Articles ID', | |
61 | - 'value' => 'Value', | |
62 | - ]; | |
63 | - } | |
64 | - | |
65 | - /** | |
66 | - * @return \yii\db\ActiveQuery | |
67 | - */ | |
68 | - public function getArticles() | |
69 | - { | |
70 | - return $this->hasOne(Articles::className(), [ 'id' => 'articles_id' ]); | |
71 | - } | |
72 | - } |
console/controllers/SiteMapController.php
... | ... | @@ -2,22 +2,16 @@ |
2 | 2 | |
3 | 3 | namespace console\controllers; |
4 | 4 | |
5 | -use common\models\Articles; | |
5 | +use common\models\Article; | |
6 | 6 | use common\models\Seo; |
7 | -use common\modules\product\helpers\FilterHelper; | |
8 | -use common\modules\product\models\Brand; | |
9 | 7 | use common\modules\product\models\Category; |
10 | 8 | use common\modules\product\models\Product; |
11 | 9 | use frontend\models\ProductFrontendSearch; |
12 | 10 | use Yii; |
13 | 11 | use common\models\Page; |
14 | -use common\models\PageSearch; | |
15 | 12 | use yii\helpers\ArrayHelper; |
16 | 13 | use yii\helpers\Url; |
17 | 14 | use yii\console\Controller; |
18 | -use yii\web\NotFoundHttpException; | |
19 | -use yii\filters\VerbFilter; | |
20 | -use developeruz\db_rbac\behaviors\AccessBehavior; | |
21 | 15 | /** |
22 | 16 | * PageController implements the CRUD actions for Page model. |
23 | 17 | */ |
... | ... | @@ -71,7 +65,7 @@ class SiteMapController extends Controller |
71 | 65 | |
72 | 66 | |
73 | 67 | public function getArticles(){ |
74 | - return Articles::find()->all(); | |
68 | + return Article::find()->all(); | |
75 | 69 | } |
76 | 70 | |
77 | 71 | public function getBrands($category){ | ... | ... |
console/migrations/m160926_122456_create_articles_lang_table.php
... | ... | @@ -3,9 +3,9 @@ |
3 | 3 | use yii\db\Migration; |
4 | 4 | |
5 | 5 | /** |
6 | - * Handles the creation for table `articles_lang`. | |
6 | + * Handles the creation for table `article_lang`. | |
7 | 7 | */ |
8 | - class m160926_122456_create_articles_lang_table extends Migration | |
8 | + class m160926_122456_create_article_lang_table extends Migration | |
9 | 9 | { |
10 | 10 | |
11 | 11 | /** |
... | ... | @@ -13,8 +13,8 @@ |
13 | 13 | */ |
14 | 14 | public function up() |
15 | 15 | { |
16 | - $this->createTable('articles_lang', [ | |
17 | - 'articles_id' => $this->integer() | |
16 | + $this->createTable('article_lang', [ | |
17 | + 'article_id' => $this->integer() | |
18 | 18 | ->notNull(), |
19 | 19 | 'language_id' => $this->integer() |
20 | 20 | ->notNull(), |
... | ... | @@ -30,12 +30,12 @@ |
30 | 30 | 'body_preview' => $this->text(), |
31 | 31 | ]); |
32 | 32 | |
33 | - $this->createIndex('articles_lang_article_language_key', 'articles_lang', [ | |
34 | - 'articles_id', | |
33 | + $this->createIndex('article_lang_article_language_key', 'article_lang', [ | |
34 | + 'article_id', | |
35 | 35 | 'language_id', |
36 | 36 | ], true); |
37 | 37 | |
38 | - $this->addForeignKey('articles_fk', 'articles_lang', 'articles_id', 'articles', 'id', 'CASCADE', 'CASCADE'); | |
38 | + $this->addForeignKey('article_fk', 'article_lang', 'article_id', 'article', 'id', 'CASCADE', 'CASCADE'); | |
39 | 39 | $this->addForeignKey('language_fk', 'articles_lang', 'language_id', 'language', 'language_id', 'RESTRICT', 'CASCADE'); |
40 | 40 | } |
41 | 41 | |
... | ... | @@ -44,6 +44,6 @@ |
44 | 44 | */ |
45 | 45 | public function down() |
46 | 46 | { |
47 | - $this->dropTable('articles_lang'); | |
47 | + $this->dropTable('article_lang'); | |
48 | 48 | } |
49 | 49 | } | ... | ... |
... | ... | @@ -82,4 +82,10 @@ Fix по существующему: |
82 | 82 | 6. backend/config/bootstrap.php |
83 | 83 | 7. Сделать behavior для комментов/рейтинга |
84 | 84 | 8. Category->setTaxGroup() ??? |
85 | -9. Избавиться от Mailer widget | |
86 | 85 | \ No newline at end of file |
86 | +9. Избавиться от Mailer widget | |
87 | +10. На статьях включить клиентскую валидацию | |
88 | +11. Спросить у Виталика или нужно вернуть модуль file (используется elfinder ?) | |
89 | + | |
90 | + | |
91 | +Комментарии (создать поведение): | |
92 | +1. Добавить к Article с рейтингом | |
87 | 93 | \ No newline at end of file | ... | ... |