Blame view

common/models/OptionHelper.php 4.89 KB
b0f143c3   Yarik   first commit
1
2
3
4
5
6
7
8
9
10
11
12
  <?php
  
  namespace common\models;
  
  use frontend\models\Options;
  use Yii;
  use yii\base\InvalidParamException;
  use yii\base\Model;
  
  class OptionHelper extends Model
  {
      const OPTION_OBJECT = 1;
27f8af79   Yarik   test
13
  
b0f143c3   Yarik   first commit
14
      const OPTION_ARRAY = 2;
27f8af79   Yarik   test
15
  
b0f143c3   Yarik   first commit
16
      const OPTION_VALUE = 3;
27f8af79   Yarik   test
17
  
b0f143c3   Yarik   first commit
18
19
      public function getRule($return = 3)
      {
cdb04594   Yarik   test
20
          $result = Option::find()->where(['name' => 'rules'])->with('value');
b0f143c3   Yarik   first commit
21
22
23
24
25
26
27
28
29
30
          if($return == self::OPTION_OBJECT) {
              return $result->one();
          } elseif($return == self::OPTION_ARRAY) {
              return $result->asArray()->one();
          } elseif($return == self::OPTION_VALUE) {
              return $result->one()->value->value;
          } else {
              throw new InvalidParamException(Yii::t('app', 'Must be 1-3'));
          }
      }
cd6bd007   Yarik   test
31
      /*
27f8af79   Yarik   test
32
33
34
35
36
37
38
      public function createOptions($user_id)
      {
          if($rows_delete = \Yii::$app->db->createCommand()->delete('option', ['model' => 'common\models\User', 'model_id' => $user_id])->execute()) {
              Yii::trace( $rows_delete . " rows has been deleted.");
          } else {
              Yii::trace( "No rows has been deleted" );
          }
cd6bd007   Yarik   test
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
          $rows_insert = Yii::$app->db->createCommand()->batchInsert(
              'option',
              ['model', 'model_id', 'name', 'template'],
              [
                  ['common\models\User', $user_id, 'education', '{"template":"empty","params":{"multiple":true}}'],
                  ['common\models\User', $user_id, 'development', '{"template":"empty","params":{"multiple":true}}'],
                  ['common\models\User', $user_id, 'courses', '{"template":"empty","params":{"multiple":true}}'],
                  ['common\models\User', $user_id, 'jobs', '{"template":"empty","params":{"multiple":true}}'],
                  ['common\models\User', $user_id, 'social', '{"template":"empty","params":{"multiple":true}}'],
              ]
          )->execute();
          Yii::trace( $rows_insert . " rows has been inserted" );
          $parent_rows = Option::find()->where(['model' => 'common\models\User', 'model_id' => $user_id, 'option_pid' => NULL])->indexBy('name')->all();
          $rows_insert = Yii::$app->db->createCommand()->batchInsert(
              'option',
              ['model', 'model_id', 'name', 'template', 'option_pid'],
              [
                  ['common\models\User', $user_id, 'year_from', '{"template":"input","params":{"type":"number"}}', $parent_rows['education']->option_id],
                  ['common\models\User', $user_id, 'year_to', '{"template":"input","params":{"type":"number"}}', $parent_rows['education']->option_id],
                  ['common\models\User', $user_id, 'place', '{"template":"textInput","params":[]}', $parent_rows['education']->option_id],
                  ['common\models\User', $user_id, 'year', '{"template":"input","params":{"type":"number"}}', $parent_rows['development']->option_id],
                  ['common\models\User', $user_id, 'name', '{"template":"textInput","params":[]}', $parent_rows['development']->option_id],
                  ['common\models\User', $user_id, 'year', '{"template":"input","params":{"type":"number"}}', $parent_rows['courses']->option_id],
                  ['common\models\User', $user_id, 'name', '{"template":"textInput","params":[]}', $parent_rows['courses']->option_id],
                  ['common\models\User', $user_id, 'country', '{"template":"textInput","params":[]}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'date_from', '{"template":"datePicker","params":{"dateFormat":"dd-MM-yyyy"}}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'date_to', '{"template":"datePicker","params":{"dateFormat":"dd-MM-yyyy"}}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'type', '{"template":"textInput","params":[]}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'team', '{"template":"input","params":{"type":"number"}}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'time', '{"template":"input","params":{"type":"number"}}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'percent', '{"template":"input","params":{"type":"number"}}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'position', '{"template":"textInput","params":[]}', $parent_rows['jobs']->option_id],
                  ['common\models\User', $user_id, 'facebook', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
                  ['common\models\User', $user_id, 'twitter', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
                  ['common\models\User', $user_id, 'linkedin', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
                  ['common\models\User', $user_id, 'vk', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
              ]
          )->execute();
27f8af79   Yarik   test
77
78
      }
  
cd6bd007   Yarik   test
79
80
      */
  
b0f143c3   Yarik   first commit
81
  }