Your IP : 216.73.216.79


Current Path : /var/www/html/drsa/backend/modules/contentArticle/views/content-article/
Upload File :
Current File : /var/www/html/drsa/backend/modules/contentArticle/views/content-article/_form.php

<?php

use mihaildev\ckeditor\CKEditor;
use mihaildev\elfinder\ElFinder;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
use kartik\file\FileInput;
use backend\modules\contentArticle\models\ContentArticleTranslation;
use common\assets\AceEditorAsset;

AceEditorAsset::register($this);

$this->registerCssFile('@web/plugins/summernote/summernote.min.css');
$this->registerJsFile('@web/plugins/summernote/summernote.min.js', ['depends' => [\yii\web\JqueryAsset::className()]]);

$this->registerJs(
        <<<JS
    $('.datepicker').datepicker({format: 'yyyy-mm-dd',autoclose: true,});
    $('.clockpicker').clockpicker({placement: 'top',align: 'left',autoclose: true, });
        
    $('.summernote').summernote({
	height: 300,
	toolbar: [
            ['style', ['style']],
            ['font', ['bold', 'italic', 'underline', 'clear']],
            ['fontname', ['fontname']],
            ['fontsize', ['fontsize']],
            ['color', ['color']],
            ['para', ['ul', 'ol', 'paragraph']],
            ['height', ['height']],
            ['table', ['table']],
            ['insert', ['link', 'picture', 'hr']],
            ['view', ['fullscreen', 'codeview']],
            ['help', ['help']]
	],
    });
JS
);
?>
<style>
    .clearbtn{
        position:absolute;
        top:44%;
        right:10%;
        cursor:pointer;
    }
    .select2-container--default .select2-selection--single{border-radius: 0 !important;}
    .select2-container .select2-selection--single{height: 34px !important;}
    .select2-container--default .select2-selection--single .select2-selection__rendered {line-height: 34px !important;}
    .note-editor{border:1px solid #e5e6e7 !important}
    #contentarticle-article_portal_category label{
        font-weight:normal;
        margin-right:1em;
        width:220px;
        display:inline-block;
        border:1px solid #ccc;
        padding:0.5em;
    }
    
    .field-contentarticle-article_content{margin-bottom:0;}
</style>
<script>
    function cleardate(id) {
        $('#' + id).val('');
        $('#' + id).datepicker('setDate', null);
    }
    function cleartime(id) {
        $('#' + id).val('');
    }
