Commit 52190232b988d3a26c9b2f67b81d1f1ffdf1f24d
1 parent
c5a6465c
-Blog almost done
Showing
40 changed files
with
1275 additions
and
506 deletions
Show diff stats
backend/views/layouts/main-sidebar.php
@@ -122,7 +122,7 @@ use yii\widgets\Menu; | @@ -122,7 +122,7 @@ use yii\widgets\Menu; | ||
122 | ], | 122 | ], |
123 | [ | 123 | [ |
124 | 'label' => 'Блог', | 124 | 'label' => 'Блог', |
125 | - 'template'=>'<a href="{url}"> <i class="glyphicon glyphicon-picture"></i> <span>{label}</span></a>', | 125 | + 'template'=>'<a href="{url}"> <i class="glyphicon glyphicon-edit"></i> <span>{label}</span></a>', |
126 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], | 126 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], |
127 | 'active' => preg_match('/^blog.*$/', $this->context->id) ? true : false, | 127 | 'active' => preg_match('/^blog.*$/', $this->context->id) ? true : false, |
128 | 'items' => [ | 128 | 'items' => [ |
@@ -130,16 +130,19 @@ use yii\widgets\Menu; | @@ -130,16 +130,19 @@ use yii\widgets\Menu; | ||
130 | 'label' => 'Статьи', | 130 | 'label' => 'Статьи', |
131 | 'url' => ['/blog/blog-article'], | 131 | 'url' => ['/blog/blog-article'], |
132 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], | 132 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], |
133 | + 'active' => preg_match('/.*blog-article.*$/', $this->context->id), | ||
133 | ], | 134 | ], |
134 | [ | 135 | [ |
135 | 'label' => 'Рубрики', | 136 | 'label' => 'Рубрики', |
136 | 'url' => ['/blog/blog-category'], | 137 | 'url' => ['/blog/blog-category'], |
137 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], | 138 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], |
139 | + 'active' => preg_match('/.*blog-category.*$/', $this->context->id), | ||
138 | ], | 140 | ], |
139 | [ | 141 | [ |
140 | 'label' => 'Тэги', | 142 | 'label' => 'Тэги', |
141 | 'url' => ['/blog/blog-tag'], | 143 | 'url' => ['/blog/blog-tag'], |
142 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], | 144 | 'options' => ['class'=>\Yii::$app->user->can('blog') ? '' :'hide'], |
145 | + 'active' => preg_match('/.*blog-tag.*$/', $this->context->id), | ||
143 | ], | 146 | ], |
144 | ] | 147 | ] |
145 | ], | 148 | ], |
common/config/main.php
@@ -43,6 +43,12 @@ | @@ -43,6 +43,12 @@ | ||
43 | 'master' => NULL, | 43 | 'master' => NULL, |
44 | ], | 44 | ], |
45 | ], | 45 | ], |
46 | + 'list' => [ | ||
47 | + 'resize' => [ | ||
48 | + 'width' => 360, | ||
49 | + 'height' => 360, | ||
50 | + ], | ||
51 | + ], | ||
46 | ], | 52 | ], |
47 | ], | 53 | ], |
48 | 'basket' => [ | 54 | 'basket' => [ |
@@ -53,8 +59,8 @@ | @@ -53,8 +59,8 @@ | ||
53 | 'artbox-comment' => [ | 59 | 'artbox-comment' => [ |
54 | 'class' => 'common\modules\comment\Module', | 60 | 'class' => 'common\modules\comment\Module', |
55 | ], | 61 | ], |
56 | - 'blog' => [ | ||
57 | - 'class' => 'common\modules\blog\Module' | 62 | + 'blog' => [ |
63 | + 'class' => 'common\modules\blog\Module', | ||
58 | ], | 64 | ], |
59 | ], | 65 | ], |
60 | ]; | 66 | ]; |
common/modules/blog/controllers/BlogArticleController.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -namespace common\modules\blog\controllers; | ||
4 | - | ||
5 | -use Yii; | ||
6 | -use common\modules\blog\models\BlogArticle; | ||
7 | -use common\modules\blog\models\BlogArticleSearch; | ||
8 | -use yii\web\Controller; | ||
9 | -use yii\web\NotFoundHttpException; | ||
10 | -use yii\filters\VerbFilter; | ||
11 | - | ||
12 | -/** | ||
13 | - * BlogArticleController implements the CRUD actions for BlogArticle model. | ||
14 | - */ | ||
15 | -class BlogArticleController extends Controller | ||
16 | -{ | 2 | + |
3 | + namespace common\modules\blog\controllers; | ||
4 | + | ||
5 | + use common\modules\blog\models\BlogCategory; | ||
6 | + use common\modules\blog\models\BlogCategoryLang; | ||
7 | + use common\modules\blog\models\BlogTag; | ||
8 | + use Yii; | ||
9 | + use common\modules\blog\models\BlogArticle; | ||
10 | + use common\modules\blog\models\BlogArticleSearch; | ||
11 | + use yii\helpers\ArrayHelper; | ||
12 | + use yii\helpers\VarDumper; | ||
13 | + use yii\web\Controller; | ||
14 | + use yii\web\NotFoundHttpException; | ||
15 | + use yii\filters\VerbFilter; | ||
16 | + | ||
17 | /** | 17 | /** |
18 | - * @inheritdoc | 18 | + * BlogArticleController implements the CRUD actions for BlogArticle model. |
19 | */ | 19 | */ |
20 | - public function behaviors() | 20 | + class BlogArticleController extends Controller |
21 | { | 21 | { |
22 | - return [ | ||
23 | - 'verbs' => [ | ||
24 | - 'class' => VerbFilter::className(), | ||
25 | - 'actions' => [ | ||
26 | - 'delete' => ['POST'], | 22 | + /** |
23 | + * @inheritdoc | ||
24 | + */ | ||
25 | + public function behaviors() | ||
26 | + { | ||
27 | + return [ | ||
28 | + 'verbs' => [ | ||
29 | + 'class' => VerbFilter::className(), | ||
30 | + 'actions' => [ | ||
31 | + 'delete' => [ 'POST' ], | ||
32 | + ], | ||
27 | ], | 33 | ], |
28 | - ], | ||
29 | - ]; | ||
30 | - } | ||
31 | - | ||
32 | - /** | ||
33 | - * Lists all BlogArticle models. | ||
34 | - * @return mixed | ||
35 | - */ | ||
36 | - public function actionIndex() | ||
37 | - { | ||
38 | - $searchModel = new BlogArticleSearch(); | ||
39 | - $dataProvider = $searchModel->search(Yii::$app->request->queryParams); | ||
40 | - | ||
41 | - return $this->render('index', [ | ||
42 | - 'searchModel' => $searchModel, | ||
43 | - 'dataProvider' => $dataProvider, | ||
44 | - ]); | ||
45 | - } | ||
46 | - | ||
47 | - /** | ||
48 | - * Displays a single BlogArticle model. | ||
49 | - * @param integer $id | ||
50 | - * @return mixed | ||
51 | - */ | ||
52 | - public function actionView($id) | ||
53 | - { | ||
54 | - return $this->render('view', [ | ||
55 | - 'model' => $this->findModel($id), | ||
56 | - ]); | ||
57 | - } | ||
58 | - | ||
59 | - /** | ||
60 | - * Creates a new BlogArticle model. | ||
61 | - * If creation is successful, the browser will be redirected to the 'view' page. | ||
62 | - * @return mixed | ||
63 | - */ | ||
64 | - public function actionCreate() | ||
65 | - { | ||
66 | - $model = new BlogArticle(); | ||
67 | - | ||
68 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | ||
69 | - return $this->redirect(['view', 'id' => $model->id]); | ||
70 | - } else { | ||
71 | - return $this->render('create', [ | ||
72 | - 'model' => $model, | ||
73 | - ]); | 34 | + ]; |
74 | } | 35 | } |
75 | - } | ||
76 | - | ||
77 | - /** | ||
78 | - * Updates an existing BlogArticle model. | ||
79 | - * If update is successful, the browser will be redirected to the 'view' page. | ||
80 | - * @param integer $id | ||
81 | - * @return mixed | ||
82 | - */ | ||
83 | - public function actionUpdate($id) | ||
84 | - { | ||
85 | - $model = $this->findModel($id); | ||
86 | - | ||
87 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | ||
88 | - return $this->redirect(['view', 'id' => $model->id]); | ||
89 | - } else { | ||
90 | - return $this->render('update', [ | ||
91 | - 'model' => $model, | ||
92 | - ]); | 36 | + |
37 | + /** | ||
38 | + * Lists all BlogArticle models. | ||
39 | + * | ||
40 | + * @return mixed | ||
41 | + */ | ||
42 | + public function actionIndex() | ||
43 | + { | ||
44 | + $searchModel = new BlogArticleSearch(); | ||
45 | + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); | ||
46 | + | ||
47 | + return $this->render( | ||
48 | + 'index', | ||
49 | + [ | ||
50 | + 'searchModel' => $searchModel, | ||
51 | + 'dataProvider' => $dataProvider, | ||
52 | + ] | ||
53 | + ); | ||
93 | } | 54 | } |
94 | - } | ||
95 | - | ||
96 | - /** | ||
97 | - * Deletes an existing BlogArticle model. | ||
98 | - * If deletion is successful, the browser will be redirected to the 'index' page. | ||
99 | - * @param integer $id | ||
100 | - * @return mixed | ||
101 | - */ | ||
102 | - public function actionDelete($id) | ||
103 | - { | ||
104 | - $this->findModel($id)->delete(); | ||
105 | - | ||
106 | - return $this->redirect(['index']); | ||
107 | - } | ||
108 | - | ||
109 | - /** | ||
110 | - * Finds the BlogArticle model based on its primary key value. | ||
111 | - * If the model is not found, a 404 HTTP exception will be thrown. | ||
112 | - * @param integer $id | ||
113 | - * @return BlogArticle the loaded model | ||
114 | - * @throws NotFoundHttpException if the model cannot be found | ||
115 | - */ | ||
116 | - protected function findModel($id) | ||
117 | - { | ||
118 | - if (($model = BlogArticle::findOne($id)) !== null) { | ||
119 | - return $model; | ||
120 | - } else { | ||
121 | - throw new NotFoundHttpException('The requested page does not exist.'); | 55 | + |
56 | + /** | ||
57 | + * Displays a single BlogArticle model. | ||
58 | + * | ||
59 | + * @param integer $id | ||
60 | + * | ||
61 | + * @return mixed | ||
62 | + */ | ||
63 | + public function actionView($id) | ||
64 | + { | ||
65 | + return $this->render( | ||
66 | + 'view', | ||
67 | + [ | ||
68 | + 'model' => $this->findModel($id), | ||
69 | + ] | ||
70 | + ); | ||
71 | + } | ||
72 | + | ||
73 | + /** | ||
74 | + * Creates a new BlogArticle model. | ||
75 | + * If creation is successful, the browser will be redirected to the 'view' page. | ||
76 | + * | ||
77 | + * @return mixed | ||
78 | + */ | ||
79 | + public function actionCreate() | ||
80 | + { | ||
81 | + $model = new BlogArticle(); | ||
82 | + $model->generateLangs(); | ||
83 | + | ||
84 | + $categories = ArrayHelper::map( | ||
85 | + BlogCategory::find() | ||
86 | + ->joinWith('lang') | ||
87 | + ->all(), | ||
88 | + 'id', | ||
89 | + 'lang.title' | ||
90 | + ); | ||
91 | + | ||
92 | + $tags = ArrayHelper::map( | ||
93 | + BlogTag::find() | ||
94 | + ->joinWith('lang') | ||
95 | + ->all(), | ||
96 | + 'id', | ||
97 | + 'lang.label' | ||
98 | + ); | ||
99 | + | ||
100 | + if ($model->load(Yii::$app->request->post())) { | ||
101 | + $model->loadLangs(\Yii::$app->request); | ||
102 | + if ($model->save() && $model->transactionStatus) { | ||
103 | + | ||
104 | + if (!empty( \Yii::$app->request->post('BlogArticle')[ 'blogCategories' ] )) { | ||
105 | + foreach (\Yii::$app->request->post('BlogArticle')[ 'blogCategories' ] as $item) { | ||
106 | + if ($category = BlogCategory::findOne($item)) { | ||
107 | + $model->link('blogCategories', $category); | ||
108 | + } | ||
109 | + } | ||
110 | + } | ||
111 | + | ||
112 | + if (!empty( \Yii::$app->request->post('BlogArticle')[ 'blogTags' ] )) { | ||
113 | + foreach (\Yii::$app->request->post('BlogArticle')[ 'blogTags' ] as $item) { | ||
114 | + if ($category = BlogTag::findOne($item)) { | ||
115 | + $model->link('blogTags', $category); | ||
116 | + } | ||
117 | + } | ||
118 | + } | ||
119 | + | ||
120 | + return $this->redirect( | ||
121 | + [ | ||
122 | + 'view', | ||
123 | + 'id' => $model->id, | ||
124 | + ] | ||
125 | + ); | ||
126 | + } | ||
127 | + } | ||
128 | + return $this->render( | ||
129 | + 'create', | ||
130 | + [ | ||
131 | + 'model' => $model, | ||
132 | + 'modelLangs' => $model->modelLangs, | ||
133 | + 'categories' => $categories, | ||
134 | + 'tags' => $tags, | ||
135 | + ] | ||
136 | + ); | ||
137 | + | ||
138 | + } | ||
139 | + | ||
140 | + /** | ||
141 | + * Updates an existing BlogArticle model. | ||
142 | + * If update is successful, the browser will be redirected to the 'view' page. | ||
143 | + * | ||
144 | + * @param integer $id | ||
145 | + * | ||
146 | + * @return mixed | ||
147 | + */ | ||
148 | + public function actionUpdate($id) | ||
149 | + { | ||
150 | + $model = $this->findModel($id); | ||
151 | + $model->generateLangs(); | ||
152 | + | ||
153 | + $categories = ArrayHelper::map( | ||
154 | + BlogCategory::find() | ||
155 | + ->joinWith('lang') | ||
156 | + ->all(), | ||
157 | + 'id', | ||
158 | + 'lang.title' | ||
159 | + ); | ||
160 | + | ||
161 | + $tags = ArrayHelper::map( | ||
162 | + BlogTag::find() | ||
163 | + ->joinWith('lang') | ||
164 | + ->all(), | ||
165 | + 'id', | ||
166 | + 'lang.label' | ||
167 | + ); | ||
168 | + | ||
169 | + if ($model->load(Yii::$app->request->post())) { | ||
170 | + $model->loadLangs(\Yii::$app->request); | ||
171 | + if ($model->save() && $model->transactionStatus) { | ||
172 | + | ||
173 | + if (!empty( \Yii::$app->request->post('BlogArticle')[ 'blogCategories' ] )) { | ||
174 | + $model->unlinkAll('blogCategories', true); | ||
175 | + foreach (\Yii::$app->request->post('BlogArticle')[ 'blogCategories' ] as $item) { | ||
176 | + if ($category = BlogCategory::findOne($item)) { | ||
177 | + $model->link('blogCategories', $category); | ||
178 | + } | ||
179 | + } | ||
180 | + } | ||
181 | + | ||
182 | + if (!empty( \Yii::$app->request->post('BlogArticle')[ 'blogTags' ] )) { | ||
183 | + $model->unlinkAll('blogTags', true); | ||
184 | + foreach (\Yii::$app->request->post('BlogArticle')[ 'blogTags' ] as $item) { | ||
185 | + if ($category = BlogTag::findOne($item)) { | ||
186 | + $model->link('blogTags', $category); | ||
187 | + } | ||
188 | + } | ||
189 | + } | ||
190 | + | ||
191 | + return $this->redirect( | ||
192 | + [ | ||
193 | + 'view', | ||
194 | + 'id' => $model->id, | ||
195 | + ] | ||
196 | + ); | ||
197 | + } | ||
198 | + } | ||
199 | + return $this->render( | ||
200 | + 'update', | ||
201 | + [ | ||
202 | + 'model' => $model, | ||
203 | + 'modelLangs' => $model->modelLangs, | ||
204 | + 'categories' => $categories, | ||
205 | + 'tags' => $tags, | ||
206 | + ] | ||
207 | + ); | ||
208 | + | ||
209 | + } | ||
210 | + | ||
211 | + /** | ||
212 | + * Deletes an existing BlogArticle model. | ||
213 | + * If deletion is successful, the browser will be redirected to the 'index' page. | ||
214 | + * | ||
215 | + * @param integer $id | ||
216 | + * | ||
217 | + * @return mixed | ||
218 | + */ | ||
219 | + public function actionDelete($id) | ||
220 | + { | ||
221 | + $this->findModel($id) | ||
222 | + ->delete(); | ||
223 | + | ||
224 | + return $this->redirect([ 'index' ]); | ||
225 | + } | ||
226 | + | ||
227 | + /** | ||
228 | + * Finds the BlogArticle model based on its primary key value. | ||
229 | + * If the model is not found, a 404 HTTP exception will be thrown. | ||
230 | + * | ||
231 | + * @param integer $id | ||
232 | + * | ||
233 | + * @return BlogArticle the loaded model | ||
234 | + * @throws NotFoundHttpException if the model cannot be found | ||
235 | + */ | ||
236 | + protected function findModel($id) | ||
237 | + { | ||
238 | + if (( $model = BlogArticle::findOne($id) ) !== NULL) { | ||
239 | + return $model; | ||
240 | + } else { | ||
241 | + throw new NotFoundHttpException('The requested page does not exist.'); | ||
242 | + } | ||
122 | } | 243 | } |
123 | } | 244 | } |
124 | -} |
common/modules/blog/controllers/BlogCategoryController.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -namespace common\modules\blog\controllers; | ||
4 | - | ||
5 | -use Yii; | ||
6 | -use common\modules\blog\models\BlogCategory; | ||
7 | -use common\modules\blog\models\BlogCategorySearch; | ||
8 | -use yii\web\Controller; | ||
9 | -use yii\web\NotFoundHttpException; | ||
10 | -use yii\filters\VerbFilter; | ||
11 | - | ||
12 | -/** | ||
13 | - * BlogCategoryController implements the CRUD actions for BlogCategory model. | ||
14 | - */ | ||
15 | -class BlogCategoryController extends Controller | ||
16 | -{ | 2 | + |
3 | + namespace common\modules\blog\controllers; | ||
4 | + | ||
5 | + use Yii; | ||
6 | + use common\modules\blog\models\BlogCategory; | ||
7 | + use common\modules\blog\models\BlogCategorySearch; | ||
8 | + use yii\helpers\ArrayHelper; | ||
9 | + use yii\web\Controller; | ||
10 | + use yii\web\NotFoundHttpException; | ||
11 | + use yii\filters\VerbFilter; | ||
12 | + | ||
17 | /** | 13 | /** |
18 | - * @inheritdoc | 14 | + * BlogCategoryController implements the CRUD actions for BlogCategory model. |
19 | */ | 15 | */ |
20 | - public function behaviors() | 16 | + class BlogCategoryController extends Controller |
21 | { | 17 | { |
22 | - return [ | ||
23 | - 'verbs' => [ | ||
24 | - 'class' => VerbFilter::className(), | ||
25 | - 'actions' => [ | ||
26 | - 'delete' => ['POST'], | 18 | + /** |
19 | + * @inheritdoc | ||
20 | + */ | ||
21 | + public function behaviors() | ||
22 | + { | ||
23 | + return [ | ||
24 | + 'verbs' => [ | ||
25 | + 'class' => VerbFilter::className(), | ||
26 | + 'actions' => [ | ||
27 | + 'delete' => [ 'POST' ], | ||
28 | + ], | ||
27 | ], | 29 | ], |
28 | - ], | ||
29 | - ]; | ||
30 | - } | ||
31 | - | ||
32 | - /** | ||
33 | - * Lists all BlogCategory models. | ||
34 | - * @return mixed | ||
35 | - */ | ||
36 | - public function actionIndex() | ||
37 | - { | ||
38 | - $searchModel = new BlogCategorySearch(); | ||
39 | - $dataProvider = $searchModel->search(Yii::$app->request->queryParams); | ||
40 | - | ||
41 | - return $this->render('index', [ | ||
42 | - 'searchModel' => $searchModel, | ||
43 | - 'dataProvider' => $dataProvider, | ||
44 | - ]); | ||
45 | - } | ||
46 | - | ||
47 | - /** | ||
48 | - * Displays a single BlogCategory model. | ||
49 | - * @param integer $id | ||
50 | - * @return mixed | ||
51 | - */ | ||
52 | - public function actionView($id) | ||
53 | - { | ||
54 | - return $this->render('view', [ | ||
55 | - 'model' => $this->findModel($id), | ||
56 | - ]); | ||
57 | - } | ||
58 | - | ||
59 | - /** | ||
60 | - * Creates a new BlogCategory model. | ||
61 | - * If creation is successful, the browser will be redirected to the 'view' page. | ||
62 | - * @return mixed | ||
63 | - */ | ||
64 | - public function actionCreate() | ||
65 | - { | ||
66 | - $model = new BlogCategory(); | ||
67 | - | ||
68 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | ||
69 | - return $this->redirect(['view', 'id' => $model->id]); | ||
70 | - } else { | ||
71 | - return $this->render('create', [ | ||
72 | - 'model' => $model, | ||
73 | - ]); | 30 | + ]; |
74 | } | 31 | } |
75 | - } | ||
76 | - | ||
77 | - /** | ||
78 | - * Updates an existing BlogCategory model. | ||
79 | - * If update is successful, the browser will be redirected to the 'view' page. | ||
80 | - * @param integer $id | ||
81 | - * @return mixed | ||
82 | - */ | ||
83 | - public function actionUpdate($id) | ||
84 | - { | ||
85 | - $model = $this->findModel($id); | ||
86 | - | ||
87 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | ||
88 | - return $this->redirect(['view', 'id' => $model->id]); | ||
89 | - } else { | ||
90 | - return $this->render('update', [ | ||
91 | - 'model' => $model, | ||
92 | - ]); | 32 | + |
33 | + /** | ||
34 | + * Lists all BlogCategory models. | ||
35 | + * | ||
36 | + * @return mixed | ||
37 | + */ | ||
38 | + public function actionIndex() | ||
39 | + { | ||
40 | + $searchModel = new BlogCategorySearch(); | ||
41 | + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); | ||
42 | + | ||
43 | + return $this->render( | ||
44 | + 'index', | ||
45 | + [ | ||
46 | + 'searchModel' => $searchModel, | ||
47 | + 'dataProvider' => $dataProvider, | ||
48 | + ] | ||
49 | + ); | ||
93 | } | 50 | } |
94 | - } | ||
95 | - | ||
96 | - /** | ||
97 | - * Deletes an existing BlogCategory model. | ||
98 | - * If deletion is successful, the browser will be redirected to the 'index' page. | ||
99 | - * @param integer $id | ||
100 | - * @return mixed | ||
101 | - */ | ||
102 | - public function actionDelete($id) | ||
103 | - { | ||
104 | - $this->findModel($id)->delete(); | ||
105 | - | ||
106 | - return $this->redirect(['index']); | ||
107 | - } | ||
108 | - | ||
109 | - /** | ||
110 | - * Finds the BlogCategory model based on its primary key value. | ||
111 | - * If the model is not found, a 404 HTTP exception will be thrown. | ||
112 | - * @param integer $id | ||
113 | - * @return BlogCategory the loaded model | ||
114 | - * @throws NotFoundHttpException if the model cannot be found | ||
115 | - */ | ||
116 | - protected function findModel($id) | ||
117 | - { | ||
118 | - if (($model = BlogCategory::findOne($id)) !== null) { | ||
119 | - return $model; | ||
120 | - } else { | ||
121 | - throw new NotFoundHttpException('The requested page does not exist.'); | 51 | + |
52 | + /** | ||
53 | + * Displays a single BlogCategory model. | ||
54 | + * | ||
55 | + * @param integer $id | ||
56 | + * | ||
57 | + * @return mixed | ||
58 | + */ | ||
59 | + public function actionView($id) | ||
60 | + { | ||
61 | + return $this->render( | ||
62 | + 'view', | ||
63 | + [ | ||
64 | + 'model' => $this->findModel($id), | ||
65 | + ] | ||
66 | + ); | ||
67 | + } | ||
68 | + | ||
69 | + /** | ||
70 | + * Creates a new BlogCategory model. | ||
71 | + * If creation is successful, the browser will be redirected to the 'view' page. | ||
72 | + * | ||
73 | + * @return mixed | ||
74 | + */ | ||
75 | + public function actionCreate() | ||
76 | + { | ||
77 | + $model = new BlogCategory(); | ||
78 | + $model->generateLangs(); | ||
79 | + $parentCategories = ArrayHelper::map( | ||
80 | + BlogCategory::find() | ||
81 | + ->joinWith('lang') | ||
82 | + ->where( | ||
83 | + [ | ||
84 | + 'parent_id' => 0, | ||
85 | + ] | ||
86 | + ) | ||
87 | + ->all(), | ||
88 | + 'id', | ||
89 | + 'lang.title' | ||
90 | + ); | ||
91 | + | ||
92 | + if ($model->load(Yii::$app->request->post())) { | ||
93 | + $model->loadLangs(\Yii::$app->request); | ||
94 | + if ($model->save() && $model->transactionStatus) { | ||
95 | + return $this->redirect( | ||
96 | + [ | ||
97 | + 'view', | ||
98 | + 'id' => $model->id, | ||
99 | + ] | ||
100 | + ); | ||
101 | + } | ||
102 | + } | ||
103 | + return $this->render( | ||
104 | + 'create', | ||
105 | + [ | ||
106 | + 'model' => $model, | ||
107 | + 'modelLangs' => $model->modelLangs, | ||
108 | + 'parentCategories' => $parentCategories, | ||
109 | + ] | ||
110 | + ); | ||
111 | + | ||
112 | + } | ||
113 | + | ||
114 | + /** | ||
115 | + * Updates an existing BlogCategory model. | ||
116 | + * If update is successful, the browser will be redirected to the 'view' page. | ||
117 | + * | ||
118 | + * @param integer $id | ||
119 | + * | ||
120 | + * @return mixed | ||
121 | + */ | ||
122 | + public function actionUpdate($id) | ||
123 | + { | ||
124 | + $model = $this->findModel($id); | ||
125 | + $model->generateLangs(); | ||
126 | + $parentCategories = ArrayHelper::map( | ||
127 | + BlogCategory::find() | ||
128 | + ->joinWith('lang') | ||
129 | + ->where( | ||
130 | + [ | ||
131 | + 'parent_id' => 0, | ||
132 | + ] | ||
133 | + ) | ||
134 | + ->andWhere( | ||
135 | + [ | ||
136 | + '!=', | ||
137 | + BlogCategory::tableName() . '_id', | ||
138 | + $model->id, | ||
139 | + ] | ||
140 | + ) | ||
141 | + ->all(), | ||
142 | + 'id', | ||
143 | + 'lang.title' | ||
144 | + ); | ||
145 | + | ||
146 | + if ($model->load(Yii::$app->request->post())) { | ||
147 | + $model->loadLangs(\Yii::$app->request); | ||
148 | + if ($model->save() && $model->transactionStatus) { | ||
149 | + return $this->redirect( | ||
150 | + [ | ||
151 | + 'view', | ||
152 | + 'id' => $model->id, | ||
153 | + ] | ||
154 | + ); | ||
155 | + } | ||
156 | + } | ||
157 | + return $this->render( | ||
158 | + 'update', | ||
159 | + [ | ||
160 | + 'model' => $model, | ||
161 | + 'modelLangs' => $model->modelLangs, | ||
162 | + 'parentCategories' => $parentCategories, | ||
163 | + ] | ||
164 | + ); | ||
165 | + | ||
166 | + } | ||
167 | + | ||
168 | + /** | ||
169 | + * Deletes an existing BlogCategory model. | ||
170 | + * If deletion is successful, the browser will be redirected to the 'index' page. | ||
171 | + * | ||
172 | + * @param integer $id | ||
173 | + * | ||
174 | + * @return mixed | ||
175 | + */ | ||
176 | + public function actionDelete($id) | ||
177 | + { | ||
178 | + $this->findModel($id) | ||
179 | + ->delete(); | ||
180 | + | ||
181 | + return $this->redirect([ 'index' ]); | ||
182 | + } | ||
183 | + | ||
184 | + /** | ||
185 | + * Finds the BlogCategory model based on its primary key value. | ||
186 | + * If the model is not found, a 404 HTTP exception will be thrown. | ||
187 | + * | ||
188 | + * @param integer $id | ||
189 | + * | ||
190 | + * @return BlogCategory the loaded model | ||
191 | + * @throws NotFoundHttpException if the model cannot be found | ||
192 | + */ | ||
193 | + protected function findModel($id) | ||
194 | + { | ||
195 | + if (( $model = BlogCategory::findOne($id) ) !== NULL) { | ||
196 | + return $model; | ||
197 | + } else { | ||
198 | + throw new NotFoundHttpException('The requested page does not exist.'); | ||
199 | + } | ||
122 | } | 200 | } |
123 | } | 201 | } |
124 | -} |
common/modules/blog/controllers/BlogTagController.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -namespace common\modules\blog\controllers; | ||
4 | - | ||
5 | -use Yii; | ||
6 | -use common\modules\blog\models\BlogTag; | ||
7 | -use common\modules\blog\models\BlogTagSearch; | ||
8 | -use yii\web\Controller; | ||
9 | -use yii\web\NotFoundHttpException; | ||
10 | -use yii\filters\VerbFilter; | ||
11 | - | ||
12 | -/** | ||
13 | - * BlogTagController implements the CRUD actions for BlogTag model. | ||
14 | - */ | ||
15 | -class BlogTagController extends Controller | ||
16 | -{ | 2 | + |
3 | + namespace common\modules\blog\controllers; | ||
4 | + | ||
5 | + use Yii; | ||
6 | + use common\modules\blog\models\BlogTag; | ||
7 | + use common\modules\blog\models\BlogTagSearch; | ||
8 | + use yii\web\Controller; | ||
9 | + use yii\web\NotFoundHttpException; | ||
10 | + use yii\filters\VerbFilter; | ||
11 | + | ||
17 | /** | 12 | /** |
18 | - * @inheritdoc | 13 | + * BlogTagController implements the CRUD actions for BlogTag model. |
19 | */ | 14 | */ |
20 | - public function behaviors() | 15 | + class BlogTagController extends Controller |
21 | { | 16 | { |
22 | - return [ | ||
23 | - 'verbs' => [ | ||
24 | - 'class' => VerbFilter::className(), | ||
25 | - 'actions' => [ | ||
26 | - 'delete' => ['POST'], | 17 | + /** |
18 | + * @inheritdoc | ||
19 | + */ | ||
20 | + public function behaviors() | ||
21 | + { | ||
22 | + return [ | ||
23 | + 'verbs' => [ | ||
24 | + 'class' => VerbFilter::className(), | ||
25 | + 'actions' => [ | ||
26 | + 'delete' => [ 'POST' ], | ||
27 | + ], | ||
27 | ], | 28 | ], |
28 | - ], | ||
29 | - ]; | ||
30 | - } | ||
31 | - | ||
32 | - /** | ||
33 | - * Lists all BlogTag models. | ||
34 | - * @return mixed | ||
35 | - */ | ||
36 | - public function actionIndex() | ||
37 | - { | ||
38 | - $searchModel = new BlogTagSearch(); | ||
39 | - $dataProvider = $searchModel->search(Yii::$app->request->queryParams); | ||
40 | - | ||
41 | - return $this->render('index', [ | ||
42 | - 'searchModel' => $searchModel, | ||
43 | - 'dataProvider' => $dataProvider, | ||
44 | - ]); | ||
45 | - } | ||
46 | - | ||
47 | - /** | ||
48 | - * Displays a single BlogTag model. | ||
49 | - * @param integer $id | ||
50 | - * @return mixed | ||
51 | - */ | ||
52 | - public function actionView($id) | ||
53 | - { | ||
54 | - return $this->render('view', [ | ||
55 | - 'model' => $this->findModel($id), | ||
56 | - ]); | ||
57 | - } | ||
58 | - | ||
59 | - /** | ||
60 | - * Creates a new BlogTag model. | ||
61 | - * If creation is successful, the browser will be redirected to the 'view' page. | ||
62 | - * @return mixed | ||
63 | - */ | ||
64 | - public function actionCreate() | ||
65 | - { | ||
66 | - $model = new BlogTag(); | ||
67 | - | ||
68 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | ||
69 | - return $this->redirect(['view', 'id' => $model->id]); | ||
70 | - } else { | ||
71 | - return $this->render('create', [ | ||
72 | - 'model' => $model, | ||
73 | - ]); | 29 | + ]; |
74 | } | 30 | } |
75 | - } | ||
76 | - | ||
77 | - /** | ||
78 | - * Updates an existing BlogTag model. | ||
79 | - * If update is successful, the browser will be redirected to the 'view' page. | ||
80 | - * @param integer $id | ||
81 | - * @return mixed | ||
82 | - */ | ||
83 | - public function actionUpdate($id) | ||
84 | - { | ||
85 | - $model = $this->findModel($id); | ||
86 | - | ||
87 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | ||
88 | - return $this->redirect(['view', 'id' => $model->id]); | ||
89 | - } else { | ||
90 | - return $this->render('update', [ | ||
91 | - 'model' => $model, | ||
92 | - ]); | 31 | + |
32 | + /** | ||
33 | + * Lists all BlogTag models. | ||
34 | + * | ||
35 | + * @return mixed | ||
36 | + */ | ||
37 | + public function actionIndex() | ||
38 | + { | ||
39 | + $searchModel = new BlogTagSearch(); | ||
40 | + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); | ||
41 | + | ||
42 | + return $this->render( | ||
43 | + 'index', | ||
44 | + [ | ||
45 | + 'searchModel' => $searchModel, | ||
46 | + 'dataProvider' => $dataProvider, | ||
47 | + ] | ||
48 | + ); | ||
93 | } | 49 | } |
94 | - } | ||
95 | - | ||
96 | - /** | ||
97 | - * Deletes an existing BlogTag model. | ||
98 | - * If deletion is successful, the browser will be redirected to the 'index' page. | ||
99 | - * @param integer $id | ||
100 | - * @return mixed | ||
101 | - */ | ||
102 | - public function actionDelete($id) | ||
103 | - { | ||
104 | - $this->findModel($id)->delete(); | ||
105 | - | ||
106 | - return $this->redirect(['index']); | ||
107 | - } | ||
108 | - | ||
109 | - /** | ||
110 | - * Finds the BlogTag model based on its primary key value. | ||
111 | - * If the model is not found, a 404 HTTP exception will be thrown. | ||
112 | - * @param integer $id | ||
113 | - * @return BlogTag the loaded model | ||
114 | - * @throws NotFoundHttpException if the model cannot be found | ||
115 | - */ | ||
116 | - protected function findModel($id) | ||
117 | - { | ||
118 | - if (($model = BlogTag::findOne($id)) !== null) { | ||
119 | - return $model; | ||
120 | - } else { | ||
121 | - throw new NotFoundHttpException('The requested page does not exist.'); | 50 | + |
51 | + /** | ||
52 | + * Displays a single BlogTag model. | ||
53 | + * | ||
54 | + * @param integer $id | ||
55 | + * | ||
56 | + * @return mixed | ||
57 | + */ | ||
58 | + public function actionView($id) | ||
59 | + { | ||
60 | + return $this->render( | ||
61 | + 'view', | ||
62 | + [ | ||
63 | + 'model' => $this->findModel($id), | ||
64 | + ] | ||
65 | + ); | ||
66 | + } | ||
67 | + | ||
68 | + /** | ||
69 | + * Creates a new BlogTag model. | ||
70 | + * If creation is successful, the browser will be redirected to the 'view' page. | ||
71 | + * | ||
72 | + * @return mixed | ||
73 | + */ | ||
74 | + public function actionCreate() | ||
75 | + { | ||
76 | + $model = new BlogTag(); | ||
77 | + $model->generateLangs(); | ||
78 | + | ||
79 | + if (\Yii::$app->request->isPost) { | ||
80 | + $model->loadLangs(\Yii::$app->request); | ||
81 | + $model->markAttributeDirty('id'); | ||
82 | + if ($model->save() && $model->transactionStatus) { | ||
83 | + return $this->redirect( | ||
84 | + [ | ||
85 | + 'view', | ||
86 | + 'id' => $model->id, | ||
87 | + ] | ||
88 | + ); | ||
89 | + } | ||
90 | + } | ||
91 | + return $this->render( | ||
92 | + 'create', | ||
93 | + [ | ||
94 | + 'model' => $model, | ||
95 | + 'modelLangs' => $model->modelLangs, | ||
96 | + ] | ||
97 | + ); | ||
98 | + | ||
99 | + } | ||
100 | + | ||
101 | + /** | ||
102 | + * Updates an existing BlogTag model. | ||
103 | + * If update is successful, the browser will be redirected to the 'view' page. | ||
104 | + * | ||
105 | + * @param integer $id | ||
106 | + * | ||
107 | + * @return mixed | ||
108 | + */ | ||
109 | + public function actionUpdate($id) | ||
110 | + { | ||
111 | + $model = $this->findModel($id); | ||
112 | + $model->generateLangs(); | ||
113 | + | ||
114 | + if (Yii::$app->request->isPost) { | ||
115 | + $model->loadLangs(\Yii::$app->request); | ||
116 | + $model->markAttributeDirty('id'); | ||
117 | + if ($model->save() && $model->transactionStatus) { | ||
118 | + return $this->redirect( | ||
119 | + [ | ||
120 | + 'view', | ||
121 | + 'id' => $model->id, | ||
122 | + ] | ||
123 | + ); | ||
124 | + } | ||
125 | + } | ||
126 | + return $this->render( | ||
127 | + 'update', | ||
128 | + [ | ||
129 | + 'model' => $model, | ||
130 | + 'modelLangs' => $model->modelLangs, | ||
131 | + ] | ||
132 | + ); | ||
133 | + | ||
134 | + } | ||
135 | + | ||
136 | + /** | ||
137 | + * Deletes an existing BlogTag model. | ||
138 | + * If deletion is successful, the browser will be redirected to the 'index' page. | ||
139 | + * | ||
140 | + * @param integer $id | ||
141 | + * | ||
142 | + * @return mixed | ||
143 | + */ | ||
144 | + public function actionDelete($id) | ||
145 | + { | ||
146 | + $this->findModel($id) | ||
147 | + ->delete(); | ||
148 | + | ||
149 | + return $this->redirect([ 'index' ]); | ||
150 | + } | ||
151 | + | ||
152 | + /** | ||
153 | + * Finds the BlogTag model based on its primary key value. | ||
154 | + * If the model is not found, a 404 HTTP exception will be thrown. | ||
155 | + * | ||
156 | + * @param integer $id | ||
157 | + * | ||
158 | + * @return BlogTag the loaded model | ||
159 | + * @throws NotFoundHttpException if the model cannot be found | ||
160 | + */ | ||
161 | + protected function findModel($id) | ||
162 | + { | ||
163 | + if (( $model = BlogTag::findOne($id) ) !== NULL) { | ||
164 | + return $model; | ||
165 | + } else { | ||
166 | + throw new NotFoundHttpException('The requested page does not exist.'); | ||
167 | + } | ||
122 | } | 168 | } |
123 | } | 169 | } |
124 | -} |
common/modules/blog/controllers/DefaultController.php
100644 → 100755
@@ -2,8 +2,14 @@ | @@ -2,8 +2,14 @@ | ||
2 | 2 | ||
3 | namespace common\modules\blog\models; | 3 | namespace common\modules\blog\models; |
4 | 4 | ||
5 | + use common\behaviors\SaveImgBehavior; | ||
6 | + use yii\behaviors\TimestampBehavior; | ||
5 | use yii\db\ActiveRecord; | 7 | use yii\db\ActiveRecord; |
6 | use common\modules\language\behaviors\LanguageBehavior; | 8 | use common\modules\language\behaviors\LanguageBehavior; |
9 | + use common\modules\language\models\Language; | ||
10 | + use common\modules\product\models\Product; | ||
11 | + use yii\db\ActiveQuery; | ||
12 | + use yii\web\Request; | ||
7 | 13 | ||
8 | /** | 14 | /** |
9 | * This is the model class for table "blog_article". | 15 | * This is the model class for table "blog_article". |
@@ -28,6 +34,32 @@ | @@ -28,6 +34,32 @@ | ||
28 | * @property Product[] $products | 34 | * @property Product[] $products |
29 | * @property BlogArticleToTag[] $blogArticleToTags | 35 | * @property BlogArticleToTag[] $blogArticleToTags |
30 | * @property BlogTag[] $blogTags | 36 | * @property BlogTag[] $blogTags |
37 | + * * * From language behavior * | ||
38 | + * @property BlogArticleLang $lang | ||
39 | + * @property BlogArticleLang[] $langs | ||
40 | + * @property BlogArticleLang $objectLang | ||
41 | + * @property string $ownerKey | ||
42 | + * @property string $langKey | ||
43 | + * @property BlogArticleLang[] $modelLangs | ||
44 | + * @property bool $transactionStatus | ||
45 | + * @method string getOwnerKey() | ||
46 | + * @method void setOwnerKey( string $value ) | ||
47 | + * @method string getLangKey() | ||
48 | + * @method void setLangKey( string $value ) | ||
49 | + * @method ActiveQuery getLangs() | ||
50 | + * @method ActiveQuery getLang( integer $language_id ) | ||
51 | + * @method BlogArticleLang[] generateLangs() | ||
52 | + * @method void loadLangs( Request $request ) | ||
53 | + * @method bool linkLangs() | ||
54 | + * @method bool saveLangs() | ||
55 | + * @method bool getTransactionStatus() | ||
56 | + * * End language behavior * | ||
57 | + * * From SaveImgBehavior | ||
58 | + * @property string|null $imageFile | ||
59 | + * @property string|null $imageUrl | ||
60 | + * @method string|null getImageFile( int $field ) | ||
61 | + * @method string|null getImageUrl( int $field ) | ||
62 | + * * End SaveImgBehavior | ||
31 | */ | 63 | */ |
32 | class BlogArticle extends ActiveRecord | 64 | class BlogArticle extends ActiveRecord |
33 | { | 65 | { |
@@ -42,8 +74,20 @@ | @@ -42,8 +74,20 @@ | ||
42 | public function behaviors() | 74 | public function behaviors() |
43 | { | 75 | { |
44 | return [ | 76 | return [ |
77 | + [ | ||
78 | + 'class' => TimestampBehavior::className(), | ||
79 | + ], | ||
80 | + [ | ||
81 | + 'class' => SaveImgBehavior::className(), | ||
82 | + 'fields' => [ | ||
83 | + [ | ||
84 | + 'name' => 'image', | ||
85 | + 'directory' => 'blog/article', | ||
86 | + ], | ||
87 | + ], | ||
88 | + ], | ||
45 | 'language' => [ | 89 | 'language' => [ |
46 | - 'class' => LanguageBehavior::className(), | 90 | + 'class' => LanguageBehavior::className(), |
47 | ], | 91 | ], |
48 | ]; | 92 | ]; |
49 | } | 93 | } |
common/modules/blog/models/BlogArticleLang.php
100644 → 100755
@@ -32,7 +32,16 @@ class BlogArticleLang extends ActiveRecord | @@ -32,7 +32,16 @@ class BlogArticleLang extends ActiveRecord | ||
32 | { | 32 | { |
33 | return 'blog_article_lang'; | 33 | return 'blog_article_lang'; |
34 | } | 34 | } |
35 | - | 35 | + |
36 | + public function behaviors() | ||
37 | + { | ||
38 | + return [ | ||
39 | + 'slug' => [ | ||
40 | + 'class' => 'common\behaviors\Slug', | ||
41 | + ], | ||
42 | + ]; | ||
43 | + } | ||
44 | + | ||
36 | /** | 45 | /** |
37 | * @inheritdoc | 46 | * @inheritdoc |
38 | */ | 47 | */ |
common/modules/blog/models/BlogArticleSearch.php
100644 → 100755
@@ -4,6 +4,10 @@ | @@ -4,6 +4,10 @@ | ||
4 | 4 | ||
5 | use yii\db\ActiveRecord; | 5 | use yii\db\ActiveRecord; |
6 | use common\modules\language\behaviors\LanguageBehavior; | 6 | use common\modules\language\behaviors\LanguageBehavior; |
7 | + use common\behaviors\SaveImgBehavior; | ||
8 | + use common\modules\language\models\Language; | ||
9 | + use yii\db\ActiveQuery; | ||
10 | + use yii\web\Request; | ||
7 | 11 | ||
8 | /** | 12 | /** |
9 | * This is the model class for table "blog_category". | 13 | * This is the model class for table "blog_category". |
@@ -17,6 +21,32 @@ | @@ -17,6 +21,32 @@ | ||
17 | * @property BlogArticle[] $blogArticles | 21 | * @property BlogArticle[] $blogArticles |
18 | * @property BlogCategoryLang[] $blogCategoryLangs | 22 | * @property BlogCategoryLang[] $blogCategoryLangs |
19 | * @property Language[] $languages | 23 | * @property Language[] $languages |
24 | + * * From language behavior * | ||
25 | + * @property BlogCategoryLang $lang | ||
26 | + * @property BlogCategoryLang[] $langs | ||
27 | + * @property BlogCategoryLang $objectLang | ||
28 | + * @property string $ownerKey | ||
29 | + * @property string $langKey | ||
30 | + * @property BlogCategoryLang[] $modelLangs | ||
31 | + * @property bool $transactionStatus | ||
32 | + * @method string getOwnerKey() | ||
33 | + * @method void setOwnerKey( string $value ) | ||
34 | + * @method string getLangKey() | ||
35 | + * @method void setLangKey( string $value ) | ||
36 | + * @method ActiveQuery getLangs() | ||
37 | + * @method ActiveQuery getLang( integer $language_id ) | ||
38 | + * @method BlogCategoryLang[] generateLangs() | ||
39 | + * @method void loadLangs( Request $request ) | ||
40 | + * @method bool linkLangs() | ||
41 | + * @method bool saveLangs() | ||
42 | + * @method bool getTransactionStatus() | ||
43 | + * * End language behavior * | ||
44 | + * * From SaveImgBehavior * | ||
45 | + * @property string|null $imageFile | ||
46 | + * @property string|null $imageUrl | ||
47 | + * @method string|null getImageFile( int $field ) | ||
48 | + * @method string|null getImageUrl( int $field ) | ||
49 | + * * End SaveImgBehavior | ||
20 | */ | 50 | */ |
21 | class BlogCategory extends ActiveRecord | 51 | class BlogCategory extends ActiveRecord |
22 | { | 52 | { |
@@ -27,16 +57,28 @@ | @@ -27,16 +57,28 @@ | ||
27 | { | 57 | { |
28 | return 'blog_category'; | 58 | return 'blog_category'; |
29 | } | 59 | } |
30 | - | 60 | + |
31 | /** | 61 | /** |
32 | * @inheritdoc | 62 | * @inheritdoc |
33 | */ | 63 | */ |
34 | public function behaviors() | 64 | public function behaviors() |
35 | { | 65 | { |
36 | return [ | 66 | return [ |
67 | + [ | ||
68 | + 'class' => SaveImgBehavior::className(), | ||
69 | + 'fields' => [ | ||
70 | + [ | ||
71 | + 'name' => 'image', | ||
72 | + 'directory' => 'blog/category', | ||
73 | + ], | ||
74 | + ], | ||
75 | + ], | ||
37 | 'language' => [ | 76 | 'language' => [ |
38 | 'class' => LanguageBehavior::className(), | 77 | 'class' => LanguageBehavior::className(), |
39 | ], | 78 | ], |
79 | + 'Slug' => [ | ||
80 | + 'class' => 'common\behaviors\Slug', | ||
81 | + ], | ||
40 | ]; | 82 | ]; |
41 | } | 83 | } |
42 | 84 | ||
@@ -62,6 +104,11 @@ | @@ -62,6 +104,11 @@ | ||
62 | 'string', | 104 | 'string', |
63 | 'max' => 255, | 105 | 'max' => 255, |
64 | ], | 106 | ], |
107 | + [ | ||
108 | + ['parent_id'], | ||
109 | + 'default', | ||
110 | + 'value' => 0, | ||
111 | + ], | ||
65 | ]; | 112 | ]; |
66 | } | 113 | } |
67 | 114 |
common/modules/blog/models/BlogCategoryLang.php
100644 → 100755
@@ -2,7 +2,8 @@ | @@ -2,7 +2,8 @@ | ||
2 | 2 | ||
3 | namespace common\modules\blog\models; | 3 | namespace common\modules\blog\models; |
4 | 4 | ||
5 | -use Yii; | 5 | +use yii\db\ActiveRecord; |
6 | +use common\modules\language\models\Language; | ||
6 | 7 | ||
7 | /** | 8 | /** |
8 | * This is the model class for table "blog_category_lang". | 9 | * This is the model class for table "blog_category_lang". |
@@ -21,7 +22,7 @@ use Yii; | @@ -21,7 +22,7 @@ use Yii; | ||
21 | * @property BlogCategory $blogCategory | 22 | * @property BlogCategory $blogCategory |
22 | * @property Language $language | 23 | * @property Language $language |
23 | */ | 24 | */ |
24 | -class BlogCategoryLang extends \yii\db\ActiveRecord | 25 | +class BlogCategoryLang extends ActiveRecord |
25 | { | 26 | { |
26 | /** | 27 | /** |
27 | * @inheritdoc | 28 | * @inheritdoc |
@@ -31,6 +32,15 @@ class BlogCategoryLang extends \yii\db\ActiveRecord | @@ -31,6 +32,15 @@ class BlogCategoryLang extends \yii\db\ActiveRecord | ||
31 | return 'blog_category_lang'; | 32 | return 'blog_category_lang'; |
32 | } | 33 | } |
33 | 34 | ||
35 | + public function behaviors() | ||
36 | + { | ||
37 | + return [ | ||
38 | + 'slug' => [ | ||
39 | + 'class' => 'common\behaviors\Slug', | ||
40 | + ], | ||
41 | + ]; | ||
42 | + } | ||
43 | + | ||
34 | /** | 44 | /** |
35 | * @inheritdoc | 45 | * @inheritdoc |
36 | */ | 46 | */ |
common/modules/blog/models/BlogCategorySearch.php
100644 → 100755
@@ -4,6 +4,9 @@ | @@ -4,6 +4,9 @@ | ||
4 | 4 | ||
5 | use yii\db\ActiveRecord; | 5 | use yii\db\ActiveRecord; |
6 | use common\modules\language\behaviors\LanguageBehavior; | 6 | use common\modules\language\behaviors\LanguageBehavior; |
7 | + use common\modules\language\models\Language; | ||
8 | + use yii\db\ActiveQuery; | ||
9 | + use yii\web\Request; | ||
7 | 10 | ||
8 | /** | 11 | /** |
9 | * This is the model class for table "blog_tag". | 12 | * This is the model class for table "blog_tag". |
@@ -13,8 +16,28 @@ | @@ -13,8 +16,28 @@ | ||
13 | * @property BlogArticle[] $blogArticles | 16 | * @property BlogArticle[] $blogArticles |
14 | * @property BlogTagLang[] $blogTagLangs | 17 | * @property BlogTagLang[] $blogTagLangs |
15 | * @property Language[] $languages | 18 | * @property Language[] $languages |
19 | + * * From language behavior * | ||
20 | + * @property BlogTagLang $lang | ||
21 | + * @property BlogTagLang[] $langs | ||
22 | + * @property BlogTagLang $objectLang | ||
23 | + * @property string $ownerKey | ||
24 | + * @property string $langKey | ||
25 | + * @property BlogTagLang[] $modelLangs | ||
26 | + * @property bool $transactionStatus | ||
27 | + * @method string getOwnerKey() | ||
28 | + * @method void setOwnerKey(string $value) | ||
29 | + * @method string getLangKey() | ||
30 | + * @method void setLangKey(string $value) | ||
31 | + * @method ActiveQuery getLangs() | ||
32 | + * @method ActiveQuery getLang( integer $language_id ) | ||
33 | + * @method BlogTagLang[] generateLangs() | ||
34 | + * @method void loadLangs(Request $request) | ||
35 | + * @method bool linkLangs() | ||
36 | + * @method bool saveLangs() | ||
37 | + * @method bool getTransactionStatus() | ||
38 | + * * End language behavior * | ||
16 | */ | 39 | */ |
17 | - class BlogTag extends \yii\db\ActiveRecord | 40 | + class BlogTag extends ActiveRecord |
18 | { | 41 | { |
19 | /** | 42 | /** |
20 | * @inheritdoc | 43 | * @inheritdoc |
@@ -2,7 +2,8 @@ | @@ -2,7 +2,8 @@ | ||
2 | 2 | ||
3 | namespace common\modules\blog\models; | 3 | namespace common\modules\blog\models; |
4 | 4 | ||
5 | -use Yii; | 5 | +use common\modules\language\models\Language; |
6 | +use yii\db\ActiveRecord; | ||
6 | 7 | ||
7 | /** | 8 | /** |
8 | * This is the model class for table "blog_tag_lang". | 9 | * This is the model class for table "blog_tag_lang". |
@@ -15,7 +16,7 @@ use Yii; | @@ -15,7 +16,7 @@ use Yii; | ||
15 | * @property BlogTag $blogTag | 16 | * @property BlogTag $blogTag |
16 | * @property Language $language | 17 | * @property Language $language |
17 | */ | 18 | */ |
18 | -class BlogTagLang extends \yii\db\ActiveRecord | 19 | +class BlogTagLang extends ActiveRecord |
19 | { | 20 | { |
20 | /** | 21 | /** |
21 | * @inheritdoc | 22 | * @inheritdoc |
common/modules/blog/views/blog-article/_form.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | -use yii\widgets\ActiveForm; | ||
5 | - | ||
6 | -/* @var $this yii\web\View */ | ||
7 | -/* @var $model common\modules\blog\models\BlogArticle */ | ||
8 | -/* @var $form yii\widgets\ActiveForm */ | 2 | + |
3 | + use common\modules\blog\models\BlogArticle; | ||
4 | + use common\modules\blog\models\BlogArticleLang; | ||
5 | + use common\modules\blog\models\BlogCategory; | ||
6 | + use common\modules\blog\models\BlogTag; | ||
7 | + use kartik\select2\Select2; | ||
8 | + use yii\helpers\Html; | ||
9 | + use yii\web\View; | ||
10 | + use yii\widgets\ActiveForm; | ||
11 | + use common\modules\language\widgets\LanguageForm; | ||
12 | + | ||
13 | + /** | ||
14 | + * @var View $this | ||
15 | + * @var BlogArticle $model | ||
16 | + * @var ActiveForm $form | ||
17 | + * @var BlogArticleLang[] $modelLangs | ||
18 | + * @var BlogCategory[] $categories | ||
19 | + * @var BlogTag[] $tags | ||
20 | + */ | ||
9 | ?> | 21 | ?> |
10 | 22 | ||
11 | <div class="blog-article-form"> | 23 | <div class="blog-article-form"> |
12 | - | ||
13 | - <?php $form = ActiveForm::begin(); ?> | ||
14 | - | ||
15 | - <?= $form->field($model, 'image')->textInput(['maxlength' => true]) ?> | ||
16 | - | ||
17 | - <?= $form->field($model, 'created_at')->textInput() ?> | ||
18 | - | ||
19 | - <?= $form->field($model, 'updated_at')->textInput() ?> | ||
20 | - | ||
21 | - <?= $form->field($model, 'deleted_at')->textInput() ?> | ||
22 | - | ||
23 | - <?= $form->field($model, 'sort')->textInput() ?> | ||
24 | - | ||
25 | - <?= $form->field($model, 'status')->checkbox() ?> | ||
26 | - | ||
27 | - <?= $form->field($model, 'author_id')->textInput() ?> | ||
28 | - | 24 | + |
25 | + <?php $form = ActiveForm::begin( | ||
26 | + [ | ||
27 | + 'options' => [ 'enctype' => 'multipart/form-data' ], | ||
28 | + ] | ||
29 | + ); ?> | ||
30 | + | ||
31 | + <?php | ||
32 | + echo LanguageForm::widget( | ||
33 | + [ | ||
34 | + 'modelLangs' => $modelLangs, | ||
35 | + 'formView' => '@common/modules/blog/views/blog-article/_form_language', | ||
36 | + 'form' => $form, | ||
37 | + ] | ||
38 | + ); | ||
39 | + ?> | ||
40 | + | ||
41 | + <?php | ||
42 | + echo $form->field($model, 'blogCategories') | ||
43 | + ->widget( | ||
44 | + Select2::className(), | ||
45 | + [ | ||
46 | + 'data' => $categories, | ||
47 | + 'theme' => Select2::THEME_BOOTSTRAP, | ||
48 | + 'options' => [ | ||
49 | + 'placeholder' => \Yii::t('blog', 'Select category'), | ||
50 | + 'multiple' => true, | ||
51 | + ], | ||
52 | + 'pluginOptions' => [ | ||
53 | + 'allowClear' => true, | ||
54 | + ], | ||
55 | + ] | ||
56 | + ); | ||
57 | + ?> | ||
58 | + | ||
59 | + <?php | ||
60 | + echo $form->field($model, 'blogTags') | ||
61 | + ->widget( | ||
62 | + Select2::className(), | ||
63 | + [ | ||
64 | + 'data' => $tags, | ||
65 | + 'theme' => Select2::THEME_BOOTSTRAP, | ||
66 | + 'options' => [ | ||
67 | + 'placeholder' => \Yii::t('blog', 'Select tag'), | ||
68 | + 'multiple' => true, | ||
69 | + ], | ||
70 | + 'pluginOptions' => [ | ||
71 | + 'allowClear' => true, | ||
72 | + ], | ||
73 | + ] | ||
74 | + ); | ||
75 | + ?> | ||
76 | + | ||
77 | + <?= $form->field($model, 'image') | ||
78 | + ->widget( | ||
79 | + \kartik\file\FileInput::className(), | ||
80 | + [ | ||
81 | + 'language' => 'ru', | ||
82 | + 'options' => [ | ||
83 | + 'accept' => 'image/*', | ||
84 | + 'multiple' => false, | ||
85 | + ], | ||
86 | + 'pluginOptions' => [ | ||
87 | + 'allowedFileExtensions' => [ | ||
88 | + 'jpg', | ||
89 | + 'gif', | ||
90 | + 'png', | ||
91 | + ], | ||
92 | + 'initialPreview' => !empty( $model->imageUrl ) ? \common\components\artboximage\ArtboxImageHelper::getImage( | ||
93 | + $model->imageUrl, | ||
94 | + 'list' | ||
95 | + ) : '', | ||
96 | + 'overwriteInitial' => true, | ||
97 | + 'showRemove' => false, | ||
98 | + 'showUpload' => false, | ||
99 | + 'previewFileType' => 'image', | ||
100 | + ], | ||
101 | + ] | ||
102 | + ); ?> | ||
103 | + | ||
104 | + <?= $form->field($model, 'sort') | ||
105 | + ->textInput() ?> | ||
106 | + | ||
107 | + <?= $form->field($model, 'status') | ||
108 | + ->checkbox() ?> | ||
109 | + | ||
110 | + <?= $form->field($model, 'author_id') | ||
111 | + ->textInput() ?> | ||
112 | + | ||
29 | <div class="form-group"> | 113 | <div class="form-group"> |
30 | - <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | 114 | + <?= Html::submitButton( |
115 | + $model->isNewRecord ? 'Create' : 'Update', | ||
116 | + [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ] | ||
117 | + ) ?> | ||
31 | </div> | 118 | </div> |
32 | - | 119 | + |
33 | <?php ActiveForm::end(); ?> | 120 | <?php ActiveForm::end(); ?> |
34 | 121 | ||
35 | </div> | 122 | </div> |
common/modules/blog/views/blog-article/_form_language.php
0 → 100755
1 | +<?php | ||
2 | + use common\models\ArticleLang; | ||
3 | + use common\modules\language\models\Language; | ||
4 | + use mihaildev\ckeditor\CKEditor; | ||
5 | + use mihaildev\elfinder\ElFinder; | ||
6 | + use yii\web\View; | ||
7 | + use yii\widgets\ActiveForm; | ||
8 | + | ||
9 | + /** | ||
10 | + * @var ArticleLang $model_lang | ||
11 | + * @var Language $language | ||
12 | + * @var ActiveForm $form | ||
13 | + * @var View $this | ||
14 | + */ | ||
15 | +?> | ||
16 | +<?= $form->field($model_lang, '[' . $language->id . ']title') | ||
17 | + ->textInput([ 'maxlength' => true ]); ?> | ||
18 | + | ||
19 | +<?= $form->field($model_lang, '[' . $language->id . ']alias') | ||
20 | + ->textInput([ 'maxlength' => true ]); ?> | ||
21 | + | ||
22 | +<?= $form->field($model_lang, '[' . $language->id . ']body') | ||
23 | + ->widget( | ||
24 | + CKEditor::className(), | ||
25 | + [ | ||
26 | + 'editorOptions' => ElFinder::ckeditorOptions( | ||
27 | + 'elfinder', | ||
28 | + [ | ||
29 | + 'preset' => 'full', | ||
30 | + 'inline' => false, | ||
31 | + 'filebrowserUploadUrl' => Yii::$app->getUrlManager() | ||
32 | + ->createUrl('file/uploader/images-upload'), | ||
33 | + ] | ||
34 | + ), | ||
35 | + ] | ||
36 | + ) ?> | ||
37 | + | ||
38 | +<?= $form->field($model_lang, '[' . $language->id . ']body_preview') | ||
39 | + ->textarea( | ||
40 | + [ | ||
41 | + 'rows' => '10', | ||
42 | + ] | ||
43 | + ) ?> | ||
44 | + | ||
45 | +<?= $form->field($model_lang, '[' . $language->id . ']meta_title') | ||
46 | + ->textInput([ 'maxlength' => true ]); ?> | ||
47 | + | ||
48 | +<?= $form->field($model_lang, '[' . $language->id . ']meta_description') | ||
49 | + ->textInput([ 'maxlength' => true ]); ?> | ||
50 | + | ||
51 | +<?= $form->field($model_lang, '[' . $language->id . ']seo_text') | ||
52 | + ->textInput([ 'maxlength' => true ]); ?> | ||
53 | + | ||
54 | +<?= $form->field($model_lang, '[' . $language->id . ']h1') | ||
55 | + ->textInput([ 'maxlength' => true ]); ?> |
common/modules/blog/views/blog-article/_search.php
100644 → 100755
common/modules/blog/views/blog-article/create.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | - | ||
5 | - | ||
6 | -/* @var $this yii\web\View */ | ||
7 | -/* @var $model common\modules\blog\models\BlogArticle */ | ||
8 | - | ||
9 | -$this->title = 'Create Blog Article'; | ||
10 | -$this->params['breadcrumbs'][] = ['label' => 'Blog Articles', 'url' => ['index']]; | ||
11 | -$this->params['breadcrumbs'][] = $this->title; | 2 | + |
3 | + use common\modules\blog\models\BlogArticle; | ||
4 | + use common\modules\blog\models\BlogArticleLang; | ||
5 | + use common\modules\blog\models\BlogCategory; | ||
6 | + use common\modules\blog\models\BlogTag; | ||
7 | + use yii\helpers\Html; | ||
8 | + use yii\web\View; | ||
9 | + | ||
10 | + /** | ||
11 | + * @var View $this | ||
12 | + * @var BlogArticle $model | ||
13 | + * @var BlogArticleLang[] $modelLangs | ||
14 | + * @var BlogCategory[] $categories | ||
15 | + * @var BlogTag[] $tags | ||
16 | + */ | ||
17 | + | ||
18 | + $this->title = 'Create Blog Article'; | ||
19 | + $this->params[ 'breadcrumbs' ][] = [ | ||
20 | + 'label' => 'Blog Articles', | ||
21 | + 'url' => [ 'index' ], | ||
22 | + ]; | ||
23 | + $this->params[ 'breadcrumbs' ][] = $this->title; | ||
12 | ?> | 24 | ?> |
13 | <div class="blog-article-create"> | 25 | <div class="blog-article-create"> |
14 | - | 26 | + |
15 | <h1><?= Html::encode($this->title) ?></h1> | 27 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | ||
17 | - <?= $this->render('_form', [ | ||
18 | - 'model' => $model, | ||
19 | - ]) ?> | 28 | + |
29 | + <?= $this->render( | ||
30 | + '_form', | ||
31 | + [ | ||
32 | + 'model' => $model, | ||
33 | + 'modelLangs' => $modelLangs, | ||
34 | + 'categories' => $categories, | ||
35 | + 'tags' => $tags, | ||
36 | + ] | ||
37 | + ) ?> | ||
20 | 38 | ||
21 | </div> | 39 | </div> |
common/modules/blog/views/blog-article/index.php
100644 → 100755
common/modules/blog/views/blog-article/update.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | - | ||
5 | -/* @var $this yii\web\View */ | ||
6 | -/* @var $model common\modules\blog\models\BlogArticle */ | ||
7 | - | ||
8 | -$this->title = 'Update Blog Article: ' . $model->id; | ||
9 | -$this->params['breadcrumbs'][] = ['label' => 'Blog Articles', 'url' => ['index']]; | ||
10 | -$this->params['breadcrumbs'][] = ['label' => $model->id, 'url' => ['view', 'id' => $model->id]]; | ||
11 | -$this->params['breadcrumbs'][] = 'Update'; | 2 | + |
3 | + use common\modules\blog\models\BlogArticle; | ||
4 | + use common\modules\blog\models\BlogArticleLang; | ||
5 | + use common\modules\blog\models\BlogCategory; | ||
6 | + use common\modules\blog\models\BlogTag; | ||
7 | + use yii\helpers\Html; | ||
8 | + use yii\web\View; | ||
9 | + | ||
10 | + /** | ||
11 | + * @var View $this | ||
12 | + * @var BlogArticle $model | ||
13 | + * @var BlogArticleLang[] $modelLangs | ||
14 | + * @var BlogCategory[] $categories | ||
15 | + * @var BlogTag[] $tags | ||
16 | + */ | ||
17 | + | ||
18 | + $this->title = 'Update Blog Article: ' . $model->id; | ||
19 | + $this->params[ 'breadcrumbs' ][] = [ | ||
20 | + 'label' => 'Blog Articles', | ||
21 | + 'url' => [ 'index' ], | ||
22 | + ]; | ||
23 | + $this->params[ 'breadcrumbs' ][] = [ | ||
24 | + 'label' => $model->id, | ||
25 | + 'url' => [ | ||
26 | + 'view', | ||
27 | + 'id' => $model->id, | ||
28 | + ], | ||
29 | + ]; | ||
30 | + $this->params[ 'breadcrumbs' ][] = 'Update'; | ||
12 | ?> | 31 | ?> |
13 | <div class="blog-article-update"> | 32 | <div class="blog-article-update"> |
14 | - | 33 | + |
15 | <h1><?= Html::encode($this->title) ?></h1> | 34 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | ||
17 | - <?= $this->render('_form', [ | ||
18 | - 'model' => $model, | ||
19 | - ]) ?> | 35 | + |
36 | + <?= $this->render( | ||
37 | + '_form', | ||
38 | + [ | ||
39 | + 'model' => $model, | ||
40 | + 'modelLangs' => $modelLangs, | ||
41 | + 'categories' => $categories, | ||
42 | + 'tags' => $tags, | ||
43 | + ] | ||
44 | + ) ?> | ||
20 | 45 | ||
21 | </div> | 46 | </div> |
common/modules/blog/views/blog-article/view.php
100644 → 100755
common/modules/blog/views/blog-category/_form.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | -use yii\widgets\ActiveForm; | ||
5 | - | ||
6 | -/* @var $this yii\web\View */ | ||
7 | -/* @var $model common\modules\blog\models\BlogCategory */ | ||
8 | -/* @var $form yii\widgets\ActiveForm */ | 2 | + |
3 | + use common\modules\blog\models\BlogCategory; | ||
4 | + use common\modules\blog\models\BlogCategoryLang; | ||
5 | + use yii\bootstrap\Dropdown; | ||
6 | + use yii\helpers\Html; | ||
7 | + use yii\web\View; | ||
8 | + use yii\widgets\ActiveForm; | ||
9 | + use common\modules\language\widgets\LanguageForm; | ||
10 | + | ||
11 | + /** | ||
12 | + * @var View $this | ||
13 | + * @var BlogCategory $model | ||
14 | + * @var ActiveForm $form | ||
15 | + * @var BlogCategoryLang[] $modelLangs | ||
16 | + * @var array $parentCategories | ||
17 | + */ | ||
9 | ?> | 18 | ?> |
10 | 19 | ||
11 | <div class="blog-category-form"> | 20 | <div class="blog-category-form"> |
12 | - | ||
13 | - <?php $form = ActiveForm::begin(); ?> | ||
14 | - | ||
15 | - <?= $form->field($model, 'sort')->textInput() ?> | ||
16 | - | ||
17 | - <?= $form->field($model, 'image')->textInput(['maxlength' => true]) ?> | ||
18 | - | ||
19 | - <?= $form->field($model, 'parent_id')->textInput() ?> | ||
20 | - | ||
21 | - <?= $form->field($model, 'status')->checkbox() ?> | ||
22 | - | 21 | + |
22 | + <?php $form = ActiveForm::begin( | ||
23 | + [ | ||
24 | + 'options' => [ 'enctype' => 'multipart/form-data' ], | ||
25 | + | ||
26 | + ] | ||
27 | + ); ?> | ||
28 | + | ||
29 | + <?php | ||
30 | + echo LanguageForm::widget( | ||
31 | + [ | ||
32 | + 'modelLangs' => $modelLangs, | ||
33 | + 'formView' => '@common/modules/blog/views/blog-category/_form_language', | ||
34 | + 'form' => $form, | ||
35 | + ] | ||
36 | + ); | ||
37 | + ?> | ||
38 | + | ||
39 | + <?= $form->field($model, 'image') | ||
40 | + ->widget( | ||
41 | + \kartik\file\FileInput::className(), | ||
42 | + [ | ||
43 | + 'language' => 'ru', | ||
44 | + 'options' => [ | ||
45 | + 'accept' => 'image/*', | ||
46 | + 'multiple' => false, | ||
47 | + ], | ||
48 | + 'pluginOptions' => [ | ||
49 | + 'allowedFileExtensions' => [ | ||
50 | + 'jpg', | ||
51 | + 'gif', | ||
52 | + 'png', | ||
53 | + ], | ||
54 | + 'initialPreview' => !empty( $model->imageUrl ) ? \common\components\artboximage\ArtboxImageHelper::getImage( | ||
55 | + $model->imageUrl, | ||
56 | + 'list' | ||
57 | + ) : '', | ||
58 | + 'overwriteInitial' => true, | ||
59 | + 'showRemove' => false, | ||
60 | + 'showUpload' => false, | ||
61 | + 'previewFileType' => 'image', | ||
62 | + ], | ||
63 | + ] | ||
64 | + ); ?> | ||
65 | + | ||
66 | + <?= $form->field($model, 'sort') | ||
67 | + ->textInput() ?> | ||
68 | + | ||
69 | + <?= $form->field($model, 'parent_id') | ||
70 | + ->dropDownList($parentCategories, [ | ||
71 | + 'prompt' => \Yii::t('blog', 'Has no parent rubric'), | ||
72 | + ]) ?> | ||
73 | + | ||
74 | + <?= $form->field($model, 'status') | ||
75 | + ->checkbox() ?> | ||
76 | + | ||
23 | <div class="form-group"> | 77 | <div class="form-group"> |
24 | - <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | 78 | + <?= Html::submitButton( |
79 | + $model->isNewRecord ? 'Create' : 'Update', | ||
80 | + [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ] | ||
81 | + ) ?> | ||
25 | </div> | 82 | </div> |
26 | - | 83 | + |
27 | <?php ActiveForm::end(); ?> | 84 | <?php ActiveForm::end(); ?> |
28 | 85 | ||
29 | </div> | 86 | </div> |
common/modules/blog/views/blog-category/_form_language.php
0 → 100755
1 | +<?php | ||
2 | + use common\models\ArticleLang; | ||
3 | + use common\modules\language\models\Language; | ||
4 | + use yii\web\View; | ||
5 | + use yii\widgets\ActiveForm; | ||
6 | + | ||
7 | + /** | ||
8 | + * @var ArticleLang $model_lang | ||
9 | + * @var Language $language | ||
10 | + * @var ActiveForm $form | ||
11 | + * @var View $this | ||
12 | + */ | ||
13 | +?> | ||
14 | +<?= $form->field($model_lang, '[' . $language->id . ']title') | ||
15 | + ->textInput([ 'maxlength' => true ]); ?> | ||
16 | + | ||
17 | +<?= $form->field($model_lang, '[' . $language->id . ']alias') | ||
18 | + ->textInput([ 'maxlength' => true ]); ?> | ||
19 | + | ||
20 | +<?= $form->field($model_lang, '[' . $language->id . ']description') | ||
21 | + ->textarea( | ||
22 | + [ | ||
23 | + 'rows' => '10', | ||
24 | + ] | ||
25 | + ) ?> | ||
26 | + | ||
27 | +<?= $form->field($model_lang, '[' . $language->id . ']meta_title') | ||
28 | + ->textInput([ 'maxlength' => true ]); ?> | ||
29 | + | ||
30 | +<?= $form->field($model_lang, '[' . $language->id . ']meta_description') | ||
31 | + ->textInput([ 'maxlength' => true ]); ?> | ||
32 | + | ||
33 | +<?= $form->field($model_lang, '[' . $language->id . ']seo_text') | ||
34 | + ->textInput([ 'maxlength' => true ]); ?> | ||
35 | + | ||
36 | +<?= $form->field($model_lang, '[' . $language->id . ']h1') | ||
37 | + ->textInput([ 'maxlength' => true ]); ?> |
common/modules/blog/views/blog-category/_search.php
100644 → 100755
common/modules/blog/views/blog-category/create.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | - | ||
5 | - | ||
6 | -/* @var $this yii\web\View */ | ||
7 | -/* @var $model common\modules\blog\models\BlogCategory */ | ||
8 | - | ||
9 | -$this->title = 'Create Blog Category'; | ||
10 | -$this->params['breadcrumbs'][] = ['label' => 'Blog Categories', 'url' => ['index']]; | ||
11 | -$this->params['breadcrumbs'][] = $this->title; | 2 | + |
3 | + use common\modules\blog\models\BlogArticleLang; | ||
4 | + use common\modules\blog\models\BlogCategory; | ||
5 | + use yii\helpers\Html; | ||
6 | + use yii\web\View; | ||
7 | + | ||
8 | + /** | ||
9 | + * @var View $this | ||
10 | + * @var BlogCategory $model | ||
11 | + * @var BlogArticleLang[] $modelLangs | ||
12 | + * @var array $parentCategories | ||
13 | + */ | ||
14 | + | ||
15 | + $this->title = 'Create Blog Category'; | ||
16 | + $this->params[ 'breadcrumbs' ][] = [ | ||
17 | + 'label' => 'Blog Categories', | ||
18 | + 'url' => [ 'index' ], | ||
19 | + ]; | ||
20 | + $this->params[ 'breadcrumbs' ][] = $this->title; | ||
12 | ?> | 21 | ?> |
13 | <div class="blog-category-create"> | 22 | <div class="blog-category-create"> |
14 | - | 23 | + |
15 | <h1><?= Html::encode($this->title) ?></h1> | 24 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | ||
17 | - <?= $this->render('_form', [ | ||
18 | - 'model' => $model, | ||
19 | - ]) ?> | 25 | + |
26 | + <?= $this->render( | ||
27 | + '_form', | ||
28 | + [ | ||
29 | + 'model' => $model, | ||
30 | + 'modelLangs' => $modelLangs, | ||
31 | + 'parentCategories' => $parentCategories, | ||
32 | + ] | ||
33 | + ) ?> | ||
20 | 34 | ||
21 | </div> | 35 | </div> |
common/modules/blog/views/blog-category/index.php
100644 → 100755
common/modules/blog/views/blog-category/update.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | - | ||
5 | -/* @var $this yii\web\View */ | ||
6 | -/* @var $model common\modules\blog\models\BlogCategory */ | ||
7 | - | ||
8 | -$this->title = 'Update Blog Category: ' . $model->id; | ||
9 | -$this->params['breadcrumbs'][] = ['label' => 'Blog Categories', 'url' => ['index']]; | ||
10 | -$this->params['breadcrumbs'][] = ['label' => $model->id, 'url' => ['view', 'id' => $model->id]]; | ||
11 | -$this->params['breadcrumbs'][] = 'Update'; | 2 | + |
3 | + use common\modules\blog\models\BlogCategory; | ||
4 | + use common\modules\blog\models\BlogCategoryLang; | ||
5 | + use yii\helpers\Html; | ||
6 | + use yii\web\View; | ||
7 | + | ||
8 | + /** | ||
9 | + * @var View $this | ||
10 | + * @var BlogCategory $model | ||
11 | + * @var BlogCategoryLang $modelLangs | ||
12 | + * @var array $parentCategories | ||
13 | + */ | ||
14 | + | ||
15 | + $this->title = 'Update Blog Category: ' . $model->id; | ||
16 | + $this->params[ 'breadcrumbs' ][] = [ | ||
17 | + 'label' => 'Blog Categories', | ||
18 | + 'url' => [ 'index' ], | ||
19 | + ]; | ||
20 | + $this->params[ 'breadcrumbs' ][] = [ | ||
21 | + 'label' => $model->id, | ||
22 | + 'url' => [ | ||
23 | + 'view', | ||
24 | + 'id' => $model->id, | ||
25 | + ], | ||
26 | + ]; | ||
27 | + $this->params[ 'breadcrumbs' ][] = 'Update'; | ||
12 | ?> | 28 | ?> |
13 | <div class="blog-category-update"> | 29 | <div class="blog-category-update"> |
14 | - | 30 | + |
15 | <h1><?= Html::encode($this->title) ?></h1> | 31 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | ||
17 | - <?= $this->render('_form', [ | ||
18 | - 'model' => $model, | ||
19 | - ]) ?> | 32 | + |
33 | + <?= $this->render( | ||
34 | + '_form', | ||
35 | + [ | ||
36 | + 'model' => $model, | ||
37 | + 'modelLangs' => $modelLangs, | ||
38 | + 'parentCategories' => $parentCategories, | ||
39 | + ] | ||
40 | + ) ?> | ||
20 | 41 | ||
21 | </div> | 42 | </div> |
common/modules/blog/views/blog-category/view.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | -use yii\widgets\ActiveForm; | ||
5 | - | ||
6 | -/* @var $this yii\web\View */ | ||
7 | -/* @var $model common\modules\blog\models\BlogTag */ | ||
8 | -/* @var $form yii\widgets\ActiveForm */ | 2 | + |
3 | + use common\modules\blog\models\BlogTag; | ||
4 | + use common\modules\blog\models\BlogTagLang; | ||
5 | + use yii\helpers\Html; | ||
6 | + use yii\web\View; | ||
7 | + use yii\widgets\ActiveForm; | ||
8 | + use common\modules\language\widgets\LanguageForm; | ||
9 | + | ||
10 | + /** | ||
11 | + * @var View $this | ||
12 | + * @var BlogTag $model | ||
13 | + * @var ActiveForm $form | ||
14 | + * @var BlogTagLang[] $modelLangs | ||
15 | + */ | ||
9 | ?> | 16 | ?> |
10 | 17 | ||
11 | <div class="blog-tag-form"> | 18 | <div class="blog-tag-form"> |
12 | - | 19 | + |
13 | <?php $form = ActiveForm::begin(); ?> | 20 | <?php $form = ActiveForm::begin(); ?> |
14 | - | ||
15 | - <?= $form->field($model, 'id')->textInput() ?> | ||
16 | - | 21 | + |
22 | + <?php | ||
23 | + echo LanguageForm::widget( | ||
24 | + [ | ||
25 | + 'modelLangs' => $modelLangs, | ||
26 | + 'formView' => '@common/modules/blog/views/blog-tag/_form_language', | ||
27 | + 'form' => $form, | ||
28 | + ] | ||
29 | + ); | ||
30 | + ?> | ||
31 | + | ||
17 | <div class="form-group"> | 32 | <div class="form-group"> |
18 | - <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | 33 | + <?= Html::submitButton( |
34 | + $model->isNewRecord ? 'Create' : 'Update', | ||
35 | + [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ] | ||
36 | + ) ?> | ||
19 | </div> | 37 | </div> |
20 | - | 38 | + |
21 | <?php ActiveForm::end(); ?> | 39 | <?php ActiveForm::end(); ?> |
22 | 40 | ||
23 | </div> | 41 | </div> |
common/modules/blog/views/blog-tag/_form_language.php
0 → 100755
1 | +<?php | ||
2 | + use common\models\ArticleLang; | ||
3 | + use common\modules\language\models\Language; | ||
4 | + use yii\web\View; | ||
5 | + use yii\widgets\ActiveForm; | ||
6 | + | ||
7 | + /** | ||
8 | + * @var ArticleLang $model_lang | ||
9 | + * @var Language $language | ||
10 | + * @var ActiveForm $form | ||
11 | + * @var View $this | ||
12 | + */ | ||
13 | +?> | ||
14 | +<?= $form->field($model_lang, '[' . $language->id . ']label') | ||
15 | + ->textInput([ 'maxlength' => true ]); ?> |
common/modules/blog/views/blog-tag/_search.php
100644 → 100755
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | - | ||
5 | - | ||
6 | -/* @var $this yii\web\View */ | ||
7 | -/* @var $model common\modules\blog\models\BlogTag */ | ||
8 | - | ||
9 | -$this->title = 'Create Blog Tag'; | ||
10 | -$this->params['breadcrumbs'][] = ['label' => 'Blog Tags', 'url' => ['index']]; | ||
11 | -$this->params['breadcrumbs'][] = $this->title; | 2 | + |
3 | + use common\modules\blog\models\BlogTag; | ||
4 | + use common\modules\blog\models\BlogTagLang; | ||
5 | + use yii\helpers\Html; | ||
6 | + use yii\web\View; | ||
7 | + | ||
8 | + /** | ||
9 | + * @var View $this | ||
10 | + * @var BlogTagLang[] $modelLangs | ||
11 | + * @var BlogTag $model | ||
12 | + */ | ||
13 | + | ||
14 | + $this->title = 'Create Blog Tag'; | ||
15 | + $this->params[ 'breadcrumbs' ][] = [ | ||
16 | + 'label' => 'Blog Tags', | ||
17 | + 'url' => [ 'index' ], | ||
18 | + ]; | ||
19 | + $this->params[ 'breadcrumbs' ][] = $this->title; | ||
12 | ?> | 20 | ?> |
13 | <div class="blog-tag-create"> | 21 | <div class="blog-tag-create"> |
14 | - | 22 | + |
15 | <h1><?= Html::encode($this->title) ?></h1> | 23 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | ||
17 | - <?= $this->render('_form', [ | ||
18 | - 'model' => $model, | ||
19 | - ]) ?> | 24 | + |
25 | + <?= $this->render( | ||
26 | + '_form', | ||
27 | + [ | ||
28 | + 'model' => $model, | ||
29 | + 'modelLangs' => $modelLangs, | ||
30 | + ] | ||
31 | + ) ?> | ||
20 | 32 | ||
21 | </div> | 33 | </div> |
1 | <?php | 1 | <?php |
2 | - | ||
3 | -use yii\helpers\Html; | ||
4 | - | ||
5 | -/* @var $this yii\web\View */ | ||
6 | -/* @var $model common\modules\blog\models\BlogTag */ | ||
7 | - | ||
8 | -$this->title = 'Update Blog Tag: ' . $model->id; | ||
9 | -$this->params['breadcrumbs'][] = ['label' => 'Blog Tags', 'url' => ['index']]; | ||
10 | -$this->params['breadcrumbs'][] = ['label' => $model->id, 'url' => ['view', 'id' => $model->id]]; | ||
11 | -$this->params['breadcrumbs'][] = 'Update'; | 2 | + |
3 | + use common\modules\blog\models\BlogTag; | ||
4 | + use common\modules\blog\models\BlogTagLang; | ||
5 | + use yii\helpers\Html; | ||
6 | + use yii\web\View; | ||
7 | + | ||
8 | + /** | ||
9 | + * @var View $this | ||
10 | + * @var BlogTagLang[] $modelLangs | ||
11 | + * @var BlogTag $model | ||
12 | + */ | ||
13 | + | ||
14 | + $this->title = 'Update Blog Tag: ' . $model->id; | ||
15 | + $this->params[ 'breadcrumbs' ][] = [ | ||
16 | + 'label' => 'Blog Tags', | ||
17 | + 'url' => [ 'index' ], | ||
18 | + ]; | ||
19 | + $this->params[ 'breadcrumbs' ][] = [ | ||
20 | + 'label' => $model->id, | ||
21 | + 'url' => [ | ||
22 | + 'view', | ||
23 | + 'id' => $model->id, | ||
24 | + ], | ||
25 | + ]; | ||
26 | + $this->params[ 'breadcrumbs' ][] = 'Update'; | ||
12 | ?> | 27 | ?> |
13 | <div class="blog-tag-update"> | 28 | <div class="blog-tag-update"> |
14 | - | 29 | + |
15 | <h1><?= Html::encode($this->title) ?></h1> | 30 | <h1><?= Html::encode($this->title) ?></h1> |
16 | - | ||
17 | - <?= $this->render('_form', [ | ||
18 | - 'model' => $model, | ||
19 | - ]) ?> | 31 | + |
32 | + <?= $this->render( | ||
33 | + '_form', | ||
34 | + [ | ||
35 | + 'model' => $model, | ||
36 | + 'modelLangs' => $modelLangs, | ||
37 | + ] | ||
38 | + ) ?> | ||
20 | 39 | ||
21 | </div> | 40 | </div> |
storage/.htaccess