Commit cdb04594bac4f9280d71338ac55825833de19608

Authored by Yarik
1 parent cd3dad5c

test

common/models/OptionHelper.php
... ... @@ -14,7 +14,7 @@ class OptionHelper extends Model
14 14 const OPTION_VALUE = 3;
15 15 public function getRule($return = 3)
16 16 {
17   - $result = Options::find()->where(['name' => 'rules'])->with('value');
  17 + $result = Option::find()->where(['name' => 'rules'])->with('value');
18 18 if($return == self::OPTION_OBJECT) {
19 19 return $result->one();
20 20 } elseif($return == self::OPTION_ARRAY) {
... ...
console/migrations/m130524_201442_init.php
... ... @@ -16,6 +16,9 @@ class m130524_201442_init extends Migration
16 16 $this->createTable('{{%user}}', [
17 17 'id' => $this->primaryKey(),
18 18 'username' => $this->string()->notNull()->unique(),
  19 + 'lastname' => $this->string(),
  20 + 'firstname' => $this->string(),
  21 + 'middlename' => $this->string(),
19 22 'auth_key' => $this->string(32)->notNull(),
20 23 'password_hash' => $this->string()->notNull(),
21 24 'password_reset_token' => $this->string()->unique(),
... ... @@ -25,6 +28,19 @@ class m130524_201442_init extends Migration
25 28 'created_at' => $this->integer()->notNull(),
26 29 'updated_at' => $this->integer()->notNull(),
27 30 ], $tableOptions);
  31 +
  32 + $this->insert('{{%user}}', [
  33 + 'username' => 'admin',
  34 + 'lastname' => 'admin',
  35 + 'firstname' => 'admin',
  36 + 'middlename' => '',
  37 + 'auth_key' => 'SlJ315le5enaDJ4OsdvXX83i_drf-JXl',
  38 + 'password_hash' => '$2y$13$LfYpoaZkKzniNw/7rySAnOVPHy8wKFFznxBVoAWTnbLv/Di0oXqvi',
  39 + 'password_reset_token' => 'NULL',
  40 + 'email' => 'admin@admin.com',
  41 + 'created_at' => '1',
  42 + 'updated_at' => '1',
  43 + ]);
28 44 }
29 45  
30 46 public function down()
... ...
frontend/assets/AppAsset.php
... ... @@ -26,7 +26,8 @@ class AppAsset extends AssetBundle
26 26 'js/markerclusterer.js',
27 27 'js/jquery.scrollbox.min.js',
28 28 'js/slider.js',
29   - 'js/jquery.rating.js'
  29 + 'js/jquery.rating.js',
  30 + '/admin/js/option.js'
30 31 ];
31 32 public $depends = [
32 33 'yii\web\YiiAsset',
... ...
frontend/controllers/OptionController.php
... ... @@ -3,12 +3,11 @@
3 3 namespace frontend\controllers;
4 4  
5 5 use Yii;
6   -use frontend\models\Option;
7   -use frontend\models\OptionSearch;
  6 +use common\models\Option;
  7 +use common\models\OptionSearch;
8 8 use yii\web\Controller;
9 9 use yii\web\NotFoundHttpException;
10 10 use yii\filters\VerbFilter;
11   -use frontend\models\OptionLang;
12 11  
13 12 /**
14 13 * OptionController implements the CRUD actions for Option model.
... ... @@ -61,14 +60,17 @@ class OptionController extends Controller
61 60 */
62 61 public function actionCreate()
63 62 {
64   - $form[0] = Option::create(\Yii::$app->request->post(), 'User', 10, [['name' => 'phone', 'template' => 'text', 'translate' => true], ['name' => 'adres', 'template' => 'text', 'translate' => false]], true);
65   - if($form[0]['success'] == false) {
66   - return $this->render('create', ['forms' => $form]);
  63 + $model = new Option();
  64 +
  65 + if ($model->load(Yii::$app->request->post()) && $model->save()) {
  66 + return $this->redirect(['view', 'id' => $model->option_id]);
67 67 } else {
68   - return $this->redirect(['index']);
  68 + return $this->render('create', [
  69 + 'model' => $model,
  70 + ]);
69 71 }
70 72 }
71   -
  73 +
72 74 /**
73 75 * Updates an existing Option model.
74 76 * If update is successful, the browser will be redirected to the 'view' page.
... ... @@ -77,11 +79,14 @@ class OptionController extends Controller
77 79 */
78 80 public function actionUpdate($id)
79 81 {
80   - $form[0] = Option::change($id, \Yii::$app->request->post(), 'User', 10);
81   - if($form[0]['success'] == false) {
82   - return $this->render('update', ['forms' => $form]);
  82 + $model = $this->findModel($id);
  83 +
  84 + if ($model->load(Yii::$app->request->post()) && $model->save()) {
  85 + return $this->redirect(['view', 'id' => $model->option_id]);
83 86 } else {
84   - return $this->redirect(['view', 'id' => $id]);
  87 + return $this->render('update', [
  88 + 'model' => $model,
  89 + ]);
85 90 }
86 91 }
87 92  
... ... @@ -93,23 +98,7 @@ class OptionController extends Controller
93 98 */
94 99 public function actionDelete($id)
95 100 {
96   - $model = $this->findModel($id);
97   - $children = $model->hasMany(Option::className(), ['parent_id' => 'option_id'])->all();
98   - $langs = array();
99   - if(!empty($children)) {
100   - foreach($children as $child) {
101   - $langs = OptionLang::findAll(['id' => $child->option_id]);
102   - foreach($langs as $lang) {
103   - $lang->delete();
104   - }
105   - $child->delete();
106   - }
107   - }
108   - $langs = OptionLang::findAll(['id' => $id]);
109   - foreach($langs as $lang) {
110   - $lang->delete();
111   - }
112   - $model->delete();
  101 + $this->findModel($id)->delete();
113 102  
114 103 return $this->redirect(['index']);
115 104 }
... ...
frontend/controllers/OptionValuesController.php deleted
1   -<?php
2   -
3   -namespace frontend\controllers;
4   -
5   -use Yii;
6   -use frontend\models\OptionValues;
7   -use frontend\models\OptionValuesSearch;
8   -use yii\web\Controller;
9   -use yii\web\NotFoundHttpException;
10   -use yii\filters\VerbFilter;
11   -
12   -/**
13   - * OptionValuesController implements the CRUD actions for OptionValues model.
14   - */
15   -class OptionValuesController 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 OptionValues models.
31   - * @return mixed
32   - */
33   - public function actionIndex()
34   - {
35   - $searchModel = new OptionValuesSearch();
36   - $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
37   - return $this->render('index', [
38   - 'searchModel' => $searchModel,
39   - 'dataProvider' => $dataProvider,
40   - ]);
41   - }
42   -
43   - /**
44   - * Displays a single OptionValues model.
45   - * @param integer $id
46   - * @return mixed
47   - */
48   - public function actionView($id)
49   - {
50   - return $this->render('view', [
51   - 'model' => $this->findModel($id),
52   - ]);
53   - }
54   -
55   - /**
56   - * Creates a new OptionValues model.
57   - * If creation is successful, the browser will be redirected to the 'view' page.
58   - * @return mixed
59   - */
60   - public function actionCreate()
61   - {
62   - $post = \Yii::$app->request->post();
63   - if(is_array($post['OptionValues']['option_value_text'])) {
64   - $ok = 0;
65   - $first = 0;
66   - $id = 0;
67   - $models = array();
68   - foreach($post['OptionValues']['option_value_text'] as $lang => $value) {
69   - $models[$lang] = new OptionValues();
70   - $models[$lang]->load(Yii::$app->request->post());
71   - $models[$lang]->option_language_id = $lang;
72   - $models[$lang]->option_value_text = $value;
73   - if($first && $id) {
74   - $models[$lang]->option_value_parent = $id;
75   - }
76   - if($models[$lang]->save()) {
77   - $ok = 1;
78   - if(!$first) {
79   - $first = 1;
80   - $id = $models[$lang]->option_value_id;
81   - }
82   - } else {
83   - unset($models[$lang]);
84   - }
85   - }
86   - if($ok) {
87   - return $this->redirect(['view', 'id' => $id]);
88   - }
89   - }
90   - $model = new OptionValues();
91   - if ($model->load(Yii::$app->request->post()) && $model->save()) {
92   - return $this->redirect(['view', 'id' => $model->option_value_id]);
93   - } else {
94   - return $this->render('create', [
95   - 'model' => $model,
96   - ]);
97   - }
98   - }
99   -
100   - /**
101   - * Updates an existing OptionValues model.
102   - * If update is successful, the browser will be redirected to the 'view' page.
103   - * @param integer $id
104   - * @return mixed
105   - */
106   - public function actionUpdate($id)
107   - {
108   - $model = $this->findModel($id);
109   -
110   - if ($model->load(Yii::$app->request->post()) && $model->save()) {
111   - return $this->redirect(['view', 'id' => $model->option_value_id]);
112   - } else {
113   - return $this->render('update', [
114   - 'model' => $model,
115   - ]);
116   - }
117   - }
118   -
119   - /**
120   - * Deletes an existing OptionValues model.
121   - * If deletion is successful, the browser will be redirected to the 'index' page.
122   - * @param integer $id
123   - * @return mixed
124   - */
125   - public function actionDelete($id)
126   - {
127   - $this->findModel($id)->delete();
128   -
129   - return $this->redirect(['index']);
130   - }
131   -
132   - /**
133   - * Finds the OptionValues model based on its primary key value.
134   - * If the model is not found, a 404 HTTP exception will be thrown.
135   - * @param integer $id
136   - * @return OptionValues the loaded model
137   - * @throws NotFoundHttpException if the model cannot be found
138   - */
139   - protected function findModel($id)
140   - {
141   - if (($model = OptionValues::findOne($id)) !== null) {
142   - return $model;
143   - } else {
144   - throw new NotFoundHttpException('The requested page does not exist.');
145   - }
146   - }
147   -}
frontend/controllers/OptionsController.php deleted
1   -<?php
2   -
3   -namespace frontend\controllers;
4   -
5   -use Yii;
6   -use frontend\models\Options;
7   -use frontend\models\OptionsSearch;
8   -use yii\web\Controller;
9   -use yii\web\NotFoundHttpException;
10   -use yii\filters\VerbFilter;
11   -
12   -/**
13   - * OptionsController implements the CRUD actions for Options model.
14   - */
15   -class OptionsController 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 Options models.
31   - * @return mixed
32   - */
33   - public function actionIndex()
34   - {
35   - $searchModel = new OptionsSearch();
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 Options 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 Options 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 Options();
64   -
65   - if ($model->load(Yii::$app->request->post()) && $model->save()) {
66   - return $this->redirect(['view', 'id' => $model->option_id]);
67   - } else {
68   - return $this->render('create', [
69   - 'model' => $model,
70   - ]);
71   - }
72   - }
73   -
74   - /**
75   - * Updates an existing Options 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->option_id]);
86   - } else {
87   - return $this->render('update', [
88   - 'model' => $model,
89   - ]);
90   - }
91   - }
92   -
93   - /**
94   - * Deletes an existing Options 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 Options 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 Options the loaded model
111   - * @throws NotFoundHttpException if the model cannot be found
112   - */
113   - protected function findModel($id)
114   - {
115   - if (($model = Options::findOne($id)) !== null) {
116   - return $model;
117   - } else {
118   - throw new NotFoundHttpException('The requested page does not exist.');
119   - }
120   - }
121   -}
frontend/models/Option.php deleted
1   -<?php
2   -
3   -namespace frontend\models;
4   -
5   -use Yii;
6   -
7   -/**
8   - * This is the model class for table "option".
9   - *
10   - * @property integer $option_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 Option extends \yii\db\ActiveRecord
18   -{
19   - /**
20   - * @inheritdoc
21   - */
22   - public static function tableName()
23   - {
24   - return 'option';
25   - }
26   -
27   - /**
28   - * @inheritdoc
29   - */
30   - public function rules()
31   - {
32   - return [
33   - [['model', 'model_id', 'name', 'template'], 'required'],
34   - [['model_id', 'option_pid'], 'integer'],
35   - [['model', 'name', 'template'], 'string', 'max' => 200]
36   - ];
37   - }
38   -
39   - /**
40   - * @inheritdoc
41   - */
42   - public function attributeLabels()
43   - {
44   - return [
45   - 'option_id' => Yii::t('app', 'Option 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   - 'option_pid' => Yii::t('app', 'Parent ID'),
51   - 'date_add' => Yii::t('app', 'Date created'),
52   - 'translate' => Yii::t('app', 'Translatable'),
53   - ];
54   - }
55   -
56   - public function getLangs() {
57   - return (new Language())->find()->where(['>', 'language_id', 0])->andWhere(['status' => 1])->asArray()->all();
58   - }
59   -
60   - public static function change($id, $post, $modeldb, $model_id) {
61   - $models[$id] = Option::findOne($id);
62   - $modellang[$id] = array();
63   - $langs = OptionLang::findAll(['option_language_id' => $id]);
64   - foreach($langs as $lang) {
65   - $modellang[$id][$lang->language_id] = $lang;
66   - }
67   - $children = (new Option())->find()->where(['option_pid' => $id])->all();
68   - foreach($children as $child) {
69   - $models[$child->option_id] = $child;
70   - $modellang[$child->option_id] = array();
71   - $langs = OptionLang::findAll(['option_id' =>$child->option_id]);
72   - foreach($langs as $lang) {
73   - $modellang[$child->option_id][$lang->language_id] = $lang;
74   - }
75   - }
76   - $ok = 1;
77   - if(!empty($post)) {
78   - foreach($post['Option'] as $key => $option) {
79   - if(in_array($key, array('model', 'model_id'))) { continue; }
80   - if(empty($option['value'][$models[$key]->name]) && !empty($option['lang'])) {
81   - foreach($option['lang'] as $language_id => $lang) {
82   - if(!empty($lang)) {
83   - $option['value'][$models[$key]->name] = $lang;
84   - break;
85   - }
86   - }
87   - }
88   - $modellang[$key][0]->value = $option['value'][$models[$key]->name];
89   - if(empty($modellang[$key][0]->value) || !$modellang[$key][0]->save()) {
90   - $ok = 0;
91   - $models[$key]->addError('value', 'Value must be set');
92   - $modellang[$key][0]->addError('value', 'Value must be set');
93   - }
94   - if(!empty($option['lang'])) {
95   - foreach($option['lang'] as $language_id => $lang) {
96   - if(empty($modellang[$key][$language_id])) {
97   - $modellang[$key][$language_id] = new OptionLang();
98   - $modellang[$key][$language_id]->option_id = $models[$key]->option_id;
99   - $modellang[$key][$language_id]->language_id = $language_id;
100   - $modellang[$key][$language_id]->value = $lang;
101   - } else {
102   - $modellang[$key][$language_id]->value = $lang;
103   - }
104   - if(!$modellang[$key][$language_id]->save()) {
105   - $ok = 0;
106   - }
107   - }
108   - }
109   - }
110   - if($ok) {
111   - return array('id' => $id, 'models' => $models, 'modelslang' => $modelslang, 'success' => true);
112   - } else {
113   - return array(
114   - 'models' => $models,
115   - 'modellang' => $modellang,
116   - 'modeldb' => $modeldb,
117   - 'model_id' => $model_id,
118   - 'success' => false
119   - );
120   - }
121   - }
122   - return array(
123   - 'models' => $models,
124   - 'modellang' => $modellang,
125   - 'modeldb' => $modeldb,
126   - 'model_id' => $model_id,
127   - 'success' => false
128   - );
129   - }
130   -
131   - public static function create($post, $modeldb, $model_id, $fields, $multiple) {
132   - $multiple = boolval($multiple);
133   - $model = new Option();
134   - $modellang = new OptionLang();
135   - if(!empty($post['Option'])) {
136   - $ok = 1;
137   - $parentid = null;
138   - $models = array();
139   - foreach($post['Option'] as $index => $option) {
140   - if(in_array($index, array('model', 'model_id')) && $index !== 0) { continue; }
141   - $first = 1;
142   - foreach($option['value'] as $key => $value) {
143   - $models[$index][$key] = new Option();
144   - $models[$index][$key]->model = $post['Option']['model'];
145   - $models[$index][$key]->model_id = $post['Option']['model_id'];
146   - $models[$index][$key]->template = $option[$key]['template'];
147   - $models[$index][$key]->translate = $option[$key]['translate']?1:0;
148   - $models[$index][$key]->name = $key;
149   - if(!$first) {
150   - $models[$index][$key]->option_pid = $parentid;
151   - }
152   - $modelslang[$index][$key][0] = new OptionLang();
153   - if(!empty($option['lang'][$key])) {
154   - foreach($option['lang'][$key] as $code => $lang) {
155   - if(!empty($lang)) {
156   - $value = $lang;
157   - break;
158   - }
159   - }
160   - }
161   - if(!empty($value) && $models[$index][$key]->save()) {
162   - if($first) {
163   - $parentid = $models[$index][$key]->option_id;
164   - }
165   - $modelslang[$index][$key][0]->option_id = $models[$index][$key]->option_id;
166   - $modelslang[$index][$key][0]->language_id = 0;
167   - $modelslang[$index][$key][0]->value = $value;
168   - if($modelslang[$index][$key][0]->save()) {
169   - if(!empty($option['lang'][$key])) {
170   - foreach($option['lang'][$key] as $code => $lang) {
171   - if(!empty($lang)) {
172   - $modelslang[$index][$key][$code] = new OptionLang();
173   - $modelslang[$index][$key][$code]->option_id = $models[$index][$key]->option_id;
174   - $modelslang[$index][$key][$code]->language_id = $code;
175   - $modelslang[$index][$key][$code]->value = $lang;
176   - if(!$modelslang[$index][$key][$code]->save()) {
177   - $ok = 0;
178   - }
179   - }
180   - }
181   - }
182   - }
183   - } else {
184   - $models[$index][$key]->validate();
185   - $modelslang[$index][$key][0]->validate();
186   - $modelslang[$index][$key][0]->addError('value', 'Value must be set');
187   - if(!empty($option['lang'][$key])) {
188   - foreach($option['lang'][$key] as $code => $lang) {
189   - if(!empty($lang)) {
190   - $modelslang[$index][$key][$code] = new OptionLang();
191   - $modelslang[$index][$key][$code]->option_id = $models[$index][$key]->option_id;
192   - $modelslang[$index][$key][$code]->language_id = $code;
193   - $modelslang[$index][$key][$code]->value = $lang;
194   - }
195   - }
196   - }
197   - $ok = 0;
198   - }
199   - $first = 0;
200   - }
201   - }
202   - if($ok) {
203   - if($modeldb == 'Feedback') {
204   - $newflag = new Option();
205   - $newflag->model = $modeldb;
206   - $newflag->model_id = $model_id;
207   - $newflag->name = 'is_new';
208   - $newflag->template = 'checkbox';
209   - $newflag->option_pid = $parentid;
210   - $newflag->translate = 0;
211   - if($newflag->save()) {
212   - $newflaglang = new OptionLang();
213   - $newflaglang->option_id = $newflag->option_id;
214   - $newflaglang->language_id = 0;
215   - $newflaglang->value = '1';
216   - if(!$newflaglang->save()) {
217   - $newflag->delete();
218   - }
219   - }
220   - }
221   - return array('models' => $models, 'modelslang' => $modelslang, 'success' => true);
222   - } else {
223   - return array(
224   - 'models' => $models,
225   - 'modellang' => $modelslang,
226   - 'modeldb' => $modeldb,
227   - 'model_id' => $model_id,
228   - 'fields' => $fields,
229   - 'success' => false,
230   - 'multiple' => $multiple
231   - );
232   - }
233   - } else {
234   - return array(
235   - 'model' => $model,
236   - 'modeldb' => $modeldb,
237   - 'model_id' => $model_id,
238   - 'fields' => $fields,
239   - 'success' => false,
240   - 'multiple' => $multiple
241   - );
242   - }
243   - }
244   -
245   - public function getOptions() {
246   - return $this->hasMany(Option::className(), ['option_pid' => 'option_id'])->indexBy('name');
247   - }
248   -
249   - public function getOption() {
250   - return $this->hasOne(Option::className(), ['option_id' => 'option_pid']);
251   - }
252   -
253   - public function getOptionLangs() {
254   - return $this->hasMany(OptionLang::className(), ['option_id' => 'option_id']);
255   - }
256   -
257   - public function getOptionDefaultLang($array = false) {
258   - $query = $this->getOptionLangs()->where(['language_id' => 0]);
259   - if($array) {
260   - $query->asArray();
261   - }
262   - return $query->one();
263   - }
264   -
265   - public static function markOld($id) {
266   - $model = Option::findOne($id);
267   - $is_new = $model->getOptions()->where(['name' => 'is_new'])->one();
268   - if(empty($is_new)) return false;
269   - $is_newlang = $is_new->getOptionDefaultLang();
270   - $is_newlang->value = '0';
271   - if($is_newlang->save()) {
272   - return true;
273   - } else {
274   - return false;
275   - }
276   - }
277   -
278   -}
frontend/models/OptionLang.php deleted
1   -<?php
2   -
3   -namespace frontend\models;
4   -
5   -use Yii;
6   -
7   -/**
8   - * This is the model class for table "option_lang".
9   - *
10   - * @property integer $id
11   - * @property integer $language_id
12   - * @property string $value
13   - */
14   -class OptionLang extends \yii\db\ActiveRecord
15   -{
16   - /**
17   - * @inheritdoc
18   - */
19   - public static function tableName()
20   - {
21   - return 'option_lang';
22   - }
23   -
24   - /**
25   - * @inheritdoc
26   - */
27   - public function rules()
28   - {
29   - return [
30   - [['option_id', 'language_id'], 'required'],
31   - [['option_id', 'language_id'], 'integer'],
32   - [['value'], 'string']
33   - ];
34   - }
35   -
36   - /**
37   - * @inheritdoc
38   - */
39   - public function attributeLabels()
40   - {
41   - return [
42   - 'option_id' => Yii::t('app', 'ID'),
43   - 'language_id' => Yii::t('app', 'Lang ID'),
44   - 'value' => Yii::t('app', 'Value'),
45   - ];
46   - }
47   -}
frontend/models/OptionLangSearch.php deleted
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   - [['option_language_id', 'option_id', 'language_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   - 'option_language_id' => $this->option_language_id,
60   - 'option_id' => $this->option_id,
61   - 'language_id' => $this->language_id,
62   - ]);
63   -
64   - $query->andFilterWhere(['like', 'value', $this->value]);
65   -
66   - return $dataProvider;
67   - }
68   -}
frontend/models/OptionSearch.php deleted
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\Option;
9   -
10   -/**
11   - * OptionSearch represents the model behind the search form about `frontend\models\Option`.
12   - */
13   -class OptionSearch extends Option
14   -{
15   - /**
16   - * @inheritdoc
17   - */
18   - public function rules()
19   - {
20   - return [
21   - [['option_id', 'model_id', 'option_pid'], 'integer'],
22   - [['model', 'name', 'template'], '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 = Option::find();
45   -
46   - $dataProvider = new ActiveDataProvider([
47   - 'query' => $query,
48   - ]);
49   - $data = [
50   - 'OptionSearch' => [
51   - 'model' => 'Main'
52   - ]
53   - ];
54   -
55   - $this->load($params);
56   -
57   - if (!$this->validate()) {
58   - // uncomment the following line if you do not want to return any records when validation fails
59   - // $query->where('0=1');
60   - return $dataProvider;
61   - }
62   -
63   - $query->andWhere(['option_pid' => null]);
64   -
65   - $query->andFilterWhere([
66   - 'option_id' => $this->option_id,
67   - 'model_id' => $this->model_id,
68   - 'option_pid' => $this->option_pid,
69   - ]);
70   -
71   - $query->andFilterWhere(['like', 'model', $this->model])
72   - ->andFilterWhere(['like', 'name', $this->name])
73   - ->andFilterWhere(['like', 'template', $this->template]);
74   -
75   -
76   - return $dataProvider;
77   - }
78   -}
frontend/models/OptionValues.php deleted
1   -<?php
2   -
3   -namespace frontend\models;
4   -
5   -use Yii;
6   -
7   -/**
8   - * This is the model class for table "option_values".
9   - *
10   - * @property integer $option_value_id
11   - * @property string $option_key
12   - * @property string $option_value_text
13   - * @property integer $option_language_id
14   - * @property integer $option_value_parent
15   - * @property integer $option_user
16   - *
17   - * @property Language $optionLang
18   - */
19   -class OptionValues extends \yii\db\ActiveRecord
20   -{
21   - /**
22   - * @inheritdoc
23   - */
24   - public static function tableName()
25   - {
26   - return 'option_values';
27   - }
28   -
29   - /**
30   - * @inheritdoc
31   - */
32   - public function rules()
33   - {
34   - return [
35   - [['option_key', 'option_value_text'], 'required'],
36   - [['option_language_id', 'option_value_parent', 'option_user'], 'integer'],
37   - [['option_key'], 'string', 'max' => 200]
38   - ];
39   - }
40   -
41   - /**
42   - * @inheritdoc
43   - */
44   - public function attributeLabels()
45   - {
46   - return [
47   - 'option_value_id' => Yii::t('app', 'Option Value ID'),
48   - 'option_key' => Yii::t('app', 'Option Key'),
49   - 'option_value_text' => Yii::t('app', 'Option Value Text'),
50   - 'option_language_id' => Yii::t('app', 'Option Lang ID'),
51   - 'option_value_parent' => Yii::t('app', 'Option Value Parent'),
52   - 'option_user' => Yii::t('app', 'Option User'),
53   - ];
54   - }
55   -
56   - /**
57   - * @return \yii\db\ActiveQuery
58   - */
59   - public function getOptionLang()
60   - {
61   - return $this->hasOne(Language::className(), ['language_id' => 'option_language_id']);
62   - }
63   - public function getLanguages() {
64   - return (new LanguageLang())->find()->orderBy('language_id ASC')->asArray()->all();
65   - }
66   - public function getLanguagesCodes() {
67   - return (new Language())->find()->orderBy('language_id ASC')->asArray()->all();
68   - }
69   - public function getDropDownArray() {
70   - $langs = array();
71   - foreach($this->getLanguages() as $lang) {
72   - $langs[$lang['language_id']] = $lang['lang_title'];
73   - }
74   - return $langs;
75   - }
76   - public function beforeSave($insert) {
77   - if (parent::beforeSave($insert)) {
78   - $this->option_user = \Yii::$app->user->getId();
79   - if($this->option_value_parent == 0) {
80   - unset($this->option_value_parent);
81   - }
82   - return true;
83   - } else {
84   - return false;
85   - }
86   - }
87   - public function getUserOptions() {
88   - return (new OptionValues())->find()->where('option_user=:user')->addParams([':user' => \Yii::$app->user->getID()])->andWhere(['not', ['option_user' => null]])->asArray()->all();
89   - }
90   - public function getUserOptionsArray() {
91   - $options = array('0' => Yii::t('app', 'Default Parent'));
92   - foreach($this->getUserOptions() as $option) {
93   - $options[$option['option_value_id']] = $option['option_key'].' - '.$option['option_value_text'];
94   - }
95   - return $options;
96   - }
97   -}
frontend/models/OptionValuesSearch.php deleted
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\OptionValues;
9   -
10   -/**
11   - * OptionValuesSearch represents the model behind the search form about `frontend\models\OptionValues`.
12   - */
13   -class OptionValuesSearch extends OptionValues
14   -{
15   - /**
16   - * @inheritdoc
17   - */
18   - public function rules()
19   - {
20   - return [
21   - [['option_value_id', 'option_language_id', 'option_value_parent', 'option_user'], 'integer'],
22   - [['option_key', 'option_value_text'], '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 = OptionValues::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   - 'option_value_id' => $this->option_value_id,
60   - 'option_language_id' => $this->option_language_id,
61   - 'option_value_parent' => $this->option_value_parent,
62   - 'option_user' => $this->option_user,
63   - ]);
64   -
65   - $query->andFilterWhere(['like', 'option_key', $this->option_key])
66   - ->andFilterWhere(['like', 'option_value_text', $this->option_value_text]);
67   -
68   - return $dataProvider;
69   - }
70   -}
frontend/models/Options.php deleted
1   -<?php
2   -
3   -namespace frontend\models;
4   -
5   -use Yii;
6   -
7   -/**
8   - * This is the model class for table "option".
9   - *
10   - * @property integer $option_id
11   - * @property string $option_key
12   - * @property integer $option_parent
13   - * @property integer $option_translatable
14   - * @property string $option_format
15   - *
16   - * @property OptionValues[] $optionValues
17   - * @property Options $optionParent
18   - * @property Options[] $options
19   - */
20   -class Options extends \yii\db\ActiveRecord
21   -{
22   - /**
23   - * @inheritdoc
24   - */
25   - public static function tableName ()
26   - {
27   - return 'option';
28   - }
29   -
30   - /**
31   - * @inheritdoc
32   - */
33   - public function rules ()
34   - {
35   - return [
36   - [['option_key'], 'required'], [['option_parent', 'option_translatable'], 'integer'], [['option_key', 'option_format'], 'string', 'max' => 200]
37   - ];
38   - }
39   -
40   - /**
41   - * @inheritdoc
42   - */
43   - public function attributeLabels ()
44   - {
45   - return [
46   - 'option_id' => Yii::t ('app', 'Option ID'), 'option_key' => Yii::t ('app', 'Option Key'), 'option_parent' => Yii::t ('app', 'Option Parent'), 'option_translatable' => Yii::t ('app', 'Option Translatable'), 'option_format' => Yii::t ('app', 'Option Format'),
47   - ];
48   - }
49   -
50   - /**
51   - * @return \yii\db\ActiveQuery
52   - */
53   - public function getOptionLang ()
54   - {
55   - return $this->hasMany (OptionLang::className (), ['option_id' => 'option_id']);
56   - }
57   -
58   - public function getValue ()
59   - {
60   - return $this->hasOne(OptionLang::className(), ['option_id' => 'option_id'])->where(['option_lang.language_id' => '0']);
61   - }
62   -
63   - /**
64   - * @return \yii\db\ActiveQuery
65   - */
66   - public function getOptionParent()
67   - {
68   - return $this->hasOne(Options::className(), ['option_id' => 'option_parent']);
69   - }
70   -
71   - /**
72   - * @return \yii\db\ActiveQuery
73   - */
74   - public function getOptions()
75   - {
76   - return $this->hasMany(Options::className(), ['option_parent' => 'option_id']);
77   - }
78   -}
frontend/models/OptionsSearch.php deleted
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\Options;
9   -
10   -/**
11   - * OptionsSearch represents the model behind the search form about `frontend\models\Options`.
12   - */
13   -class OptionsSearch extends Options
14   -{
15   - /**
16   - * @inheritdoc
17   - */
18   - public function rules()
19   - {
20   - return [
21   - [['option_id', 'option_parent', 'option_translatable'], 'integer'],
22   - [['option_key', 'option_format'], '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 = Options::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   - 'option_id' => $this->option_id,
60   - 'option_parent' => $this->option_parent,
61   - 'option_translatable' => $this->option_translatable,
62   - ]);
63   -
64   - $query->andFilterWhere(['like', 'option_key', $this->option_key])
65   - ->andFilterWhere(['like', 'option_format', $this->option_format]);
66   -
67   - return $dataProvider;
68   - }
69   -}
frontend/views/option-values/_form.php deleted
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\OptionValues */
8   -/* @var $form yii\widgets\ActiveForm */
9   -?>
10   -
11   -<div class="option-values-form">
12   -
13   - <?php $form = ActiveForm::begin(); ?>
14   -
15   - <?= $form->field($model, 'option_key')->textInput(['maxlength' => true]) ?>
16   -
17   - <div class="optionvalues-option_value_text-active">
18   - <?= $form->field($model, 'option_value_text', ['enableClientValidation' => false])->label($model->getAttributeLabel('option_key').' | <span class="glyphicon glyphicon-globe add-langs"></span>')->textInput() ?>
19   -
20   - <?= $form->field($model, 'option_language_id')->dropDownList($model->getDropDownArray()) ?>
21   - </div>
22   -
23   - <?= $form->field($model, 'option_value_parent')->dropDownList($model->getUserOptionsArray()) ?>
24   -
25   - <div class="form-group">
26   - <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
27   - </div>
28   -
29   - <?php ActiveForm::end(); ?>
30   -
31   -</div>
32   -<div class="reserved_inputs">
33   - <div class="lang-inputs form-group optionvalues-option_value_text-lang">
34   - <label for="OptionValues[option_value_text][0]" class="col-xs-12 optionvalues-option_value_text" data-group="optionvalues-option_value_text"><?php echo $model->getAttributeLabel('option_key'); ?> | <span class="glyphicon glyphicon-globe remove-langs"></span></label>
35   - <?php foreach($model->getLanguagesCodes() as $lang) {
36   - ?>
37   - <div class="col-xs-1 text-right"><span><?=$lang['lang_code']?></span></div>
38   - <div class="col-xs-11"><input type="text" id="optionvalues-<?=$lang['lang_code']?>-option_value_text" class="form-control" name="OptionValues[option_value_text][<?=$lang['language_id']?>]" /></div>
39   - <?php
40   - }?>
41   - <div class="clearfix"></div>
42   - </div>
43   -</div>
44   -<script>
45   - $(function() {
46   - $(document).on('click', '.add-langs', function() {
47   - var group = $(this).parent().attr('for');
48   - $(this).parent().parent().appendTo('.reserved_inputs');
49   - $('.field-optionvalues-option_language_id').appendTo('.reserved_inputs');
50   - $('.'+group+'-lang').appendTo('.'+group+'-active');
51   - });
52   - $(document).on('click', '.remove-langs', function() {
53   - var group = $(this).parent().data('group');
54   - $(this).parent().parent().appendTo('.reserved_inputs');
55   - console.log('field-'+group);
56   - $('.reserved_inputs .field-'+group).appendTo('.'+group+'-active');
57   - $('.field-optionvalues-option_language_id').appendTo('.'+group+'-active');
58   - });
59   - });
60   -</script>
61 0 \ No newline at end of file
frontend/views/option-values/_search.php deleted
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\OptionValuesSearch */
8   -/* @var $form yii\widgets\ActiveForm */
9   -?>
10   -
11   -<div class="option-values-search">
12   -
13   - <?php $form = ActiveForm::begin([
14   - 'action' => ['index'],
15   - 'method' => 'get',
16   - ]); ?>
17   -
18   - <?= $form->field($model, 'option_value_id') ?>
19   -
20   - <?= $form->field($model, 'option_key') ?>
21   -
22   - <?= $form->field($model, 'option_value_text') ?>
23   -
24   - <?= $form->field($model, 'option_language_id') ?>
25   -
26   - <?= $form->field($model, 'option_value_parent') ?>
27   -
28   - <?php // echo $form->field($model, 'option_user') ?>
29   -
30   - <div class="form-group">
31   - <?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
32   - <?= Html::resetButton(Yii::t('app', 'Reset'), ['class' => 'btn btn-default']) ?>
33   - </div>
34   -
35   - <?php ActiveForm::end(); ?>
36   -
37   -</div>
frontend/views/option-values/create.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -
5   -
6   -/* @var $this yii\web\View */
7   -/* @var $model frontend\models\OptionValues */
8   -
9   -$this->title = Yii::t('app', 'Create Option Values');
10   -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Option Values'), 'url' => ['index']];
11   -$this->params['breadcrumbs'][] = $this->title;
12   -?>
13   -<div class="option-values-create">
14   -
15   - <h1><?= Html::encode($this->title) ?></h1>
16   -
17   - <?= $this->render('_form', [
18   - 'model' => $model,
19   - ]) ?>
20   -
21   -</div>
frontend/views/option-values/index.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -use yii\grid\GridView;
5   -
6   -/* @var $this yii\web\View */
7   -/* @var $searchModel frontend\models\OptionValuesSearch */
8   -/* @var $dataProvider yii\data\ActiveDataProvider */
9   -
10   -$this->title = Yii::t('app', 'Option Values');
11   -$this->params['breadcrumbs'][] = $this->title;
12   -?>
13   -<div class="option-values-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 Option Values'), ['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   - 'option_value_id',
29   - 'option_key',
30   - 'option_value_text:ntext',
31   - 'option_language_id',
32   - 'option_value_parent',
33   - // 'option_user',
34   -
35   - ['class' => 'yii\grid\ActionColumn'],
36   - ],
37   - ]); ?>
38   -
39   -</div>
frontend/views/option-values/update.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -
5   -/* @var $this yii\web\View */
6   -/* @var $model frontend\models\OptionValues */
7   -
8   -$this->title = Yii::t('app', 'Update {modelClass}: ', [
9   - 'modelClass' => 'Option Values',
10   -]) . ' ' . $model->option_value_id;
11   -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Option Values'), 'url' => ['index']];
12   -$this->params['breadcrumbs'][] = ['label' => $model->option_value_id, 'url' => ['view', 'id' => $model->option_value_id]];
13   -$this->params['breadcrumbs'][] = Yii::t('app', 'Update');
14   -?>
15   -<div class="option-values-update">
16   -
17   - <h1><?= Html::encode($this->title) ?></h1>
18   -
19   - <?= $this->render('_form', [
20   - 'model' => $model,
21   - ]) ?>
22   -
23   -</div>
frontend/views/option-values/view.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -use yii\widgets\DetailView;
5   -
6   -/* @var $this yii\web\View */
7   -/* @var $model frontend\models\OptionValues */
8   -
9   -$this->title = $model->option_value_id;
10   -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Option Values'), 'url' => ['index']];
11   -$this->params['breadcrumbs'][] = $this->title;
12   -?>
13   -<div class="option-values-view">
14   -
15   - <h1><?= Html::encode($this->title) ?></h1>
16   -
17   - <p>
18   - <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->option_value_id], ['class' => 'btn btn-primary']) ?>
19   - <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->option_value_id], [
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   - 'option_value_id',
32   - 'option_key',
33   - 'option_value_text:ntext',
34   - 'option_language_id',
35   - 'option_value_parent',
36   - 'option_user',
37   - ],
38   - ]) ?>
39   -
40   -</div>
frontend/views/option/_form.php
... ... @@ -4,125 +4,30 @@ use yii\helpers\Html;
4 4 use yii\widgets\ActiveForm;
5 5  
6 6 /* @var $this yii\web\View */
7   -/* @var $model frontend\models\Option */
  7 +/* @var $model common\models\Option */
