! 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(/(.*?)<\/div>/gi, '[row class="$1"]$2[/column]'); content = content.replace(/(.*?)<\/div>/gi, '[column size="$1" class="$2"]$3[/column]'); return content; // function t(t, n) { // e = e.replace(t, n); // } // return e = tinymce.trim(e), // t(), // e; // t(/(.*?)<\/a>/gi, "[url=$1]$2[/url]"), // t(/(.*?)<\/font>/gi, "[code][color=$1]$2[/color][/code]"), // t(/(.*?)<\/font>/gi, "[quote][color=$1]$2[/color][/quote]"), // t(/(.*?)<\/font>/gi, "[code][color=$1]$2[/color][/code]"), // t(/(.*?)<\/font>/gi, "[quote][color=$1]$2[/color][/quote]"), // t(/(.*?)<\/span>/gi, "[color=$1]$2[/color]"), // t(/(.*?)<\/font>/gi, "[color=$1]$2[/color]"), // t(/(.*?)<\/span>/gi, "[size=$1]$2[/size]"), // t(/(.*?)<\/font>/gi, "$1"), // t(//gi, "[img]$1[/img]"), // t(/(.*?)<\/span>/gi, "[code]$1[/code]"), // t(/(.*?)<\/span>/gi, "[quote]$1[/quote]"), // t(/(.*?)<\/strong>/gi, "[code][b]$1[/b][/code]"), // t(/(.*?)<\/strong>/gi, "[quote][b]$1[/b][/quote]"), // t(/(.*?)<\/em>/gi, "[code][i]$1[/i][/code]"), // t(/(.*?)<\/em>/gi, "[quote][i]$1[/i][/quote]"), // t(/(.*?)<\/u>/gi, "[code][u]$1[/u][/code]"), // t(/(.*?)<\/u>/gi, "[quote][u]$1[/u][/quote]"), // t(/<\/(strong|b)>/gi, "[/b]"), // t(/<(strong|b)>/gi, "[b]"), // t(/<\/(em|i)>/gi, "[/i]"), // t(/<(em|i)>/gi, "[i]"), // t(/<\/u>/gi, "[/u]"), // t(/(.*?)<\/span>/gi, "[u]$1[/u]"), // t(//gi, "[u]"), // t(/]*>/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); }();