Blame view

common/modules/blog/views/article/_form.php 8.46 KB
4921cad4   Yarik   Добален блог v 0....
1
2
  <?php
  use common\modules\blog\models\ArticleCategory;
6506d20d   Yarik   Коммит 25.15.2015...
3
  use common\modules\blog\models\ArticleMedia;
498b0133   Yarik   Добавлен виджет м...
4
  use common\widgets\Multilang;
4921cad4   Yarik   Добален блог v 0....
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
  use yii\bootstrap\ActiveForm;
  use common\modules\blog\models\Article;
  use yii\bootstrap\Html;
  use mihaildev\ckeditor\CKEditor;
  use yii\helpers\Json;
  use yii\helpers\Url;
  use yii\widgets\Pjax;
  
  $def_lang = array_keys($langs)[0];
  $uploaddir = \Yii::getAlias('@saveImageDir');
  ?>
  <div class="article-form">
  
      <?php $form = \yii\bootstrap\ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
  
          <?= $form->field($article, 'code')->hint(Yii::t('app', 'Insensitive latin non-space'))->textInput() ?>
  
          <?= $form->field($article, 'tags')->hint(Yii::t('app', 'Comma-separated'))->textInput() ?>
  
          <?= $form->field($article, 'sort')->input('number') ?>
  
          <?= $form->field($article, 'parent_id')
                      ->dropDownList(Article::findArticleDropdown($article->id), ['prompt' => Yii::t('app', 'Select parent')]) ?>
  
          <?= $form->field($article, 'articleCategoriesArray')
                      ->dropDownList(ArticleCategory::findArticleCategoryDropdown(NULL), ['multiple' => 'multiple'])->label(\Yii::t('app', 'Article Categories Array')); ?>
  
          <?= $form->field($article, 'active')->checkbox() ?>
  
          <ul class="nav nav-tabs" id="image-tabs" role="tablist">
6506d20d   Yarik   Коммит 25.15.2015...
35
36
37
              <li role="image_inputs" class="active" data-type="full"><a href="#image-full" aria-controls="image-full" role="tab" data-toggle="tab"><span><?= \Yii::t('app', 'full')?></span></a></li>
              <li role="image_inputs" class="" data-type="preview"><a href="#image-preview" aria-controls="image-preview" role="tab" data-toggle="tab"><span><?= \Yii::t('app', 'preview')?></span></a></li>
              <li role="image_inputs" class="" data-type="additional"><a href="#image-additional" aria-controls="image-additional" role="tab" data-toggle="tab"><span><?= \Yii::t('app', 'additional')?></span></a></li>
4921cad4   Yarik   Добален блог v 0....
38
39
          </ul>
          <div class="tab-content image-tab-content">
6506d20d   Yarik   Коммит 25.15.2015...
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
              <div role="" class="tab-pane active main-tab" id="image-full">
                  <?php
                  $imagelang = Multilang::begin([
                      'ajaxpath' => Url::to(['/blog/ajax/article-media-form?type=full']),
                      'form' => $form,
                      'data_langs' => $article->getIsNewRecord()?$images:ArticleMedia::find()->where(['article_id' => $article->id, 'type' => 'full'])->indexBy('lang_id')->all()
                  ]);
                  $first = 1;
                  foreach($images as $lang => $value) {
                      if(!array_key_exists('full', $value)) continue;
                      ?>
                      <div role="" class="tab-pane <?php if($first) { echo 'active main-tab'; } ?>" id="<?=$imagelang->id?>-<?=$lang?>">
                          <?php
                          echo $form->field($images[$lang]['full'], "[{$lang}][full]lang_id")->label(false)->hiddenInput(['value' => $lang]);
                          echo $form->field($images[$lang]['full'], "[{$lang}][full]imageFile")->fileInput(['class' => 'image_inputs_field']);
                          if(!empty($images[$lang]['full']->id)) {
                              echo "<img src='/images/upload/{$images[$lang]['full']->media->hash}/original.{$images[$lang]['full']->media->extension}' width='100' class='image_inputs_prev'>";
                          }
                          ?>
                      </div>
                  <?php
                      $first = 0;
                  }
                  $imagelang->end();
4921cad4   Yarik   Добален блог v 0....
64
                  ?>
