Updates bonanza

This commit is contained in:
nikolark committed 2014-07-24 14:38:32 +02:00
1 parent d26191c9f8
commit 9d480fc3c5
1366 files changed
+220321 -90180

No files matched your search

@@ -1 +0,0 @@
(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.WordPress",{init:function(f,c){var j=this,e=f.getParam("wordpress_adv_toolbar","toolbar2"),i=0,d,b,h,g;d='<img src="'+c+'/img/trans.gif" class="mceWPmore mceItemNoResize" title="'+f.getLang("wordpress.wp_more_alt")+'" />';b='<img src="'+c+'/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+f.getLang("wordpress.wp_page_alt")+'" />';if(getUserSetting("hidetb","0")=="1"){f.settings.wordpress_adv_hidden=0}f.onPostRender.add(function(){var k=f.controlManager.get(e);if(f.getParam("wordpress_adv_hidden",1)&&k){a.hide(k.id);j._resizeIframe(f,e,28)}});f.addCommand("WP_More",function(){f.execCommand("mceInsertContent",0,d)});f.addCommand("WP_Page",function(){f.execCommand("mceInsertContent",0,b)});f.addCommand("WP_Help",function(){f.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",width:450,height:420,inline:1})});f.addCommand("WP_Adv",function(){var k=f.controlManager,l=k.get(e).id;if("undefined"==l){return}if(a.isHidden(l)){k.setActive("wp_adv",1);a.show(l);j._resizeIframe(f,e,-28);f.settings.wordpress_adv_hidden=0;setUserSetting("hidetb","1")}else{k.setActive("wp_adv",0);a.hide(l);j._resizeIframe(f,e,28);f.settings.wordpress_adv_hidden=1;setUserSetting("hidetb","0")}});f.addCommand("WP_Medialib",function(){if(typeof wp!=="undefined"&&wp.media&&wp.media.editor){wp.media.editor.open(f.id)}});f.addButton("wp_more",{title:"wordpress.wp_more_desc",cmd:"WP_More"});f.addButton("wp_page",{title:"wordpress.wp_page_desc",image:c+"/img/page.gif",cmd:"WP_Page"});f.addButton("wp_help",{title:"wordpress.wp_help_desc",cmd:"WP_Help"});f.addButton("wp_adv",{title:"wordpress.wp_adv_desc",cmd:"WP_Adv"});f.addButton("add_media",{title:"wordpress.add_media",image:c+"/img/image.gif",cmd:"WP_Medialib"});f.onBeforeExecCommand.add(function(r,q,u,p,l){var x=tinymce.DOM,m,k,t,w,v,s;if("mceFullScreen"==q){if("mce_fullscreen"!=r.id&&x.select("a.thickbox").length){r.settings.theme_advanced_buttons1+=",|,add_media"}}if("JustifyLeft"==q||"JustifyRight"==q||"JustifyCenter"==q){m=r.selection.getNode();if(m.nodeName=="IMG"){s=q.substr(7).toLowerCase();v="align"+s;k=r.dom.getParent(m,"dl.wp-caption");t=r.dom.getParent(m,"div.mceTemp");if(k&&t){w=r.dom.hasClass(k,v)?"alignnone":v;k.className=k.className.replace(/align[^ '"]+\s?/g,"");r.dom.addClass(k,w);if(w=="aligncenter"){r.dom.addClass(t,"mceIEcenter")}else{r.dom.removeClass(t,"mceIEcenter")}l.terminate=true;r.execCommand("mceRepaint")}else{if(r.dom.hasClass(m,v)){r.dom.addClass(m,"alignnone")}else{r.dom.removeClass(m,"alignnone")}}}}});f.onInit.add(function(m){var l=m.getParam("body_class",""),k=m.getBody();if(l){l=l.split(" ")}else{l=[]}if(m.getParam("directionality","")=="rtl"){l.push("rtl")}if(tinymce.isIE9){l.push("ie9")}else{if(tinymce.isIE8){l.push("ie8")}else{if(tinymce.isIE7){l.push("ie7")}}}if(m.id!="wp_mce_fullscreen"&&m.id!="mce_fullscreen"){l.push("wp-editor")}else{if(m.id=="mce_fullscreen"){l.push("mce-fullscreen")}}tinymce.each(l,function(n){if(n){m.dom.addClass(k,n)}});m.onNodeChange.add(function(o,n,q){var p;if(q.nodeName=="IMG"){p=o.dom.getParent(q,"dl.wp-caption")}else{if(q.nodeName=="DIV"&&o.dom.hasClass(q,"mceTemp")){p=q.firstChild;if(!o.dom.hasClass(p,"wp-caption")){p=false}}}if(p){if(o.dom.hasClass(p,"alignleft")){n.setActive("justifyleft",1)}else{if(o.dom.hasClass(p,"alignright")){n.setActive("justifyright",1)}else{if(o.dom.hasClass(p,"aligncenter")){n.setActive("justifycenter",1)}}}}});m.onBeforeSetContent.add(function(n,p){if(p.content){p.content=p.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>");p.content=p.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,"</$1>")}})});if("undefined"!=typeof(jQuery)){f.onKeyUp.add(function(m,n){var l=n.keyCode||n.charCode;if(l==i){return}if(13==l||8==i||46==i){jQuery(document).triggerHandler("wpcountwords",[m.getContent({format:"raw"})])}i=l})}f.onSaveContent.addToTop(function(k,l){l.content=l.content.replace(/<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g,"<p>&nbsp;</p>")});f.onSaveContent.add(function(k,l){if(k.getParam("wpautop",true)&&typeof(switchEditors)=="object"){if(k.isHidden()){l.content=l.element.value}else{l.content=switchEditors.pre_wpautop(l.content)}}});j._handleMoreBreak(f,c);g="alt+shift";f.addShortcut(g+"+c","justifycenter_desc","JustifyCenter");f.addShortcut(g+"+r","justifyright_desc","JustifyRight");f.addShortcut(g+"+l","justifyleft_desc","JustifyLeft");f.addShortcut(g+"+j","justifyfull_desc","JustifyFull");f.addShortcut(g+"+q","blockquote_desc","mceBlockQuote");f.addShortcut(g+"+u","bullist_desc","InsertUnorderedList");f.addShortcut(g+"+o","numlist_desc","InsertOrderedList");f.addShortcut(g+"+n","spellchecker.desc","mceSpellCheck");f.addShortcut(g+"+a","link_desc","WP_Link");f.addShortcut(g+"+s","unlink_desc","unlink");f.addShortcut(g+"+m","image_desc","WP_Medialib");f.addShortcut(g+"+z","wordpress.wp_adv_desc","WP_Adv");f.addShortcut(g+"+tLine truncated
@@ -1,426 +0,0 @@
/**
* WordPress plugin.
*/
(function() {
var DOM = tinymce.DOM;
tinymce.create('tinymce.plugins.WordPress', {
init : function(ed, url) {
var t = this, tbId = ed.getParam('wordpress_adv_toolbar', 'toolbar2'), last = 0, moreHTML, nextpageHTML, closeOnClick, mod_key;
moreHTML = '<img src="' + url + '/img/trans.gif" class="mceWPmore mceItemNoResize" title="'+ed.getLang('wordpress.wp_more_alt')+'" />';
nextpageHTML = '<img src="' + url + '/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+ed.getLang('wordpress.wp_page_alt')+'" />';
if ( getUserSetting('hidetb', '0') == '1' )
ed.settings.wordpress_adv_hidden = 0;
// Hides the specified toolbar and resizes the iframe
ed.onPostRender.add(function() {
var adv_toolbar = ed.controlManager.get(tbId);
if ( ed.getParam('wordpress_adv_hidden', 1) && adv_toolbar ) {
DOM.hide(adv_toolbar.id);
t._resizeIframe(ed, tbId, 28);
}
});
// Register commands
ed.addCommand('WP_More', function() {
ed.execCommand('mceInsertContent', 0, moreHTML);
});
ed.addCommand('WP_Page', function() {
ed.execCommand('mceInsertContent', 0, nextpageHTML);
});
ed.addCommand('WP_Help', function() {
ed.windowManager.open({
url : tinymce.baseURL + '/wp-mce-help.php',
width : 450,
height : 420,
inline : 1
});
});
ed.addCommand('WP_Adv', function() {
var cm = ed.controlManager, id = cm.get(tbId).id;
if ( 'undefined' == id )
return;
if ( DOM.isHidden(id) ) {
cm.setActive('wp_adv', 1);
DOM.show(id);
t._resizeIframe(ed, tbId, -28);
ed.settings.wordpress_adv_hidden = 0;
setUserSetting('hidetb', '1');
} else {
cm.setActive('wp_adv', 0);
DOM.hide(id);
t._resizeIframe(ed, tbId, 28);
ed.settings.wordpress_adv_hidden = 1;
setUserSetting('hidetb', '0');
}
});
ed.addCommand('WP_Medialib', function() {
if ( typeof wp !== 'undefined' && wp.media && wp.media.editor )
wp.media.editor.open( ed.id );
});
// Register buttons
ed.addButton('wp_more', {
title : 'wordpress.wp_more_desc',
cmd : 'WP_More'
});
ed.addButton('wp_page', {
title : 'wordpress.wp_page_desc',
image : url + '/img/page.gif',
cmd : 'WP_Page'
});
ed.addButton('wp_help', {
title : 'wordpress.wp_help_desc',
cmd : 'WP_Help'
});
ed.addButton('wp_adv', {
title : 'wordpress.wp_adv_desc',
cmd : 'WP_Adv'
});
// Add Media button
ed.addButton('add_media', {
title : 'wordpress.add_media',
image : url + '/img/image.gif',
cmd : 'WP_Medialib'
});
// Add Media buttons to fullscreen and handle align buttons for image captions
ed.onBeforeExecCommand.add(function(ed, cmd, ui, val, o) {
var DOM = tinymce.DOM, n, DL, DIV, cls, a, align;
if ( 'mceFullScreen' == cmd ) {
if ( 'mce_fullscreen' != ed.id && DOM.select('a.thickbox').length )
ed.settings.theme_advanced_buttons1 += ',|,add_media';
}
if ( 'JustifyLeft' == cmd || 'JustifyRight' == cmd || 'JustifyCenter' == cmd ) {
n = ed.selection.getNode();
if ( n.nodeName == 'IMG' ) {
align = cmd.substr(7).toLowerCase();
a = 'align' + align;
DL = ed.dom.getParent(n, 'dl.wp-caption');
DIV = ed.dom.getParent(n, 'div.mceTemp');
if ( DL && DIV ) {
cls = ed.dom.hasClass(DL, a) ? 'alignnone' : a;
DL.className = DL.className.replace(/align[^ '"]+\s?/g, '');
ed.dom.addClass(DL, cls);
if (cls == 'aligncenter')
ed.dom.addClass(DIV, 'mceIEcenter');
else
ed.dom.removeClass(DIV, 'mceIEcenter');
o.terminate = true;
ed.execCommand('mceRepaint');
} else {
if ( ed.dom.hasClass(n, a) )
ed.dom.addClass(n, 'alignnone');
else
ed.dom.removeClass(n, 'alignnone');
}
}
}
});
ed.onInit.add(function(ed) {
var bodyClass = ed.getParam('body_class', ''), body = ed.getBody();
// add body classes
if ( bodyClass )
bodyClass = bodyClass.split(' ');
else
bodyClass = [];
if ( ed.getParam('directionality', '') == 'rtl' )
bodyClass.push('rtl');
if ( tinymce.isIE9 )
bodyClass.push('ie9');
else if ( tinymce.isIE8 )
bodyClass.push('ie8');
else if ( tinymce.isIE7 )
bodyClass.push('ie7');
if ( ed.id != 'wp_mce_fullscreen' && ed.id != 'mce_fullscreen' )
bodyClass.push('wp-editor');
else if ( ed.id == 'mce_fullscreen' )
bodyClass.push('mce-fullscreen');
tinymce.each( bodyClass, function(cls){
if ( cls )
ed.dom.addClass(body, cls);
});
// make sure these run last
ed.onNodeChange.add( function(ed, cm, e) {
var DL;
if ( e.nodeName == 'IMG' ) {
DL = ed.dom.getParent(e, 'dl.wp-caption');
} else if ( e.nodeName == 'DIV' && ed.dom.hasClass(e, 'mceTemp') ) {
DL = e.firstChild;
if ( ! ed.dom.hasClass(DL, 'wp-caption') )
DL = false;
}
if ( DL ) {
if ( ed.dom.hasClass(DL, 'alignleft') )
cm.setActive('justifyleft', 1);
else if ( ed.dom.hasClass(DL, 'alignright') )
cm.setActive('justifyright', 1);
else if ( ed.dom.hasClass(DL, 'aligncenter') )
cm.setActive('justifycenter', 1);
}
});
// remove invalid parent paragraphs when pasting HTML and/or switching to the HTML editor and back
ed.onBeforeSetContent.add(function(ed, o) {
if ( o.content ) {
o.content = o.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi, '<$1$2>');
o.content = o.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi, '</$1>');
}
});
});
// Word count
if ( 'undefined' != typeof(jQuery) ) {
ed.onKeyUp.add(function(ed, e) {
var k = e.keyCode || e.charCode;
if ( k == last )
return;
if ( 13 == k || 8 == last || 46 == last )
jQuery(document).triggerHandler('wpcountwords', [ ed.getContent({format : 'raw'}) ]);
last = k;
});
};
// keep empty paragraphs :(
ed.onSaveContent.addToTop(function(ed, o) {
o.content = o.content.replace(/<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g, '<p>&nbsp;</p>');
});
ed.onSaveContent.add(function(ed, o) {
if ( ed.getParam('wpautop', true) && typeof(switchEditors) == 'object' ) {
if ( ed.isHidden() )
o.content = o.element.value;
else
o.content = switchEditors.pre_wpautop(o.content);
}
});
/* disable for now
ed.onBeforeSetContent.add(function(ed, o) {
o.content = t._setEmbed(o.content);
});
ed.onPostProcess.add(function(ed, o) {
if ( o.get )
o.content = t._getEmbed(o.content);
});
*/
// Add listeners to handle more break
t._handleMoreBreak(ed, url);
// Add custom shortcuts
mod_key = 'alt+shift';
// if ( tinymce.isGecko ) // disable for mow, too many shortcuts conflicts
// mod_key = 'ctrl+alt';
ed.addShortcut(mod_key + '+c', 'justifycenter_desc', 'JustifyCenter');
ed.addShortcut(mod_key + '+r', 'justifyright_desc', 'JustifyRight');
ed.addShortcut(mod_key + '+l', 'justifyleft_desc', 'JustifyLeft');
ed.addShortcut(mod_key + '+j', 'justifyfull_desc', 'JustifyFull');
ed.addShortcut(mod_key + '+q', 'blockquote_desc', 'mceBlockQuote');
ed.addShortcut(mod_key + '+u', 'bullist_desc', 'InsertUnorderedList');
ed.addShortcut(mod_key + '+o', 'numlist_desc', 'InsertOrderedList');
ed.addShortcut(mod_key + '+n', 'spellchecker.desc', 'mceSpellCheck');
ed.addShortcut(mod_key + '+a', 'link_desc', 'WP_Link');
ed.addShortcut(mod_key + '+s', 'unlink_desc', 'unlink');
ed.addShortcut(mod_key + '+m', 'image_desc', 'WP_Medialib');
ed.addShortcut(mod_key + '+z', 'wordpress.wp_adv_desc', 'WP_Adv');
ed.addShortcut(mod_key + '+t', 'wordpress.wp_more_desc', 'WP_More');
ed.addShortcut(mod_key + '+d', 'striketrough_desc', 'Strikethrough');
ed.addShortcut(mod_key + '+h', 'help_desc', 'WP_Help');
ed.addShortcut(mod_key + '+p', 'wordpress.wp_page_desc', 'WP_Page');
ed.addShortcut('ctrl+s', 'save_desc', function(){if('function'==typeof autosave)autosave();});
if ( /\bwpfullscreen\b/.test(ed.settings.plugins) )
ed.addShortcut(mod_key + '+w', 'wordpress.wp_fullscreen_desc', 'wpFullScreen');
else if ( /\bfullscreen\b/.test(ed.settings.plugins) )
ed.addShortcut(mod_key + '+g', 'fullscreen.desc', 'mceFullScreen');
// popup buttons for images and the gallery
ed.onInit.add(function(ed) {
tinymce.dom.Event.add(ed.getWin(), 'scroll', function(e) {
ed.plugins.wordpress._hideButtons();
});
tinymce.dom.Event.add(ed.getBody(), 'dragstart', function(e) {
ed.plugins.wordpress._hideButtons();
});
});
ed.onBeforeExecCommand.add(function(ed, cmd, ui, val) {
ed.plugins.wordpress._hideButtons();
});
ed.onSaveContent.add(function(ed, o) {
ed.plugins.wordpress._hideButtons();
});
ed.onMouseDown.add(function(ed, e) {
if ( e.target.nodeName != 'IMG' )
ed.plugins.wordpress._hideButtons();
});
ed.onKeyDown.add(function(ed, e){
if ( e.which == tinymce.VK.DELETE || e.which == tinymce.VK.BACKSPACE )
ed.plugins.wordpress._hideButtons();
});
closeOnClick = function(e){
var id;
if ( e.target.id == 'mceModalBlocker' || e.target.className == 'ui-widget-overlay' ) {
for ( id in ed.windowManager.windows ) {
ed.windowManager.close(null, id);
}
}
}
// close popups when clicking on the background
tinymce.dom.Event.remove(document.body, 'click', closeOnClick);
tinymce.dom.Event.add(document.body, 'click', closeOnClick);
},
getInfo : function() {
return {
longname : 'WordPress Plugin',
author : 'WordPress', // add Moxiecode?
authorurl : 'http://wordpress.org',
infourl : 'http://wordpress.org',
version : '3.0'
};
},
// Internal functions
_setEmbed : function(c) {
return c.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g, function(a,b){
return '<img width="300" height="200" src="' + tinymce.baseURL + '/plugins/wordpress/img/trans.gif" class="wp-oembed mceItemNoResize" alt="'+b+'" title="'+b+'" />';
});
},
_getEmbed : function(c) {
return c.replace(/<img[^>]+>/g, function(a) {
if ( a.indexOf('class="wp-oembed') != -1 ) {
var u = a.match(/alt="([^\"]+)"/);
if ( u[1] )
a = '[embed]' + u[1] + '[/embed]';
}
return a;
});
},
_showButtons : function(n, id) {
var ed = tinyMCE.activeEditor, p1, p2, vp, DOM = tinymce.DOM, X, Y;
vp = ed.dom.getViewPort(ed.getWin());
p1 = DOM.getPos(ed.getContentAreaContainer());
p2 = ed.dom.getPos(n);
X = Math.max(p2.x - vp.x, 0) + p1.x;
Y = Math.max(p2.y - vp.y, 0) + p1.y;
DOM.setStyles(id, {
'top' : Y+5+'px',
'left' : X+5+'px',
'display' : 'block'
});
},
_hideButtons : function() {
var DOM = tinymce.DOM;
DOM.hide( DOM.select('#wp_editbtns, #wp_gallerybtns') );
},
// Resizes the iframe by a relative height value
_resizeIframe : function(ed, tb_id, dy) {
var ifr = ed.getContentAreaContainer().firstChild;
DOM.setStyle(ifr, 'height', ifr.clientHeight + dy); // Resize iframe
ed.theme.deltaHeight += dy; // For resize cookie
},
_handleMoreBreak : function(ed, url) {
var moreHTML, nextpageHTML;
moreHTML = '<img src="' + url + '/img/trans.gif" alt="$1" class="mceWPmore mceItemNoResize" title="'+ed.getLang('wordpress.wp_more_alt')+'" />';
nextpageHTML = '<img src="' + url + '/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+ed.getLang('wordpress.wp_page_alt')+'" />';
// Display morebreak instead if img in element path
ed.onPostRender.add(function() {
if (ed.theme.onResolveName) {
ed.theme.onResolveName.add(function(th, o) {
if (o.node.nodeName == 'IMG') {
if ( ed.dom.hasClass(o.node, 'mceWPmore') )
o.name = 'wpmore';
if ( ed.dom.hasClass(o.node, 'mceWPnextpage') )
o.name = 'wppage';
}
});
}
});
// Replace morebreak with images
ed.onBeforeSetContent.add(function(ed, o) {
if ( o.content ) {
o.content = o.content.replace(/<!--more(.*?)-->/g, moreHTML);
o.content = o.content.replace(/<!--nextpage-->/g, nextpageHTML);
}
});
// Replace images with morebreak
ed.onPostProcess.add(function(ed, o) {
if (o.get)
o.content = o.content.replace(/<img[^>]+>/g, function(im) {
if (im.indexOf('class="mceWPmore') !== -1) {
var m, moretext = (m = im.match(/alt="(.*?)"/)) ? m[1] : '';
im = '<!--more'+moretext+'-->';
}
if (im.indexOf('class="mceWPnextpage') !== -1)
im = '<!--nextpage-->';
return im;
});
});
// Set active buttons if user selected pagebreak or more break
ed.onNodeChange.add(function(ed, cm, n) {
cm.setActive('wp_page', n.nodeName === 'IMG' && ed.dom.hasClass(n, 'mceWPnextpage'));
cm.setActive('wp_more', n.nodeName === 'IMG' && ed.dom.hasClass(n, 'mceWPmore'));
});
}
});
// Register plugin
tinymce.PluginManager.add('wordpress', tinymce.plugins.WordPress);
})();
Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 B

@@ -0,0 +1,469 @@
/* global tinymce, getUserSetting, setUserSetting */
// Set the minimum value for the modals z-index higher than #wpadminbar (100000)
tinymce.ui.FloatPanel.zIndex = 100100;
tinymce.PluginManager.add( 'wordpress', function( editor ) {
var DOM = tinymce.DOM, wpAdvButton, modKey, style,
last = 0;
function toggleToolbars( state ) {
var iframe, initial, toolbars,
pixels = 0;
initial = ( state === 'hide' );
if ( editor.theme.panel ) {
toolbars = editor.theme.panel.find('.toolbar:not(.menubar)');
}
if ( ! toolbars || toolbars.length < 2 || ( state === 'hide' && ! toolbars[1].visible() ) ) {
return;
}
if ( ! state && toolbars[1].visible() ) {
state = 'hide';
}
tinymce.each( toolbars, function( toolbar, i ) {
if ( i > 0 ) {
if ( state === 'hide' ) {
toolbar.hide();
pixels += 30;
} else {
toolbar.show();
pixels -= 30;
}
}
});
if ( pixels && ! initial ) {
iframe = editor.getContentAreaContainer().firstChild;
DOM.setStyle( iframe, 'height', iframe.clientHeight + pixels ); // Resize iframe
if ( state === 'hide' ) {
setUserSetting('hidetb', '0');
wpAdvButton && wpAdvButton.active( false );
} else {
setUserSetting('hidetb', '1');
wpAdvButton && wpAdvButton.active( true );
}
}
}
// Add the kitchen sink button :)
editor.addButton( 'wp_adv', {
tooltip: 'Toolbar Toggle',
cmd: 'WP_Adv',
onPostRender: function() {
wpAdvButton = this;
wpAdvButton.active( getUserSetting( 'hidetb' ) === '1' ? true : false );
}
});
// Hide the toolbars after loading
editor.on( 'PostRender', function() {
if ( editor.getParam( 'wordpress_adv_hidden', true ) && getUserSetting( 'hidetb', '0' ) === '0' ) {
toggleToolbars( 'hide' );
}
});
editor.addCommand( 'WP_Adv', function() {
toggleToolbars();
});
editor.on( 'focus', function() {
window.wpActiveEditor = editor.id;
});
// Replace Read More/Next Page tags with images
editor.on( 'BeforeSetContent', function( e ) {
if ( e.content ) {
if ( e.content.indexOf( '<!--more' ) !== -1 ) {
e.content = e.content.replace( /<!--more(.*?)-->/g, function( match, moretext ) {
return '<img src="' + tinymce.Env.transparentSrc + '" data-wp-more="' + moretext + '" ' +
'class="wp-more-tag mce-wp-more" title="Read More..." data-mce-resize="false" data-mce-placeholder="1" />';
});
}
if ( e.content.indexOf( '<!--nextpage-->' ) !== -1 ) {
e.content = e.content.replace( /<!--nextpage-->/g,
'<img src="' + tinymce.Env.transparentSrc + '" class="wp-more-tag mce-wp-nextpage" ' +
'title="Page break" data-mce-resize="false" data-mce-placeholder="1" />' );
}
}
});
// Replace images with tags
editor.on( 'PostProcess', function( e ) {
if ( e.get ) {
e.content = e.content.replace(/<img[^>]+>/g, function( image ) {
var match, moretext = '';
if ( image.indexOf('wp-more-tag') !== -1 ) {
if ( image.indexOf('mce-wp-more') !== -1 ) {
if ( match = image.match( /data-wp-more="([^"]+)"/ ) ) {
moretext = match[1];
}
image = '<!--more' + moretext + '-->';
} else if ( image.indexOf('mce-wp-nextpage') !== -1 ) {
image = '<!--nextpage-->';
}
}
return image;
});
}
});
// Display the tag name instead of img in element path
editor.on( 'ResolveName', function( e ) {
var dom = editor.dom,
target = e.target;
if ( target.nodeName === 'IMG' && dom.hasClass( target, 'wp-more-tag' ) ) {
if ( dom.hasClass( target, 'mce-wp-more' ) ) {
e.name = 'more';
} else if ( dom.hasClass( target, 'mce-wp-nextpage' ) ) {
e.name = 'nextpage';
}
}
});
// Register commands
editor.addCommand( 'WP_More', function( tag ) {
var parent, html, title,
classname = 'wp-more-tag',
dom = editor.dom,
node = editor.selection.getNode();
tag = tag || 'more';
classname += ' mce-wp-' + tag;
title = tag === 'more' ? 'More...' : 'Next Page';
html = '<img src="' + tinymce.Env.transparentSrc + '" title="' + title + '" class="' + classname + '" ' +
'data-mce-resize="false" data-mce-placeholder="1" />';
// Most common case
if ( node.nodeName === 'BODY' || ( node.nodeName === 'P' && node.parentNode.nodeName === 'BODY' ) ) {
editor.insertContent( html );
return;
}
// Get the top level parent node
parent = dom.getParent( node, function( found ) {
if ( found.parentNode && found.parentNode.nodeName === 'BODY' ) {
return true;
}
return false;
}, editor.getBody() );
if ( parent ) {
if ( parent.nodeName === 'P' ) {
parent.appendChild( dom.create( 'p', null, html ).firstChild );
} else {
dom.insertAfter( dom.create( 'p', null, html ), parent );
}
editor.nodeChanged();
}
});
editor.addCommand( 'WP_Code', function() {
editor.formatter.toggle('code');
});
editor.addCommand( 'WP_Page', function() {
editor.execCommand( 'WP_More', 'nextpage' );
});
editor.addCommand( 'WP_Help', function() {
editor.windowManager.open({
url: tinymce.baseURL + '/wp-mce-help.php',
title: 'Keyboard Shortcuts',
width: 450,
height: 420,
inline: 1,
classes: 'wp-help'
});
});
editor.addCommand( 'WP_Medialib', function() {
if ( typeof wp !== 'undefined' && wp.media && wp.media.editor ) {
wp.media.editor.open( editor.id );
}
});
// Register buttons
editor.addButton( 'wp_more', {
tooltip: 'Insert Read More tag',
onclick: function() {
editor.execCommand( 'WP_More', 'more' );
}
});
editor.addButton( 'wp_page', {
tooltip: 'Page break',
onclick: function() {
editor.execCommand( 'WP_More', 'nextpage' );
}
});
editor.addButton( 'wp_help', {
tooltip: 'Keyboard Shortcuts',
cmd: 'WP_Help'
});
editor.addButton( 'wp_code', {
tooltip: 'Code',
cmd: 'WP_Code',
stateSelector: 'code'
});
// Menubar
// Insert->Add Media
if ( typeof wp !== 'undefined' && wp.media && wp.media.editor ) {
editor.addMenuItem( 'add_media', {
text: 'Add Media',
icon: 'wp-media-library',
context: 'insert',
cmd: 'WP_Medialib'
});
}
// Insert "Read More..."
editor.addMenuItem( 'wp_more', {
text: 'Insert Read More tag',
icon: 'wp_more',
context: 'insert',
onclick: function() {
editor.execCommand( 'WP_More', 'more' );
}
});
// Insert "Next Page"
editor.addMenuItem( 'wp_page', {
text: 'Page break',
icon: 'wp_page',
context: 'insert',
onclick: function() {
editor.execCommand( 'WP_More', 'nextpage' );
}
});
editor.on( 'BeforeExecCommand', function(e) {
if ( tinymce.Env.webkit && ( e.command === 'InsertUnorderedList' || e.command === 'InsertOrderedList' ) ) {
if ( ! style ) {
style = editor.dom.create( 'style', {'type': 'text/css'},
'#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}');
}
editor.getDoc().head.appendChild( style );
}
});
editor.on( 'ExecCommand', function( e ) {
if ( tinymce.Env.webkit && style &&
( 'InsertUnorderedList' === e.command || 'InsertOrderedList' === e.command ) ) {
editor.dom.remove( style );
}
});
editor.on( 'init', function() {
var env = tinymce.Env,
bodyClass = ['mceContentBody'], // back-compat for themes that use this in editor-style.css...
doc = editor.getDoc(),
dom = editor.dom;
if ( editor.getParam( 'directionality' ) === 'rtl' ) {
bodyClass.push('rtl');
dom.setAttrib( doc.documentElement, 'dir', 'rtl' );
}
if ( env.ie ) {
if ( parseInt( env.ie, 10 ) === 9 ) {
bodyClass.push('ie9');
} else if ( parseInt( env.ie, 10 ) === 8 ) {
bodyClass.push('ie8');
} else if ( env.ie < 8 ) {
bodyClass.push('ie7');
}
}
bodyClass.push('wp-editor');
tinymce.each( bodyClass, function( cls ) {
if ( cls ) {
dom.addClass( doc.body, cls );
}
});
// Remove invalid parent paragraphs when inserting HTML
// TODO: still needed?
editor.on( 'BeforeSetContent', function( e ) {
if ( e.content ) {
e.content = e.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi, '<$1$2>');
e.content = e.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi, '</$1>');
}
});
if ( typeof window.jQuery !== 'undefined' ) {
window.jQuery( document ).triggerHandler( 'tinymce-editor-init', [editor] );
}
if ( window.tinyMCEPreInit && window.tinyMCEPreInit.dragDropUpload ) {
dom.bind( doc, 'dragstart dragend dragover drop', function( event ) {
if ( typeof window.jQuery !== 'undefined' ) {
// Trigger the jQuery handlers.
window.jQuery( document ).trigger( new window.jQuery.Event( event ) );
}
});
}
});
// Word count
if ( typeof window.jQuery !== 'undefined' ) {
editor.on( 'keyup', function( e ) {
var key = e.keyCode || e.charCode;
if ( key === last ) {
return;
}
if ( 13 === key || 8 === last || 46 === last ) {
window.jQuery( document ).triggerHandler( 'wpcountwords', [ editor.getContent({ format : 'raw' }) ] );
}
last = key;
});
}
editor.on( 'SaveContent', function( e ) {
// If editor is hidden, we just want the textarea's value to be saved
if ( editor.isHidden() ) {
e.content = e.element.value;
return;
}
// Keep empty paragraphs :(
e.content = e.content.replace( /<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g, '<p>&nbsp;</p>' );
if ( editor.getParam( 'wpautop', true ) && typeof window.switchEditors !== 'undefined' ) {
e.content = window.switchEditors.pre_wpautop( e.content );
}
});
editor.on( 'preInit', function() {
// Don't replace <i> with <em> and <b> with <strong> and don't remove them when empty
editor.schema.addValidElements( '@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b' );
});
// Add custom shortcuts
modKey = 'alt+shift';
editor.addShortcut( modKey + '+c', '', 'JustifyCenter' );
editor.addShortcut( modKey + '+r', '', 'JustifyRight' );
editor.addShortcut( modKey + '+l', '', 'JustifyLeft' );
editor.addShortcut( modKey + '+j', '', 'JustifyFull' );
editor.addShortcut( modKey + '+q', '', 'mceBlockQuote' );
editor.addShortcut( modKey + '+u', '', 'InsertUnorderedList' );
editor.addShortcut( modKey + '+o', '', 'InsertOrderedList' );
editor.addShortcut( modKey + '+n', '', 'mceSpellCheck' );
editor.addShortcut( modKey + '+s', '', 'unlink' );
editor.addShortcut( modKey + '+m', '', 'WP_Medialib' );
editor.addShortcut( modKey + '+z', '', 'WP_Adv' );
editor.addShortcut( modKey + '+t', '', 'WP_More' );
editor.addShortcut( modKey + '+d', '', 'Strikethrough' );
editor.addShortcut( modKey + '+h', '', 'WP_Help' );
editor.addShortcut( modKey + '+p', '', 'WP_Page' );
editor.addShortcut( modKey + '+x', '', 'WP_Code' );
editor.addShortcut( 'ctrl+s', '', function() {
if ( typeof wp !== 'undefined' && wp.autosave ) {
wp.autosave.server.triggerSave();
}
});
// popup buttons for the gallery, etc.
editor.on( 'init', function() {
editor.dom.bind( editor.getWin(), 'scroll', function() {
_hideButtons();
});
editor.dom.bind( editor.getBody(), 'dragstart', function() {
_hideButtons();
});
});
editor.on( 'BeforeExecCommand', function() {
_hideButtons();
});
editor.on( 'SaveContent', function() {
_hideButtons();
});
editor.on( 'MouseDown', function( e ) {
if ( e.target.nodeName !== 'IMG' ) {
_hideButtons();
}
});
editor.on( 'keydown', function( e ) {
if ( e.which === tinymce.util.VK.DELETE || e.which === tinymce.util.VK.BACKSPACE ) {
_hideButtons();
}
});
// Internal functions
function _setEmbed( c ) {
return c.replace( /\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g, function( a, b ) {
return '<img width="300" height="200" src="' + tinymce.Env.transparentSrc + '" class="wp-oembed" ' +
'alt="'+ b +'" title="'+ b +'" data-mce-resize="false" data-mce-placeholder="1" />';
});
}
function _getEmbed( c ) {
return c.replace( /<img[^>]+>/g, function( a ) {
if ( a.indexOf('class="wp-oembed') !== -1 ) {
var u = a.match( /alt="([^\"]+)"/ );
if ( u[1] ) {
a = '[embed]' + u[1] + '[/embed]';
}
}
return a;
});
}
function _showButtons( n, id ) {
var p1, p2, vp, X, Y;
vp = editor.dom.getViewPort( editor.getWin() );
p1 = DOM.getPos( editor.getContentAreaContainer() );
p2 = editor.dom.getPos( n );
X = Math.max( p2.x - vp.x, 0 ) + p1.x;
Y = Math.max( p2.y - vp.y, 0 ) + p1.y;
DOM.setStyles( id, {
'top' : Y + 5 + 'px',
'left' : X + 5 + 'px',
'display': 'block'
});
}
function _hideButtons() {
DOM.hide( DOM.select( '#wp_editbtns, #wp_gallerybtns' ) );
}
// Expose some functions (back-compat)
return {
_showButtons: _showButtons,
_hideButtons: _hideButtons,
_setEmbed: _setEmbed,
_getEmbed: _getEmbed
};
});
@@ -0,0 +1 @@
tinymce.ui.FloatPanel.zIndex=100100,tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar:not(.menubar)")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f),"hide"===b?(setUserSetting("hidetb","0"),g&&g.active(!1)):(setUserSetting("hidetb","1"),g&&g.active(!0))))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return'<img width="300" height="200" src="'+tinymce.Env.transparentSrc+'" class="wp-oembed" alt="'+b+'" title="'+b+'" data-mce-resize="false" data-mce-placeholder="1" />'})}function d(a){return a.replace(/<img[^>]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this,g.active("1"===getUserSetting("hidetb")?!0:!1)}}),a.on("PostRender",function(){a.getParam("wordpress_adv_hidden",!0)&&"0"===getUserSetting("hidetb","0")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(a){a.content&&(-1!==a.content.indexOf("<!--more")&&(a.content=a.content.replace(/<!--more(.*?)-->/g,function(a,b){return'<img src="'+tinymce.Env.transparentSrc+'" data-wp-more="'+b+'" class="wp-more-tag mce-wp-more" title="Read More..." data-mce-resize="false" data-mce-placeholder="1" />'})),-1!==a.content.indexOf("<!--nextpage-->")&&(a.content=a.content.replace(/<!--nextpage-->/g,'<img src="'+tinymce.Env.transparentSrc+'" class="wp-more-tag mce-wp-nextpage" title="Page break" data-mce-resize="false" data-mce-placeholder="1" />')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/<img[^>]+>/g,function(a){var b,c="";return-1!==a.indexOf("wp-more-tag")&&(-1!==a.indexOf("mce-wp-more")?((b=a.match(/data-wp-more="([^"]+)"/))&&(c=b[1]),a="<!--more"+c+"-->"):-1!==a.indexOf("mce-wp-nextpage")&&(a="<!--nextpage-->")),a}))}),a.on("ResolveName",function(b){var c=a.dom,d=b.target;"IMG"===d.nodeName&&c.hasClass(d,"wp-more-tag")&&(c.hasClass(d,"mce-wp-more")?b.name="more":c.hasClass(d,"mce-wp-nextpage")&&(b.name="nextpage"))}),a.addCommand("WP_More",function(b){var c,d,e,f="wp-more-tag",g=a.dom,h=a.selection.getNode();return b=b||"more",f+=" mce-wp-"+b,e="more"===b?"More...":"Next Page",d='<img src="'+tinymce.Env.transparentSrc+'" title="'+e+'" class="'+f+'" data-mce-resize="false" data-mce-placeholder="1" />',"BODY"===h.nodeName||"P"===h.nodeName&&"BODY"===h.parentNode.nodeName?void a.insertContent(d):(c=g.getParent(h,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),void(c&&("P"===c.nodeName?c.appendChild(g.create("p",null,d).firstChild):g.insertAfter(g.create("p",null,d),c),a.nodeChanged())))}),a.addCommand("WP_Code",function(){a.formatter.toggle("code")}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",title:"Keyboard Shortcuts",width:450,height:420,inline:1,classes:"wp-help"})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Keyboard Shortcuts",cmd:"WP_Help"}),a.addButton("wp_code",{tooltip:"Code",cmd:"WP_Code",stateSelector:"code"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",icon:"wp-media-library",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",icon:"wp_more",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",icon:"wp_page",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.comLine truncated