8 8 /* @var $form yii\widgets\ActiveForm */
9 9 ?>
10 10  
11 11 <div class="option-form">
  12 +
12 13 <?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   - <?php foreach($fields as $index => $field) {
20   - ?>
21   - <div class="fields_block">
22   - <label for="Option[0][<?=$field['name']?>]"><?php echo Yii::t('app', $field['name']); ?></label>
23   - <?php
24   - if($field['translate']) { ?><p class="text-right"><span class="glyphicon glyphicon-globe add_lang"></span></p><?php }
25   - ?>
26   - <input type="hidden" name="Option[0][<?=$field['name']?>][template]" value="<?=$field['template']?>"/>
27   - <input type="hidden" name="Option[0][<?=$field['name']?>][translate]" value="<?=$field['translate']?>"/>
28   - <input type="<?=$field['template']?>" name="Option[0][value][<?=$field['name']?>]" class="form-control required main_input" required/>
29   - <?php
30   - if($field['translate']) {
31   - ?>
32   - <div class="lang_inputs" style="display: none">
33   - <?php
34   - foreach($model->getLangs() as $lang) {
35   - ?>
36   - <div class="form-group">
37   - <div class="col-xs-1"><?=$lang['lang_code']?></div>
38   - <div class="col-xs-11"><input type="<?=$field['template']?>" name="Option[0][lang][<?=$field['name']?>][<?=$lang['language_id']?>]" class="form-control" /></div>
39   - <div class="clearfix"></div>
40   - </div>
41   - <?php
42   - }
43   - ?>
44   - </div>
45   - <?php
46   - }
47   - ?>
48   - </div>
49   - <?php
50   - }?>
51   - </div>
52   - <?php
53   - } else {
54   - $first = 1;
55   - foreach($models as $index => $row) {
56   - foreach($row as $key => $value) {
57   - if(!$modellang[$index][$key][0]->hasErrors('value')) {
58   - continue;
59   - }
60   - if($first) {
61   - ?>
62   - <div class="form-group" id="main_row">
63   - <?php
64   - }
65   - ?>
66   - <div class="fields_block">
67   - <label for="Option[0][<?=$key?>]"><?php echo Yii::t('app', $key); ?></label>
68   - <input type="hidden" name="Option[0][template]" value="<?=$value->template?>"/>
69   - <input type="<?=$value->template?>" name="Option[0][value][<?=$key?>]" class="form-control required main_input" required value="<?=$modellang[$index][$key][0]->value?>"/>
70   - <div class="help-block"><?=$modellang[$index][$key][0]->getFirstError('value')?></div>
71   - <?php
72   - if($field['translate']) {
73   - ?>
74   - <div class="lang_inputs">
75   - <?php
76   - foreach($value->getLangs() as $lang) {
77   - ?>
78   - <div class="form-group">
79   - <div class="col-xs-1"><?=$lang['lang_code']?></div>
80   - <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>
81   - </div>
82   - <?php
83   - }
84   - ?>
85   - </div>
86   - <?php
87   - } ?>
88   - </div>
89   - <?php
90   - if($first) {
91   - ?>
92   - </div>
93   - <?php
94   - $first = 0;
95   - }
96   - }
97   - }
98   - }?>
99   -
  14 +
  15 + <?= $form->field($model, 'model')->textInput(['maxlength' => true]) ?>
  16 +
  17 + <?= $form->field($model, 'model_id')->textInput() ?>
  18 +
  19 + <?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
  20 +
  21 + <?= $form->field($model, 'template')->textInput(['maxlength' => true]) ?>
  22 +
  23 + <?= $form->field($model, 'option_pid')->textInput() ?>
  24 +
  25 + <?= $form->field($model, 'date_add')->textInput() ?>
  26 +
