We will use jQuery form plugin for ajax upload or you can use your preffered one!
You can change the entire look and feel, can able to add button / event / can do anything with it. Read documentation here or more example here
HTML:
<div id="editor" placeholder="Type here ... "></div>
Add modal HTML before body tag
<!-- easy editor modal starts --> <div class="easyeditor-modal is-hidden" id="easyeditor-modal-1"> <div class="easyeditor-modal-content"> <div class="easyeditor-modal-content-header">Upload image</div> <div class="easyeditor-modal-content-body"> <div class="easyeditor-modal-content-body-loader"></div> <button class="easyeditor-modal-close">x</button> <form action="uploader_sdk/" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="easyeditor-file"> <button type="submit" name="easyeditor-upload">Upload and insert</button> </form> </div> </div> </div> <!-- easy editor modal ends -->
CSS:
<link rel="stylesheet" href="path_to/easyeditor.css"> <link rel="stylesheet" href="path_to/easyeditor-modal.css">
JS:
<script src="path_to/jquery.min.js"></script> <script src="path_to/jquery.form.min.js"></script> <script src="path_to/jquery.easyeditor.js"></script> <script> EasyEditor.prototype.image = function(){ var _this = this; var settings = { buttonIdentifier: 'insert-image', buttonHtml: 'Insert image', clickHandler: function(){ _this.openModal('#easyeditor-modal-1'); } }; _this.injectButton(settings); }; jQuery(document).ready(function($) { var easyEditor = new EasyEditor('#editor', { buttons: ['bold', 'italic', 'link', 'image'] }); // form uploader starts using jquery.form.min.js $loader = $('.easyeditor-modal-content-body-loader'); $('.easyeditor-modal-content-body').find('form').ajaxForm({ beforeSend: function() { $loader.css('width', '0%'); }, uploadProgress: function(event, position, total, percentComplete) { $loader.css('width', percentComplete + '%'); }, success: function() { $loader.css('width', '100%'); }, complete: function(get) { if(get.responseText != 'null') { easyEditor.insertHtml('<figure><img src="uploader_sdk/images/'+ get.responseText +'" alt=""></figure>'); easyEditor.closeModal('#easyeditor-modal-1'); } } }); // form uploader ends using jquery.form.min.js }); </script>
PHP
I have added a sample uploader using PHP located here which does upload image and return filename. That's it!