_form.php 5.89 KB
<?php
use common\modules\blog\models\ArticleCategory;
use common\widgets\Multilang;
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">
            <?php
            $first = 1;
            foreach($images as $index => $image) {
                ?>
                <li role="image_inputs" class="<?php if($first) { echo 'active'; }?>" data-type="<?=$index?>"><a href="#image-<?=$index?>" aria-controls="image-<?=$index?>" role="tab" data-toggle="tab"><span><?= \Yii::t('app', $index)?></span></a></li>
                <?php
                $first = 0;
            }
            ?>
        </ul>
        <div class="tab-content image-tab-content">
            <?php
            $first = 1;
            foreach($images as $index => $image) {
                ?>
                <div role="" class="tab-pane <?php if($first) { echo 'active main-tab'; } ?>" id="image-<?=$index?>">
                    <?php if($index == 'additional') {
                        echo $form->field(is_array($image)?$images[$index][0]:$images[$index], "[{$index}]imageFile[]")->fileInput(['multiple' => 'multiple', 'class' => 'image_inputs_field']);
                        if(is_array($image) && count($image) > 1) {
                            foreach($image as $oneindex => $oneimage) {
                                if($oneindex) {
                                    ?>
                                    <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
                                }
                            }
                        }
                    } else {
                        echo $form->field($images[$index], "[{$index}]imageFile")->fileInput(['class' => 'image_inputs_field']);
                        if(!empty($image->id)) {
                            echo "<img src='/images/upload/{$image->media->hash}/original.{$image->media->extension}' width='100' class='image_inputs_prev'>";
                        }
                    }
                    ?>
                </div>
                <?php
                $first = 0;
            }
            ?>
        </div>

        <hr>

        <?php
        $multilang = Multilang::begin(['ajaxpath' => Url::to(['/blog/ajax/article-form']), 'form' => $form, 'data_langs' => $article_langs]);
        ?>
            <?php
            $first = 1;
            foreach($article_langs as $index => $article_lang) {
                ?>
                <div role="" class="tab-pane <?php if($first) { echo 'active main-tab'; } ?>" id="<?=$multilang->id?>-<?=$index?>">

                    <?= $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;
            }
            ?>
        <?php
        $multilang->end();
        ?>

        <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>