100 27 <div class="form-group">
101 28 <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
102 29 </div>
103 30  
104 31 <?php ActiveForm::end(); ?>
105   - <script>
106   - $(function() {
107   - var counter = 0;
108   - $(document).on('click', '.add_row', function() {
109   - counter++;
110   - var clone = $('#main_row').clone().html().replace(new RegExp("Option\\[0\\]", 'g'), "Option["+counter+"]");
111   - $(clone).appendTo('#<?=$form->getId()?>');
112   - $('#<?=$form->getId()?> button[type=submit]').parent().appendTo('#<?=$form->getId()?>');
113   - });
114   - $(document).on('click', '.add_lang', function() {
115   - var field_block = $(this).parent().parent();
116   - if($(this).hasClass('active')) {
117   - $(field_block).find('.main_input').attr('required', '').show();
118   - $(field_block).find('.lang_inputs').hide();
119   - $(this).removeClass('active');
120   - } else {
121   - $(field_block).find('.main_input').removeAttr('required').hide();
122   - $(field_block).find('.lang_inputs').show();
123   - $(this).addClass('active');
124   - }
125   - });
126   - });
127   - </script>
  32 +
128 33 </div>
... ...
frontend/views/option/_form_edit.php deleted
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', $key); ?></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 $language_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>
frontend/views/option/_search.php
... ... @@ -4,7 +4,7 @@ use yii\helpers\Html;
4 4 use yii\widgets\ActiveForm;
5 5  
6 6 /* @var $this yii\web\View */
7   -/* @var $model frontend\models\OptionSearch */
  7 +/* @var $model common\models\OptionSearch */
8 8 /* @var $form yii\widgets\ActiveForm */
9 9 ?>
10 10  
... ... @@ -15,17 +15,19 @@ use yii\widgets\ActiveForm;
15 15 'method' => 'get',
16 16 ]); ?>
17 17  
18   - <?= $form->field($model, 'option_id') ?>
19   -
20 18 <?= $form->field($model, 'model') ?>
21 19  
  20 + <?= $form->field($model, 'option_id') ?>
  21 +
22 22 <?= $form->field($model, 'model_id') ?>
23 23  
24 24 <?= $form->field($model, 'name') ?>
25 25  
26 26 <?= $form->field($model, 'template') ?>
27 27  
28   - <?php // echo $form->field($model, 'parent_id') ?>
  28 + <?php // echo $form->field($model, 'option_pid') ?>
  29 +
  30 + <?php // echo $form->field($model, 'date_add') ?>
29 31  
30 32 <div class="form-group">
31 33 <?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
... ...
frontend/views/option/create.php
... ... @@ -4,16 +4,18 @@ use yii\helpers\Html;
4 4  
5 5  
6 6 /* @var $this yii\web\View */
7   -/* @var $model frontend\models\Option */
  7 +/* @var $model common\models\Option */
8 8  
9 9 $this->title = Yii::t('app', 'Create Option');
10 10 $this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
11 11 $this->params['breadcrumbs'][] = $this->title;
12 12 ?>
13 13 <div class="option-create">
  14 +
