Ставимо нормальний редактор CKEditor - Full на opencart 2.3

За базу взяв модуль https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=29817&filter_search=CKEditor%20&filter_license=0&filter_download_id=47


=admin/controller/common/filemanager.php

1.

<operation>
			<search position="after" offset="1"><![CDATA[	
			$url .= '&thumb=' . $this->request->get['thumb'];	
			]]></search>
			<add><![CDATA[
		if (isset($this->request->get['ckedialog']) ) {
			$url .= '&ckedialog=' . $this->request->get['ckedialog'];
		}
          ]]></add>
		</operation>

2.

<operation>
<search position="after" offset="3"><![CDATA[
$data['thumb'] = $this->request->get['thumb'];
]]></search>
<add><![CDATA[
if (isset($this->request->get['ckedialog'])) {
$data['ckedialog'] = $this->request->get['ckedialog'];
} else {
$data['ckedialog'] = '';
}
        ]]></add>
</operation>


=admin/view/template/common/filemanager.tpl


<operation error="log">
<search position="before" index="1"><![CDATA[<?php if ($target) { ?>]]></search>
<add><![CDATA[
<?php if ($ckedialog) { ?>
$('a.thumbnail').on('click', function(e) {
e.preventDefault();
dialog = CKEDITOR.dialog.getCurrent();
var targetElement = '<?php echo $ckedialog; ?>' || null;
var target = targetElement.split( ':' );
dialog.setValueOf( target[ 0 ], target[ 1 ], this.getAttribute('href') );
$('#modal-image').modal('hide');
});
<?php } ?>
          ]]></add>
</operation>


=admin\view\stylesheet\stylesheet.css


.cke_eval{z-index: 99999 !important}
a.cke_button {cursor: pointer!important;}
.cke_button__image {
  background-color: #B0D591!important;
}
.cke_top {background: #EDEDED linear-gradient(to bottom, #ffffff, #EDEDED) repeat scroll 0 0!important;border-bottom: 1px solid #b6b6b6;box-shadow: 0 1px 0 #fff inset; padding: 6px 8px 2px;white-space: normal;}
.cke_bottom {background: #EDEDED linear-gradient(to bottom, #ffffff, #EDEDED) repeat scroll 0 0!important;border-top: 1px solid #bfbfbf;box-shadow: 0 1px 0 #fff inset;padding: 6px 8px 2px;position: relative;}


Product

1. \admin\controller\catalog\product.php

$data['header'] = $this->load->controller('common/header');

before

$this->document->addScript('view/javascript/ckeditor/ckeditor_enhanced.js');


2. admin\view\template\catalog\product_form.tpl

<script type="text/javascript" src="view/javascript/summernote/summernote.js"></script>
<link href="view/javascript/summernote/summernote.css" rel="stylesheet" />
<script type="text/javascript" src="view/javascript/summernote/opencart.js"></script>

Replace

<!-- Enhanced CKEditor -->
  <script type="text/javascript">
    <?php foreach ($languages as $language) { ?>
    CKEDITOR.replace("input-description<?php echo $language['language_id']; ?>", {
      language: "<?php echo $language['code']; ?>",
      filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      skin : "moono-lisa",
      codemirror: {
        theme: "eclipse",
      },
      height: 450
    });
    <?php } ?>
    </script>
    <script type="text/javascript"><!--
    CKEDITOR.on('dialogDefinition', function (event) {
      var editor = event.editor;
      var dialogDefinition = event.data.definition;
      var dialogName = event.data.name;
      var tabCount = dialogDefinition.contents.length;
      for (var i = 0; i < tabCount; i++) {
        var browseButton = dialogDefinition.contents[i].get('browse');
        if (browseButton !== null) {
          browseButton.hidden = false;
          browseButton.onClick = function() {
            $('#modal-image').remove();
            $.ajax({
              url: 'index.php?route=common/filemanager&token=<?php echo $token; ?>&ckedialog='+this.filebrowser.target,
              dataType: 'html',
                cache: false,
                contentType: false,
                processData: true,
              success: function(html) {
                $('body').append('<div id="modal-image" class="modal cke_eval">' + html + '</div>');
                $('#modal-image').modal('show');
              },
               error: function(xhr, ajaxOptions, thrownError){ 
                alert(xhr.responseText);
              }
            });
          }
        }
      }
    });
    //--></script>


Сategory

1. \admin\controller\catalog\category.php

find=$data['header'] =
before
#### ckeditor        
$this->document->addScript('view/javascript/ckeditor/ckeditor_enhanced.js');
#### ckeditor

2. admin\view\template\catalog\category_form.tpl

<script type="text/javascript" src="view/javascript/summernote/summernote.js"></script>
<link href="view/javascript/summernote/summernote.css" rel="stylesheet" />
<script type="text/javascript" src="view/javascript/summernote/opencart.js"></script>
REPLACE
 <!-- CKEditor -->
  <script type="text/javascript"> 
    <?php foreach ($languages as $language) { ?>
    CKEDITOR.replace("input-description<?php echo $language['language_id']; ?>", {
      //language: "<?php echo $language['url']; ?>",
      filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      skin : "moono-lisa",
      codemirror: {
        theme: "eclipse",
      },
      height: 250
    });
    <?php } ?>
    </script>
    <script type="text/javascript"><!--
    CKEDITOR.on('dialogDefinition', function (event) {
      var editor = event.editor;
      var dialogDefinition = event.data.definition;
      var dialogName = event.data.name;
      var tabCount = dialogDefinition.contents.length;
      for (var i = 0; i < tabCount; i++) {
        var browseButton = dialogDefinition.contents[i].get('browse');
        if (browseButton !== null) {
          browseButton.hidden = false;
          browseButton.onClick = function() {
            $('#modal-image').remove();
            $.ajax({
              url: 'index.php?route=common/filemanager&token=<?php echo $token; ?>&ckedialog='+this.filebrowser.target,
              dataType: 'html',
                cache: false,
                contentType: false,
                processData: true,
              success: function(html) {
                $('body').append('<div id="modal-image" class="modal cke_eval">' + html + '</div>');
                $('#modal-image').modal('show');
              },
               error: function(xhr, ajaxOptions, thrownError){ 
                alert(xhr.responseText);
              }
            });
          }
        }
      }
    });
    //--></script>
<!-- CKEditor -->


Information

1. \admin\controller\catalog\information.php

find=$data['header'] =
before
#### ckeditor        
$this->document->addScript('view/javascript/ckeditor/ckeditor_enhanced.js');
#### ckeditor

2. admin\view\template\catalog\information_form.tpl

<script type="text/javascript" src="view/javascript/summernote/summernote.js"></script>
<link href="view/javascript/summernote/summernote.css" rel="stylesheet" />
<script type="text/javascript" src="view/javascript/summernote/opencart.js"></script>
REPLACE
 <!-- CKEditor -->
  <script type="text/javascript"> 
    <?php foreach ($languages as $language) { ?>
    CKEDITOR.replace("input-description<?php echo $language['language_id']; ?>", {
      //language: "<?php echo $language['url']; ?>",
      filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
      skin : "moono-lisa",
      codemirror: {
        theme: "eclipse",
      },
      height: 250
    });
    <?php } ?>
    </script>
    <script type="text/javascript"><!--
    CKEDITOR.on('dialogDefinition', function (event) {
      var editor = event.editor;
      var dialogDefinition = event.data.definition;
      var dialogName = event.data.name;
      var tabCount = dialogDefinition.contents.length;
      for (var i = 0; i < tabCount; i++) {
        var browseButton = dialogDefinition.contents[i].get('browse');
        if (browseButton !== null) {
          browseButton.hidden = false;
          browseButton.onClick = function() {
            $('#modal-image').remove();
            $.ajax({
              url: 'index.php?route=common/filemanager&token=<?php echo $token; ?>&ckedialog='+this.filebrowser.target,
              dataType: 'html',
                cache: false,
                contentType: false,
                processData: true,
              success: function(html) {
                $('body').append('<div id="modal-image" class="modal cke_eval">' + html + '</div>');
                $('#modal-image').modal('show');
              },
               error: function(xhr, ajaxOptions, thrownError){ 
                alert(xhr.responseText);
              }
            });
          }
        }
      }
    });
    //--></script>
<!-- CKEditor -->


Аналогічно для інших сутностей

  • catalog/manufacturer
  • blog/article
  • blog/category
  • extension/module/html
  • setting/setting

Написати коментар

Без HTML, тільки текст!

Оцінка: