Commit 6af5dbe35d72f985e334f84a5ebef45c0eb44fec
1 parent
ffda4a19
-Admin gallery ready
Showing
5 changed files
with
158 additions
and
8 deletions
Show diff stats
backend/controllers/SiteController.php
| 1 | 1 | <?php |
| 2 | 2 | namespace backend\controllers; |
| 3 | - | |
| 3 | + | |
| 4 | + use common\models\Gallery; | |
| 4 | 5 | use common\models\Settings; |
| 5 | 6 | use Yii; |
| 6 | 7 | use yii\web\Controller; |
| ... | ... | @@ -34,6 +35,7 @@ |
| 34 | 35 | 'logout', |
| 35 | 36 | 'index', |
| 36 | 37 | 'analytics', |
| 38 | + 'gallery', | |
| 37 | 39 | ], |
| 38 | 40 | 'allow' => true, |
| 39 | 41 | 'roles' => [ '@' ], |
| ... | ... | @@ -49,7 +51,7 @@ |
| 49 | 51 | ], |
| 50 | 52 | ]; |
| 51 | 53 | } |
| 52 | - | |
| 54 | + | |
| 53 | 55 | /** |
| 54 | 56 | * @inheritdoc |
| 55 | 57 | */ |
| ... | ... | @@ -61,7 +63,7 @@ |
| 61 | 63 | ], |
| 62 | 64 | ]; |
| 63 | 65 | } |
| 64 | - | |
| 66 | + | |
| 65 | 67 | /** |
| 66 | 68 | * Displays homepage. |
| 67 | 69 | * |
| ... | ... | @@ -70,14 +72,14 @@ |
| 70 | 72 | public function actionIndex() |
| 71 | 73 | { |
| 72 | 74 | $settings = Settings::getInstance(); |
| 73 | - | |
| 75 | + | |
| 74 | 76 | if (empty($settings->analytics_key)) { |
| 75 | 77 | return $this->render('instruction'); |
| 76 | 78 | } else { |
| 77 | 79 | return $this->render('index'); |
| 78 | 80 | } |
| 79 | 81 | } |
| 80 | - | |
| 82 | + | |
| 81 | 83 | /** |
| 82 | 84 | * Login action. |
| 83 | 85 | * |
| ... | ... | @@ -88,7 +90,7 @@ |
| 88 | 90 | if (!Yii::$app->user->isGuest) { |
| 89 | 91 | return $this->goHome(); |
| 90 | 92 | } |
| 91 | - | |
| 93 | + | |
| 92 | 94 | $model = new LoginForm(); |
| 93 | 95 | if ($model->load(Yii::$app->request->post()) && $model->login()) { |
| 94 | 96 | return $this->goBack(); |
| ... | ... | @@ -101,7 +103,7 @@ |
| 101 | 103 | ); |
| 102 | 104 | } |
| 103 | 105 | } |
| 104 | - | |
| 106 | + | |
| 105 | 107 | /** |
| 106 | 108 | * Logout action. |
| 107 | 109 | * |
| ... | ... | @@ -110,7 +112,25 @@ |
| 110 | 112 | public function actionLogout() |
| 111 | 113 | { |
| 112 | 114 | Yii::$app->user->logout(); |
| 113 | - | |
| 115 | + | |
| 114 | 116 | return $this->goHome(); |
| 115 | 117 | } |
| 118 | + | |
| 119 | + public function actionGallery() | |
| 120 | + { | |
| 121 | + $model = new Gallery(); | |
| 122 | + | |
| 123 | + if (\Yii::$app->request->isPost) { | |
| 124 | + $model->saveImages(\Yii::$app->request->post('images')); | |
| 125 | + | |
| 126 | + return $this->redirect([ 'site/index' ]); | |
| 127 | + } | |
| 128 | + | |
| 129 | + return $this->render( | |
| 130 | + 'gallery', | |
| 131 | + [ | |
| 132 | + 'model' => $model, | |
| 133 | + ] | |
| 134 | + ); | |
| 135 | + } | |
| 116 | 136 | } | ... | ... |
backend/views/layouts/menu_items.php
| 1 | +<?php | |
| 2 | + | |
| 3 | + use artbox\core\widgets\GalleryWidget; | |
| 4 | + use common\models\Gallery; | |
| 5 | + use yii\helpers\Html; | |
| 6 | + use yii\web\View; | |
| 7 | + use yiister\gentelella\widgets\Panel; | |
| 8 | + | |
| 9 | + /** | |
| 10 | + * @var View $this | |
| 11 | + * @var Gallery $model | |
| 12 | + */ | |
| 13 | + | |
| 14 | + Panel::begin( | |
| 15 | + [ | |
| 16 | + 'header' => 'Gallery', | |
| 17 | + ] | |
| 18 | + ); | |
| 19 | + | |
| 20 | + echo Html::beginForm(); | |
| 21 | +?> | |
| 22 | + | |
| 23 | +<div class="row"> | |
| 24 | + <?php | |
| 25 | + echo GalleryWidget::widget( | |
| 26 | + [ 'model' => $model, ] | |
| 27 | + ); | |
| 28 | + ?> | |
| 29 | +</div> | |
| 30 | +<div class="row"> | |
| 31 | + <?= Html::submitButton( | |
| 32 | + \Yii::t('app', 'Save'), | |
| 33 | + [ | |
| 34 | + 'class' => 'btn btn-lg btn-primary', | |
| 35 | + ] | |
| 36 | + ) ?> | |
| 37 | +</div> | |
| 38 | +<?php | |
| 39 | + | |
| 40 | + echo Html::endForm(); | |
| 41 | + | |
| 42 | + Panel::end(); | |
| 43 | + | |
| 44 | +?> | |
| 45 | + | |
| 46 | + | |
| 0 | 47 | \ No newline at end of file | ... | ... |
| 1 | +<?php | |
| 2 | + /** | |
| 3 | + * Created by PhpStorm. | |
| 4 | + * User: beer | |
| 5 | + * Date: 28.09.17 | |
| 6 | + * Time: 12:38 | |
| 7 | + */ | |
| 8 | + | |
| 9 | + namespace common\models; | |
| 10 | + | |
| 11 | + use artbox\core\models\Image; | |
| 12 | + | |
| 13 | + /** | |
| 14 | + * Stub class Gallery | |
| 15 | + * for holding gallery | |
| 16 | + * | |
| 17 | + * @package common\models | |
| 18 | + */ | |
| 19 | + class Gallery | |
| 20 | + { | |
| 21 | + /** | |
| 22 | + * @return array | |
| 23 | + */ | |
| 24 | + public function getImages(): array | |
| 25 | + { | |
| 26 | + return Image::find() | |
| 27 | + ->where( | |
| 28 | + [ | |
| 29 | + 'gallery' => true, | |
| 30 | + ] | |
| 31 | + ) | |
| 32 | + ->all(); | |
| 33 | + } | |
| 34 | + | |
| 35 | + /** | |
| 36 | + * @param array $images | |
| 37 | + */ | |
| 38 | + public function saveImages(array $images) | |
| 39 | + { | |
| 40 | + if (empty($images)) { | |
| 41 | + \Yii::$app->db->createCommand() | |
| 42 | + ->update( | |
| 43 | + 'ImageManager', | |
| 44 | + [ | |
| 45 | + 'gallery' => false, | |
| 46 | + ], | |
| 47 | + '1 = 1' | |
| 48 | + ) | |
| 49 | + ->execute(); | |
| 50 | + } else { | |
| 51 | + $condition = 'id IN (' . implode(',', $images) . ')'; | |
| 52 | + \Yii::$app->db->createCommand() | |
| 53 | + ->update( | |
| 54 | + 'ImageManager', | |
| 55 | + [ | |
| 56 | + 'gallery' => true, | |
| 57 | + ], | |
| 58 | + $condition | |
| 59 | + ) | |
| 60 | + ->execute(); | |
| 61 | + } | |
| 62 | + } | |
| 63 | + } | |
| 0 | 64 | \ No newline at end of file | ... | ... |
console/migrations/m170928_095137_add_column_to_image_table.php
0 → 100644
| 1 | +<?php | |
| 2 | + | |
| 3 | + use yii\db\Migration; | |
| 4 | + | |
| 5 | + class m170928_095137_add_column_to_image_table extends Migration | |
| 6 | + { | |
| 7 | + public function safeUp() | |
| 8 | + { | |
| 9 | + $this->addColumn('ImageManager', 'gallery', $this->boolean()); | |
| 10 | + } | |
| 11 | + | |
| 12 | + public function safeDown() | |
| 13 | + { | |
| 14 | + $this->dropColumn('ImageManager', 'gallery'); | |
| 15 | + } | |
| 16 | + } | ... | ... |