14 15 <h1><?= Html::encode($this->title) ?></h1>
15   - <?php foreach($forms as $oneform) {
16   - echo $this->render('_form', $oneform);
17   - }?>
  16 +
  17 + <?= $this->render('_form', [
  18 + 'model' => $model,
  19 + ]) ?>
18 20  
19 21 </div>
... ...
frontend/views/option/index.php
... ... @@ -4,7 +4,7 @@ use yii\helpers\Html;
4 4 use yii\grid\GridView;
5 5  
6 6 /* @var $this yii\web\View */
7   -/* @var $searchModel frontend\models\OptionSearch */
  7 +/* @var $searchModel common\models\OptionSearch */
8 8 /* @var $dataProvider yii\data\ActiveDataProvider */
9 9  
10 10 $this->title = Yii::t('app', 'Options');
... ... @@ -25,12 +25,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
25 25 'columns' => [
26 26 ['class' => 'yii\grid\SerialColumn'],
27 27  
28   - 'option_id',
29 28 'model',
  29 + 'option_id',
30 30 'model_id',
31 31 'name',
32 32 'template',
33   - // 'parent_id',
  33 + // 'option_pid',
  34 + // 'date_add',
34 35  
35 36 ['class' => 'yii\grid\ActionColumn'],
36 37 ],
... ...
frontend/views/option/update.php
... ... @@ -3,19 +3,21 @@
3 3 use yii\helpers\Html;
4 4  
5 5 /* @var $this yii\web\View */
6   -/* @var $model frontend\models\Option */
  6 +/* @var $model common\models\Option */
