Server IP : 195.201.23.43 / Your IP : 13.58.187.29 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/kdecoratie/public_html/media/editors/tinymce/js/ |
Upload File : |
/** * @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ ;(function(tinyMCE, Joomla, window, document){ "use strict"; // This line is for Mootools b/c window.getSize = window.getSize || function(){return {x: window.innerWidth, y: window.innerHeight};}; // @deprecated 4.0 Use directly Joomla.editors.instances[editor].replaceSelection(text); window.jInsertEditorText = function ( text, editor ) { Joomla.editors.instances[editor].replaceSelection(text); }; var JoomlaTinyMCE = { /** * Find all TinyMCE elements and initialize TinyMCE instance for each * * @param {HTMLElement} target Target Element where to search for the editor element * * @since 3.7.0 */ setupEditors: function ( target ) { target = target || document; var pluginOptions = Joomla.getOptions ? Joomla.getOptions('plg_editor_tinymce', {}) : (Joomla.optionsStorage.plg_editor_tinymce || {}), editors = target.querySelectorAll('.js-editor-tinymce'); for(var i = 0, l = editors.length; i < l; i++) { var editor = editors[i].querySelector('textarea'); this.setupEditor(editor, pluginOptions); } }, /** * Initialize TinyMCE editor instance * * @param {HTMLElement} element * @param {Object} pluginOptions * * @since 3.7.0 */ setupEditor: function ( element, pluginOptions ) { var name = element ? element.getAttribute('name').replace(/\[\]|\]/g, '').split('[').pop() : 'default', // Get Editor name tinyMCEOptions = pluginOptions ? pluginOptions.tinyMCE || {} : {}, defaultOptions = tinyMCEOptions['default'] || {}, options = tinyMCEOptions[name] ? tinyMCEOptions[name] : defaultOptions; // Check specific options by the name // Avoid an unexpected changes, and copy the options object if (options.joomlaMergeDefaults) { options = Joomla.extend(Joomla.extend({}, defaultOptions), options); } else { options = Joomla.extend({}, options); } if (element) { // We already have the Target, so reset the selector and assign given element as target options.selector = null; options.target = element; var oldEditor = tinymce.get(element.id); if (oldEditor) { oldEditor.remove(); delete Joomla.editors.instances[element.id]; } } // @TODO: the ext-buttons should be as TinyMCE plugins, not the callback hack if (options.joomlaExtButtons && options.joomlaExtButtons.names && options.joomlaExtButtons.names.length) { options.toolbar1 += ' | ' + options.joomlaExtButtons.names.join(' '); var callbackString = options.joomlaExtButtons.script.join(';'); options.setupCallbackString = options.setupCallbackString || ''; options.setupCallbackString = options.setupCallbackString + ';' + callbackString; options.joomlaExtButtons = null; } if (options.setupCallbackString && !options.setup) { options.setup = new Function('editor', options.setupCallbackString); } // Create a new instance var ed = new tinyMCE.Editor(element.id, options, tinymce.EditorManager); ed.render(); /** Register the editor's instance to Joomla Object */ Joomla.editors.instances[element.id] = { // Required by Joomla's API for the XTD-Buttons 'getValue': function () { return this.instance.getContent(); }, 'setValue': function (text) { return this.instance.setContent(text); }, 'getSelection': function () { return this.instance.selection.getContent({format: 'text'}); }, 'replaceSelection': function (text) { return this.instance.execCommand('mceInsertContent', false, text); }, // Some extra instance dependent 'id': element.id, 'instance': ed, 'onSave': function() { if (this.instance.isHidden()) { this.instance.show()}; return '';}, }; /** On save **/ document.getElementById(ed.id).form.addEventListener('submit', function() { Joomla.editors.instances[ed.targetElm.id].onSave(); }) } }; Joomla.JoomlaTinyMCE = JoomlaTinyMCE; // Init on DOMContentLoaded document.addEventListener('DOMContentLoaded', function () { Joomla.JoomlaTinyMCE.setupEditors(); // Init in subform field if(window.jQuery) { jQuery(document).on('subform-row-add', function (event, row) { Joomla.JoomlaTinyMCE.setupEditors(row); }); // Watch on jQuery UI sortable, // Browser will clear iframe content when DOM changes, so we need to re-init an editors in changed Element jQuery(document).on('sortstop', function(event, ui){ if (ui.item[0]) { Joomla.JoomlaTinyMCE.setupEditors(ui.item[0]); } }); } }); }(tinyMCE, Joomla, window, document));Private