! function () { tinymce.create('tinymce.plugins.shortcodesultimate', { init: function (e) { var t = this, n = 'su'; // e.onKeyPress.add(function (e, o) { e.onBeforeSetContent.add(function (e, o) { // console.log(e); o.content = t["_shortcodes2html"](o.content); }); e.onPostProcess.add(function (e, o) { o.set && (o.content = t["_shortcodes2html"](o.content)); o.get && (o.content = t["_html2shortcodes"](o.content)); }); }, getInfo: function () { return { longname: "BBCode Plugin", author: "Moxiecode Systems AB", authorurl: "http://www.tinymce.com", infourl: "http://www.tinymce.com/wiki.php/Plugin:bbcode" } }, _html2shortcodes: function (content) { // Prepare data var shortcodes = ['row', 'column'], prefix = ''; // Trim content content = tinymce.trim(content); content = content.replace(/
]*>/gi, "[quote]"), // t(/<\/blockquote>/gi, "[/quote]"), // t(/
/gi, "\n"), // t(/
/gi, "\n"), // t(/
/gi, "\n"), // t(//gi, ""), // t(/<\/p>/gi, "\n"), // t(/ |\u00a0/gi, " "), // t(/"/gi, '"'), // t(/</gi, "<"), // t(/>/gi, ">"), // t(/&/gi, "&"), }, _shortcodes2html: function (content) { // Prepare data var shortcodes = ['row', 'column'], prefix = ''; // Trim content content = tinymce.trim(content); // Loop shortcodes for (var i = shortcodes.length - 1; i >= 0; i--) { content = wp.shortcode.replace(prefix + shortcodes[i], content, this._shortcode2html); }; return content; // return e = tinymce.trim(e), // t(/\[column.*?size="(.*?)".*?class="(.*?)".*?\](.*?)\[\/column\]/gi, '
$3'), // t(/\n/gi, "
"), // t(/\[b\]/gi, ""), // t(/\[\/b\]/gi, ""), // t(/\[i\]/gi, ""), // t(/\[\/i\]/gi, ""), // t(/\[u\]/gi, ""), // t(/\[\/u\]/gi, ""), // t(/\[url=([^\]]+)\](.*?)\[\/url\]/gi, '$2'), // t(/\[url\](.*?)\[\/url\]/gi, '$1'), // t(/\[img\](.*?)\[\/img\]/gi, ''), // t(/\[color=(.*?)\](.*?)\[\/color\]/gi, '$2'), // t(/\[code\](.*?)\[\/code\]/gi, '$1 '), // t(/\[quote.*?\](.*?)\[\/quote\]/gi, '$1 '), // e }, _shortcode2html: function (s) { // Prepare data var prefix = ''; // Remove prefix from shortcode tag name s.tag = s.tag.replace(prefix, ''); // Row if (s.tag === 'row') { var cssclass = (typeof s.attrs.named.class !== 'undefined') ? ' ' + s.attrs.named.class : ''; return '' + s.content + ''; } // Columns else if (s.tag === 'column') { var size = (typeof s.attrs.named.size !== 'undefined') ? s.attrs.named.size.replace('/', '-') : '1-1', cssclass = (typeof s.attrs.named.class !== 'undefined') ? ' ' + s.attrs.named.class : ''; return '' + s.content + ''; } } }), tinymce.PluginManager.add('shortcodesultimate', tinymce.plugins.shortcodesultimate); }();