Blame view

backend/modules/menu/views/item/_form.php 4.97 KB
d1f8bd40   Alexey Boroda   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
  <?php
  use yii\helpers\Html;
  //
  use thread\app\bootstrap\ActiveForm;
  //
  use backend\modules\menu\models\MenuItem;
  
  /**
   * @var $model \backend\modules\menu\models\MenuItem
   * @var $modelLang \backend\modules\menu\models\MenuItemLang
   */
  $type = array_keys(MenuItem::linkTypeRange())[0];
  if (isset($model['link_type'])) {
      $type = $model['link_type'];
  }
  
  if (empty($model['internal_source'])):
      $model['internal_source'] = array_keys(MenuItem::getSourcesList())[0];
  endif;
  //
  $form = ActiveForm::begin();
  //
  echo $form->submit($model, $this)
      . Html::activeHiddenInput($model, 'group_id', ['value' => $this->context->group->id])
      . Html::activeHiddenInput($model, 'tree', ['value' => $this->context->group->id])
      . Html::activeHiddenInput($model, 'parent_id',
          [
              'value' => (Yii::$app->request->get('parent_id'))
                  ? Yii::$app->request->get('parent_id')
                  : 0
          ]
      )
      . $form->text_line_lang($modelLang, 'title');
  ?>
  <?= $form->field($model, 'parent')->dropDownList(\thread\app\helpers\tree\TreeHelper::dropDownTreeList($this->context->group->id, MenuItem::class)) ?>
  <hr>
  <?= $form->field($model, 'link_type')->dropDownList(MenuItem::linkTypeRange()) ?>
  
  <div class="menuitem-link_type_internal" style="display:<?= ($type == 'internal') ? 'block' : 'none' ?>">
      <?= $form->field($model, 'internal_source')->dropDownList(MenuItem::getTypeSources(), ['prompt' => '']) ?>
  
      <?php foreach (MenuItem::getSourcesList() as $key => $data):
          echo Html::beginTag('div', [
                  'class' => $key . ' internal_sources',
                  'style' => 'display:' . (($model['internal_source'] == $key) ? 'block' : 'none')
              ])
              . $form->field($model, 'internal_source_id')->dropDownList(call_user_func([$data['class'], $data['method']]), ['prompt' => ''])->label($data['label'])
              . Html::endTag('div');
      endforeach;
  
      echo $form->field($model, 'internal_source_id', ['inputOptions' => ['class' => 'internal_source_id_hidden']])->hiddenInput()->label(false);
      ?>
  
  </div>
  
  <div class="menuitem-link_type_external" style="display:<?= ($type == 'external') ? 'block' : 'none' ?>">
      <div class="col-md-10">
          <?= $form->text_line($modelLang, 'external_link', [
              'inputOptions' => [
                  'id' => 'link_type_external'
              ]
          ])
          . $form->field($model, 'link_target')->dropDownList(MenuItem::linkTargetRange()) ?>
      </div>
      <div class="col-md-2">
          <?= Html::a('Select file', "javascript:open_popup('" . \yii\helpers\Url::base() . "js/filemanager/dialog.php?type=0&popup=1&field_id=link_type_external&relative_url=1');", [
              'class' => 'btn btn-success',
              'style' => 'margin-top: 23px;'
          ]) ?>
      </div>
  </div>
  
  <div class="menuitem-link_type_permanent" style="display:<?= ($type == 'permanent') ? 'block' : 'none' ?>">
      <?= $form->field($model, 'permanent_link', [
          'inputOptions' => [
              'id' => 'link_type_permanent'
          ]
      ])->dropDownList(MenuItem::getPermanentLink()) ?>
  </div>
  
  <div class="row control-group">
      <div class="col-md-3">
          <?= $form->switcher($model, 'published') ?>
      </div>
      <div class="col-md-3">
          <?= $form->text_line($model, 'position') ?>
      </div>
  </div>
  
  <?php
  echo $form->submit($model, $this);
  //
  ActiveForm::end();
  //
  $this->registerJs("
      $('#menuitem-link_type').on('change', function(){
          var val = this.value;
  
          if(this.value == 'permanent'){
              $('.menuitem-link_type_permanent').show();
              $('.menuitem-link_type_external').hide();
              $('.menuitem-link_type_internal').hide();
          }else if(this.value == 'internal'){
              $('.menuitem-link_type_internal').show();
              $('.menuitem-link_type_external').hide();
              $('.menuitem-link_type_permanent').hide();
          }else{
              $('.menuitem-link_type_internal').hide();
              $('.menuitem-link_type_external').show();
              $('.menuitem-link_type_permanent').hide(); 
          }
          console.log(val);
      });
      $('#menuitem-internal_source').on('change', function(){
          var val = this.value;
          $('.internal_sources').hide();
          $('.'+val).show();
          console.log(val);
      });
  
      $('#menuitem-internal_source_id').on('change', function(){
          var val = this.value;
          $('.internal_source_id_hidden').val(val);
      });
      
  //    $('#link_type_external').keypress(function(){
  //        $('#model_link').val($('#link_type_external').val());
  //    })
  //    
  //    $('#link_type_permanent').keypress(function(){
  //        $('#model_link').val($('#link_type_permanent').val());
  //    })
  ");
  ?>
  <script>
      function open_popup(url) {
          var w = 880;
          var h = 570;
          var l = Math.floor((screen.width - w) / 2);
          var t = Math.floor((screen.height - h) / 2);
          var win = window.open(url, 'ResponsiveFilemanager', "scrollbars=1,width=" + w + ",height=" + h + ",top=" + t + ",left=" + l);
      }
  </script>