| Current Path : /var/www/html/drsa/backend/modules/contentArticle/views/content-article/ |
| 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>
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> ',
'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> ',
'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>