Commit b15a9aec1ba6d11d08fd3f46908f0aab7aa20475

Authored by Yarik
1 parent 1fd2bdb4

Добавил языки, адреса, заявки.

Showing 46 changed files with 2058 additions and 94 deletions   Show diff stats
backend/assets/AppAsset.php
... ... @@ -22,9 +22,11 @@ class AppAsset extends AssetBundle
22 22 'css/flags32.css'
23 23 ];
24 24 public $js = [
  25 + 'js/option.js'
25 26 ];
26 27 public $depends = [
27 28 'yii\web\YiiAsset',
28 29 'yii\bootstrap\BootstrapAsset',
  30 + 'yii\web\JqueryAsset'
29 31 ];
30 32 }
... ...
backend/config/main.php
... ... @@ -27,13 +27,6 @@ return [
27 27 'identityClass' => 'common\models\User',
28 28 'enableAutoLogin' => true,
29 29 ],
30   - 'view' => [
31   - 'theme' => [
32   - 'pathMap' => [
33   - '@app/views' => '@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'
34   - ],
35   - ],
36   - ],
37 30 'urlManager' => [
38 31 'enablePrettyUrl' => false,
39 32 'showScriptName' => false,
... ...
backend/controllers/LanguageController.php
... ... @@ -8,6 +8,9 @@ use backend\models\LanguageSearch;
8 8 use yii\web\Controller;
9 9 use yii\web\NotFoundHttpException;
10 10 use yii\filters\VerbFilter;
  11 +use frontend\models\Option;
  12 +use frontend\models\OptionSearch;
  13 +use frontend\models\OptionLang;
11 14  
12 15 /**
13 16 * LanguageController implements the CRUD actions for Language model.
... ... @@ -107,4 +110,81 @@ class LanguageController extends Controller
107 110 throw new NotFoundHttpException('The requested page does not exist.');
108 111 }
109 112 }
  113 +
  114 + public function actionCreateAdress()
  115 + {
  116 + $form[0] = Option::create(\Yii::$app->request->post(), 'Main', 1, [['name' => 'adres', 'template' => 'text', 'translate' => true], ['name' => 'x', 'template' => 'number', 'translate' => false], ['name' => 'y', 'template' => 'number', 'translate' => false], ['name' => 'phone', 'template' => 'text', 'translate' => false], ['name' => 'name', 'template' => 'text', 'translate' => true]], true);
  117 + if($form[0]['success'] == false) {
  118 + return $this->render('create_adress', ['forms' => $form]);
  119 + } else {
  120 + return $this->redirect(['view-adress']);
  121 + }
  122 + }
  123 +
  124 + public function actionUpdateAdress($id)
  125 + {
  126 + $form[0] = Option::change($id, \Yii::$app->request->post(), 'Main', 1);
  127 + if($form[0]['success'] == false) {
  128 + return $this->render('update_adress', ['forms' => $form]);
  129 + } else {
  130 + return $this->redirect(['view-adress']);
  131 + }
  132 + }
  133 +
  134 + public function actionViewAdress()
  135 + {
  136 + $searchModel = new OptionSearch();
  137 +
  138 + $dataProvider = $searchModel->search(array_merge(Yii::$app->request->queryParams, ['OptionSearch' => ['model' => 'Main', 'name' => 'adres']]));
  139 +
  140 + return $this->render('view_adress', [
  141 + 'searchModel' => $searchModel,
  142 + 'dataProvider' => $dataProvider,
  143 + ]);
  144 + }
  145 +
  146 + /**
  147 + * Deletes an existing Option model.
  148 + * If deletion is successful, the browser will be redirected to the 'index' page.
  149 + * @param integer $id
  150 + * @return mixed
  151 + */
  152 + public function actionDeleteAdress($id)
  153 + {
  154 + $model = $this->findModelAdress($id);
  155 + $children = $model->hasMany(Option::className(), ['parent_id' => 'option_id'])->all();
  156 + $langs = array();
  157 + if(!empty($children)) {
  158 + foreach($children as $child) {
  159 + $langs = OptionLang::findAll(['id' => $child->option_id]);
  160 + foreach($langs as $lang) {
  161 + $lang->delete();
  162 + }
  163 + $child->delete();
  164 + }
  165 + }
  166 + $langs = OptionLang::findAll(['id' => $id]);
  167 + foreach($langs as $lang) {
  168 + $lang->delete();
  169 + }
  170 + $model->delete();
  171 +
  172 + return $this->redirect(['view-adress']);
  173 + }
  174 +
  175 + /**
  176 + * Finds the Option model based on its primary key value.
  177 + * If the model is not found, a 404 HTTP exception will be thrown.
  178 + * @param integer $id
  179 + * @return Option the loaded model
  180 + * @throws NotFoundHttpException if the model cannot be found
  181 + */
  182 + protected function findModelAdress($id)
  183 + {
  184 + if (($model = Option::findOne($id)) !== null) {
  185 + return $model;
  186 + } else {
  187 + throw new NotFoundHttpException('The requested page does not exist.');
  188 + }
  189 + }
110 190 }
... ...
backend/controllers/NewOptionsLangController.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace backend\controllers;
  4 +
  5 +use Yii;
  6 +use backend\models\NewOptionsLang;
  7 +use backend\models\NewOptionsLangSearch;
  8 +use yii\web\Controller;
  9 +use yii\web\NotFoundHttpException;
  10 +use yii\filters\VerbFilter;
  11 +
  12 +/**
  13 + * NewOptionsLangController implements the CRUD actions for NewOptionsLang model.
  14 + */
  15 +class NewOptionsLangController extends Controller
  16 +{
  17 + public function behaviors()
  18 + {
  19 + return [
  20 + 'verbs' => [
  21 + 'class' => VerbFilter::className(),
  22 + 'actions' => [
  23 + 'delete' => ['post'],
  24 + ],
  25 + ],
  26 + ];
  27 + }
  28 +
  29 + /**
  30 + * Lists all NewOptionsLang models.
  31 + * @return mixed
  32 + */
  33 + public function actionIndex()
  34 + {
  35 + $searchModel = new NewOptionsLangSearch();
  36 + $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  37 +
  38 + return $this->render('index', [
  39 + 'searchModel' => $searchModel,
  40 + 'dataProvider' => $dataProvider,
  41 + ]);
  42 + }
  43 +
  44 + /**
  45 + * Displays a single NewOptionsLang model.
  46 + * @param integer $id
  47 + * @return mixed
  48 + */
  49 + public function actionView($id)
  50 + {
  51 + return $this->render('view', [
  52 + 'model' => $this->findModel($id),
  53 + ]);
  54 + }
  55 +
  56 + /**
  57 + * Creates a new NewOptionsLang model.
  58 + * If creation is successful, the browser will be redirected to the 'view' page.
  59 + * @return mixed
  60 + */
  61 + public function actionCreate()
  62 + {
  63 + $model = new NewOptionsLang();
  64 +
  65 + if ($model->load(Yii::$app->request->post()) && $model->save()) {
  66 + return $this->redirect(['view', 'id' => $model->primary]);
  67 + } else {
  68 + return $this->render('create', [
  69 + 'model' => $model,
  70 + ]);
  71 + }
  72 + }
  73 +
  74 + /**
  75 + * Updates an existing NewOptionsLang model.
  76 + * If update is successful, the browser will be redirected to the 'view' page.
  77 + * @param integer $id
  78 + * @return mixed
  79 + */
  80 + public function actionUpdate($id)
  81 + {
  82 + $model = $this->findModel($id);
  83 +
  84 + if ($model->load(Yii::$app->request->post()) && $model->save()) {
  85 + return $this->redirect(['view', 'id' => $model->primary]);
  86 + } else {
  87 + return $this->render('update', [
  88 + 'model' => $model,
  89 + ]);
  90 + }
  91 + }
  92 +
  93 + /**
  94 + * Deletes an existing NewOptionsLang model.
  95 + * If deletion is successful, the browser will be redirected to the 'index' page.
  96 + * @param integer $id
  97 + * @return mixed
  98 + */
  99 + public function actionDelete($id)
  100 + {
  101 + $this->findModel($id)->delete();
  102 +
  103 + return $this->redirect(['index']);
  104 + }
  105 +
  106 + /**
  107 + * Finds the NewOptionsLang model based on its primary key value.
  108 + * If the model is not found, a 404 HTTP exception will be thrown.
  109 + * @param integer $id
  110 + * @return NewOptionsLang the loaded model
  111 + * @throws NotFoundHttpException if the model cannot be found
  112 + */
  113 + protected function findModel($id)
  114 + {
  115 + if (($model = NewOptionsLang::findOne($id)) !== null) {
  116 + return $model;
  117 + } else {
  118 + throw new NotFoundHttpException('The requested page does not exist.');
  119 + }
  120 + }
  121 +}
... ...
backend/controllers/SiteController.php
... ... @@ -8,6 +8,10 @@ use common\models\LoginForm;
8 8 use yii\filters\VerbFilter;
9 9 use backend\models\Profile;
10 10 use common\models\User;
  11 +use frontend\models\Option;
  12 +use yii\data\ActiveDataProvider;
  13 +use yii\validators\BooleanValidator;
  14 +use yii\validators\StringValidator;
11 15 /**
12 16 * Site controller
13 17 */
... ... @@ -21,32 +25,19 @@ class SiteController extends Controller
21 25 return [
22 26 'access' => [
23 27 'class' => AccessControl::className(),
  28 + 'except' => ['login', 'error'],
24 29 'rules' => [
25 30 [
26   - 'actions' => ['login', 'error'],
27 31 'allow' => true,
  32 + 'roles' => ['@']
28 33 ],
29   - [
30   - 'actions' => ['logout', 'index'],
31   - 'allow' => true,
32   - 'roles' => ['@'],
33   - ],
34   - [
35   - 'actions' => ['profile', 'profile'],
36   - 'allow' => true,
37   - 'roles' => ['@'],
38   - ],
39   - [
40   - 'actions' => ['profileSave', 'profile'],
41   - 'allow' => true,
42   - 'roles' => ['@'],
43   - ],
44 34 ],
45 35 ],
46 36 'verbs' => [
47 37 'class' => VerbFilter::className(),
48 38 'actions' => [
49 39 'logout' => ['post'],
  40 + 'delete-req' => ['post']
50 41 ],
51 42 ],
52 43 ];
... ... @@ -66,7 +57,7 @@ class SiteController extends Controller
66 57  
67 58 public function actionIndex()
68 59 {
69   - return $this->render('index');
  60 + return $this->render('index');
70 61 }
71 62  
72 63 public function actionLogin()
... ... @@ -109,4 +100,37 @@ class SiteController extends Controller
109 100 ]);
110 101 }
111 102  
  103 + public function actionRequests($id = 0) {
  104 + if($id != 0) {
  105 + Option::markOld($id);
  106 + $this->redirect(['site/requests']);
  107 + }
  108 + $query = Option::find()->where(['model' => 'Feedback', 'model_id' => 1, 'parent_id' => null]);
  109 + $provider = new ActiveDataProvider([
  110 + 'query' => $query,
  111 + 'pagination' => [
  112 + 'pageSize' => 2,
  113 + ],
  114 + 'sort' => [
  115 + 'defaultOrder' => [
  116 + 'created_at' => SORT_DESC
  117 + ]
  118 + ]
  119 + ]);
  120 + $data = $provider->getModels();
  121 + return $this->render('requests', [
  122 + 'dataProvider' => $provider
  123 + ]);
  124 + }
  125 +
  126 + public function actionDeleteReq($id) {
  127 + $model = Option::findOne($id);
  128 + if(!is_null($model) && $model->delete()) {
  129 + return $this->redirect(['site/requests']);
  130 + } else{
  131 + Yii::$app->session->setFlash('post_error', $model->getFirstErrors());
  132 + return $this->redirect('[site/requests]');
  133 + }
  134 + }
  135 +
