diff --git a/backend/controllers/settings/ListController.php b/backend/controllers/settings/ListController.php index 7e1a5fe..a0302c1 100644 --- a/backend/controllers/settings/ListController.php +++ b/backend/controllers/settings/ListController.php @@ -7,7 +7,9 @@ namespace backend\controllers\settings; use backend\forms\SettingsSearch; +use core\component\favicon\FaviconGenerator; use core\entities\Settings; +use core\forms\FaviconForm; use core\forms\SettingsForm; use core\services\SettingsService; use yii\filters\AccessControl; @@ -16,6 +18,7 @@ use yii\web\Controller; use backend\components\ToggleAction; use Yii; use yii\web\NotFoundHttpException; +use yii\web\UploadedFile; class ListController extends Controller { @@ -40,7 +43,7 @@ class ListController extends Controller 'class' => AccessControl::class, 'rules' => [ [ - 'actions' => ['create', 'view', 'index', 'update', 'delete', 'toggle'], + 'actions' => ['create', 'view', 'index', 'update', 'delete', 'toggle', 'favicon'], 'allow' => true, 'roles' => ['SettingsManagement'], ], @@ -146,6 +149,31 @@ class ListController extends Controller return $this->redirect(['index']); } + public function actionFavicon() + { + $form = new FaviconForm(); + if ($form->load(Yii::$app->request->post())) { + $form->image = UploadedFile::getInstance($form, 'image'); + if ($form->image && $form->validate()) { + if (!file_exists(Yii::getAlias('@staticRoot') . '/images/origin/favicon')) { + mkdir(Yii::getAlias('@staticRoot') . '/images/origin/favicon', 0777, true); + } + + $form->image->saveAs(Yii::getAlias('@staticRoot') . '/images/origin/favicon/favicon.png'); + $this->_service->newFavicon(); + Yii::$app->session->setFlash('success', Yii::t('main', 'Favicon generation complete')); + return $this->redirect(['settings/list/index']); + } + } + + return $this->render( + 'favicon', + [ + 'model' => $form, + ] + ); + } + protected function findModel($section, $key) { if (($model = Settings::find()->andWhere(['section' => $section])->andWhere(['key' => $key])->one()) !== null) { diff --git a/backend/messages/ru/main.php b/backend/messages/ru/main.php index 48b4d07..f64d699 100644 --- a/backend/messages/ru/main.php +++ b/backend/messages/ru/main.php @@ -5,6 +5,7 @@ return [ 'Description' => 'Описание', 'Keywords' => 'Ключевые слова', 'Sign out' => 'Выход', + 'Sign in' => 'Вход', 'Profile' => 'Профиль', 'Error' => 'Ошибка', 'Return to back or login page please.' => 'Вернитесь назад или авторизуйтесь снова.', @@ -41,4 +42,9 @@ return [ 'Interface Language' => 'Язык интерфейса', 'design' => 'Оформление', 'site' => 'Сайт', + 'Change Favicon' => 'Изменить иконку сайта', + 'Set Favicon' => 'Новая иконка сайта', + 'Image' => 'Изображение', + 'Only png files allowed. Minimum size: 200x200. Form: square' => 'Разрешены только png файлы минимального размера 200х200. Форма: квадрат', + 'Favicon generation complete' => 'Иконка для сайта обновлена', ]; diff --git a/backend/views/auth/login.php b/backend/views/auth/login.php index 76e4551..4385d06 100644 --- a/backend/views/auth/login.php +++ b/backend/views/auth/login.php @@ -7,7 +7,7 @@ use yii\bootstrap\ActiveForm; /* @var $form yii\bootstrap\ActiveForm */ /* @var $model \core\forms\auth\LoginForm */ -$this->title = 'Sign In'; +$this->title = Yii::t('main', 'Sign in'); $fieldOptions1 = [ 'options' => ['class' => 'form-group has-feedback'], @@ -22,10 +22,14 @@ $fieldOptions2 = [
-
+