diff --git a/backend/assets/AppAsset.php b/backend/assets/AppAsset.php
index 19f06b2..5b7678d 100644
--- a/backend/assets/AppAsset.php
+++ b/backend/assets/AppAsset.php
@@ -22,9 +22,11 @@ class AppAsset extends AssetBundle
'css/flags32.css'
];
public $js = [
+ 'js/option.js'
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
+ 'yii\web\JqueryAsset'
];
}
diff --git a/backend/config/main.php b/backend/config/main.php
index 2b0c51a..58a2b2e 100644
--- a/backend/config/main.php
+++ b/backend/config/main.php
@@ -27,13 +27,6 @@ return [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
],
- 'view' => [
- 'theme' => [
- 'pathMap' => [
- '@app/views' => '@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'
- ],
- ],
- ],
'urlManager' => [
'enablePrettyUrl' => false,
'showScriptName' => false,
diff --git a/backend/controllers/LanguageController.php b/backend/controllers/LanguageController.php
index f3a41bd..d75bea2 100644
--- a/backend/controllers/LanguageController.php
+++ b/backend/controllers/LanguageController.php
@@ -8,6 +8,9 @@ use backend\models\LanguageSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
+use frontend\models\Option;
+use frontend\models\OptionSearch;
+use frontend\models\OptionLang;
/**
* LanguageController implements the CRUD actions for Language model.
@@ -107,4 +110,81 @@ class LanguageController extends Controller
throw new NotFoundHttpException('The requested page does not exist.');
}
}
+
+ public function actionCreateAdress()
+ {
+ $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);
+ if($form[0]['success'] == false) {
+ return $this->render('create_adress', ['forms' => $form]);
+ } else {
+ return $this->redirect(['view-adress']);
+ }
+ }
+
+ public function actionUpdateAdress($id)
+ {
+ $form[0] = Option::change($id, \Yii::$app->request->post(), 'Main', 1);
+ if($form[0]['success'] == false) {
+ return $this->render('update_adress', ['forms' => $form]);
+ } else {
+ return $this->redirect(['view-adress']);
+ }
+ }
+
+ public function actionViewAdress()
+ {
+ $searchModel = new OptionSearch();
+
+ $dataProvider = $searchModel->search(array_merge(Yii::$app->request->queryParams, ['OptionSearch' => ['model' => 'Main', 'name' => 'adres']]));
+
+ return $this->render('view_adress', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Deletes an existing Option model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionDeleteAdress($id)
+ {
+ $model = $this->findModelAdress($id);
+ $children = $model->hasMany(Option::className(), ['parent_id' => 'option_id'])->all();
+ $langs = array();
+ if(!empty($children)) {
+ foreach($children as $child) {
+ $langs = OptionLang::findAll(['id' => $child->option_id]);
+ foreach($langs as $lang) {
+ $lang->delete();
+ }
+ $child->delete();
+ }
+ }
+ $langs = OptionLang::findAll(['id' => $id]);
+ foreach($langs as $lang) {
+ $lang->delete();
+ }
+ $model->delete();
+
+ return $this->redirect(['view-adress']);
+ }
+
+ /**
+ * Finds the Option model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ * @param integer $id
+ * @return Option the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModelAdress($id)
+ {
+ if (($model = Option::findOne($id)) !== null) {
+ return $model;
+ } else {
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+ }
}
diff --git a/backend/controllers/NewOptionsLangController.php b/backend/controllers/NewOptionsLangController.php
new file mode 100644
index 0000000..e2bab3e
--- /dev/null
+++ b/backend/controllers/NewOptionsLangController.php
@@ -0,0 +1,121 @@
+ [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'delete' => ['post'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Lists all NewOptionsLang models.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $searchModel = new NewOptionsLangSearch();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Displays a single NewOptionsLang model.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionView($id)
+ {
+ return $this->render('view', [
+ 'model' => $this->findModel($id),
+ ]);
+ }
+
+ /**
+ * Creates a new NewOptionsLang model.
+ * If creation is successful, the browser will be redirected to the 'view' page.
+ * @return mixed
+ */
+ public function actionCreate()
+ {
+ $model = new NewOptionsLang();
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->primary]);
+ } else {
+ return $this->render('create', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Updates an existing NewOptionsLang model.
+ * If update is successful, the browser will be redirected to the 'view' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionUpdate($id)
+ {
+ $model = $this->findModel($id);
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->primary]);
+ } else {
+ return $this->render('update', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Deletes an existing NewOptionsLang model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ * @param integer $id
+ * @return mixed
+ */
+ public function actionDelete($id)
+ {
+ $this->findModel($id)->delete();
+
+ return $this->redirect(['index']);
+ }
+
+ /**
+ * Finds the NewOptionsLang model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ * @param integer $id
+ * @return NewOptionsLang the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModel($id)
+ {
+ if (($model = NewOptionsLang::findOne($id)) !== null) {
+ return $model;
+ } else {
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+ }
+}
diff --git a/backend/controllers/SiteController.php b/backend/controllers/SiteController.php
index 9b30fcf..13773f7 100644
--- a/backend/controllers/SiteController.php
+++ b/backend/controllers/SiteController.php
@@ -8,6 +8,10 @@ use common\models\LoginForm;
use yii\filters\VerbFilter;
use backend\models\Profile;
use common\models\User;
+use frontend\models\Option;
+use yii\data\ActiveDataProvider;
+use yii\validators\BooleanValidator;
+use yii\validators\StringValidator;
/**
* Site controller
*/
@@ -21,32 +25,19 @@ class SiteController extends Controller
return [
'access' => [
'class' => AccessControl::className(),
+ 'except' => ['login', 'error'],
'rules' => [
[
- 'actions' => ['login', 'error'],
'allow' => true,
+ 'roles' => ['@']
],
- [
- 'actions' => ['logout', 'index'],
- 'allow' => true,
- 'roles' => ['@'],
- ],
- [
- 'actions' => ['profile', 'profile'],
- 'allow' => true,
- 'roles' => ['@'],
- ],
- [
- 'actions' => ['profileSave', 'profile'],
- 'allow' => true,
- 'roles' => ['@'],
- ],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
+ 'delete-req' => ['post']
],
],
];
@@ -66,7 +57,7 @@ class SiteController extends Controller
public function actionIndex()
{
- return $this->render('index');
+ return $this->render('index');
}
public function actionLogin()
@@ -109,4 +100,37 @@ class SiteController extends Controller
]);
}
+ public function actionRequests($id = 0) {
+ if($id != 0) {
+ Option::markOld($id);
+ $this->redirect(['site/requests']);
+ }
+ $query = Option::find()->where(['model' => 'Feedback', 'model_id' => 1, 'parent_id' => null]);
+ $provider = new ActiveDataProvider([
+ 'query' => $query,
+ 'pagination' => [
+ 'pageSize' => 2,
+ ],
+ 'sort' => [
+ 'defaultOrder' => [
+ 'created_at' => SORT_DESC
+ ]
+ ]
+ ]);
+ $data = $provider->getModels();
+ return $this->render('requests', [
+ 'dataProvider' => $provider
+ ]);
+ }
+
+ public function actionDeleteReq($id) {
+ $model = Option::findOne($id);
+ if(!is_null($model) && $model->delete()) {
+ return $this->redirect(['site/requests']);
+ } else{
+ Yii::$app->session->setFlash('post_error', $model->getFirstErrors());
+ return $this->redirect('[site/requests]');
+ }
+ }
+
}
diff --git a/backend/models/LanguageSearch.php b/backend/models/LanguageSearch.php
index c4eed3f..9c52df7 100644
--- a/backend/models/LanguageSearch.php
+++ b/backend/models/LanguageSearch.php
@@ -64,7 +64,8 @@ class LanguageSearch extends Language
$query->andFilterWhere(['like', 'lang_code', $this->lang_code])
->andFilterWhere(['like', 'language_name', $this->language_name])
- ->andWhere(['active' => '1']);
+ ->andWhere(['active' => '1'])
+ ->andWhere(['>', 'language_id', '0']);
return $dataProvider;
}
diff --git a/backend/models/NewOptions.php b/backend/models/NewOptions.php
new file mode 100644
index 0000000..2f7abbb
--- /dev/null
+++ b/backend/models/NewOptions.php
@@ -0,0 +1,53 @@
+ 255]
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function attributeLabels()
+ {
+ return [
+ 'id' => Yii::t('app', 'ID'),
+ 'model' => Yii::t('app', 'Model'),
+ 'model_id' => Yii::t('app', 'Model ID'),
+ 'name' => Yii::t('app', 'Name'),
+ 'template' => Yii::t('app', 'Template'),
+ 'parent_id' => Yii::t('app', 'Parent ID'),
+ ];
+ }
+}
diff --git a/backend/models/NewOptionsLang.php b/backend/models/NewOptionsLang.php
new file mode 100644
index 0000000..64679be
--- /dev/null
+++ b/backend/models/NewOptionsLang.php
@@ -0,0 +1,52 @@
+ Yii::t('app', 'Primary'),
+ 'id' => Yii::t('app', 'ID'),
+ 'lang_id' => Yii::t('app', 'Lang ID'),
+ 'value' => Yii::t('app', 'Value'),
+ ];
+ }
+}
diff --git a/backend/models/NewOptionsLangSearch.php b/backend/models/NewOptionsLangSearch.php
new file mode 100644
index 0000000..5d68560
--- /dev/null
+++ b/backend/models/NewOptionsLangSearch.php
@@ -0,0 +1,68 @@
+ $query,
+ ]);
+
+ $this->load($params);
+
+ if (!$this->validate()) {
+ // uncomment the following line if you do not want to return any records when validation fails
+ // $query->where('0=1');
+ return $dataProvider;
+ }
+
+ $query->andFilterWhere([
+ 'primary' => $this->primary,
+ 'id' => $this->id,
+ 'lang_id' => $this->lang_id,
+ ]);
+
+ $query->andFilterWhere(['like', 'value', $this->value]);
+
+ return $dataProvider;
+ }
+}
diff --git a/backend/views/_language/_form.php b/backend/views/_language/_form.php
new file mode 100644
index 0000000..3119243
--- /dev/null
+++ b/backend/views/_language/_form.php
@@ -0,0 +1,27 @@
+
+
+
diff --git a/backend/views/_language/_search.php b/backend/views/_language/_search.php
new file mode 100644
index 0000000..b6c760e
--- /dev/null
+++ b/backend/views/_language/_search.php
@@ -0,0 +1,31 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'language_id') ?>
+
+ = $form->field($model, 'lang_code') ?>
+
+ = $form->field($model, 'is_default') ?>
+
+
+ = Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton(Yii::t('app', 'Reset'), ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/backend/views/_language/create.php b/backend/views/_language/create.php
new file mode 100644
index 0000000..ca8185b
--- /dev/null
+++ b/backend/views/_language/create.php
@@ -0,0 +1,19 @@
+title = Yii::t('app', 'Create Language');
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Languages'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;*/
+echo $this->render('index', $layoutdata);
+?>
+
+
+ = $this->render('_form', [
+ 'model' => $model
+ ]) ?>
+
\ No newline at end of file
diff --git a/backend/views/_language/index.php b/backend/views/_language/index.php
new file mode 100644
index 0000000..43938c7
--- /dev/null
+++ b/backend/views/_language/index.php
@@ -0,0 +1,86 @@
+registerCssFile('/backend/web/css/language.css');
+$this->registerJsFile('/backend/web/js/language.js', ['depends' => ['yii\web\JqueryAsset'], 'position' => $this::POS_END]);
+$this->title = Yii::t('app', 'Settings');
+$this->params['breadcrumbs'][] = $this->title;
+?>
+ render('_search', ['model' => $searchModel]); ?>
+
+
= Html::encode($this->title) ?>
+
+
diff --git a/backend/views/_language/update.php b/backend/views/_language/update.php
new file mode 100644
index 0000000..4529adb
--- /dev/null
+++ b/backend/views/_language/update.php
@@ -0,0 +1,22 @@
+title = Yii::t('app', 'Update {modelClass}: ', [
+ 'modelClass' => 'Language',
+]) . ' ' . $model->language_id;
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Languages'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->language_id, 'url' => ['view', 'id' => $model->language_id]];
+$this->params['breadcrumbs'][] = Yii::t('app', 'Update');*/
+echo $this->render('index', $layoutdata);
+?>
+
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/views/_language/view.php b/backend/views/_language/view.php
new file mode 100644
index 0000000..56d4ae7
--- /dev/null
+++ b/backend/views/_language/view.php
@@ -0,0 +1,33 @@
+title = $model->language_id;
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Languages'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;*/
+echo $this->render('index', $layoutdata);
+?>
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'language_id',
+ 'lang_code',
+ 'is_default',
+ ],
+ ]) ?>
+
+ = Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->language_id], ['class' => 'btn btn-primary']) ?>
+ = Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->language_id], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'),
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
\ No newline at end of file
diff --git a/backend/views/language/_form_adress.php b/backend/views/language/_form_adress.php
new file mode 100644
index 0000000..36542a7
--- /dev/null
+++ b/backend/views/language/_form_adress.php
@@ -0,0 +1,119 @@
+
+
+
diff --git a/backend/views/language/_form_adress_edit.php b/backend/views/language/_form_adress_edit.php
new file mode 100644
index 0000000..b57d0f3
--- /dev/null
+++ b/backend/views/language/_form_adress_edit.php
@@ -0,0 +1,41 @@
+
+
+
diff --git a/backend/views/language/create.php b/backend/views/language/create.php
index bcc0899..b9d8db4 100644
--- a/backend/views/language/create.php
+++ b/backend/views/language/create.php
@@ -24,7 +24,11 @@ echo $this->render('layout');
[
'class' => Column::className(),
'content' => function($model, $key, $index, $column) {
+<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
return ' ';
+=======
+ return ' ';
+>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
}
],
'language_name',
diff --git a/backend/views/language/create_adress.php b/backend/views/language/create_adress.php
new file mode 100644
index 0000000..04ff331
--- /dev/null
+++ b/backend/views/language/create_adress.php
@@ -0,0 +1,19 @@
+title = Yii::t('app', 'Create Option');
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+echo $this->render('layout');
+?>
+
+ render('_form_adress', $oneform);
+ }?>
+
+
diff --git a/backend/views/language/index.php b/backend/views/language/index.php
index c2c4bb4..81ca45b 100644
--- a/backend/views/language/index.php
+++ b/backend/views/language/index.php
@@ -24,7 +24,11 @@ echo $this->render('layout');
[
'class' => Column::className(),
'content' => function($model, $key, $index, $column) {
+<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
return ' ';
+=======
+ return ' ';
+>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
}
],
'language_name',
diff --git a/backend/views/language/layout.php b/backend/views/language/layout.php
index d917061..5103c47 100644
--- a/backend/views/language/layout.php
+++ b/backend/views/language/layout.php
@@ -36,5 +36,8 @@ $this->params['breadcrumbs'][] = $this->title;
Ipsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum IpsumIpsum Ipsum
+
+ = Html::a(Yii::t('app', 'adress'), ['view-adress'])?>
+
diff --git a/backend/views/language/update_adress.php b/backend/views/language/update_adress.php
new file mode 100644
index 0000000..26bd4fd
--- /dev/null
+++ b/backend/views/language/update_adress.php
@@ -0,0 +1,21 @@
+title = Yii::t('app', 'Update {modelClass}: ', [
+ 'modelClass' => 'Option',
+]) . ' ' . $forms[0]['models'][\Yii::$app->request->get('id')]->name;
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
+$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]];
+$this->params['breadcrumbs'][] = Yii::t('app', 'Update');
+echo $this->render('layout');
+?>
+
+ render('_form_adress_edit', $oneform);
+ }?>
+
+
diff --git a/backend/views/language/view_adress.php b/backend/views/language/view_adress.php
new file mode 100644
index 0000000..701ff4d
--- /dev/null
+++ b/backend/views/language/view_adress.php
@@ -0,0 +1,50 @@
+title = Yii::t('app', 'Languages');
+$this->params['breadcrumbs'][] = $this->title;
+echo $this->render('layout');
+?>
+
+
+ render('_search', ['model' => $searchModel]); ?>
+
+ = GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'layout' => "{items}",
+ 'columns' => [
+ [
+ 'class' => 'yii\grid\Column',
+ 'content' => function($model, $key, $index, $column) {
+ return OptionLang::find()->select('value')->where(['lang_id' => 0, 'id' => $model->option_id])->scalar();
+ },
+ 'header' => Yii::t('app', 'adress_name')
+ ],
+ [
+ 'class' => 'yii\grid\ActionColumn',
+ 'template' => '{update-adress} {delete-adress}',
+ 'buttons' => [
+ 'update-adress' => function ($url, $model, $key) {
+ return Html::a('', $url, ['class' => 'glyphicon glyphicon-pencil', 'title' => Yii::t('app', 'Change')]);
+ },
+ 'delete-adress' => function ($url, $model, $key) {
+ return Html::a('', $url, ['class' => 'glyphicon glyphicon-trash', 'title' => Yii::t('app', 'Delete')]);
+ },
+ ],
+ ]
+ ]
+ ]); ?>
+
+
+ = Html::a(Yii::t('app', 'Create adress'), ['create-adress'], ['class' => 'btn btn-success']) ?>
+
+
+
diff --git a/backend/views/layouts/content.php b/backend/views/layouts/content.php
new file mode 100644
index 0000000..d19d9b0
--- /dev/null
+++ b/backend/views/layouts/content.php
@@ -0,0 +1,241 @@
+
+
+
+
+
+ = Alert::widget() ?>
+ = $content ?>
+
+
+
+
+
+ Version 2.0
+
+ Copyright © 2014-2015 Almsaeed Studio . All rights
+ reserved.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/views/layouts/header.php b/backend/views/layouts/header.php
new file mode 100644
index 0000000..9149654
--- /dev/null
+++ b/backend/views/layouts/header.php
@@ -0,0 +1,287 @@
+user->identity->firstname.' '.Yii::$app->user->identity->lastname;
+
+/* @var $this \yii\web\View */
+/* @var $content string */
+?>
+
+
+
+ = Html::a('APP ' . Yii::$app->name . ' ', Yii::$app->homeUrl, ['class' => 'logo']) ?>
+
+
+
+
+
+
+
+
diff --git a/backend/views/layouts/left.php b/backend/views/layouts/left.php
new file mode 100644
index 0000000..e7d06ef
--- /dev/null
+++ b/backend/views/layouts/left.php
@@ -0,0 +1,82 @@
+
diff --git a/backend/views/layouts/main-login.php b/backend/views/layouts/main-login.php
new file mode 100644
index 0000000..c6525db
--- /dev/null
+++ b/backend/views/layouts/main-login.php
@@ -0,0 +1,29 @@
+
+beginPage() ?>
+
+
+
+
+
+ = Html::csrfMetaTags() ?>
+ = Html::encode($this->title) ?>
+ head() ?>
+
+
+
+beginBody() ?>
+
+ = $content ?>
+
+endBody() ?>
+
+
+endPage() ?>
diff --git a/backend/views/layouts/main.php b/backend/views/layouts/main.php
index d5ded73..1aa871f 100644
--- a/backend/views/layouts/main.php
+++ b/backend/views/layouts/main.php
@@ -1,76 +1,65 @@
-beginPage() ?>
-
-
-
-
-
- = Html::csrfMetaTags() ?>
- = Html::encode($this->title) ?>
- head() ?>
-
-
-beginBody() ?>
+if (Yii::$app->controller->action->id === 'login') {
+/**
+ * Do not use this code in your template. Remove it.
+ * Instead, use the code $this->layout = '//main-login'; in your controller.
+ */
+ echo $this->render(
+ 'main-login',
+ ['content' => $content]
+ );
+} else {
-
- 'My Company',
- 'brandUrl' => Yii::$app->homeUrl,
- 'options' => [
- 'class' => 'navbar-inverse navbar-fixed-top',
- ],
- ]);
- $menuItems = [
- ['label' => 'Home', 'url' => ['/site/index']],
- ];
- if (Yii::$app->user->isGuest) {
- $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']];
+ if (class_exists('backend\assets\AppAsset')) {
+ backend\assets\AppAsset::register($this);
} else {
- $menuItems[] = [
- 'label' => 'Logout (' . Yii::$app->user->identity->username . ')',
- 'url' => ['/site/logout'],
- 'linkOptions' => ['data-method' => 'post']
- ];
+ app\assets\AppAsset::register($this);
}
- echo Nav::widget([
- 'options' => ['class' => 'navbar-nav navbar-right'],
- 'items' => $menuItems,
- ]);
- NavBar::end();
+
+ dmstr\web\AdminLteAsset::register($this);
+
+ $directoryAsset = Yii::$app->assetManager->getPublishedUrl('@vendor/almasaeed2010/adminlte/dist');
?>
+ beginPage() ?>
+
+
+
+
+
+ = Html::csrfMetaTags() ?>
+
= Html::encode($this->title) ?>
+ head() ?>
+
+
+ beginBody() ?>
+
-
- = Breadcrumbs::widget([
- 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
- ]) ?>
- = Alert::widget() ?>
- = $content ?>
-
-
+ = $this->render(
+ 'header.php',
+ ['directoryAsset' => $directoryAsset]
+ ) ?>
+
+ = $this->render(
+ 'left.php',
+ ['directoryAsset' => $directoryAsset]
+ )
+ ?>
-
-endBody() ?>
-
-
-endPage() ?>
+ endBody() ?>
+
+
+ endPage() ?>
+
diff --git a/backend/views/new-options-lang/_form.php b/backend/views/new-options-lang/_form.php
new file mode 100644
index 0000000..92be7ec
--- /dev/null
+++ b/backend/views/new-options-lang/_form.php
@@ -0,0 +1,27 @@
+
+
+
diff --git a/backend/views/new-options-lang/_search.php b/backend/views/new-options-lang/_search.php
new file mode 100644
index 0000000..492705f
--- /dev/null
+++ b/backend/views/new-options-lang/_search.php
@@ -0,0 +1,33 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'primary') ?>
+
+ = $form->field($model, 'id') ?>
+
+ = $form->field($model, 'lang_id') ?>
+
+ = $form->field($model, 'value') ?>
+
+
+ = Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton(Yii::t('app', 'Reset'), ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/backend/views/new-options-lang/create.php b/backend/views/new-options-lang/create.php
new file mode 100644
index 0000000..3f3c43b
--- /dev/null
+++ b/backend/views/new-options-lang/create.php
@@ -0,0 +1,21 @@
+title = Yii::t('app', 'Create New Options Lang');
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'New Options Langs'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/views/new-options-lang/index.php b/backend/views/new-options-lang/index.php
new file mode 100644
index 0000000..728c3e3
--- /dev/null
+++ b/backend/views/new-options-lang/index.php
@@ -0,0 +1,37 @@
+title = Yii::t('app', 'New Options Langs');
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+ render('_search', ['model' => $searchModel]); ?>
+
+
+ = Html::a(Yii::t('app', 'Create New Options Lang'), ['create'], ['class' => 'btn btn-success']) ?>
+
+
+ = GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'filterModel' => $searchModel,
+ 'columns' => [
+ ['class' => 'yii\grid\SerialColumn'],
+
+ 'primary',
+ 'id',
+ 'lang_id',
+ 'value:ntext',
+
+ ['class' => 'yii\grid\ActionColumn'],
+ ],
+ ]); ?>
+
+
diff --git a/backend/views/new-options-lang/update.php b/backend/views/new-options-lang/update.php
new file mode 100644
index 0000000..b1889b6
--- /dev/null
+++ b/backend/views/new-options-lang/update.php
@@ -0,0 +1,23 @@
+title = Yii::t('app', 'Update {modelClass}: ', [
+ 'modelClass' => 'New Options Lang',
+]) . ' ' . $model->primary;
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'New Options Langs'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->primary, 'url' => ['view', 'id' => $model->primary]];
+$this->params['breadcrumbs'][] = Yii::t('app', 'Update');
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/views/new-options-lang/view.php b/backend/views/new-options-lang/view.php
new file mode 100644
index 0000000..4fa8864
--- /dev/null
+++ b/backend/views/new-options-lang/view.php
@@ -0,0 +1,38 @@
+title = $model->primary;
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'New Options Langs'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+
+ = Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->primary], ['class' => 'btn btn-primary']) ?>
+ = Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->primary], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'),
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'primary',
+ 'id',
+ 'lang_id',
+ 'value:ntext',
+ ],
+ ]) ?>
+
+
diff --git a/backend/views/site/requests.php b/backend/views/site/requests.php
new file mode 100644
index 0000000..3203326
--- /dev/null
+++ b/backend/views/site/requests.php
@@ -0,0 +1,70 @@
+title = Yii::t('app', 'Requests');
+?>
+
+ $dataProvider,
+ 'columns' => [
+ [
+ 'class' => 'yii\grid\SerialColumn'
+ ],
+ [
+ 'attribute' => 'created_at',
+ ],
+ [
+ 'header' => Yii::t('app', 'values'),
+ 'content' => function($model, $key, $index, $column) {
+ $value = '';
+ $langs = $model->options;
+ $lang = $model->getOptionDefaultLang(true);
+ $value .= "{$model->name} :{$lang['value']}";
+ foreach($langs as $onemodel) {
+ $lang = $onemodel->getOptionDefaultLang(true);
+ $value .= "{$onemodel->name} :{$lang['value']}";
+ }
+ return $value;
+ }
+ ],
+ [
+ 'class' => 'yii\grid\ActionColumn',
+ 'template' => '{requests} {delete-req}',
+ 'buttons' => [
+ 'requests' => function($url, $model, $key) {
+ return Html::a(
+ '',
+ $model->options['is_new']->getOptionDefaultLang()->value?$url:'#',
+ [
+ 'class' => $model->options['is_new']->getOptionDefaultLang()->value?'glyphicon glyphicon-eye-open':'glyphicon glyphicon-eye-close',
+ 'title' => Yii::t('app', 'Make already read')
+ ]
+ );
+ },
+ 'delete-req' => function($url, $model, $key) {
+ return Html::a(
+ '',
+ $url,
+ [
+ 'class' => 'glyphicon glyphicon-trash',
+ 'title' => Yii::t('app', 'Delete'),
+ 'data' => [
+ 'label' => Yii::t('app', 'Delete'),
+ 'confirm' => Yii::t('app', 'Are you sure you want delete this element?'),
+ 'method' => 'post',
+ 'pjax' => 0
+ ]
+ ]
+ );
+ }
+ ]
+ ]
+ ],
+ ]);
+ ?>
+
diff --git a/backend/web/css/flags32.css b/backend/web/css/flags32.css
index 19b8d85..ba24b4f 100644
--- a/backend/web/css/flags32.css
+++ b/backend/web/css/flags32.css
@@ -246,4 +246,8 @@
.f32 .sx{background-position:0 -7808px;}
.f32 .cw{background-position:0 -7840px;}
.f32 .ss{background-position:0 -7872px;}
+<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
.f32 .nu{background-position:0 -7904px;}
+=======
+.f32 .nu{background-position:0 -7904px;}
+>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
diff --git a/backend/web/css/option.css b/backend/web/css/option.css
new file mode 100644
index 0000000..deeed60
--- /dev/null
+++ b/backend/web/css/option.css
@@ -0,0 +1,3 @@
+#main_row .remove_lang {
+ display: none;
+}
\ No newline at end of file
diff --git a/backend/web/js/option.js b/backend/web/js/option.js
new file mode 100644
index 0000000..31a0901
--- /dev/null
+++ b/backend/web/js/option.js
@@ -0,0 +1,25 @@
+$(function() {
+ var counter = 0;
+ $(document).on('click', '.add_row', function() {
+ counter++;
+ var clone = $('#main_row').clone().html().replace(new RegExp("Option\\[0\\]", 'g'), "Option["+counter+"]");
+ console.log(form);
+ $(clone).appendTo('#'+form);
+ $('#'+form+' button[type=submit]').parent().appendTo('#'+form);
+ });
+ $(document).on('click', '.add_lang', function() {
+ var field_block = $(this).parent().parent();
+ if($(this).hasClass('active')) {
+ $(field_block).find('.main_input').attr('required', '').show();
+ $(field_block).find('.lang_inputs').hide();
+ $(this).removeClass('active');
+ } else {
+ $(field_block).find('.main_input').removeAttr('required').hide();
+ $(field_block).find('.lang_inputs').show();
+ $(this).addClass('active');
+ }
+ });
+ $(document).on('click', '.remove_lang', function() {
+ $(this).parents('.form-wrapper').remove();
+ });
+ });
\ No newline at end of file
diff --git a/common/models/Language.php b/common/models/Language.php
index 14b0230..c9bc423 100644
--- a/common/models/Language.php
+++ b/common/models/Language.php
@@ -40,7 +40,7 @@ class Language extends \yii\db\ActiveRecord
//Получения объекта языка по умолчанию
static function getDefaultLang()
{
- return Language::find()->where('`is_default` = :default', [':default' => 1])->one();
+ return Language::find()->where('is_default = :default', [':default' => 1])->one();
}
//Получения объекта языка по буквенному идентификатору
diff --git a/common/translation/ru/app.php b/common/translation/ru/app.php
index 0a1e0a2..7c35bc6 100644
--- a/common/translation/ru/app.php
+++ b/common/translation/ru/app.php
@@ -11,5 +11,20 @@ return [
'Make default' => 'Установить по умолчанию',
'Language Name' => 'Название языка',
'Lang Code' => 'Код языка',
+<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
'Is Default' => 'По умолчанию'
+=======
+ 'Is Default' => 'По умолчанию',
+ 'adress' => 'Адрес',
+ 'adress_name' => 'Адрес',
+ 'Create adress' => 'Добавить адрес',
+ 'adres' => 'Адрес',
+ 'x' => 'Координата x',
+ 'y' => 'Координата y',
+ 'phone' => 'Телефон',
+ 'name' => 'Название',
+ 'one_name' => 'Имя',
+ 'message' => 'Сообщение',
+ 'Feedback' => 'Обратная связь'
+>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
];
\ No newline at end of file
diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php
index bd77425..1f38241 100644
--- a/frontend/controllers/SiteController.php
+++ b/frontend/controllers/SiteController.php
@@ -19,6 +19,7 @@ use yii\validators\EmailValidator;
use common\models\User;
use yii\helpers\VarDumper;
use common\models\Page;
+use frontend\models\Option;
/**
* Site controller
@@ -260,6 +261,7 @@ class SiteController extends Controller
'model' => $model,
]);
}
+<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
public function actionOptions() {
$option_model = new Options();
$option_list = $option_model->find()->where(1)->all();
@@ -301,5 +303,15 @@ class SiteController extends Controller
$data['option_values'] = $option_values;
return $this->render('options', ['options' => $data, 'post' => $post]);
}
+=======
+
+ public function actionFeedback() {
+ $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);
+ if($form[0]['success'] == false) {
+ return $this->render('feedback', ['forms' => $form]);
+ } else {
+ return $this->render('index');
+ }
+>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
}
}
diff --git a/frontend/models/Option.php b/frontend/models/Option.php
index 3bf74af..dab07c9 100644
--- a/frontend/models/Option.php
+++ b/frontend/models/Option.php
@@ -48,11 +48,12 @@ class Option extends \yii\db\ActiveRecord
'name' => Yii::t('app', 'Name'),
'template' => Yii::t('app', 'Template'),
'parent_id' => Yii::t('app', 'Parent ID'),
+ 'created_at' => Yii::t('app', 'Date created'),
];
}
public function getLangs() {
- return (new Language())->find()->where(['>', 'language_id', 0])->asArray()->all();
+ return (new Language())->find()->where(['>', 'language_id', 0])->andWhere(['active' => 1])->asArray()->all();
}
public static function change($id, $post, $modeldb, $model_id) {
@@ -126,7 +127,12 @@ class Option extends \yii\db\ActiveRecord
);
}
+<<<<<<< 1fd2bdb43fc5cfdcf100cac8b72e67fd81e7f0fa
public static function create($post, $modeldb, $model_id, $fields) {
+=======
+ public static function create($post, $modeldb, $model_id, $fields, $multiple) {
+ $multiple = boolval($multiple);
+>>>>>>> 0e0edb85a79343e4d020ff05378179e2323b21bd
$model = new Option();
$modellang = new OptionLang();
if(!empty($post['Option'])) {
@@ -197,6 +203,24 @@ class Option extends \yii\db\ActiveRecord
}
}
if($ok) {
+ if($modeldb == 'Feedback') {
+ $newflag = new Option();
+ $newflag->model = $modeldb;
+ $newflag->model_id = $model_id;
+ $newflag->name = 'is_new';
+ $newflag->template = 'checkbox';
+ $newflag->parent_id = $parentid;
+ $newflag->translate = 0;
+ if($newflag->save()) {
+ $newflaglang = new OptionLang();
+ $newflaglang->id = $newflag->option_id;
+ $newflaglang->lang_id = 0;
+ $newflaglang->value = '1';
+ if(!$newflaglang->save()) {
+ $newflag->delete();
+ }
+ }
+ }
return array('models' => $models, 'modelslang' => $modelslang, 'success' => true);
} else {
return array(
@@ -205,7 +229,8 @@ class Option extends \yii\db\ActiveRecord
'modeldb' => $modeldb,
'model_id' => $model_id,
'fields' => $fields,
- 'success' => false
+ 'success' => false,
+ 'multiple' => $multiple
);
}
} else {
@@ -214,8 +239,43 @@ class Option extends \yii\db\ActiveRecord
'modeldb' => $modeldb,
'model_id' => $model_id,
'fields' => $fields,
- 'success' => false
+ 'success' => false,
+ 'multiple' => $multiple
);
}
}
+
+ public function getOptions() {
+ return $this->hasMany(Option::className(), ['parent_id' => 'option_id'])->indexBy('name');
+ }
+
+ public function getOption() {
+ return $this->hasOne(Option::className(), ['option_id' => 'parent_id']);
+ }
+
+ public function getOptionLangs() {
+ return $this->hasMany(OptionLang::className(), ['id' => 'option_id']);
+ }
+
+ public function getOptionDefaultLang($array = false) {
+ $query = $this->getOptionLangs()->where(['lang_id' => 0]);
+ if($array) {
+ $query->asArray();
+ }
+ return $query->one();
+ }
+
+ public static function markOld($id) {
+ $model = Option::findOne($id);
+ $is_new = $model->getOptions()->where(['name' => 'is_new'])->one();
+ if(empty($is_new)) return false;
+ $is_newlang = $is_new->getOptionDefaultLang();
+ $is_newlang->value = '0';
+ if($is_newlang->save()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
}
diff --git a/frontend/models/OptionLangSearch.php b/frontend/models/OptionLangSearch.php
new file mode 100644
index 0000000..894cfbb
--- /dev/null
+++ b/frontend/models/OptionLangSearch.php
@@ -0,0 +1,68 @@
+ $query,
+ ]);
+
+ $this->load($params);
+
+ if (!$this->validate()) {
+ // uncomment the following line if you do not want to return any records when validation fails
+ // $query->where('0=1');
+ return $dataProvider;
+ }
+
+ $query->andFilterWhere([
+ 'primary' => $this->primary,
+ 'id' => $this->id,
+ 'lang_id' => $this->lang_id,
+ ]);
+
+ $query->andFilterWhere(['like', 'value', $this->value]);
+
+ return $dataProvider;
+ }
+}
diff --git a/frontend/models/OptionSearch.php b/frontend/models/OptionSearch.php
index b91b2c7..4916fa1 100644
--- a/frontend/models/OptionSearch.php
+++ b/frontend/models/OptionSearch.php
@@ -46,7 +46,12 @@ class OptionSearch extends Option
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
-
+ $data = [
+ 'OptionSearch' => [
+ 'model' => 'Main'
+ ]
+ ];
+
$this->load($params);
if (!$this->validate()) {
@@ -54,16 +59,19 @@ class OptionSearch extends Option
// $query->where('0=1');
return $dataProvider;
}
-
+
+ $query->andWhere(['parent_id' => null]);
+
$query->andFilterWhere([
'option_id' => $this->option_id,
'model_id' => $this->model_id,
'parent_id' => $this->parent_id,
]);
-
+
$query->andFilterWhere(['like', 'model', $this->model])
->andFilterWhere(['like', 'name', $this->name])
->andFilterWhere(['like', 'template', $this->template]);
+
return $dataProvider;
}
diff --git a/frontend/views/option/_form.php b/frontend/views/option/_form.php
index 32331a3..ed88827 100644
--- a/frontend/views/option/_form.php
+++ b/frontend/views/option/_form.php
@@ -12,7 +12,7 @@ use yii\widgets\ActiveForm;
-
+
diff --git a/frontend/views/site/feedback.php b/frontend/views/site/feedback.php
new file mode 100644
index 0000000..9527ec5
--- /dev/null
+++ b/frontend/views/site/feedback.php
@@ -0,0 +1,19 @@
+title = Yii::t('app', 'Feedback');
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
= Html::encode($this->title) ?>
+ render('/option/_form', $oneform);
+ }?>
+
--
libgit2 0.21.4