112 136 }
... ...
backend/models/LanguageSearch.php
... ... @@ -64,7 +64,8 @@ class LanguageSearch extends Language
64 64  
65 65 $query->andFilterWhere(['like', 'lang_code', $this->lang_code])
66 66 ->andFilterWhere(['like', 'language_name', $this->language_name])
67   - ->andWhere(['active' => '1']);
  67 + ->andWhere(['active' => '1'])
  68 + ->andWhere(['>', 'language_id', '0']);
68 69  
69 70 return $dataProvider;
70 71 }
... ...
backend/models/NewOptions.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace backend\models;
  4 +
  5 +use Yii;
  6 +
  7 +/**
  8 + * This is the model class for table "new_options".
  9 + *
  10 + * @property integer $id
  11 + * @property string $model
  12 + * @property integer $model_id
  13 + * @property string $name
  14 + * @property string $template
  15 + * @property integer $parent_id
  16 + */
  17 +class NewOptions extends \yii\db\ActiveRecord
  18 +{
  19 + /**
  20 + * @inheritdoc
  21 + */
  22 + public static function tableName()
  23 + {
  24 + return 'new_options';
  25 + }
  26 +
  27 + /**
  28 + * @inheritdoc
  29 + */
  30 + public function rules()
  31 + {
  32 + return [
  33 + [['model_id', 'parent_id'], 'integer'],
  34 + [['name', 'template'], 'required'],
  35 + [['model', 'name', 'template'], 'string', 'max' => 255]
  36 + ];
  37 + }
  38 +
  39 + /**
  40 + * @inheritdoc
  41 + */
  42 + public function attributeLabels()
  43 + {
  44 + return [
  45 + 'id' => Yii::t('app', 'ID'),
  46 + 'model' => Yii::t('app', 'Model'),
  47 + 'model_id' => Yii::t('app', 'Model ID'),
  48 + 'name' => Yii::t('app', 'Name'),
  49 + 'template' => Yii::t('app', 'Template'),
  50 + 'parent_id' => Yii::t('app', 'Parent ID'),
  51 + ];
  52 + }
  53 +}
... ...
backend/models/NewOptionsLang.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace backend\models;
  4 +
  5 +use Yii;
  6 +
  7 +/**
  8 + * This is the model class for table "new_options_lang".
  9 + *
  10 + * @property integer $primary
  11 + * @property integer $id
  12 + * @property integer $lang_id
  13 + * @property string $value
  14 + */
  15 +class NewOptionsLang extends \yii\db\ActiveRecord
  16 +{
  17 + const SCENARIO_ADD = 'add';
  18 + const SCENARIO_UPDATE = 'update';
  19 +
  20 + /**
  21 + * @inheritdoc
  22 + */
  23 + public static function tableName()
  24 + {
  25 + return 'new_options_lang';
  26 + }
  27 +
  28 + /**
  29 + * @inheritdoc
  30 + */
  31 + public function rules()
  32 + {
  33 + return [
  34 + [['id', 'value'], 'required'],
  35 + [['id', 'lang_id'], 'integer'],
  36 + [['value'], 'string']
  37 + ];
  38 + }
  39 +
  40 + /**
  41 + * @inheritdoc
  42 + */
  43 + public function attributeLabels()
  44 + {
  45 + return [
  46 + 'primary' => Yii::t('app', 'Primary'),
  47 + 'id' => Yii::t('app', 'ID'),
  48 + 'lang_id' => Yii::t('app', 'Lang ID'),
  49 + 'value' => Yii::t('app', 'Value'),
  50 + ];
  51 + }
  52 +}
... ...
backend/models/NewOptionsLangSearch.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace backend\models;
  4 +
  5 +use Yii;
  6 +use yii\base\Model;
  7 +use yii\data\ActiveDataProvider;
  8 +use backend\models\NewOptionsLang;
  9 +
  10 +/**
  11 + * NewOptionsLangSearch represents the model behind the search form about `backend\models\NewOptionsLang`.
  12 + */
  13 +class NewOptionsLangSearch extends NewOptionsLang
  14 +{
  15 + /**
  16 + * @inheritdoc
  17 + */
  18 + public function rules()
  19 + {
  20 + return [
  21 + [['primary', 'id', 'lang_id'], 'integer'],
  22 + [['value'], 'safe'],
  23 + ];
  24 + }
  25 +
  26 + /**
  27 + * @inheritdoc
  28 + */
  29 + public function scenarios()
  30 + {
  31 + // bypass scenarios() implementation in the parent class
  32 + return Model::scenarios();
  33 + }
  34 +
  35 + /**
  36 + * Creates data provider instance with search query applied
  37 + *
  38 + * @param array $params
  39 + *
  40 + * @return ActiveDataProvider
  41 + */
  42 + public function search($params)
  43 + {
  44 + $query = NewOptionsLang::find();
  45 +
  46 + $dataProvider = new ActiveDataProvider([
  47 + 'query' => $query,
  48 + ]);
  49 +
  50 + $this->load($params);
  51 +
  52 + if (!$this->validate()) {
  53 + // uncomment the following line if you do not want to return any records when validation fails
  54 + // $query->where('0=1');
  55 + return $dataProvider;
  56 + }
  57 +
  58 + $query->andFilterWhere([
  59 + 'primary' => $this->primary,
  60 + 'id' => $this->id,
  61 + 'lang_id' => $this->lang_id,
  62 + ]);
  63 +
  64 + $query->andFilterWhere(['like', 'value', $this->value]);
  65 +
  66 + return $dataProvider;
  67 + }
  68 +}
... ...
backend/views/_language/_form.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\Language */
  8 +/* @var $form yii\widgets\ActiveForm */
  9 +?>
  10 +
  11 +<div class="language-form">
  12 +
  13 + <?php $form = ActiveForm::begin(); ?>
  14 + <?php /*?>
  15 + <?= $form->field($model[0], 'lang_code')->textInput(['maxlength' => true]) ?>
  16 +
  17 + <?= $form->field($model[0], 'is_default')->checkBox() ?>
  18 +
  19 + <?= $form->field($model[1], 'lang_title')->textInput(['maxlength' => true])?>
  20 +
  21 + <div class="form-group">
  22 + <?= Html::submitButton($model[0]->isNewRecord ? Yii::t('app', 'Create', array('name' => 'Имя')) : Yii::t('app', 'Update'), ['class' => $model[0]->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
  23 + </div>
  24 + */ ?>
  25 + <?php ActiveForm::end(); ?>
  26 +
  27 +</div>
... ...
backend/views/_language/_search.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\LanguageSearch */
  8 +/* @var $form yii\widgets\ActiveForm */
  9 +?>
  10 +
  11 +<div class="language-search">
  12 +
  13 + <?php $form = ActiveForm::begin([
  14 + 'action' => ['index'],
  15 + 'method' => 'get',
  16 + ]); ?>
  17 +
  18 + <?= $form->field($model, 'language_id') ?>
  19 +
  20 + <?= $form->field($model, 'lang_code') ?>
  21 +
  22 + <?= $form->field($model, 'is_default') ?>
  23 +
  24 + <div class="form-group">
  25 + <?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
  26 + <?= Html::resetButton(Yii::t('app', 'Reset'), ['class' => 'btn btn-default']) ?>
  27 + </div>
  28 +
  29 + <?php ActiveForm::end(); ?>
  30 +
  31 +</div>
... ...
backend/views/_language/create.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\Language */
  8 +
  9 +/*$this->title = Yii::t('app', 'Create Language');
  10 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Languages'), 'url' => ['index']];
  11 +$this->params['breadcrumbs'][] = $this->title;*/
  12 +echo $this->render('index', $layoutdata);
  13 +?>
  14 +<div class="lang-column-2">
  15 +
  16 + <?= $this->render('_form', [
  17 + 'model' => $model
  18 + ]) ?>
  19 +</div>
0 20 \ No newline at end of file
... ...
backend/views/_language/index.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\grid\GridView;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $searchModel backend\models\LanguageSearch */
  8 +/* @var $dataProvider yii\data\ActiveDataProvider */
  9 +$this->registerCssFile('/backend/web/css/language.css');
  10 +$this->registerJsFile('/backend/web/js/language.js', ['depends' => ['yii\web\JqueryAsset'], 'position' => $this::POS_END]);
  11 +$this->title = Yii::t('app', 'Settings');
  12 +$this->params['breadcrumbs'][] = $this->title;
  13 +?>
  14 + <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
  15 + <div class="lang-column-1">
  16 + <h1><?= Html::encode($this->title) ?></h1>
  17 + <ul class="settings_menu sidebar-menu">
  18 + <li>
  19 + <a href="#collapseLanguages" data-toggle="collapse" aria-expanded="false" aria-controls="collapseLanguages"><?php echo \Yii::t('app', 'languages');?></a>
  20 + <ul class="collapse settings_menu_inner" id="collapseLanguages">
  21 + <li>
  22 + <a href="#collapseLanguagesList" data-toggle="collapse" aria-expanded="false" aria-controls="collapseLanguagesList"><?php echo \Yii::t('app', 'languages_list');?></a>
  23 + <?= Html::a('', ['create'], ['class' => 'glyphicon glyphicon-plus']) ?>
  24 + <div class="collapse" id="collapseLanguagesList">
  25 + <?= GridView::widget([
  26 + 'dataProvider' => $dataProvider,
  27 + 'filterModel' => $searchModel,
  28 + 'columns' => [
  29 + ['class' => 'yii\grid\SerialColumn'],
  30 +
  31 + 'language_id',
  32 + 'lang_code',
  33 + 'is_default',
  34 +
  35 + ['class' => 'yii\grid\ActionColumn'],
  36 + ],
  37 + ]); ?>
  38 + </div>
  39 + </li>
  40 + <li>
  41 + <a href="#collapseLanguagesStaticFront" data-toggle="collapse" aria-expanded="false" aria-controls="collapseLanguagesStaticFront"><?php echo \Yii::t('app', 'languages_static_front');?></a>
  42 + <div class="collapse" id="collapseLanguagesStaticFront">
  43 + <?= GridView::widget([
  44 + 'dataProvider' => $dataProvider,
  45 + 'filterModel' => $searchModel,
  46 + 'columns' => [
  47 + ['class' => 'yii\grid\SerialColumn'],
  48 +
  49 + 'language_id',
  50 + 'lang_code',
  51 + 'is_default',
  52 +
  53 + ['class' => 'yii\grid\ActionColumn'],
  54 + ],
  55 + ]); ?>
  56 + </div>
  57 + </li>
  58 + <li>
  59 + <a href="#collapseLanguagesStaticAdmin" data-toggle="collapse" aria-expanded="false" aria-controls="collapseLanguagesStaticAdmin"><?php echo \Yii::t('app', 'languages_static_admin');?></a>
  60 + <div class="collapse" id="collapseLanguagesStaticAdmin">
  61 + <?= GridView::widget([
  62 + 'dataProvider' => $dataProvider,
  63 + 'filterModel' => $searchModel,
  64 + 'columns' => [
  65 + ['class' => 'yii\grid\SerialColumn'],
  66 +
  67 + 'language_id',
  68 + 'lang_code',
  69 + 'is_default',
  70 +
  71 + ['class' => 'yii\grid\ActionColumn'],
  72 + ],
  73 + ]); ?>
  74 + </div>
  75 + </li>
  76 + </ul>
  77 + </li>
  78 + <li>
  79 + <a href="#collapseRoles" data-toggle="collapse" aria-expanded="false" aria-controls="collapseRoles"><?php echo \Yii::t('app', 'roles');?></a>
  80 + <ul class="collapse settings_menu_inner" id="collapseRoles">
  81 + <li>Ipsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum Ipsum</li>
  82 + <li>Ipsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum Ipsum</li>
  83 + </ul>
  84 + </li>
  85 + </ul>
  86 + </div>