</script>
<?php $form = ActiveForm::begin(); ?>
<div class="wrapper wrapper-content animated fadeInRight" style="padding: 20px 10px 20px;">

    <div class="ibox float-e-margins">
        <div class="ibox-content">
            <div class="row">
                <div class="col-sm-3">
                    <?=
                    $form->field($model, 'article_language')->dropdownList(
                            ArrayHelper::map(
                                    (new \yii\db\Query())
                                            ->from('ref')
                                            ->where(['=', 'cat', 'CONTENT_LANGUAGE'])
                                            ->orderBy(['descr_en' => SORT_DESC])
                                            ->all(), 'code', 'descr_en'), [
                        'class' => 'select2',])
                    ?>
                </div>
                <div class="col-sm-9"><?= $form->field($model, 'article_title')->textInput() ?></div>
            </div>

            <?= $form->field($model, 'article_content')->textarea(['class' => 'summernote', 'id' => 'content-main']); ?>
            <div id="ace-editor-content-main"></div>

            <div style="padding-top:1em;">
                <button type="button" class="btn btn-warning" onclick="openbuilder('content-main')">Use UI/UX Builder</button>
                <button type="button" class="btn btn-warning" id="btn-text-editor-content-main" style="display:none;" onclick="usetexteditor('content-main')">Use Text Editor</button>
                <button type="button" class="btn btn-warning" id="btn-code-editor-content-main" onclick="usecodeeditor('content-main')">Use Code Editor</button>
            </div>

        </div> 
    </div>
    <?php
    $modeltranslation = ContentArticleTranslation::find()
                    ->where(['=', 'article_translation_parent_id', $model->article_id])
                    ->andwhere(['=', 'article_translation_main', '0'])
                    ->orderBy(['article_translation_id' => SORT_ASC])->all();
    if (!empty($modeltranslation)) {
        foreach ($modeltranslation as $rowtranslation) {
            echo '<div class="ibox float-e-margins" id="old-translation-' . $rowtranslation->article_translation_id . '">
            <input type="hidden" name="oldtranslation[]" value="' . $rowtranslation->article_translation_id . '">
            <div class="ibox-title">
                <button type="button" class="btn btn-warning btn-sm" onclick="deleteoldtranslation(' . $rowtranslation->article_translation_id . ')">Delete</button>&nbsp;&nbsp;&nbsp;
                Article Translation
            </div>
            <div class="ibox-content">
                <div class="row">
                    <div class="col-sm-3">
                        <div class="form-group">
                            <label>Language</label>
                            ' . Html::dropDownList('old_language_' . $rowtranslation->article_translation_id, $rowtranslation->article_translation_language, ArrayHelper::map(
                            (new \yii\db\Query())
                                    ->from('ref')
                                    ->where(['=', 'cat', 'CONTENT_LANGUAGE'])
                                    ->orderBy(['descr_en' => SORT_DESC])
                                    ->all(), 'code', 'descr_en'), [
                'class' => 'select2','prompt'=>'-- Please choose --']) . '
                        </div>
                    </div>
                    <div class="col-sm-9">
                        <div class="form-group">
                            <label>Title</label>
                            <input type="text" class="form-control" name="old_title_' . $rowtranslation->article_translation_id . '" value="' . $rowtranslation->article_translation_title . '">
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <label>Content</label>
                    <textarea class="summernote" name="old_content_' . $rowtranslation->article_translation_id . '" id="content-translation-' . $rowtranslation->article_translation_id . '">' . $rowtranslation->article_translation_content . '</textarea>
                    <div id="ace-editor-content-translation-' . $rowtranslation->article_translation_id . '"></div>
                
                    <div style="padding-top:1em;">
                        <button type="button" class="btn btn-warning" onclick="openbuilder(\'content-translation-' . $rowtranslation->article_translation_id . '\')">Use UI/UX Builder</button>
                        <button type="button" class="btn btn-warning" id="btn-text-editor-content-translation-' . $rowtranslation->article_translation_id . '" style="display:none;" onclick="usetexteditor(\'content-translation-' . $rowtranslation->article_translation_id . '\')">Use Text Editor</button>
                        <button type="button" class="btn btn-warning" id="btn-code-editor-content-translation-' . $rowtranslation->article_translation_id . '" onclick="usecodeeditor(\'content-translation-' . $rowtranslation->article_translation_id . '\')">Use Code Editor</button>
                    </div>
                
                </div>
                
            </div>
        </div>';
        }
    }
    ?>

    <div class="ibox float-e-margins">
        <div class="ibox-content">
            <?= $form->field($model, 'article_portal_category')->dropdownList(\backend\modules\refdynawebv2\models\Ref::getbranchlist(), ['class' => 'select2', 'multiple' => true]) ?>
            <?= $form->field($model, 'article_code')->textInput(['placeholder' => 'Eg : about-us']) ?>
            <div class="row">
                <div class="col-sm-3">
                    <?=
                    $form->field($model, 'article_category')->dropdownList(
                            ArrayHelper::map(
                                    (new \yii\db\Query())
                                            ->from('ref')
                                            ->where(['=', 'cat', 'ARTICLECATEGORY'])
                                            ->orderBy(['descr_en' => SORT_ASC])
                                            ->all(), 'code', 'descr_en'), [
                        'class' => 'select2',
                        'onchange' => "changecategory(this.value)",
                        'prompt' => '-- Please choose --'])
                    ?>
                </div>
                <div class="col-sm-3">
                    <?php
                    echo $form->field($model, 'article_subcategory')->dropdownList(
                            ArrayHelper::map(
                                    (new \yii\db\Query())
                                            ->from('ref')
                                            ->where(['=', 'cat', 'ARTICLESUBCATEGORY'])
                                            ->andwhere(['=', 'param1', \backend\modules\refdynawebv2\models\Ref::getparentid($model->article_category, 'ARTICLECATEGORY')])
                                            ->orderBy(['descr_en' => SORT_ASC])
                                            ->all(), 'code', 'descr_en'), [
                        'class' => 'select2', 'prompt' => '-- Please choose --'])
                    ?>
                </div>
                <div class="col-sm-3">
                    <?=
                    $form->field($model, 'article_status')->dropdownList(
                            ArrayHelper::map(
                                    (new \yii\db\Query())
                                            ->from('ref')
                                            ->where(['=', 'cat', 'CONTENT_STATUS'])
                                            ->orderBy(['descr_en' => SORT_ASC])
                                            ->all(), 'code', 'descr_en'), [
                        'class' => 'select2', 'prompt' => '-- Please choose --'])
                    ?>
                </div>
                
                <div class="col-sm-3">
                    <?= $form->field($model, 'article_date')->textInput(['class' => 'form-control datepicker', 'readonly' => true]) ?>
                    <span onclick="cleardate('contentarticle-article_date')" class="clearbtn">Clear</span>
                </div>
            </div>
            
            <div class="row">
                <div class="col-sm-3">
                    <?= $form->field($model, 'article_start_date')->textInput(['class' => 'form-control datepicker', 'readonly' => true]) ?>
                    <span onclick="cleardate('contentarticle-article_start_date')" class="clearbtn">Clear</span>
                </div>
                <div class="col-sm-3">
                    <?= $form->field($model, 'article_start_time')->textInput(['class' => 'form-control clockpicker', 'readonly' => true]) ?>
                    <span onclick="cleartime('contentarticle-article_start_time')" class="clearbtn">Clear</span>
                </div>
                <div class="col-sm-3">
                    <?= $form->field($model, 'article_end_date')->textInput(['class' => 'form-control datepicker', 'readonly' => true]) ?>
                    <span onclick="cleardate('contentarticle-article_end_date')" class="clearbtn">Clear</span>
                </div>
                <div class="col-sm-3">
                    <?= $form->field($model, 'article_end_time')->textInput(['class' => 'form-control clockpicker', 'readonly' => true]) ?>
                    <span onclick="cleartime('contentarticle-article_end_time')" class="clearbtn">Clear</span>
                </div>
            </div>
            <?php
            if (!empty($model->article_image)) {
                echo $form->field($model, 'article_image')->widget(FileInput::classname(), [
                    'options' => ['accept' => 'image/*'],
                    'pluginOptions' => [
                        'showUpload' => false,
                        'showCaption' => false,
                        'showRemove' => false,
                        'showUpload' => false,
                        'browseClass' => 'btn btn-warning btn-block',
                        'browseIcon' => '<i class="glyphicon glyphicon-camera"></i>&nbsp;&nbsp;',
                        'browseLabel' => 'Select Image',
                        'initialPreview' => ['<img style="max-width:100%" src="' . Yii::getAlias('@web') . '/' . $model->article_image . '"/>'],
                    ]
                ]);
            } else {
                echo $form->field($model, 'article_image')->widget(FileInput::classname(), [
                    'options' => ['accept' => 'image/*'],
                    'pluginOptions' => [
                        'showUpload' => false,
                        'showCaption' => false,
                        'showRemove' => false,
                        'showUpload' => false,
                        'browseClass' => 'btn btn-warning btn-block',
                        'browseIcon' => '<i class="glyphicon glyphicon-camera"></i>&nbsp;&nbsp;',
                        'browseLabel' => 'Select Image'
                    ],
                ]);
            }
            ?>
            <small>* Image can be use as thumbnail or background page (optional)</small>
        </div>
    </div>

    <input type="hidden" id="contentID">
    <div class="form-group">
        <?= Html::a(Yii::t('app', 'Back'), ['index'], ['class' => 'btn btn-primary']) ?>
        <?= Html::submitButton(Yii::t('app', 'Save'), ['class' => 'btn btn-primary']) ?>
    </div>
