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