... ...
backend/views/_language/update.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +
  5 +/* @var $this yii\web\View */
  6 +/* @var $model backend\models\Language */
  7 +
  8 +/*$this->title = Yii::t('app', 'Update {modelClass}: ', [
  9 + 'modelClass' => 'Language',
  10 +]) . ' ' . $model->language_id;
  11 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Languages'), 'url' => ['index']];
  12 +$this->params['breadcrumbs'][] = ['label' => $model->language_id, 'url' => ['view', 'id' => $model->language_id]];
  13 +$this->params['breadcrumbs'][] = Yii::t('app', 'Update');*/
  14 +echo $this->render('index', $layoutdata);
  15 +?>
  16 +<div class="lang-column-2">
  17 +
  18 + <?= $this->render('_form', [
  19 + 'model' => $model,
  20 + ]) ?>
  21 +
  22 +</div>
... ...
backend/views/_language/view.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\DetailView;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\Language */
  8 +
  9 +/*$this->title = $model->language_id;
  10 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Languages'), 'url' => ['index']];
  11 +$this->params['breadcrumbs'][] = $this->title;*/
  12 +echo $this->render('index', $layoutdata);
  13 +?>
  14 +<div class="lang-column-2">
  15 + <?= DetailView::widget([
  16 + 'model' => $model,
  17 + 'attributes' => [
  18 + 'language_id',
  19 + 'lang_code',
  20 + 'is_default',
  21 + ],
  22 + ]) ?>
  23 + <p>
  24 + <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->language_id], ['class' => 'btn btn-primary']) ?>
  25 + <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->language_id], [
  26 + 'class' => 'btn btn-danger',
  27 + 'data' => [
  28 + 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'),
  29 + 'method' => 'post',
  30 + ],
  31 + ]) ?>
  32 + </p>
  33 +</div>
0 34 \ No newline at end of file
... ...
backend/views/language/_form_adress.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model frontend\models\Option */
  8 +/* @var $form yii\widgets\ActiveForm */
  9 +?>
  10 +
  11 +<div class="option-form">
  12 + <?php $form = ActiveForm::begin(); ?>
  13 + <input type="hidden" name="Option[model]" value="<?=$modeldb?>"/>
  14 + <input type="hidden" name="Option[model_id]" value="<?=$model_id?>"/>
  15 + <?php if($multiple) {?><p class="text-right"><span class="glyphicon glyphicon-plus add_row"></span></p><?php }?>
  16 + <?php if(empty($models)) {
  17 + ?>
  18 + <div class="form-group" id="main_row">
  19 + <div class="form-wrapper">
  20 + <?php foreach($fields as $index => $field) {
  21 + ?>
  22 + <div class="fields_block">
  23 + <label for="Option[0][value][<?=$field['name']?>]" class="pull-left"><?php echo Yii::t('app', $field['name']); ?></label>
  24 + <?php
  25 + if($field['translate']) { ?><p class="text-right"><span class="glyphicon glyphicon-globe add_lang pull-right"></span></p><?php }
  26 + ?>
  27 + <div class="clearfix"></div>
  28 + <input type="hidden" name="Option[0][<?=$field['name']?>][template]" value="<?=$field['template']?>"/>
  29 + <input type="hidden" name="Option[0][<?=$field['name']?>][translate]" value="<?=$field['translate']?>"/>
  30 + <input type="<?=$field['template']?>" name="Option[0][value][<?=$field['name']?>]" class="form-control required main_input" required/>
  31 + <?php
  32 + if($field['translate']) {
  33 + ?>
  34 + <div class="lang_inputs" style="display: none">
  35 + <?php
  36 + foreach($model->getLangs() as $lang) {
  37 + ?>
  38 + <div class="form-group">
  39 + <div class="col-xs-1"><?=$lang['lang_code']?></div>
  40 + <div class="col-xs-11"><input type="<?=$field['template']?>" name="Option[0][lang][<?=$field['name']?>][<?=$lang['language_id']?>]" class="form-control" /></div>
  41 + <div class="clearfix"></div>
  42 + </div>
  43 + <?php
  44 + }
  45 + ?>
  46 + </div>
  47 + <?php
  48 + }
  49 + ?>
  50 + </div>
  51 + <?php
  52 + }?>
  53 + <p class="text-right"><span class="glyphicon glyphicon-minus remove_lang pull-right"></span></p>
  54 + <hr />
  55 + </div>
  56 + </div>
  57 + <?php
  58 + } else {
  59 + $first = 1;
  60 + foreach($models as $index => $row) {
  61 + foreach($row as $key => $value) {
  62 + if(!$modellang[$index][$key][0]->hasErrors('value')) {
  63 + continue;
  64 + }
  65 + if($first) {
  66 + ?>
  67 + <div class="form-group" id="main_row">
  68 + <?php
  69 + }
  70 + ?>
  71 + <div class="form-wrapper">
  72 + <div class="fields_block">
  73 + <label for="Option[0][<?=$key?>]"><?php echo Yii::t('app', $key); ?></label>
  74 + <input type="hidden" name="Option[0][template]" value="<?=$value->template?>"/>
  75 + <input type="<?=$value->template?>" name="Option[0][value][<?=$key?>]" class="form-control required main_input" required value="<?=$modellang[$index][$key][0]->value?>"/>
  76 + <div class="help-block"><?=$modellang[$index][$key][0]->getFirstError('value')?></div>
  77 + <?php
  78 + if($field['translate']) {
  79 + ?>
  80 + <div class="lang_inputs">
  81 + <?php
  82 + foreach($value->getLangs() as $lang) {
  83 + ?>
  84 + <div class="form-group">
  85 + <div class="col-xs-1"><?=$lang['lang_code']?></div>
  86 + <div class="col-xs-11"><input type="<?=$value->template?>" name="Option[0][lang][<?=$key?>][<?=$lang['language_id']?>]" class="form-control" value="<?=$modellang[$index][$key][$lang['language_id']]->value?>"/></div>
  87 + </div>
  88 + <?php
  89 + }
  90 + ?>
  91 + </div>
  92 + <?php
  93 + } ?>
  94 + </div>
  95 + <?php
  96 + if($first) {
  97 + ?>
  98 + <p class="text-right"><span class="glyphicon glyphicon-minus remove_lang pull-right"></span></p>
  99 + <hr />
  100 + </div>
  101 + </div>
  102 + <?php
  103 + $first = 0;
  104 + }
  105 + ?>
  106 + <?php
  107 + }
  108 + }
  109 + }?>
  110 +
  111 + <div class="form-group">
  112 + <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
  113 + </div>
  114 +
  115 + <?php ActiveForm::end(); ?>
  116 + <script>
  117 + var form = '<?= $form->getId()?>';
  118 + </script>
  119 +</div>
... ...
backend/views/language/_form_adress_edit.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model frontend\models\Option */
  8 +/* @var $form yii\widgets\ActiveForm */
  9 +?>
  10 +
  11 +<div class="option-form">
  12 + <?php $form = ActiveForm::begin(); ?>
  13 + <input type="hidden" name="Option[model]" value="<?=$modeldb?>"/>
  14 + <input type="hidden" name="Option[model_id]" value="<?=$model_id?>"/>
  15 + <?php foreach($models as $id => $row) {
  16 + ?>
  17 + <label for="Option[<?=$id?>][<?=$key?>]"><?php echo Yii::t('app', $row->name); ?></label>
  18 + <input type="hidden" name="Option[<?=$id?>][id]" value="<?=$id?>" />
  19 + <input type="hidden" name="Option[<?=$id?>][template]" value="<?=$row->template?>"/>
  20 + <input type="<?=$row->template?>" name="Option[<?=$id?>][value][<?=$row->name?>]" class="form-control required" required value="<?=$modellang[$id][0]->value?>"/>
  21 + <?php if($row->hasErrors()) { ?><div class="help-block"><?php echo $modellang[$id][0]->getFirstError('value');?></div> <?php } ?>
  22 + <?php
  23 + if($row->translate) {
  24 + foreach($row->getLangs() as $lang_id => $lang) {
  25 + ?>
  26 + <div class="form-group">
  27 + <div class="col-xs-1"><?=$lang['lang_code']?></div>
  28 + <div class="col-xs-11"><input type="<?=$row->template?>" name="Option[<?=$id?>][lang][<?=$lang['language_id']?>]" class="form-control" value="<?=$modellang[$id][$lang['language_id']]->value?>"/></div>
  29 + </div>
  30 + <?php
  31 + }
  32 + }
  33 +
  34 + }?>
  35 +
  36 + <div class="form-group">
  37 + <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
  38 + </div>
  39 +
  40 + <?php ActiveForm::end(); ?>
  41 +</div>