7 7  
8 8 $this->title = Yii::t('app', 'Update {modelClass}: ', [
9 9 'modelClass' => 'Option',
10   -]) . ' ' . $forms[0]['models'][\Yii::$app->request->get('id')]->name;
  10 +]) . ' ' . $model->name;
11 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]];
  12 +$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->option_id]];
13 13 $this->params['breadcrumbs'][] = Yii::t('app', 'Update');
14 14 ?>
15 15 <div class="option-update">
  16 +
16 17 <h1><?= Html::encode($this->title) ?></h1>
17   - <?php foreach($forms as $oneform) {
18   - echo $this->render('_form_edit', $oneform);
19   - }?>
  18 +
  19 + <?= $this->render('_form', [
  20 + 'model' => $model,
  21 + ]) ?>
20 22  
21 23 </div>
... ...
frontend/views/option/view.php
... ... @@ -4,7 +4,7 @@ use yii\helpers\Html;
4 4 use yii\widgets\DetailView;
5 5  
6 6 /* @var $this yii\web\View */
7   -/* @var $model frontend\models\Option */
  7 +/* @var $model common\models\Option */
8 8  
9 9 $this->title = $model->name;
10 10 $this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
... ... @@ -28,12 +28,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
28 28 <?= DetailView::widget([
29 29 'model' => $model,
30 30 'attributes' => [
31   - 'option_id',
32 31 'model',
  32 + 'option_id',
33 33 'model_id',
34 34 'name',
35 35 'template',
36   - 'parent_id',
  36 + 'option_pid',
  37 + 'date_add',
37 38 ],
38 39 ]) ?>
39 40  
... ...
frontend/views/options/_form.php deleted
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\Options */
8   -/* @var $form yii\widgets\ActiveForm */
9   -?>
10   -
11   -<div class="options-form">
12   -
13   - <?php $form = ActiveForm::begin(); ?>
14   -
15   - <?= $form->field($model, 'option_key')->textInput(['maxlength' => true]) ?>
16   -
17   - <?= $form->field($model, 'option_parent')->textInput() ?>
18   -
19   - <?= $form->field($model, 'option_translatable')->textInput() ?>
20   -
21   - <?= $form->field($model, 'option_format')->textInput(['maxlength' => true]) ?>
22   -
23   - <div class="form-group">
24   - <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
25   - </div>
26   -
27   - <?php ActiveForm::end(); ?>
28   -
29   -</div>
frontend/views/options/_search.php deleted
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\OptionsSearch */
8   -/* @var $form yii\widgets\ActiveForm */
9   -?>
10   -
11   -<div class="options-search">
12   -
13   - <?php $form = ActiveForm::begin([
14   - 'action' => ['index'],
15   - 'method' => 'get',
16   - ]); ?>
17   -
18   - <?= $form->field($model, 'option_id') ?>
19   -
20   - <?= $form->field($model, 'option_key') ?>
21   -
22   - <?= $form->field($model, 'option_parent') ?>
23   -
24   - <?= $form->field($model, 'option_translatable') ?>
25   -
26   - <?= $form->field($model, 'option_format') ?>
27   -
28   - <div class="form-group">
29   - <?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
30   - <?= Html::resetButton(Yii::t('app', 'Reset'), ['class' => 'btn btn-default']) ?>
31   - </div>
32   -
33   - <?php ActiveForm::end(); ?>
34   -
35   -</div>
frontend/views/options/create.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -
5   -
6   -/* @var $this yii\web\View */
7   -/* @var $model frontend\models\Options */
8   -
9   -$this->title = Yii::t('app', 'Create Options');
10   -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
11   -$this->params['breadcrumbs'][] = $this->title;
12   -?>
13   -<div class="options-create">
14   -
15   - <h1><?= Html::encode($this->title) ?></h1>
16   -
17   - <?= $this->render('_form', [
18   - 'model' => $model,
19   - ]) ?>
20   -
21   -</div>
frontend/views/options/index.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -use yii\grid\GridView;
5   -
6   -/* @var $this yii\web\View */
7   -/* @var $searchModel frontend\models\OptionsSearch */
8   -/* @var $dataProvider yii\data\ActiveDataProvider */
9   -
10   -$this->title = Yii::t('app', 'Options');
11   -$this->params['breadcrumbs'][] = $this->title;
12   -?>
13   -<div class="options-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 Options'), ['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   - 'option_id',
29   - 'option_key',
30   - 'option_parent',
31   - 'option_translatable',
32   - 'option_format',
33   -
34   - ['class' => 'yii\grid\ActionColumn'],
35   - ],
36   - ]); ?>
37   -
38   -</div>
frontend/views/options/update.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -
5   -/* @var $this yii\web\View */
6   -/* @var $model frontend\models\Options */
7   -
8   -$this->title = Yii::t('app', 'Update {modelClass}: ', [
9   - 'modelClass' => 'Options',
10   -]) . ' ' . $model->option_id;
11   -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
12   -$this->params['breadcrumbs'][] = ['label' => $model->option_id, 'url' => ['view', 'id' => $model->option_id]];
13   -$this->params['breadcrumbs'][] = Yii::t('app', 'Update');
14   -?>
15   -<div class="options-update">
16   -
17   - <h1><?= Html::encode($this->title) ?></h1>
18   -
19   - <?= $this->render('_form', [
20   - 'model' => $model,
21   - ]) ?>
22   -
23   -</div>
frontend/views/options/view.php deleted
1   -<?php
2   -
3   -use yii\helpers\Html;
4   -use yii\widgets\DetailView;
5   -
6   -/* @var $this yii\web\View */
7   -/* @var $model frontend\models\Options */
8   -
9   -$this->title = $model->option_id;
10   -$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Options'), 'url' => ['index']];
11   -$this->params['breadcrumbs'][] = $this->title;
12   -?>
13   -<div class="options-view">
14   -
15   - <h1><?= Html::encode($this->title) ?></h1>
16   -
17   - <p>
18   - <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->option_id], ['class' => 'btn btn-primary']) ?>
19   - <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->option_id], [
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   - 'option_id',
32   - 'option_key',
33   - 'option_parent',
34   - 'option_translatable',
35   - 'option_format',
36   - ],
37   - ]) ?>
38   -
39   -</div>