_form.php 4.9 KB
<?php
    
    use common\modules\language\widgets\LanguageForm;
    use common\modules\product\models\Category;
    use common\modules\product\models\CategoryLang;
    use yii\helpers\Html;
    use yii\web\View;
    use yii\widgets\ActiveForm;
    use mihaildev\ckeditor\CKEditor;
    use mihaildev\elfinder\ElFinder;
    
    /**
     * @var View           $this
     * @var Category       $model
     * @var CategoryLang[] $model_langs
     * @var string[]       $categories
     * @var ActiveForm     $form
     */
?>

<div class="category-form">
    
    <?php $form = ActiveForm::begin([
        'enableClientValidation' => false,
        'options'                => [ 'enctype' => 'multipart/form-data' ],
    ]); ?>
    
    <?= $form->field($model, 'name')
             ->textInput() ?>
    
    <?= $form->field($model, 'alias')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'parent_id')
             ->dropDownList($categories, [
                 'prompt'  => Yii::t('rubrication', 'Root category'),
                 'options' => [
                     $model->category_id => [ 'disabled' => true ],
                 ],
             ])
             ->label(Yii::t('product', 'Parent category')) ?>
    
    <?php
        /* Tax group - add to controller
        ?>
        <?= $form->field($model, 'taxGroup')->widget(Select2::className(), [
                'data' => \yii\helpers\ArrayHelper::map(\common\modules\rubrication\models\TaxGroup::find()->all(), 'tax_group_id', 'name'),
                'language' => 'ru',
                'options' => [
                    'placeholder' => 'Linked options',
                    'multiple' => true,
                ],
                'pluginOptions' => [
                    'allowClear' => true
                ],
            ]
        ) ?>
        */
    ?>
    
    <?= $form->field($model, 'imageUpload')
             ->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',
                 ],
             ])
             ->hint('Для корректного отображения на сайте, размер изображения должен быть 262x144 либо соблюдать соотношение сторон примерно 2:1'); ?>
    
    <?= $form->field($model, 'meta_title')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'meta_desc')
             ->textarea([ 'rows' => 6 ]) ?>
    
    <?= $form->field($model, 'meta_robots')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'h1')
             ->textInput([ 'maxlength' => true ]) ?>
    
    <?= $form->field($model, 'seo_text')
             ->widget(CKEditor::className(), [
                 'editorOptions' => ElFinder::ckeditorOptions('elfinder', [
                     'preset'               => 'full',
                     //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать
                     'inline'               => false,
                     //по умолчанию false]),
                     'filebrowserUploadUrl' => Yii::$app->getUrlManager()
                                                        ->createUrl('file/uploader/images-upload'),
                 ]),
             ]) ?>
    
    <?= LanguageForm::widget([
        'model_langs' => $model_langs,
        'formView'    => '@backend/views/category/_form_language',
        'form'        => $form,
    ]) ?>
    
    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? Yii::t('product', 'Create') : Yii::t('product', 'Update'), [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?>
        <?php if($model->isNewRecord) : ?>
            <?= Html::submitButton(Yii::t('product', 'Create and continue'), [
                'name'  => 'create_and_new',
                'class' => 'btn btn-primary',
            ]) ?>
        <?php endif ?>
    </div>
    
    <?php ActiveForm::end(); ?>

</div>