... ...
backend/views/language/create.php
... ... @@ -24,7 +24,11 @@ echo $this-&gt;render(&#39;layout&#39;);
24 24 [
25 25 'class' => Column::className(),
26 26 'content' => function($model, $key, $index, $column) {
  27 +<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
27 28 return '<span class="f32"><span class="flag '.$model->lang_code.'"></span></span>';
  29 +=======
  30 + return '<span class="f32"><span class="flag '.$model->country_code.'"></span></span>';
  31 +>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
28 32 }
29 33 ],
30 34 'language_name',
... ...
backend/views/language/create_adress.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model frontend\models\Option */
  8 +
  9 +$this->title = Yii::t('app', 'Create Option');
  10 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
  11 +$this->params['breadcrumbs'][] = $this->title;
  12 +echo $this->render('layout');
  13 +?>
  14 +<div class="lang-column-2">
  15 + <?php foreach($forms as $oneform) {
  16 + echo $this->render('_form_adress', $oneform);
  17 + }?>
  18 +
  19 +</div>
... ...
backend/views/language/index.php
... ... @@ -24,7 +24,11 @@ echo $this-&gt;render(&#39;layout&#39;);
24 24 [
25 25 'class' => Column::className(),
26 26 'content' => function($model, $key, $index, $column) {
  27 +<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
27 28 return '<span class="f32"><span class="flag '.$model->lang_code.'"></span></span>';
  29 +=======
  30 + return '<span class="f32"><span class="flag '.$model->country_code.'"></span></span>';
  31 +>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
28 32 }
29 33 ],
30 34 'language_name',
... ...
backend/views/language/layout.php
... ... @@ -36,5 +36,8 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
36 36 <li>Ipsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum Ipsum</li>
37 37 </ul>
38 38 </li>
  39 + <li>
  40 + <?= Html::a(Yii::t('app', 'adress'), ['view-adress'])?>
  41 + </li>
39 42 </ul>
40 43 </div>
... ...
backend/views/language/update_adress.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +
  5 +/* @var $this yii\web\View */
  6 +/* @var $model frontend\models\Option */
  7 +
  8 +$this->title = Yii::t('app', 'Update {modelClass}: ', [
  9 + 'modelClass' => 'Option',
  10 +]) . ' ' . $forms[0]['models'][\Yii::$app->request->get('id')]->name;
  11 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
  12 +$this->params['breadcrumbs'][] = ['label' => $forms[0]['models'][\Yii::$app->request->get('id')]->name, 'url' => ['view', 'id' => $forms[0]['models'][\Yii::$app->request->get('id')]->option_id]];
  13 +$this->params['breadcrumbs'][] = Yii::t('app', 'Update');
  14 +echo $this->render('layout');
  15 +?>
  16 +<div class="lang-column-2">
  17 + <?php foreach($forms as $oneform) {
  18 + echo $this->render('_form_adress_edit', $oneform);
  19 + }?>
  20 +
  21 +</div>
... ...
backend/views/language/view_adress.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\grid\GridView;
  5 +use yii\grid\Column;
  6 +use frontend\models\OptionLang;
  7 +
  8 +/* @var $this yii\web\View */
  9 +/* @var $searchModel backend\models\LanguageSearch */
  10 +/* @var $dataProvider yii\data\ActiveDataProvider */
  11 +
  12 +$this->title = Yii::t('app', 'Languages');
  13 +$this->params['breadcrumbs'][] = $this->title;
  14 +echo $this->render('layout');
  15 +?>
  16 +<div class="lang-column-2">
  17 +
  18 + <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
  19 +
  20 + <?= GridView::widget([
  21 + 'dataProvider' => $dataProvider,
  22 + 'layout' => "{items}",
  23 + 'columns' => [
  24 + [
  25 + 'class' => 'yii\grid\Column',
  26 + 'content' => function($model, $key, $index, $column) {
  27 + return OptionLang::find()->select('value')->where(['lang_id' => 0, 'id' => $model->option_id])->scalar();
  28 + },
  29 + 'header' => Yii::t('app', 'adress_name')
  30 + ],
  31 + [
  32 + 'class' => 'yii\grid\ActionColumn',
  33 + 'template' => '{update-adress} {delete-adress}',
  34 + 'buttons' => [
  35 + 'update-adress' => function ($url, $model, $key) {
  36 + return Html::a('', $url, ['class' => 'glyphicon glyphicon-pencil', 'title' => Yii::t('app', 'Change')]);
  37 + },
  38 + 'delete-adress' => function ($url, $model, $key) {
  39 + return Html::a('', $url, ['class' => 'glyphicon glyphicon-trash', 'title' => Yii::t('app', 'Delete')]);
  40 + },
  41 + ],
  42 + ]
  43 + ]
  44 + ]); ?>
  45 +
  46 + <p class="text-right">
  47 + <?= Html::a(Yii::t('app', 'Create adress'), ['create-adress'], ['class' => 'btn btn-success']) ?>
  48 + </p>
  49 +
  50 +</div>
... ...
backend/views/layouts/content.php 0 → 100644
  1 +<?php
  2 +use yii\widgets\Breadcrumbs;
  3 +use dmstr\widgets\Alert;
  4 +use yii\helpers\Html;
  5 +
  6 +?>
  7 +<div class="content-wrapper">
  8 + <section class="content-header">
  9 + <?php if (isset($this->blocks['content-header'])) { ?>
  10 + <h1><?= $this->blocks['content-header'] ?></h1>
  11 + <?php } else { ?>
  12 + <h1>
  13 + <?php
  14 + if ($this->title !== null) {
  15 + echo \yii\helpers\Html::encode($this->title);
  16 + } else {
  17 + echo \yii\helpers\Inflector::camel2words(
  18 + \yii\helpers\Inflector::id2camel($this->context->module->id)
  19 + );
  20 + echo ($this->context->module->id !== \Yii::$app->id) ? '<small>Module</small>' : '';
  21 + } ?>
  22 + </h1>
  23 + <?php } ?>
  24 +
  25 + <?=
  26 + Breadcrumbs::widget(
  27 + [
  28 + 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
  29 + ]
  30 + ) ?>
  31 + </section>
  32 +
  33 + <section class="content">
  34 + <?= Alert::widget() ?>
  35 + <?= $content ?>
  36 + </section>
  37 +</div>
  38 +
  39 +<footer class="main-footer">
  40 + <div class="pull-right hidden-xs">
  41 + <b>Version</b> 2.0
  42 + </div>
  43 + <strong>Copyright &copy; 2014-2015 <a href="http://almsaeedstudio.com">Almsaeed Studio</a>.</strong> All rights
  44 + reserved.
  45 +</footer>
  46 +
  47 +<!-- Control Sidebar -->
  48 +<aside class="control-sidebar control-sidebar-dark">
  49 + <!-- Create the tabs -->
  50 + <ul class="nav nav-tabs nav-justified control-sidebar-tabs">
  51 + <li><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li>
  52 + <li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li>
  53 + </ul>
  54 + <!-- Tab panes -->
  55 + <div class="tab-content">
  56 + <!-- Home tab content -->
  57 + <div class="tab-pane" id="control-sidebar-home-tab">
  58 + <h3 class="control-sidebar-heading">Recent Activity</h3>
  59 + <ul class='control-sidebar-menu'>
  60 + <li>
  61 + <a href='javascript::;'>
  62 + <i class="menu-icon fa fa-birthday-cake bg-red"></i>
  63 +
  64 + <div class="menu-info">
  65 + <h4 class="control-sidebar-subheading">Langdon's Birthday</h4>
  66 +
  67 + <p>Will be 23 on April 24th</p>
  68 + </div>
  69 + </a>
  70 + </li>
  71 + <li>
  72 + <a href='javascript::;'>
  73 + <i class="menu-icon fa fa-user bg-yellow"></i>
  74 +
  75 + <div class="menu-info">
  76 + <h4 class="control-sidebar-subheading">Frodo Updated His Profile</h4>
  77 +
  78 + <p>New phone +1(800)555-1234</p>
  79 + </div>
  80 + </a>
  81 + </li>
  82 + <li>
  83 + <a href='javascript::;'>
  84 + <i class="menu-icon fa fa-envelope-o bg-light-blue"></i>
  85 +
  86 + <div class="menu-info">
  87 + <h4 class="control-sidebar-subheading">Nora Joined Mailing List</h4>
  88 +
  89 + <p>nora@example.com</p>
  90 + </div>
  91 + </a>
  92 + </li>
  93 + <li>
  94 + <a href='javascript::;'>
  95 + <i class="menu-icon fa fa-file-code-o bg-green"></i>
  96 +
  97 + <div class="menu-info">
  98 + <h4 class="control-sidebar-subheading">Cron Job 254 Executed</h4>
  99 +
  100 + <p>Execution time 5 seconds</p>
  101 + </div>
  102 + </a>
  103 + </li>
  104 + </ul>
  105 + <!-- /.control-sidebar-menu -->
  106 +
  107 + <h3 class="control-sidebar-heading">Tasks Progress</h3>
  108 + <ul class='control-sidebar-menu'>
  109 + <li>
  110 + <a href='javascript::;'>
  111 + <h4 class="control-sidebar-subheading">
  112 + Custom Template Design
  113 + <span class="label label-danger pull-right">70%</span>
  114 + </h4>
  115 +
  116 + <div class="progress progress-xxs">
  117 + <div class="progress-bar progress-bar-danger" style="width: 70%"></div>
  118 + </div>
  119 + </a>
  120 + </li>
  121 + <li>
  122 + <a href='javascript::;'>
  123 + <h4 class="control-sidebar-subheading">
  124 + Update Resume
  125 + <span class="label label-success pull-right">95%</span>
  126 + </h4>
  127 +
  128 + <div class="progress progress-xxs">
  129 + <div class="progress-bar progress-bar-success" style="width: 95%"></div>
  130 + </div>
  131 + </a>
  132 + </li>
  133 + <li>
  134 + <a href='javascript::;'>
  135 + <h4 class="control-sidebar-subheading">
  136 + Laravel Integration
  137 + <span class="label label-waring pull-right">50%</span>
  138 + </h4>
  139 +
  140 + <div class="progress progress-xxs">
  141 + <div class="progress-bar progress-bar-warning" style="width: 50%"></div>
  142 + </div>
  143 + </a>
  144 + </li>
  145 + <li>
  146 + <a href='javascript::;'>
  147 + <h4 class="control-sidebar-subheading">
  148 + Back End Framework
  149 + <span class="label label-primary pull-right">68%</span>
  150 + </h4>
  151 +
  152 + <div class="progress progress-xxs">
  153 + <div class="progress-bar progress-bar-primary" style="width: 68%"></div>
  154 + </div>
  155 + </a>
  156 + </li>
  157 + </ul>
  158 + <!-- /.control-sidebar-menu -->
  159 +
  160 + </div>
  161 + <!-- /.tab-pane -->
  162 +
  163 + <!-- Settings tab content -->
  164 + <div class="tab-pane" id="control-sidebar-settings-tab">
  165 + <form method="post">
  166 + <h3 class="control-sidebar-heading">General Settings</h3>
  167 +
  168 + <div class="form-group">
  169 + <label class="control-sidebar-subheading">
  170 + Report panel usage
  171 + <input type="checkbox" class="pull-right" checked/>
  172 + </label>
  173 +
  174 + <p>
  175 + Some information about this general settings option
  176 + </p>
  177 + </div>
  178 + <!-- /.form-group -->
  179 +
  180 + <div class="form-group">
  181 + <label class="control-sidebar-subheading">
  182 + Allow mail redirect
  183 + <input type="checkbox" class="pull-right" checked/>
  184 + </label>
  185 +
  186 + <p>
  187 + Other sets of options are available
  188 + </p>
  189 + </div>
  190 + <!-- /.form-group -->
  191 +
  192 + <div class="form-group">
  193 + <label class="control-sidebar-subheading">
  194 + Expose author name in posts
  195 + <input type="checkbox" class="pull-right" checked/>
  196 + </label>
  197 +
  198 + <p>
  199 + Allow the user to show his name in blog posts
  200 + </p>
  201 + </div>
  202 + <!-- /.form-group -->
  203 +
  204 + <h3 class="control-sidebar-heading">Chat Settings</h3>
  205 +
  206 + <div class="form-group">
  207 + <label class="control-sidebar-subheading">
  208 + Show me as online
  209 + <input type="checkbox" class="pull-right" checked/>
  210 + </label>
  211 + </div>
  212 + <!-- /.form-group -->
  213 +
  214 + <div class="form-group">
  215 + <label class="control-sidebar-subheading">
  216 + Turn off notifications
  217 + <input type="checkbox" class="pull-right"/>
  218 + </label>
  219 + </div>
  220 + <!-- /.form-group -->
  221 +
  222 + <div class="form-group">
  223 + <label class="control-sidebar-subheading">
  224 + Delete chat history
  225 + <a href="javascript::;" class="text-red pull-right"><i class="fa fa-trash-o"></i></a>
  226 + </label>
  227 + </div>
  228 + <!-- /.form-group -->
  229 + </form>
  230 + <?=Html::a(
  231 + \Yii::t('app', 'settings'),
  232 + ['/language'],
  233 + ['data-method' => 'post', 'class' => 'btn btn-default btn-flat']
  234 + )?>
  235 + </div>
  236 + <!-- /.tab-pane -->
  237 + </div>
  238 +</aside><!-- /.control-sidebar -->
  239 +<!-- Add the sidebar's background. This div must be placed
  240 + immediately after the control sidebar -->
  241 +<div class='control-sidebar-bg'></div>
0 242 \ No newline at end of file
... ...
backend/views/layouts/header.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\helpers\Url;
  5 +
  6 +$username = Yii::$app->user->identity->firstname.' '.Yii::$app->user->identity->lastname;
  7 +
  8 +/* @var $this \yii\web\View */
  9 +/* @var $content string */
  10 +?>
  11 +
  12 +<header class="main-header">
  13 +
  14 + <?= Html::a('<span class="logo-mini">APP</span><span class="logo-lg">' . Yii::$app->name . '</span>', Yii::$app->homeUrl, ['class' => 'logo']) ?>
  15 +
  16 + <nav class="navbar navbar-static-top" role="navigation">
  17 +
  18 + <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
  19 + <span class="sr-only">Toggle navigation</span>
  20 + </a>
  21 +
  22 + <div class="navbar-custom-menu">
  23 +
  24 + <ul class="nav navbar-nav">
  25 +
  26 + <!-- Messages: style can be found in dropdown.less-->
  27 + <li class="dropdown messages-menu">
  28 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  29 + <i class="fa fa-envelope-o"></i>
  30 + <span class="label label-success">4</span>
  31 + </a>
  32 + <ul class="dropdown-menu">
  33 + <li class="header">You have 4 messages</li>
  34 + <li>
  35 + <!-- inner menu: contains the actual data -->
  36 + <ul class="menu">
  37 + <li><!-- start message -->
  38 + <a href="#">
  39 + <div class="pull-left">
  40 + <img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="img-circle"
  41 + alt="User Image"/>
  42 + </div>
  43 + <h4>
  44 + Support Team
  45 + <small><i class="fa fa-clock-o"></i> 5 mins</small>
  46 + </h4>
  47 + <p>Why not buy a new awesome theme?</p>
  48 + </a>
  49 + </li>
  50 + <!-- end message -->
  51 + <li>
  52 + <a href="#">
  53 + <div class="pull-left">
  54 + <img src="<?= $directoryAsset ?>/img/user3-128x128.jpg" class="img-circle"
  55 + alt="user image"/>
  56 + </div>
  57 + <h4>
  58 + AdminLTE Design Team
  59 + <small><i class="fa fa-clock-o"></i> 2 hours</small>
  60 + </h4>
  61 + <p>Why not buy a new awesome theme?</p>
  62 + </a>
  63 + </li>
  64 + <li>
  65 + <a href="#">
  66 + <div class="pull-left">
  67 + <img src="<?= $directoryAsset ?>/img/user4-128x128.jpg" class="img-circle"
  68 + alt="user image"/>
  69 + </div>
  70 + <h4>
  71 + Developers
  72 + <small><i class="fa fa-clock-o"></i> Today</small>
  73 + </h4>
  74 + <p>Why not buy a new awesome theme?</p>
  75 + </a>
  76 + </li>
  77 + <li>
  78 + <a href="#">
  79 + <div class="pull-left">
  80 + <img src="<?= $directoryAsset ?>/img/user3-128x128.jpg" class="img-circle"
  81 + alt="user image"/>
  82 + </div>
  83 + <h4>
  84 + Sales Department
  85 + <small><i class="fa fa-clock-o"></i> Yesterday</small>
  86 + </h4>
  87 + <p>Why not buy a new awesome theme?</p>
  88 + </a>
  89 + </li>
  90 + <li>
  91 + <a href="#">
  92 + <div class="pull-left">
  93 + <img src="<?= $directoryAsset ?>/img/user4-128x128.jpg" class="img-circle"
  94 + alt="user image"/>
  95 + </div>
  96 + <h4>
  97 + Reviewers
  98 + <small><i class="fa fa-clock-o"></i> 2 days</small>
  99 + </h4>
  100 + <p>Why not buy a new awesome theme?</p>
  101 + </a>
  102 + </li>
  103 + </ul>
  104 + </li>
  105 + <li class="footer"><a href="#">See All Messages</a></li>
  106 + </ul>
  107 + </li>
  108 + <li class="dropdown notifications-menu">
  109 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  110 + <i class="fa fa-bell-o"></i>
  111 + <span class="label label-warning">10</span>
  112 + </a>
  113 + <ul class="dropdown-menu">
  114 + <li class="header">You have 10 notifications</li>
  115 + <li>
  116 + <!-- inner menu: contains the actual data -->
  117 + <ul class="menu">
  118 + <li>
  119 + <a href="#">
  120 + <i class="fa fa-users text-aqua"></i> 5 new members joined today
  121 + </a>
  122 + </li>
  123 + <li>
  124 + <a href="#">
  125 + <i class="fa fa-warning text-yellow"></i> Very long description here that may
  126 + not fit into the page and may cause design problems
  127 + </a>
  128 + </li>
  129 + <li>
  130 + <a href="#">
  131 + <i class="fa fa-users text-red"></i> 5 new members joined
  132 + </a>
  133 + </li>
  134 +
  135 + <li>
  136 + <a href="#">
  137 + <i class="fa fa-shopping-cart text-green"></i> 25 sales made
  138 + </a>
  139 + </li>
  140 + <li>
  141 + <a href="#">
  142 + <i class="fa fa-user text-red"></i> You changed your username
  143 + </a>
  144 + </li>
  145 + </ul>
  146 + </li>
  147 + <li class="footer"><a href="#">View all</a></li>
  148 + </ul>
  149 + </li>
  150 + <!-- Tasks: style can be found in dropdown.less -->
  151 + <li class="dropdown tasks-menu">
  152 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  153 + <i class="fa fa-flag-o"></i>
  154 + <span class="label label-danger">9</span>
  155 + </a>
  156 + <ul class="dropdown-menu">
  157 + <li class="header">You have 9 tasks</li>
  158 + <li>
  159 + <!-- inner menu: contains the actual data -->
  160 + <ul class="menu">
  161 + <li><!-- Task item -->
  162 + <a href="#">
  163 + <h3>
  164 + Design some buttons
  165 + <small class="pull-right">20%</small>
  166 + </h3>
  167 + <div class="progress xs">
  168 + <div class="progress-bar progress-bar-aqua" style="width: 20%"
  169 + role="progressbar" aria-valuenow="20" aria-valuemin="0"
  170 + aria-valuemax="100">
  171 + <span class="sr-only">20% Complete</span>
  172 + </div>
  173 + </div>
  174 + </a>
  175 + </li>
  176 + <!-- end task item -->
  177 + <li><!-- Task item -->
  178 + <a href="#">
  179 + <h3>
  180 + Create a nice theme
  181 + <small class="pull-right">40%</small>
  182 + </h3>
  183 + <div class="progress xs">
  184 + <div class="progress-bar progress-bar-green" style="width: 40%"
  185 + role="progressbar" aria-valuenow="20" aria-valuemin="0"
  186 + aria-valuemax="100">
  187 + <span class="sr-only">40% Complete</span>
  188 + </div>
  189 + </div>
  190 + </a>
  191 + </li>
  192 + <!-- end task item -->
  193 + <li><!-- Task item -->
  194 + <a href="#">
  195 + <h3>
  196 + Some task I need to do
  197 + <small class="pull-right">60%</small>
  198 + </h3>
  199 + <div class="progress xs">
  200 + <div class="progress-bar progress-bar-red" style="width: 60%"
  201 + role="progressbar" aria-valuenow="20" aria-valuemin="0"
  202 + aria-valuemax="100">
  203 + <span class="sr-only">60% Complete</span>
  204 + </div>
  205 + </div>
  206 + </a>
  207 + </li>
  208 + <!-- end task item -->
  209 + <li><!-- Task item -->
  210 + <a href="#">
  211 + <h3>
  212 + Make beautiful transitions
  213 + <small class="pull-right">80%</small>
  214 + </h3>
  215 + <div class="progress xs">
  216 + <div class="progress-bar progress-bar-yellow" style="width: 80%"
  217 + role="progressbar" aria-valuenow="20" aria-valuemin="0"
  218 + aria-valuemax="100">
  219 + <span class="sr-only">80% Complete</span>
  220 + </div>
  221 + </div>
  222 + </a>
  223 + </li>
  224 + <!-- end task item -->
  225 + </ul>
  226 + </li>
  227 + <li class="footer">
  228 + <a href="#">View all tasks</a>
  229 + </li>
  230 + </ul>
  231 + </li>
  232 + <!-- User Account: style can be found in dropdown.less -->
  233 +
  234 + <li class="dropdown user user-menu">
  235 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  236 + <img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="user-image" alt="User Image"/>
  237 + <span class="hidden-xs"><?=$username; ?></span>
  238 + </a>
  239 + <ul class="dropdown-menu">
  240 + <!-- User image -->
  241 + <li class="user-header">
  242 + <img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="img-circle"
  243 + alt="User Image"/>
  244 +
  245 + <p>
  246 + <?=$username; ?> - Web Developer
  247 + <small>Member since Nov. 2012</small>
  248 + </p>
  249 + </li>
  250 + <!--
  251 + Menu Body
  252 + <li class="user-body">
  253 + <div class="col-xs-4 text-center">
  254 + <a href="#">Followers</a>
  255 + </div>
  256 + <div class="col-xs-4 text-center">
  257 + <a href="#">Sales</a>
  258 + </div>
  259 + <div class="col-xs-4 text-center">
  260 + <a href="#">Friends</a>
  261 + </div>
  262 + </li>
  263 + -->
  264 + <!-- Menu Footer-->
  265 + <li class="user-footer">
  266 + <div class="pull-left">
  267 + <a href="<?=Url::toRoute('site/profile'); ?>" class="btn btn-default btn-flat">Profile</a>
  268 + </div>
  269 + <div class="pull-right">
  270 + <?= Html::a(
  271 + 'Sign out',
  272 + ['/site/logout'],
  273 + ['data-method' => 'post', 'class' => 'btn btn-default btn-flat']
  274 + ) ?>
  275 + </div>
  276 + </li>
  277 + </ul>
  278 + </li>
  279 +
  280 + <!-- User Account: style can be found in dropdown.less -->
  281 + <li>
  282 + <a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
  283 + </li>
  284 + </ul>
  285 + </div>
  286 + </nav>
  287 +</header>
... ...
backend/views/layouts/left.php 0 → 100644
  1 +<aside class="main-sidebar">
  2 +
  3 + <section class="sidebar">
  4 +
  5 + <!-- Sidebar user panel -->
  6 + <div class="user-panel">
  7 + <div class="pull-left image">
  8 + <img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="img-circle" alt="User Image"/>
  9 + </div>
  10 + <div class="pull-left info">
  11 + <p>Alexander Pierce</p>
  12 +
  13 + <a href="#"><i class="fa fa-circle text-success"></i> Online</a>
  14 + </div>
  15 + </div>
  16 +
  17 + <!-- search form -->
  18 + <form action="#" method="get" class="sidebar-form">
  19 + <div class="input-group">
  20 + <input type="text" name="q" class="form-control" placeholder="Search..."/>
  21 + <span class="input-group-btn">
  22 + <button type='submit' name='search' id='search-btn' class="btn btn-flat"><i class="fa fa-search"></i>
  23 + </button>
  24 + </span>
  25 + </div>
  26 + </form>
  27 + <!-- /.search form -->
  28 +
  29 + <?= dmstr\widgets\Menu::widget(
  30 + [
  31 + 'options' => ['class' => 'sidebar-menu'],
  32 + 'items' => [
  33 + ['label' => 'Страница', 'icon' => 'fa fa-file-code-o', 'url' => ['/page/']],
  34 + ['label' => 'Термин', 'icon' => 'fa fa-file-code-o', 'url' => ['/termin_lang/']],
  35 + ['label' => 'Меню', 'icon' => 'fa fa-file-code-o', 'url' => ['/menu/']],
  36 + ['label' => 'Заявки', 'icon' => 'fa fa-file-code-o', 'url' => ['/site/requests/']],
  37 + ['label' => 'Gii', 'icon' => 'fa fa-file-code-o', 'url' => ['/gii']],
  38 + ['label' => 'Debug', 'icon' => 'fa fa-dashboard', 'url' => ['/debug']],
  39 + ['label' => 'Login', 'url' => ['site/login'], 'visible' => Yii::$app->user->isGuest],
  40 + ['label' => 'Пользователи', 'icon' => 'fa fa-file-code-o', 'url' => ['/user/']],
  41 + [
  42 + 'label' => 'Роли',
  43 + 'icon' => 'fa fa-share',
  44 + 'url' => '#',
  45 + 'items' => [
  46 + ['label' => 'Управление ролями', 'icon' => 'fa fa-file-code-o', 'url' => ['/permit/access/role'],],
  47 + ['label' => 'Управление правами доступа', 'icon' => 'fa fa-dashboard', 'url' => ['/permit/access/permission'],],
  48 + ],
  49 + ],
  50 + [
  51 + 'label' => 'Same tools',
  52 + 'icon' => 'fa fa-share',
  53 + 'url' => '#',
  54 + 'items' => [
  55 + ['label' => 'Gii', 'icon' => 'fa fa-file-code-o', 'url' => ['/gii'],],
  56 + ['label' => 'Debug', 'icon' => 'fa fa-dashboard', 'url' => ['/debug'],],
  57 + [
  58 + 'label' => 'Level One',
  59 + 'icon' => 'fa fa-circle-o',
  60 + 'url' => '#',
  61 + 'items' => [
  62 + ['label' => 'Level Two', 'icon' => 'fa fa-circle-o', 'url' => '#',],
  63 + [
  64 + 'label' => 'Level Two',
  65 + 'icon' => 'fa fa-circle-o',
  66 + 'url' => '#',
  67 + 'items' => [
  68 + ['label' => 'Level Three', 'icon' => 'fa fa-circle-o', 'url' => '#',],
  69 + ['label' => 'Level Three', 'icon' => 'fa fa-circle-o', 'url' => '#',],
  70 + ],
  71 + ],
  72 + ],
  73 + ],
  74 + ],
  75 + ],
  76 + ],
  77 + ]
  78 + ) ?>
  79 +
  80 + </section>
  81 +
  82 +</aside>
... ...
backend/views/layouts/main-login.php 0 → 100644
  1 +<?php
  2 +use backend\assets\AppAsset;
  3 +use yii\helpers\Html;
  4 +
  5 +/* @var $this \yii\web\View */
  6 +/* @var $content string */
  7 +
  8 +dmstr\web\AdminLteAsset::register($this);
  9 +?>
  10 +<?php $this->beginPage() ?>
  11 +<!DOCTYPE html>
  12 +<html lang="<?= Yii::$app->language ?>">
  13 +<head>
  14 + <meta charset="<?= Yii::$app->charset ?>"/>
  15 + <meta name="viewport" content="width=device-width, initial-scale=1">
  16 + <?= Html::csrfMetaTags() ?>
  17 + <title><?= Html::encode($this->title) ?></title>
  18 + <?php $this->head() ?>
  19 +</head>
  20 +<body class="login-page">
  21 +
  22 +<?php $this->beginBody() ?>
  23 +
  24 + <?= $content ?>
  25 +
  26 +<?php $this->endBody() ?>
  27 +</body>
  28 +</html>
  29 +<?php $this->endPage() ?>
... ...
backend/views/layouts/main.php
1 1 <?php
  2 +use yii\helpers\Html;
2 3  
3 4 /* @var $this \yii\web\View */
4 5 /* @var $content string */
5 6  
6   -use backend\assets\AppAsset;
7   -use yii\helpers\Html;
8   -use yii\bootstrap\Nav;
9   -use yii\bootstrap\NavBar;
10   -use yii\widgets\Breadcrumbs;
11   -use common\widgets\Alert;
12 7  
13   -AppAsset::register($this);
14   -?>
15   -<?php $this->beginPage() ?>
16   -<!DOCTYPE html>
17   -<html lang="<?= Yii::$app->language ?>">
18   -<head>
19   - <meta charset="<?= Yii::$app->charset ?>">
20   - <meta name="viewport" content="width=device-width, initial-scale=1">
21   - <?= Html::csrfMetaTags() ?>
22   - <title><?= Html::encode($this->title) ?></title>
23   - <?php $this->head() ?>
24   -</head>
25   -<body>
26   -<?php $this->beginBody() ?>
  8 +if (Yii::$app->controller->action->id === 'login') {
  9 +/**
  10 + * Do not use this code in your template. Remove it.
  11 + * Instead, use the code $this->layout = '//main-login'; in your controller.
  12 + */
  13 + echo $this->render(
  14 + 'main-login',
  15 + ['content' => $content]
  16 + );
  17 +} else {
27 18  
28   -<div class="wrap">
29   - <?php
30   - NavBar::begin([
31   - 'brandLabel' => 'My Company',
32   - 'brandUrl' => Yii::$app->homeUrl,
33   - 'options' => [
34   - 'class' => 'navbar-inverse navbar-fixed-top',
35   - ],
36   - ]);
37   - $menuItems = [
38   - ['label' => 'Home', 'url' => ['/site/index']],
39   - ];
40   - if (Yii::$app->user->isGuest) {
41   - $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']];
  19 + if (class_exists('backend\assets\AppAsset')) {
  20 + backend\assets\AppAsset::register($this);
42 21 } else {
43   - $menuItems[] = [
44   - 'label' => 'Logout (' . Yii::$app->user->identity->username . ')',
45   - 'url' => ['/site/logout'],
46   - 'linkOptions' => ['data-method' => 'post']
47   - ];
  22 + app\assets\AppAsset::register($this);
48 23 }
49   - echo Nav::widget([
50   - 'options' => ['class' => 'navbar-nav navbar-right'],
51   - 'items' => $menuItems,
52   - ]);
53   - NavBar::end();
  24 +
  25 + dmstr\web\AdminLteAsset::register($this);
  26 +
  27 + $directoryAsset = Yii::$app->assetManager->getPublishedUrl('@vendor/almasaeed2010/adminlte/dist');
54 28 ?>
  29 + <?php $this->beginPage() ?>
  30 + <!DOCTYPE html>
  31 + <html lang="<?= Yii::$app->language ?>">
  32 + <head>
  33 + <meta charset="<?= Yii::$app->charset ?>"/>
  34 + <meta name="viewport" content="width=device-width, initial-scale=1">
  35 + <?= Html::csrfMetaTags() ?>
  36 + <title><?= Html::encode($this->title) ?></title>
  37 + <?php $this->head() ?>
  38 + </head>
  39 + <body class="skin-blue sidebar-mini">
  40 + <?php $this->beginBody() ?>
  41 + <div class="wrapper">
55 42  
56   - <div class="container">
57   - <?= Breadcrumbs::widget([
58   - 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
59   - ]) ?>
60   - <?= Alert::widget() ?>
61   - <?= $content ?>
62   - </div>
63   -</div>
  43 + <?= $this->render(
  44 + 'header.php',
  45 + ['directoryAsset' => $directoryAsset]
  46 + ) ?>
  47 +
  48 + <?= $this->render(
  49 + 'left.php',
  50 + ['directoryAsset' => $directoryAsset]
  51 + )
  52 + ?>
64 53  
65   -<footer class="footer">
66   - <div class="container">
67   - <p class="pull-left">&copy; My Company <?= date('Y') ?></p>
  54 + <?= $this->render(
  55 + 'content.php',
  56 + ['content' => $content, 'directoryAsset' => $directoryAsset]
  57 + ) ?>
68 58  
69   - <p class="pull-right"><?= Yii::powered() ?></p>
70 59 </div>
71   -</footer>
72 60  
73   -<?php $this->endBody() ?>
74   -</body>
75   -</html>
76   -<?php $this->endPage() ?>
  61 + <?php $this->endBody() ?>
  62 + </body>
  63 + </html>
  64 + <?php $this->endPage() ?>
  65 +<?php } ?>
... ...
backend/views/new-options-lang/_form.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\NewOptionsLang */
  8 +/* @var $form yii\widgets\ActiveForm */
  9 +?>
  10 +
  11 +<div class="new-options-lang-form">
  12 +
  13 + <?php $form = ActiveForm::begin(); ?>
  14 +
  15 + <?= $form->field($model, 'id')->textInput() ?>
  16 +
  17 + <?= $form->field($model, 'lang_id')->textInput() ?>
  18 +
  19 + <?= $form->field($model, 'value')->textarea(['rows' => 6]) ?>
  20 +
  21 + <div class="form-group">
  22 + <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
  23 + </div>
  24 +
  25 + <?php ActiveForm::end(); ?>
  26 +
  27 +</div>
... ...
backend/views/new-options-lang/_search.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\NewOptionsLangSearch */
  8 +/* @var $form yii\widgets\ActiveForm */
  9 +?>
  10 +
  11 +<div class="new-options-lang-search">
  12 +
  13 + <?php $form = ActiveForm::begin([
  14 + 'action' => ['index'],
  15 + 'method' => 'get',
  16 + ]); ?>
  17 +
  18 + <?= $form->field($model, 'primary') ?>
  19 +
  20 + <?= $form->field($model, 'id') ?>
  21 +
  22 + <?= $form->field($model, 'lang_id') ?>
  23 +
  24 + <?= $form->field($model, 'value') ?>
  25 +
  26 + <div class="form-group">
  27 + <?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
  28 + <?= Html::resetButton(Yii::t('app', 'Reset'), ['class' => 'btn btn-default']) ?>
  29 + </div>
  30 +
  31 + <?php ActiveForm::end(); ?>
  32 +
  33 +</div>
... ...
backend/views/new-options-lang/create.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\NewOptionsLang */
  8 +
  9 +$this->title = Yii::t('app', 'Create New Options Lang');
  10 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'New Options Langs'), 'url' => ['index']];
  11 +$this->params['breadcrumbs'][] = $this->title;
  12 +?>
  13 +<div class="new-options-lang-create">
  14 +
  15 + <h1><?= Html::encode($this->title) ?></h1>
  16 +
  17 + <?= $this->render('_form', [
  18 + 'model' => $model,
  19 + ]) ?>
  20 +
  21 +</div>
... ...
backend/views/new-options-lang/index.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\grid\GridView;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $searchModel backend\models\NewOptionsLangSearch */
  8 +/* @var $dataProvider yii\data\ActiveDataProvider */
  9 +
  10 +$this->title = Yii::t('app', 'New Options Langs');
  11 +$this->params['breadcrumbs'][] = $this->title;
  12 +?>
  13 +<div class="new-options-lang-index">
  14 +
  15 + <h1><?= Html::encode($this->title) ?></h1>
  16 + <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
  17 +
  18 + <p>
  19 + <?= Html::a(Yii::t('app', 'Create New Options Lang'), ['create'], ['class' => 'btn btn-success']) ?>
  20 + </p>
  21 +
  22 + <?= GridView::widget([
  23 + 'dataProvider' => $dataProvider,
  24 + 'filterModel' => $searchModel,
  25 + 'columns' => [
  26 + ['class' => 'yii\grid\SerialColumn'],
  27 +
  28 + 'primary',
  29 + 'id',
  30 + 'lang_id',
  31 + 'value:ntext',
  32 +
  33 + ['class' => 'yii\grid\ActionColumn'],
  34 + ],
  35 + ]); ?>
  36 +
  37 +</div>
... ...
backend/views/new-options-lang/update.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +
  5 +/* @var $this yii\web\View */
  6 +/* @var $model backend\models\NewOptionsLang */
  7 +
  8 +$this->title = Yii::t('app', 'Update {modelClass}: ', [
  9 + 'modelClass' => 'New Options Lang',
  10 +]) . ' ' . $model->primary;
  11 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'New Options Langs'), 'url' => ['index']];
  12 +$this->params['breadcrumbs'][] = ['label' => $model->primary, 'url' => ['view', 'id' => $model->primary]];
  13 +$this->params['breadcrumbs'][] = Yii::t('app', 'Update');
  14 +?>
  15 +<div class="new-options-lang-update">
  16 +
  17 + <h1><?= Html::encode($this->title) ?></h1>
  18 +
  19 + <?= $this->render('_form', [
  20 + 'model' => $model,
  21 + ]) ?>
  22 +
  23 +</div>
