_form.php 3.95 KB
<?php
    
    use common\modules\blog\models\BlogArticle;
    use common\modules\blog\models\BlogArticleLang;
    use common\modules\blog\models\BlogCategory;
    use common\modules\blog\models\BlogTag;
    use kartik\select2\Select2;
    use yii\helpers\Html;
    use yii\web\View;
    use yii\widgets\ActiveForm;
    use common\modules\language\widgets\LanguageForm;
    
    /**
     * @var View              $this
     * @var BlogArticle       $model
     * @var ActiveForm        $form
     * @var BlogArticleLang[] $modelLangs
     * @var BlogCategory[]    $categories
     * @var BlogTag[]         $tags
     */
?>

<div class="blog-article-form">
    
    <?php $form = ActiveForm::begin(
        [
            'options' => [ 'enctype' => 'multipart/form-data' ],
        ]
    ); ?>
    
    <?php
        echo LanguageForm::widget(
            [
                'modelLangs' => $modelLangs,
                'formView'   => '@common/modules/blog/views/blog-article/_form_language',
                'form'       => $form,
            ]
        );
    ?>
    
    <?php
        echo $form->field($model, 'blogCategories')
                  ->widget(
                      Select2::className(),
                      [
                          'data'          => $categories,
                          'theme'         => Select2::THEME_BOOTSTRAP,
                          'options'       => [
                              'placeholder' => \Yii::t('blog', 'Select category'),
                              'multiple'    => true,
                          ],
                          'pluginOptions' => [
                              'allowClear' => true,
                          ],
                      ]
                  );
    ?>
    
    <?php
        echo $form->field($model, 'blogTags')
                  ->widget(
                      Select2::className(),
                      [
                          'data'          => $tags,
                          'theme'         => Select2::THEME_BOOTSTRAP,
                          'options'       => [
                              'placeholder' => \Yii::t('blog', 'Select tag'),
                              'multiple'    => true,
                          ],
                          'pluginOptions' => [
                              'allowClear' => true,
                          ],
                      ]
                  );
    ?>
    
    <?= $form->field($model, 'image')
             ->widget(
                 \kartik\file\FileInput::className(),
                 [
                     'language'      => 'ru',
                     'options'       => [
                         'accept'   => 'image/*',
                         'multiple' => false,
                     ],
                     'pluginOptions' => [
                         'allowedFileExtensions' => [
                             'jpg',
                             'gif',
                             'png',
                         ],
                         'initialPreview'        => !empty( $model->imageUrl ) ? \common\components\artboximage\ArtboxImageHelper::getImage(
                             $model->imageUrl,
                             'list'
                         ) : '',
                         'overwriteInitial'      => true,
                         'showRemove'            => false,
                         'showUpload'            => false,
                         'previewFileType'       => 'image',
                     ],
                 ]
             ); ?>
    
    <?= $form->field($model, 'sort')
             ->textInput() ?>
    
    <?= $form->field($model, 'status')
             ->checkbox() ?>
    
    <?= $form->field($model, 'author_id')
             ->textInput() ?>
    
    <div class="form-group">
        <?= Html::submitButton(
            $model->isNewRecord ? 'Create' : 'Update',
            [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]
        ) ?>
    </div>
    
    <?php ActiveForm::end(); ?>

</div>