Commit 6af5dbe35d72f985e334f84a5ebef45c0eb44fec

Authored by Alexey Boroda
1 parent ffda4a19

-Admin gallery ready

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
... ... @@ -105,5 +105,10 @@
105 105 'url' => [ '/comment' ],
106 106 'icon' => 'comment',
107 107 ],
  108 + [
  109 + 'label' => \Yii::t('app', 'Gallery'),
  110 + 'url' => [ 'site/gallery' ],
  111 + 'icon' => 'camera',
  112 + ],
108 113 ]
109 114 );
110 115 \ No newline at end of file
... ...
backend/views/site/gallery.php 0 → 100644
  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
... ...
common/models/Gallery.php 0 → 100644
  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 + }
... ...