... ...
backend/views/new-options-lang/view.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\DetailView;
  5 +
  6 +/* @var $this yii\web\View */
  7 +/* @var $model backend\models\NewOptionsLang */
  8 +
  9 +$this->title = $model->primary;
  10 +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'New Options Langs'), 'url' => ['index']];
  11 +$this->params['breadcrumbs'][] = $this->title;
  12 +?>
  13 +<div class="new-options-lang-view">
  14 +
  15 + <h1><?= Html::encode($this->title) ?></h1>
  16 +
  17 + <p>
  18 + <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->primary], ['class' => 'btn btn-primary']) ?>
  19 + <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->primary], [
  20 + 'class' => 'btn btn-danger',
  21 + 'data' => [
  22 + 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'),
  23 + 'method' => 'post',
  24 + ],
  25 + ]) ?>
  26 + </p>
  27 +
  28 + <?= DetailView::widget([
  29 + 'model' => $model,
  30 + 'attributes' => [
  31 + 'primary',
  32 + 'id',
  33 + 'lang_id',
  34 + 'value:ntext',
  35 + ],
  36 + ]) ?>
  37 +
  38 +</div>
... ...
backend/views/site/requests.php 0 → 100644
  1 +<?php
  2 +use yii\grid\GridView;
  3 +use yii\grid\SerialColumn;
  4 +use yii\helpers\VarDumper;
  5 +use yii\grid\ActionColumn;
  6 +use yii\helpers\Html;
  7 +use yii\widgets\Pjax;
  8 +$this->title = Yii::t('app', 'Requests');
  9 +?>
  10 +<div class="site-requests">
  11 + <?php
  12 + echo GridView::widget([
  13 + 'dataProvider' => $dataProvider,
  14 + 'columns' => [
  15 + [
  16 + 'class' => 'yii\grid\SerialColumn'
  17 + ],
  18 + [
  19 + 'attribute' => 'created_at',
  20 + ],
  21 + [
  22 + 'header' => Yii::t('app', 'values'),
  23 + 'content' => function($model, $key, $index, $column) {
  24 + $value = '';
  25 + $langs = $model->options;
  26 + $lang = $model->getOptionDefaultLang(true);
  27 + $value .= "<b>{$model->name}</b>:{$lang['value']}";
  28 + foreach($langs as $onemodel) {
  29 + $lang = $onemodel->getOptionDefaultLang(true);
  30 + $value .= "<br><b>{$onemodel->name}</b>:{$lang['value']}";
  31 + }
  32 + return $value;
  33 + }
  34 + ],
  35 + [
  36 + 'class' => 'yii\grid\ActionColumn',
  37 + 'template' => '{requests} {delete-req}',
  38 + 'buttons' => [
  39 + 'requests' => function($url, $model, $key) {
  40 + return Html::a(
  41 + '',
  42 + $model->options['is_new']->getOptionDefaultLang()->value?$url:'#',
  43 + [
  44 + 'class' => $model->options['is_new']->getOptionDefaultLang()->value?'glyphicon glyphicon-eye-open':'glyphicon glyphicon-eye-close',
  45 + 'title' => Yii::t('app', 'Make already read')
  46 + ]
  47 + );
  48 + },
  49 + 'delete-req' => function($url, $model, $key) {
  50 + return Html::a(
  51 + '',
  52 + $url,
  53 + [
  54 + 'class' => 'glyphicon glyphicon-trash',
  55 + 'title' => Yii::t('app', 'Delete'),
  56 + 'data' => [
  57 + 'label' => Yii::t('app', 'Delete'),
  58 + 'confirm' => Yii::t('app', 'Are you sure you want delete this element?'),
  59 + 'method' => 'post',
  60 + 'pjax' => 0
  61 + ]
  62 + ]
  63 + );
  64 + }
  65 + ]
  66 + ]
  67 + ],
  68 + ]);
  69 + ?>
  70 +</div>
