_form.php 4.9 KB
<?php
    
    use artbox\core\admin\assets\Switchery;
    use dosamigos\tinymce\TinyMce;
    use kartik\file\FileInput;
    use kartik\select2\Select2;
    use yii\helpers\Html;
    use yii\helpers\Url;
    use yii\web\JsExpression;
    use yii\web\View;
    use yii\widgets\ActiveForm;
    
    /* @var $this yii\web\View */
    /* @var $model \common\models\Book */
    /* @var $form yii\widgets\ActiveForm */
    /* @var array $data*/
    
    Switchery::register($this);
    $js = <<< JS
$('.switchery').each(function(idx, elem) {
  new Switchery(elem, {
    color:'#46b749',
    secondaryColor:'#e2e2e2'
  });
});

JS;
    
    
    $this->registerJs($js, View::POS_READY);
    
    if (!empty($model->image)) {
            $files[] ='<img src="/storage/books/' . $model->id . '/' . $model->image . '" class="file-preview-image kv-preview-data rotate-35921 is-portrait-gt4" style="width:200px;" title="' . $model->image . '">';
        $config [] = ["url" => "delete-image", "key" => 0, 'extra' => ['image' => $model->image, 'id' => $model->id]];
    } else {
        $files = [];
        $config = [];
    }
?>

<div class="feedback-form">
    
    <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
    
    <?= $form->field($model, 'title')
             ->textInput([ 'maxlength' => true ]) ?>
    <?php echo FileInput::widget(
        [
            'name'          => 'file',
            'options'       => [
                'multiple' => false,
                'accept'   => 'image/*',
            ],
            'pluginOptions' => [
                'maxFileCount'     => 1,
                'showUpload'       => false,
                'removeClass'      => 'btn btn-danger',
                'removeIcon'       => '<i class="glyphicon glyphicon-trash"></i> ',
                'initialPreview'   => $files,
                'overwriteInitial' => true,
                'initialPreviewConfig'        => $config
            ],
        ]
    ) ?>
  
  <?php
      if (!$model->isNewRecord){
          echo $model->author->name.' '.$model->author->secondname;
      }else{
          echo $form->field($model, 'author_id')
                    ->widget(
                        Select2::classname(),
                        [
                            'data'          => $data,
                            'pluginOptions' => [
                                'allowClear' => true,
                            ],
                        ]
                    );
      }
      ?>
    
    <?= $form->field($model, 'description')
             ->widget(
                 TinyMce::className(),
                 [
                     'options'       => [ 'rows' => 30 ],
                     'language'      => 'ru',
                     'clientOptions' => [
                         'file_browser_callback' => new JsExpression(
                             "function(field_name, url, type, win) {
window.open('" . Url::to(
                                 [
                                     'imagemanager/manager',
                                     'view-mode'   => 'iframe',
                                     'select-type' => 'tinymce',
                                 ]
                             ) . "&tag_name='+field_name,'','width=800,height=540 ,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no');
}"
                         ),
                         'plugins'               => [
                             "advlist autolink lists link charmap print preview anchor",
                             "searchreplace visualblocks code fullscreen",
                             "insertdatetime media table contextmenu paste image",
                         ],
                         'toolbar'               => "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | code",
                         'image_advtab'          => true,
                     ],
                 ]
             ); ?>
    
    <?= $form->field($model, 'preview')
             ->textarea(
                 [
                     'rows' => '10',
                 ]
             ) ?>
  
  
    
    <?= $form->field($model, 'status')->widget(
        Select2::classname(),
        [
            'data'          => $model->getStatuses(),
            'pluginOptions' => [
                'allowClear' => true,
            ],
        ]
    );
            ?>
    <?= $form->field($model, 'price')
             ->textInput() ?>
    <?= $form->field($model, 'on_main')
             ->checkbox(
                 [
                     'class' => 'switchery',
                 ]
             ) ?>
    
    <div class="form-group">
        <?= Html::submitButton(
            $model->isNewRecord ? Yii::t('core', 'Create') : Yii::t('core', 'Update'),
            [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]
        ) ?>
    </div>
    
    <?php ActiveForm::end(); ?>

</div>