</div>
<?php ActiveForm::end(); ?>
<script>
    function usetexteditor(id) {

        var editor = ace.edit('ace-editor-' + id);
        var currentContent = editor.getValue();
        editor.destroy();
        $('#ace-editor-' + id).css({"min-height": "0px", "height": "0px"});

        $('#' + id).summernote({
            height: 300,
            toolbar: [
                ['style', ['style']],
                ['font', ['bold', 'italic', 'underline', 'clear']],
                ['fontname', ['fontname']],
                ['fontsize', ['fontsize']],
                ['color', ['color']],
                ['para', ['ul', 'ol', 'paragraph']],
                ['height', ['height']],
                ['table', ['table']],
                ['insert', ['link', 'picture', 'hr']],
                ['view', ['fullscreen', 'codeview']],
                ['help', ['help']]
            ],
        });
        $('#' + id).summernote("code", currentContent);

        $('#btn-code-editor-' + id).show();
        $('#btn-text-editor-' + id).hide();
    }

    function usecodeeditor(id) {

        var currentContent = $('#' + id).summernote('code');
        $('#' + id).summernote('destroy');

        var textarea = $('#' + id).hide();
        var editor = ace.edit('ace-editor-' + id);
        editor.setValue(currentContent);
        editor.setOptions({maxLines: Infinity});
        editor.setTheme("ace/theme/monokai");
        editor.getSession().setMode("ace/mode/php");
        //editor.getSession().setValue(textarea.val());
        editor.getSession().on('change', function () {
            textarea.val(editor.getSession().getValue());
        });
        $('#ace-editor-' + id).css({"min-height": "360px"});

        $('#btn-code-editor-' + id).hide();
        $('#btn-text-editor-' + id).show();
    }

    function changecategory(parent_code) {
        $.ajax({
            url: "getsubcategory?parent_code=" + parent_code,
            method: "GET",
            success: function (response) {
                $('#contentarticle-article_subcategory').html(response);
            },
        });
    }

    function deleteoldtranslation(id) {
        var r = confirm("Are you sure to delete this data?");
        if (r == true) {
            $.ajax({
                url: "deletetranslation?id=" + id,
                method: "GET",
                success: function (response) {
                    $('#old-translation-' + id).remove();
                },
            });
        }
    }

    function openbuilder(contentID) {
        $('#contentID').val(contentID);
        var textEditorVisible = $('#btn-code-editor-' + contentID).is(":visible");
        var codeEditorVisible = $('#btn-text-editor-' + contentID).is(":visible");
        var content = '';
        if (textEditorVisible === true) {
            content = $('#' + contentID).summernote('code');
        }
        if (codeEditorVisible === true) {
            var editor = ace.edit('ace-editor-' + contentID);
            content = editor.getValue();
        }

        var url = '/admin/uiuxBuilder/uiux-templates/design';
        params = 'width=' + screen.width;
        params += ', height=' + screen.height;
        params += ', top=0, left=0'
        params += ', fullscreen=yes';
        params += ', directories=no';
        params += ', location=no';
        params += ', menubar=no';
        params += ', resizable=no';
        params += ', scrollbars=no';
        params += ', status=no';
        params += ', toolbar=no';
        newwin = window.open(url, 'FullWindowAll', params);

        newwin.addEventListener("load", function () {
            newwin.$('#content-area').keditor('setContent', `
                <div class="row"><div class="col-sm-12" data-type="container-content">${content}</div></div>
                <div class="keditor-ui keditor-toolbar keditor-toolbar-bottom keditor-toolbar-bottom-container">
                    <a href="javascript:void(0)" class="keditor-ui btn-add-content" title="Add content below"><i class="fa fa-plus"></i></a>
                    <a href="javascript:void(0)" class="keditor-ui btn-paste-content" title="Paste content below"><i class="fa fa-paste"></i></a>
                </div>
            `);
        });

        if (window.focus) {
            newwin.focus();
        }
        return false;
    }

    function HandlePopupResult(result) {
        var contentID = $('#contentID').val();
        var textEditorVisible = $('#btn-code-editor-' + contentID).is(":visible");
        var codeEditorVisible = $('#btn-text-editor-' + contentID).is(":visible");
        if (textEditorVisible === true) {
            $('#' + contentID).summernote("code", result);
        }
        if (codeEditorVisible === true) {
            var editor = ace.edit('ace-editor-' + contentID);
            editor.setValue(result);
        }
    }
</script>