... ...
backend/web/css/flags32.css
... ... @@ -246,4 +246,8 @@
246 246 .f32 .sx{background-position:0 -7808px;}
247 247 .f32 .cw{background-position:0 -7840px;}
248 248 .f32 .ss{background-position:0 -7872px;}
  249 +<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
249 250 .f32 .nu{background-position:0 -7904px;}
  251 +=======
  252 +.f32 .nu{background-position:0 -7904px;}
  253 +>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
... ...
backend/web/css/option.css 0 → 100644
  1 +#main_row .remove_lang {
  2 + display: none;
  3 +}
0 4 \ No newline at end of file
... ...
backend/web/js/option.js 0 → 100644
  1 +$(function() {
  2 + var counter = 0;
  3 + $(document).on('click', '.add_row', function() {
  4 + counter++;
  5 + var clone = $('#main_row').clone().html().replace(new RegExp("Option\\[0\\]", 'g'), "Option["+counter+"]");
  6 + console.log(form);
  7 + $(clone).appendTo('#'+form);
  8 + $('#'+form+' button[type=submit]').parent().appendTo('#'+form);
  9 + });
  10 + $(document).on('click', '.add_lang', function() {
  11 + var field_block = $(this).parent().parent();
  12 + if($(this).hasClass('active')) {
  13 + $(field_block).find('.main_input').attr('required', '').show();
  14 + $(field_block).find('.lang_inputs').hide();
  15 + $(this).removeClass('active');
  16 + } else {
  17 + $(field_block).find('.main_input').removeAttr('required').hide();
  18 + $(field_block).find('.lang_inputs').show();
  19 + $(this).addClass('active');
  20 + }
  21 + });
  22 + $(document).on('click', '.remove_lang', function() {
  23 + $(this).parents('.form-wrapper').remove();
  24 + });
  25 + });