6506d20d   Yarik   Коммит 25.15.2015...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
              </div>
              <div role="" class="tab-pane" id="image-preview">
                  <?php
                  $imagelang = Multilang::begin([
                      'ajaxpath' => Url::to(['/blog/ajax/article-media-form?type=preview']),
                      'form' => $form,
                      'data_langs' => $article->getIsNewRecord()?$images:ArticleMedia::find()->where(['article_id' => $article->id, 'type' => 'preview'])->indexBy('lang_id')->all()
                  ]);
                  $first = 1;
                  foreach($images as $lang => $value) {
                      if(!array_key_exists('preview', $value)) continue;
                      ?>
                      <div role="" class="tab-pane <?php if($first) { echo 'active main-tab'; } ?>" id="<?=$imagelang->id?>-<?=$lang?>">
                          <?php
                          echo $form->field($images[$lang]['preview'], "[{$lang}][preview]lang_id")->label(false)->hiddenInput(['value' => $lang]);
                          echo $form->field($images[$lang]['preview'], "[{$lang}][preview]imageFile")->fileInput(['class' => 'image_inputs_field']);
                          if(!empty($images[$lang]['preview']->id)) {
                              echo "<img src='/images/upload/{$images[$lang]['preview']->media->hash}/original.{$images[$lang]['preview']->media->extension}' width='100' class='image_inputs_prev'>";
4921cad4   Yarik   Добален блог v 0....
83
                          }
6506d20d   Yarik   Коммит 25.15.2015...
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
                          ?>
                      </div>
                      <?php
                      $first = 0;
                  }
                  $imagelang->end();
                  ?>
              </div>
              <div role="" class="tab-pane" id="image-additional">
                  <?php
                  echo $form->field(is_array($images[0]['additional'])?$images[0]['additional'][0]:$images[0]['additional'], "[0][additional]imageFile[]")->fileInput(['multiple' => 'multiple', 'class' => 'image_inputs_field']);
                  if(is_array($images[0]['additional']) && count($images[0]['additional']) > 1) {
                      foreach($images[0]['additional'] as $onefield => $oneimage) {
                          if($onefield) {
                              ?>
                              <div class="additional_image_container">
                                  <img src='/images/upload/<?= $oneimage->media->hash ?>/original.<?= $oneimage->media->extension ?>' width='100'>
                                  <a
                                      href="<?= Url::to(['ajax/remove-image']) ?>"
                                      class="remove_image glyphicon glyphicon-remove-circle"
                                      data-params='<?= Json::encode(['article_media_id' => $oneimage->id, 'remove_media' => true]) ?>',
                                  ></a>
                              </div>
                              <?php
4921cad4   Yarik   Добален блог v 0....
108
109
                          }
                      }
6506d20d   Yarik   Коммит 25.15.2015...
110
111
112
                  }
                  ?>
              </div>
4921cad4   Yarik   Добален блог v 0....
113
114
115
116
          </div>
  
          <hr>
  
498b0133   Yarik   Добавлен виджет м...
117
118
119
          <?php
          $multilang = Multilang::begin(['ajaxpath' => Url::to(['/blog/ajax/article-form']), 'form' => $form, 'data_langs' => $article_langs]);
          ?>
4921cad4   Yarik   Добален блог v 0....
120
121
122
123
              <?php
              $first = 1;
              foreach($article_langs as $index => $article_lang) {
                  ?>
498b0133   Yarik   Добавлен виджет м...
124
125
                  <div role="" class="tab-pane <?php if($first) { echo 'active main-tab'; } ?>" id="<?=$multilang->id?>-<?=$index?>">
  
4921cad4   Yarik   Добален блог v 0....
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
                      <?= $form->field($article_langs[$index], "[$index]lang_id")->label(false)->hiddenInput(['value' => $index]) ?>
  
                      <?= $form->field($article_langs[$index], "[$index]text")->widget(CKEditor::className(),['editorOptions' => [ 'preset' => 'full', 'inline' => false, ], ]); ?>
  
                      <?= $form->field($article_langs[$index], "[$index]preview")->widget(CKEditor::className(),['editorOptions' => [ 'preset' => 'full', 'inline' => false, ], ]); ?>
  
                      <?= $form->field($article_langs[$index], "[$index]seo_url")->textInput() ?>
  
                      <?= $form->field($article_langs[$index], "[$index]name")->textInput() ?>
  
                      <?= $form->field($article_langs[$index], "[$index]meta_title")->textInput() ?>
  
                      <?= $form->field($article_langs[$index], "[$index]meta_descr")->textarea(); ?>
  
                      <?= $form->field($article_langs[$index], "[$index]meta_keywords")->textInput() ?>
  
                      <?= $form->field($article_langs[$index], "[$index]h1_tag")->textInput() ?>
  
                      <?= $form->field($article_langs[$index], "[$index]tags")->textInput() ?>
  
                  </div>
              <?php
                  $first = 0;
              }
              ?>
498b0133   Yarik   Добавлен виджет м...
151
152
153
          <?php
          $multilang->end();
          ?>
4921cad4   Yarik   Добален блог v 0....
154
155
156
157
158
159
160
161
162
163
164
  
          <div class="form-group">
              <?= Html::submitButton($article->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $article->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
          </div>
  
      <?php ActiveForm::end(); ?>
  
  </div>
  <script>
      var confirm_message = '<?= \Yii::t('app', 'Remove image?') ?>';
  </script>