0 26 \ No newline at end of file
... ...
common/models/Language.php
... ... @@ -40,7 +40,7 @@ class Language extends \yii\db\ActiveRecord
40 40 //Получения объекта языка по умолчанию
41 41 static function getDefaultLang()
42 42 {
43   - return Language::find()->where('`is_default` = :default', [':default' => 1])->one();
  43 + return Language::find()->where('is_default = :default', [':default' => 1])->one();
44 44 }
45 45  
46 46 //Получения объекта языка по буквенному идентификатору
... ...
common/translation/ru/app.php
... ... @@ -11,5 +11,20 @@ return [
11 11 'Make default' => 'Установить по умолчанию',
12 12 'Language Name' => 'Название языка',
13 13 'Lang Code' => 'Код языка',
  14 +<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
14 15 'Is Default' => 'По умолчанию'
  16 +=======
  17 + 'Is Default' => 'По умолчанию',
  18 + 'adress' => 'Адрес',
  19 + 'adress_name' => 'Адрес',
  20 + 'Create adress' => 'Добавить адрес',
  21 + 'adres' => 'Адрес',
  22 + 'x' => 'Координата x',
  23 + 'y' => 'Координата y',
  24 + 'phone' => 'Телефон',
  25 + 'name' => 'Название',
  26 + 'one_name' => 'Имя',
  27 + 'message' => 'Сообщение',
  28 + 'Feedback' => 'Обратная связь'
  29 +>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
15 30 ];
16 31 \ No newline at end of file
... ...
frontend/controllers/SiteController.php
... ... @@ -19,6 +19,7 @@ use yii\validators\EmailValidator;
19 19 use common\models\User;
20 20 use yii\helpers\VarDumper;
21 21 use common\models\Page;
  22 +use frontend\models\Option;
22 23  
23 24 /**
24 25 * Site controller
... ... @@ -260,6 +261,7 @@ class SiteController extends Controller
260 261 'model' => $model,
261 262 ]);
262 263 }
  264 +<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
263 265 public function actionOptions() {
264 266 $option_model = new Options();
265 267 $option_list = $option_model->find()->where(1)->all();
... ... @@ -301,5 +303,15 @@ class SiteController extends Controller
301 303 $data['option_values'] = $option_values;
302 304 return $this->render('options', ['options' => $data, 'post' => $post]);
303 305 }
  306 +=======
  307 +
  308 + public function actionFeedback() {
  309 + $form[0] = Option::create(\Yii::$app->request->post(), 'Feedback', 1, [['name' => 'one_name', 'template' => 'text', 'translate' => false], ['name' => 'phone', 'template' => 'text', 'translate' => false], ['name' => 'message', 'template' => 'text', 'translate' => false]], false);
  310 + if($form[0]['success'] == false) {
  311 + return $this->render('feedback', ['forms' => $form]);
  312 + } else {
  313 + return $this->render('index');
  314 + }
  315 +>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
304 316 }
305 317 }
... ...
frontend/models/Option.php
... ... @@ -48,11 +48,12 @@ class Option extends \yii\db\ActiveRecord
48 48 'name' => Yii::t('app', 'Name'),
49 49 'template' => Yii::t('app', 'Template'),
50 50 'parent_id' => Yii::t('app', 'Parent ID'),
  51 + 'created_at' => Yii::t('app', 'Date created'),
51 52 ];
52 53 }
53 54  
54 55 public function getLangs() {
55   - return (new Language())->find()->where(['>', 'language_id', 0])->asArray()->all();
  56 + return (new Language())->find()->where(['>', 'language_id', 0])->andWhere(['active' => 1])->asArray()->all();
56 57 }
57 58  
58 59 public static function change($id, $post, $modeldb, $model_id) {
... ... @@ -126,7 +127,12 @@ class Option extends \yii\db\ActiveRecord
126 127 );
127 128 }
128 129  
  130 +<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
129 131 public static function create($post, $modeldb, $model_id, $fields) {
  132 +=======
  133 + public static function create($post, $modeldb, $model_id, $fields, $multiple) {
  134 + $multiple = boolval($multiple);
  135 +>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
130 136 $model = new Option();
131 137 $modellang = new OptionLang();
132 138 if(!empty($post['Option'])) {
... ... @@ -197,6 +203,24 @@ class Option extends \yii\db\ActiveRecord
197 203 }
198 204 }
199 205 if($ok) {
  206 + if($modeldb == 'Feedback') {
  207 + $newflag = new Option();
  208 + $newflag->model = $modeldb;
  209 + $newflag->model_id = $model_id;
  210 + $newflag->name = 'is_new';
  211 + $newflag->template = 'checkbox';
  212 + $newflag->parent_id = $parentid;
  213 + $newflag->translate = 0;
  214 + if($newflag->save()) {
  215 + $newflaglang = new OptionLang();
  216 + $newflaglang->id = $newflag->option_id;
  217 + $newflaglang->lang_id = 0;
  218 + $newflaglang->value = '1';
  219 + if(!$newflaglang->save()) {
  220 + $newflag->delete();
  221 + }
  222 + }
  223 + }
200 224 return array('models' => $models, 'modelslang' => $modelslang, 'success' => true);
201 225 } else {
202 226 return array(
... ... @@ -205,7 +229,8 @@ class Option extends \yii\db\ActiveRecord
205 229 'modeldb' => $modeldb,
206 230 'model_id' => $model_id,
207 231 'fields' => $fields,
208   - 'success' => false
  232 + 'success' => false,
  233 + 'multiple' => $multiple
209 234 );
210 235 }
211 236 } else {
... ... @@ -214,8 +239,43 @@ class Option extends \yii\db\ActiveRecord
214 239 'modeldb' => $modeldb,
215 240 'model_id' => $model_id,
216 241 'fields' => $fields,
217   - 'success' => false
  242 + 'success' => false,
  243 + 'multiple' => $multiple
218 244 );
219 245 }
220 246 }
  247 +
  248 + public function getOptions() {
  249 + return $this->hasMany(Option::className(), ['parent_id' => 'option_id'])->indexBy('name');
  250 + }
  251 +
  252 + public function getOption() {
  253 + return $this->hasOne(Option::className(), ['option_id' => 'parent_id']);
  254 + }
  255 +
  256 + public function getOptionLangs() {
  257 + return $this->hasMany(OptionLang::className(), ['id' => 'option_id']);
  258 + }
  259 +
  260 + public function getOptionDefaultLang($array = false) {
  261 + $query = $this->getOptionLangs()->where(['lang_id' => 0]);
  262 + if($array) {
  263 + $query->asArray();
  264 + }
  265 + return $query->one();
  266 + }
  267 +
  268 + public static function markOld($id) {
  269 + $model = Option::findOne($id);
  270 + $is_new = $model->getOptions()->where(['name' => 'is_new'])->one();
  271 + if(empty($is_new)) return false;
  272 + $is_newlang = $is_new->getOptionDefaultLang();
  273 + $is_newlang->value = '0';
  274 + if($is_newlang->save()) {
  275 + return true;
  276 + } else {
  277 + return false;
  278 + }
  279 + }
  280 +
221 281 }
... ...
frontend/models/OptionLangSearch.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace frontend\models;
  4 +
  5 +use Yii;
  6 +use yii\base\Model;
  7 +use yii\data\ActiveDataProvider;
  8 +use frontend\models\OptionLang;
  9 +
  10 +/**
  11 + * OptionLangSearch represents the model behind the search form about `frontend\models\OptionLang`.
  12 + */
  13 +class OptionLangSearch extends OptionLang
  14 +{
  15 + /**
  16 + * @inheritdoc
  17 + */
  18 + public function rules()
  19 + {
  20 + return [
  21 + [['primary', 'id', 'lang_id'], 'integer'],
  22 + [['value'], 'safe'],
  23 + ];
  24 + }
  25 +
  26 + /**
  27 + * @inheritdoc
  28 + */
  29 + public function scenarios()
  30 + {
  31 + // bypass scenarios() implementation in the parent class
  32 + return Model::scenarios();
  33 + }
  34 +
  35 + /**
  36 + * Creates data provider instance with search query applied
  37 + *
  38 + * @param array $params
  39 + *
  40 + * @return ActiveDataProvider
  41 + */
  42 + public function search($params)
  43 + {
  44 + $query = OptionLang::find();
  45 +
  46 + $dataProvider = new ActiveDataProvider([
  47 + 'query' => $query,
  48 + ]);
  49 +
  50 + $this->load($params);
  51 +
  52 + if (!$this->validate()) {
  53 + // uncomment the following line if you do not want to return any records when validation fails
  54 + // $query->where('0=1');
  55 + return $dataProvider;
  56 + }
  57 +
  58 + $query->andFilterWhere([
  59 + 'primary' => $this->primary,
  60 + 'id' => $this->id,
  61 + 'lang_id' => $this->lang_id,
  62 + ]);
  63 +
  64 + $query->andFilterWhere(['like', 'value', $this->value]);
  65 +
  66 + return $dataProvider;
  67 + }
  68 +}
... ...
frontend/models/OptionSearch.php
... ... @@ -46,7 +46,12 @@ class OptionSearch extends Option
46 46 $dataProvider = new ActiveDataProvider([
47 47 'query' => $query,
48 48 ]);
49   -
  49 + $data = [
  50 + 'OptionSearch' => [
  51 + 'model' => 'Main'
  52 + ]
  53 + ];
  54 +
50 55 $this->load($params);
51 56  
52 57 if (!$this->validate()) {
... ... @@ -54,16 +59,19 @@ class OptionSearch extends Option
54 59 // $query->where('0=1');
55 60 return $dataProvider;
56 61 }
57   -
  62 +
  63 + $query->andWhere(['parent_id' => null]);
  64 +
58 65 $query->andFilterWhere([
59 66 'option_id' => $this->option_id,
60 67 'model_id' => $this->model_id,
61 68 'parent_id' => $this->parent_id,
62 69 ]);
63   -
  70 +
64 71 $query->andFilterWhere(['like', 'model', $this->model])
65 72 ->andFilterWhere(['like', 'name', $this->name])
66 73 ->andFilterWhere(['like', 'template', $this->template]);
  74 +
67 75  
68 76 return $dataProvider;
69 77 }
... ...
frontend/views/option/_form.php
... ... @@ -12,7 +12,7 @@ use yii\widgets\ActiveForm;
12 12 <?php $form = ActiveForm::begin(); ?>
13 13 <input type="hidden" name="Option[model]" value="<?=$modeldb?>"/>
14 14 <input type="hidden" name="Option[model_id]" value="<?=$model_id?>"/>
15   - <p class="text-right"><span class="glyphicon glyphicon-plus add_row"></span></p>
  15 + <?php if($multiple) { ?><p class="text-right"><span class="glyphicon glyphicon-plus add_row"></span></p><?php }?>
16 16 <?php if(empty($models)) {
17 17 ?>
18 18 <div class="form-group" id="main_row">
... ...
frontend/views/site/feedback.php 0 → 100644
  1 +<?php
  2 +
  3 +/* @var $this yii\web\View */
  4 +/* @var $form yii\bootstrap\ActiveForm */
  5 +/* @var $model \frontend\models\ContactForm */
  6 +
  7 +use yii\helpers\Html;
  8 +use yii\bootstrap\ActiveForm;
  9 +use yii\captcha\Captcha;
  10 +
  11 +$this->title = Yii::t('app', 'Feedback');
  12 +$this->params['breadcrumbs'][] = $this->title;
  13 +?>
  14 +<div class="site-contact">
  15 + <h1><?= Html::encode($this->title) ?></h1>
  16 + <?php foreach($forms as $oneform) {
  17 + echo $this->render('/option/_form', $oneform);
  18 + }?>
  19 +</div>
... ...