Ticket #11420: wpdialogs-and-friends.diff

File wpdialogs-and-friends.diff, 59.2 KB (added by koopersmith, 18 months ago)
  • wp-includes/js/tinymce/plugins/wplink/editor_plugin.js

     
    1 (function(){tinymce.create("tinymce.plugins.wpLink",{init:function(a,b){a.addCommand("WP_Link",function(){a.windowManager.open({file:tinymce.baseURL+"/wp-mce-link.php",width:480,height:430,inline:1},{plugin_url:b})});a.addButton("link",{title:a.getLang("advanced.link_desc"),cmd:"WP_Link"});a.addShortcut("alt+shift+a",a.getLang("advanced.link_desc"),"WP_Link");a.onNodeChange.add(function(d,c,e){c.setActive("wplink",e.nodeName=="A")})},getInfo:function(){return{longname:"WordPress Link Dialog",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wplink",tinymce.plugins.wpLink)})(); 
    2  No newline at end of file 
     1(function(){tinymce.create("tinymce.plugins.wpLink",{init:function(a,b){a.addCommand("WP_Link",function(){a.windowManager.open({id:"wp-link",width:480,height:"auto",wpDialog:true,title:a.getLang("advlink.link_desc")},{plugin_url:b})});a.addButton("link",{title:a.getLang("advanced.link_desc"),cmd:"WP_Link"});a.addShortcut("alt+shift+a",a.getLang("advanced.link_desc"),"WP_Link");a.onNodeChange.add(function(d,c,e){c.setActive("wplink",e.nodeName=="A")})},getInfo:function(){return{longname:"WordPress Link Dialog",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wplink",tinymce.plugins.wpLink)})(); 
     2 No newline at end of file 
  • wp-includes/js/tinymce/plugins/wplink/css/wplink.dev.css

     
     1#wp-link p.howto { 
     2        margin: 3px; 
     3} 
     4#link-options { 
     5        padding: 10px 0 14px; 
     6        border-bottom: 1px solid #dfdfdf; 
     7        margin: 0 6px 14px; 
     8} 
     9#wp-link label input[type="text"] { 
     10        width: 360px; 
     11        margin-top: 5px; 
     12} 
     13#wp-link label span { 
     14        display: inline-block; 
     15        width: 80px; 
     16        text-align: right; 
     17        padding-right: 5px; 
     18} 
     19#wp-link .link-search-wrapper { 
     20        margin: 5px 5px 9px; 
     21        display: block; 
     22        overflow: hidden; 
     23} 
     24#wp-link .link-search-wrapper span { 
     25        float: left; 
     26        margin-top: 6px; 
     27} 
     28#wp-link .link-search-wrapper input[type="text"] { 
     29        float: left; 
     30        width: 220px; 
     31} 
     32#wp-link .link-search-wrapper img.waiting { 
     33        margin: 8px 1px 0 4px; 
     34        float: left; 
     35        display: none; 
     36} 
     37#open-in-new-tab { 
     38        display: inline-block; 
     39        padding: 3px 0 0; 
     40        margin: 0 0 0 87px; 
     41} 
     42#open-in-new-tab span { 
     43        width: auto; 
     44        margin-left: 6px; 
     45        font-size: 11px; 
     46} 
     47.query-results { 
     48        border: 1px #dfdfdf solid; 
     49        margin: 0 5px 5px; 
     50        background: #fff; 
     51        height: 185px; 
     52        overflow: auto; 
     53} 
     54.query-results li { 
     55        margin-bottom: 0; 
     56        border-bottom: 1px solid #f1f1f1; 
     57        color: #555; 
     58        padding: 4px 6px; 
     59        cursor: pointer; 
     60} 
     61.query-results li:hover { 
     62        background: #eaf2fa; 
     63        color: #333; 
     64} 
     65#wp-link .query-results li.unselectable:hover { 
     66        background: #fff; 
     67        cursor: auto; 
     68        color: #555; 
     69} 
     70#wp-link .query-results li.unselectable { 
     71        border-bottom: 1px solid #dfdfdf; 
     72} 
     73#wp-link .query-results li.selected { 
     74        background: #f1f1f1; 
     75        color: #333; 
     76} 
     77#wp-link .query-results li.selected .item-title { 
     78        font-weight: bold; 
     79} 
     80#wp-link .item-info { 
     81        text-transform: uppercase; 
     82        color: #aaa; 
     83        font-size: 11px; 
     84        float: right; 
     85} 
     86#search-results { 
     87        display: none; 
     88} 
     89#wp-link .river-waiting { 
     90        display: none; 
     91        padding: 10px 0; 
     92} 
     93#wp-link .river-waiting img.waiting { 
     94        margin: 0 auto; 
     95        display: block; 
     96} 
     97#wp-link .submitbox { 
     98        padding: 5px 5px 0; 
     99        font-size: 11px; 
     100        overflow: auto; 
     101        height: 29px; 
     102} 
     103#wp-link-cancel { 
     104        line-height: 25px; 
     105        float: left; 
     106} 
     107#wp-link-update { 
     108        line-height: 23px; 
     109        float: right; 
     110} 
     111#wp-link-update a { 
     112        display: inline-block; 
     113} 
     114 No newline at end of file 
  • wp-includes/js/tinymce/plugins/wplink/css/wplink.css

     
     1#wp-link p.howto{margin:3px;}#link-options{padding:10px 0 14px;border-bottom:1px solid #dfdfdf;margin:0 6px 14px;}#wp-link label input[type="text"]{width:360px;margin-top:5px;}#wp-link label span{display:inline-block;width:80px;text-align:right;padding-right:5px;}#wp-link .link-search-wrapper{margin:5px 5px 9px;display:block;overflow:hidden;}#wp-link .link-search-wrapper span{float:left;margin-top:6px;}#wp-link .link-search-wrapper input[type="text"]{float:left;width:220px;}#wp-link .link-search-wrapper img.waiting{margin:8px 1px 0 4px;float:left;display:none;}#open-in-new-tab{display:inline-block;padding:3px 0 0;margin:0 0 0 87px;}#open-in-new-tab span{width:auto;margin-left:6px;font-size:11px;}.query-results{border:1px #dfdfdf solid;margin:0 5px 5px;background:#fff;height:185px;overflow:auto;}.query-results li{margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#555;padding:4px 6px;cursor:pointer;}.query-results li:hover{background:#eaf2fa;color:#333;}#wp-link .query-results li.unselectable:hover{background:#fff;cursor:auto;color:#555;}#wp-link .query-results li.unselectable{border-bottom:1px solid #dfdfdf;}#wp-link .query-results li.selected{background:#f1f1f1;color:#333;}#wp-link .query-results li.selected .item-title{font-weight:bold;}#wp-link .item-info{text-transform:uppercase;color:#aaa;font-size:11px;float:right;}#search-results{display:none;}#wp-link .river-waiting{display:none;padding:10px 0;}#wp-link .river-waiting img.waiting{margin:0 auto;display:block;}#wp-link .submitbox{padding:5px 5px 0;font-size:11px;overflow:auto;height:29px;}#wp-link-cancel{line-height:25px;float:left;}#wp-link-update{line-height:23px;float:right;}#wp-link-update a{display:inline-block;} 
     2 No newline at end of file 
  • wp-includes/js/tinymce/plugins/wplink/js/wplink.js

     
    1 (function(d){var a={},c={},b,e={timeToTriggerRiver:150,minRiverAJAXDuration:200,lastSearch:"",riverDefaults:function(){return{page:2,allLoaded:false,active:false}},init:function(){var f;b=tinyMCEPopup.editor;a.url=d("#url-field");a.title=d("#link-title-field");a.openInNewTab=d("#link-target-checkbox");a.search=d("#search-field");c.search=d("#search-results");c.recent=d("#most-recent-results");c.search.data("river",e.riverDefaults());c.recent.data("river",e.riverDefaults());d("#wp-update").click(e.update);d("#wp-cancel").click(function(){tinyMCEPopup.close()});d(".query-results").delegate("li","click",e.selectInternalLink);d(".query-results").scroll(e.maybeLoadRiver);a.search.keyup(e.searchInternalLinks);if(f=b.dom.getParent(b.selection.getNode(),"A")){a.url.val(f.href);a.title.val(b.dom.getAttrib(f,"title"));if("_blank"==b.dom.getAttrib(f,"target")){a.openInNewTab.attr("checked","checked")}}a.url.focus()},update:function(){var j,g=tinyMCEPopup.editor,h={href:a.url.val(),title:a.title.val(),target:a.openInNewTab.attr("checked")?"_blank":""},k,f,i=h.title?h.title:h.href;tinyMCEPopup.restoreSelection();k=g.dom.getParent(g.selection.getNode(),"A");if(!h.href){if(g.selection.isCollapsed()){tinyMCEPopup.close();return}else{if(k){tinyMCEPopup.execCommand("mceBeginUndoLevel");f=g.selection.getBookmark();g.dom.remove(k,1);g.selection.moveToBookmark(f);tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close();return}}}tinyMCEPopup.execCommand("mceBeginUndoLevel");if(k==null){g.getDoc().execCommand("unlink",false,null);if(g.selection.isCollapsed()){j=g.dom.create("a",{href:"#mce_temp_url#"},i);g.selection.setNode(j)}else{tinyMCEPopup.execCommand("CreateLink",false,"#mce_temp_url#",{skip_undo:1})}tinymce.each(g.dom.select("a"),function(l){if(g.dom.getAttrib(l,"href")=="#mce_temp_url#"){k=l;g.dom.setAttribs(k,h)}})}else{g.dom.setAttribs(k,h)}if(k.childNodes.length!=1||k.firstChild.nodeName!="IMG"){g.focus();g.selection.select(k);g.selection.collapse(0);tinyMCEPopup.storeSelection()}tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close()},selectInternalLink:function(){var f=d(this);if(f.hasClass("unselectable")){return}f.siblings(".selected").removeClass("selected");f.addClass("selected");a.url.val(f.children(".item-permalink").val());a.title.val(f.children(".item-title").text())},maybeLoadRiver:function(){var h=d(this),g=h.children("ul"),i=h.data("river"),f=h.scrollTop()+h.height();if(f!=g.height()||i.active||i.allLoaded){return}setTimeout(function(){var j=h.scrollTop(),k=j+h.height(),l=h.find(".river-waiting");if(f!=k||k!=g.height()||i.active||i.allLoaded){return}i.active=true;l.show();h.scrollTop(j+l.outerHeight());e.linkAJAX(h,{page:i.page},function(m){i.page++;i.active=false;i.allLoaded=!m;l.hide()},{append:true,delay:e.minRiverAJAXDuration})},e.timeToTriggerRiver)},searchInternalLinks:function(){var f=d(this),h,g=f.val();if(g.length>2){c.recent.hide();c.search.show();if(e.lastSearch==g){return}e.lastSearch=g;h=f.siblings("img.waiting").show();c.search.data("river",e.riverDefaults());c.search.scrollTop(0);e.linkAJAX(c.search,{title:g},function(){h.hide()})}else{c.search.hide();c.recent.show()}},linkAJAX:function(i,h,j,g){var f;g=g||{};if(!i.hasClass("query-results")){i=i.parents(".query-results")}if(!i.length){return}f=e.delayedCallback(function(k){e.processAJAXResponse(i,k,j,g)},g.delay);d.post(ajaxurl,d.extend({action:"wp-link-ajax"},h),f,"json")},processAJAXResponse:function(i,f,j,g){var h="";if(!f){if(!g.append){h+='<li class="no-matches-found unselectable"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"}}else{d.each(f,function(){h+='<li><input type="hidden" class="item-permalink" value="'+this["permalink"]+'" />';h+='<span class="item-title">';h+=this["title"]?this["title"]:"<em>"+wpLinkL10n.untitled+"</em>";h+='</span><span class="item-info">'+this["info"]+"</span></li>"})}i.children("ul")[g.append?"append":"html"](h);if(j){j(f)}},delayedCallback:function(h,f){var k,j,i,g;if(!f){return h}setTimeout(function(){if(j){return h.apply(g,i)}k=true},f);return function(){if(k){return h.apply(this,arguments)}i=arguments;g=this;j=true}}};d(document).ready(e.init)})(jQuery); 
    2  No newline at end of file 
     1(function(d){var a={},c={},b,e={timeToTriggerRiver:150,minRiverAJAXDuration:200,lastSearch:"",riverDefaults:function(){return{page:2,allLoaded:false,active:false}},init:function(){a.dialog=d("#wp-link");a.url=d("#url-field");a.title=d("#link-title-field");a.openInNewTab=d("#link-target-checkbox");a.search=d("#search-field");c.search=d("#search-results");c.recent=d("#most-recent-results");c.search.data("river",e.riverDefaults());c.recent.data("river",e.riverDefaults());c.group=d(".query-results",a.dialog);d("#wp-link-update").click(e.update);d("#wp-link-cancel").click(function(){tinyMCEPopup.close()});c.group.delegate("li","click",e.selectInternalLink);c.group.scroll(e.maybeLoadRiver);a.search.keyup(e.searchInternalLinks);a.dialog.bind("dialogopen",e.refresh)},refresh:function(){var f;b=tinyMCEPopup.editor;if(f=b.dom.getParent(b.selection.getNode(),"A")){a.url.val(f.href);a.title.val(b.dom.getAttrib(f,"title"));if("_blank"==b.dom.getAttrib(f,"target")){a.openInNewTab.attr("checked","checked")}}c.group.find(".selected").removeClass("selected");a.url.focus()},update:function(){var j,g=tinyMCEPopup.editor,h={href:a.url.val(),title:a.title.val(),target:a.openInNewTab.attr("checked")?"_blank":""},k,f,i=h.title?h.title:h.href;tinyMCEPopup.restoreSelection();k=g.dom.getParent(g.selection.getNode(),"A");if(!h.href){if(g.selection.isCollapsed()){tinyMCEPopup.close();return}else{if(k){tinyMCEPopup.execCommand("mceBeginUndoLevel");f=g.selection.getBookmark();g.dom.remove(k,1);g.selection.moveToBookmark(f);tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close();return}}}tinyMCEPopup.execCommand("mceBeginUndoLevel");if(k==null){g.getDoc().execCommand("unlink",false,null);if(g.selection.isCollapsed()){j=g.dom.create("a",{href:"#mce_temp_url#"},i);g.selection.setNode(j)}else{tinyMCEPopup.execCommand("CreateLink",false,"#mce_temp_url#",{skip_undo:1})}tinymce.each(g.dom.select("a"),function(l){if(g.dom.getAttrib(l,"href")=="#mce_temp_url#"){k=l;g.dom.setAttribs(k,h)}})}else{g.dom.setAttribs(k,h)}if(k.childNodes.length!=1||k.firstChild.nodeName!="IMG"){g.focus();g.selection.select(k);g.selection.collapse(0);tinyMCEPopup.storeSelection()}tinyMCEPopup.execCommand("mceEndUndoLevel");tinyMCEPopup.close()},selectInternalLink:function(){var f=d(this);if(f.hasClass("unselectable")){return}f.siblings(".selected").removeClass("selected");f.addClass("selected");a.url.val(f.children(".item-permalink").val());a.title.val(f.children(".item-title").text())},maybeLoadRiver:function(){var h=d(this),g=h.children("ul"),i=h.data("river"),f=h.scrollTop()+h.height();if(f!=g.height()||i.active||i.allLoaded){return}setTimeout(function(){var j=h.scrollTop(),k=j+h.height(),l=h.find(".river-waiting");if(f!=k||k!=g.height()||i.active||i.allLoaded){return}i.active=true;l.show();h.scrollTop(j+l.outerHeight());e.linkAJAX(h,{page:i.page},function(m){i.page++;i.active=false;i.allLoaded=!m;l.hide()},{append:true,delay:e.minRiverAJAXDuration})},e.timeToTriggerRiver)},searchInternalLinks:function(){var f=d(this),h,g=f.val();if(g.length>2){c.recent.hide();c.search.show();if(e.lastSearch==g){return}e.lastSearch=g;h=f.siblings("img.waiting").show();c.search.data("river",e.riverDefaults());c.search.scrollTop(0);e.linkAJAX(c.search,{title:g},function(){h.hide()})}else{c.search.hide();c.recent.show()}},linkAJAX:function(i,h,j,g){var f;g=g||{};if(!i.hasClass("query-results")){i=i.parents(".query-results")}if(!i.length){return}f=e.delayedCallback(function(k){e.processAJAXResponse(i,k,j,g)},g.delay);d.post(ajaxurl,d.extend({action:"wp-link-ajax"},h),f,"json")},processAJAXResponse:function(i,f,j,g){var h="";if(!f){if(!g.append){h+='<li class="no-matches-found unselectable"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"}}else{d.each(f,function(){h+='<li><input type="hidden" class="item-permalink" value="'+this["permalink"]+'" />';h+='<span class="item-title">';h+=this["title"]?this["title"]:"<em>"+wpLinkL10n.untitled+"</em>";h+='</span><span class="item-info">'+this["info"]+"</span></li>"})}i.children("ul")[g.append?"append":"html"](h);if(j){j(f)}},delayedCallback:function(h,f){var k,j,i,g;if(!f){return h}setTimeout(function(){if(j){return h.apply(g,i)}k=true},f);return function(){if(k){return h.apply(this,arguments)}i=arguments;g=this;j=true}}};d(document).ready(e.init)})(jQuery); 
     2 No newline at end of file 
  • wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js

     
    1212                        }; 
    1313                }, 
    1414                init : function() { 
    15                         var e; 
    16                         // Init shared vars 
    17                         ed = tinyMCEPopup.editor; 
    18  
    19  
     15                        inputs.dialog = $('#wp-link'); 
    2016                        // URL 
    2117                        inputs.url = $('#url-field'); 
    2218                        // Secondary options 
     
    2925                        results.recent = $('#most-recent-results'); 
    3026                        results.search.data('river', wpLink.riverDefaults() ); 
    3127                        results.recent.data('river', wpLink.riverDefaults() ); 
     28                        results.group = $('.query-results', inputs.dialog); 
    3229 
    3330                        // Bind event handlers 
    34                         $('#wp-update').click( wpLink.update ); 
    35                         $('#wp-cancel').click( function() { tinyMCEPopup.close(); } ); 
    36                         $('.query-results').delegate('li', 'click', wpLink.selectInternalLink ); 
    37                         $('.query-results').scroll( wpLink.maybeLoadRiver ); 
     31                        $('#wp-link-update').click( wpLink.update ); 
     32                        $('#wp-link-cancel').click( function() { tinyMCEPopup.close(); } ); 
     33                         
     34                        results.group.delegate('li', 'click', wpLink.selectInternalLink ) 
     35                        results.group.scroll( wpLink.maybeLoadRiver ); 
     36                         
    3837                        inputs.search.keyup( wpLink.searchInternalLinks ); 
     38                         
     39                        inputs.dialog.bind('dialogopen', wpLink.refresh); 
     40                }, 
    3941 
     42                refresh : function() { 
     43                        var e; 
     44                         
     45                        ed = tinyMCEPopup.editor; 
     46                         
    4047                        // If link exists, select proper values. 
    4148                        if ( e = ed.dom.getParent(ed.selection.getNode(), 'A') ) { 
    4249                                // Set URL and description. 
     
    4754                                        inputs.openInNewTab.attr('checked','checked'); 
    4855                        } 
    4956 
     57                        // Clear previously selected links 
     58                        results.group.find('.selected').removeClass('selected'); 
    5059                        // Focus the URL field 
    5160                        inputs.url.focus(); 
    5261                }, 
  • wp-includes/js/tinymce/plugins/wplink/editor_plugin.dev.js

     
    1212                        // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); 
    1313                        ed.addCommand('WP_Link', function() { 
    1414                                ed.windowManager.open({ 
    15                                         file : tinymce.baseURL + '/wp-mce-link.php', 
     15                                        id : 'wp-link', 
    1616                                        width : 480, 
    17                                         height : 430, 
    18                                         inline : 1 
     17                                        height : "auto", 
     18                                        wpDialog : true, 
     19                                        title : ed.getLang('advlink.link_desc') 
    1920                                }, { 
    2021                                        plugin_url : url // Plugin absolute URL 
    2122                                }); 
  • wp-includes/js/tinymce/plugins/wpdialogs/editor_plugin.js

     
     1(function(b){var a=function(c){return function(){if(this.features.wpDialog){return c.apply(this,arguments)}else{return this.parent.apply(this,arguments)}}};tinymce.create("tinymce.plugins.WPDialogs",{init:function(c,d){c.onBeforeRenderUI.add(function(){c.windowManager=new tinymce.WPWindowManager(c)})},getInfo:function(){return{longname:"WPDialogs",author:"WordPress",authorurl:"http://wordpress.org",infourl:"http://wordpress.org",version:"0.1"}}});tinymce.create("tinymce.WPWindowManager:tinymce.InlineWindowManager",{WPWindowManager:function(c){this.parent(c)},open:function(e,g){var d=this,c;if(!e.wpDialog){return this.parent(e,g)}else{if(!e.id){return}}c=b("#"+e.id);if(!c.length){return}d.features=e;d.params=g;d.onOpen.dispatch(d,e,g);d.element=d.windows[e.id]=c;if(tinyMCEPopup){tinyMCEPopup.init()}c.dialog({title:e.title,width:e.width,height:e.height,modal:true})},close:a(function(){this.element.dialog("close")}),});tinymce.PluginManager.add("wpdialogs",tinymce.plugins.WPDialogs)})(jQuery); 
     2 No newline at end of file 
  • wp-includes/js/tinymce/plugins/wpdialogs/editor_plugin.dev.js

     
     1/** 
     2 * editor_plugin_src.js 
     3 * 
     4 * Copyright 2009, Moxiecode Systems AB 
     5 * Released under LGPL License. 
     6 * 
     7 * License: http://tinymce.moxiecode.com/license 
     8 * Contributing: http://tinymce.moxiecode.com/contributing 
     9 */ 
     10 
     11(function($) { 
     12        var wpDialogFn = function( fn ) { 
     13                return function() { 
     14                        if ( this.features.wpDialog ) 
     15                                return fn.apply( this, arguments ); 
     16                        else 
     17                                return this.parent.apply( this, arguments ); 
     18                }; 
     19        }; 
     20 
     21        tinymce.create('tinymce.plugins.WPDialogs', { 
     22                init : function(ed, url) { 
     23                        // Replace window manager 
     24                        ed.onBeforeRenderUI.add(function() { 
     25                                ed.windowManager = new tinymce.WPWindowManager(ed); 
     26                        }); 
     27                }, 
     28 
     29                getInfo : function() { 
     30                        return { 
     31                                longname : 'WPDialogs', 
     32                                author : 'WordPress', 
     33                                authorurl : 'http://wordpress.org', 
     34                                infourl : 'http://wordpress.org', 
     35                                version : '0.1' 
     36                        }; 
     37                } 
     38        }); 
     39 
     40        tinymce.create('tinymce.WPWindowManager:tinymce.InlineWindowManager', { 
     41                WPWindowManager : function(ed) { 
     42                        this.parent(ed); 
     43                }, 
     44 
     45                open : function(f, p) { 
     46                        var t = this, element; 
     47                        // Can't use wpDialogFn here; this.features isn't set yet. 
     48                        if ( ! f.wpDialog ) 
     49                                return this.parent( f, p ); 
     50                        else if ( ! f.id ) 
     51                                return; 
     52                         
     53                        element = $('#' + f.id); 
     54                        if ( ! element.length ) 
     55                                return; 
     56                         
     57                        t.features = f; 
     58                        t.params = p; 
     59                        t.onOpen.dispatch(t, f, p); 
     60                        t.element = t.windows[ f.id ] = element; 
     61                         
     62                        if ( tinyMCEPopup ) 
     63                                tinyMCEPopup.init(); 
     64                         
     65                        element.dialog({ 
     66                                title: f.title, 
     67                                width: f.width, 
     68                                height: f.height, 
     69                                modal: true 
     70                        }); 
     71                }, 
     72                close : wpDialogFn(function() { 
     73                        this.element.dialog('close'); 
     74                }), 
     75        }); 
     76 
     77        // Register plugin 
     78        tinymce.PluginManager.add('wpdialogs', tinymce.plugins.WPDialogs); 
     79})(jQuery); 
     80 
  • wp-includes/js/tinymce/plugins/wpdialogs/js/popup.dev.js

     
     1/** 
     2 * popup.js 
     3 *  
     4 * An altered version of tinyMCEPopup to work in the same window as tinymce. 
     5 *  
     6 * ------------------------------------------------------------------ 
     7 * 
     8 * Copyright 2009, Moxiecode Systems AB 
     9 * Released under LGPL License. 
     10 * 
     11 * License: http://tinymce.moxiecode.com/license 
     12 * Contributing: http://tinymce.moxiecode.com/contributing 
     13 */ 
     14 
     15// Some global instances 
     16 
     17/** 
     18 * TinyMCE popup/dialog helper class. This gives you easy access to the 
     19 * parent editor instance and a bunch of other things. It's higly recommended 
     20 * that you load this script into your dialogs. 
     21 * 
     22 * @static 
     23 * @class tinyMCEPopup 
     24 */ 
     25var tinyMCEPopup = { 
     26        /** 
     27         * Initializes the popup this will be called automatically. 
     28         * 
     29         * @method init 
     30         */ 
     31        init : function() { 
     32                var t = this, w, ti; 
     33 
     34                // Find window & API 
     35                w = t.getWin(); 
     36                tinymce = w.tinymce; 
     37                tinyMCE = w.tinyMCE; 
     38                t.editor = tinymce.EditorManager.activeEditor; 
     39                t.params = t.editor.windowManager.params; 
     40                t.features = t.editor.windowManager.features; 
     41                t.dom = tinymce.dom; 
     42 
     43                // Setup on init listeners 
     44                t.listeners = []; 
     45                t.onInit = { 
     46                        add : function(f, s) { 
     47                                t.listeners.push({func : f, scope : s}); 
     48                        } 
     49                }; 
     50 
     51                t.isWindow = !t.getWindowArg('mce_inline'); 
     52                t.id = t.features.id; 
     53                t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window); 
     54        }, 
     55 
     56        /** 
     57         * Returns the reference to the parent window that opened the dialog. 
     58         * 
     59         * @method getWin 
     60         * @return {Window} Reference to the parent window that opened the dialog. 
     61         */ 
     62        getWin : function() { 
     63                return window; 
     64        }, 
     65 
     66        /** 
     67         * Returns a window argument/parameter by name. 
     68         * 
     69         * @method getWindowArg 
     70         * @param {String} n Name of the window argument to retrive. 
     71         * @param {String} dv Optional default value to return. 
     72         * @return {String} Argument value or default value if it wasn't found. 
     73         */ 
     74        getWindowArg : function(n, dv) { 
     75                var v = this.params[n]; 
     76 
     77                return tinymce.is(v) ? v : dv; 
     78        }, 
     79 
     80        /** 
     81         * Returns a editor parameter/config option value. 
     82         * 
     83         * @method getParam 
     84         * @param {String} n Name of the editor config option to retrive. 
     85         * @param {String} dv Optional default value to return. 
     86         * @return {String} Parameter value or default value if it wasn't found. 
     87         */ 
     88        getParam : function(n, dv) { 
     89                return this.editor.getParam(n, dv); 
     90        }, 
     91 
     92        /** 
     93         * Returns a language item by key. 
     94         * 
     95         * @method getLang 
     96         * @param {String} n Language item like mydialog.something. 
     97         * @param {String} dv Optional default value to return. 
     98         * @return {String} Language value for the item like "my string" or the default value if it wasn't found. 
     99         */ 
     100        getLang : function(n, dv) { 
     101                return this.editor.getLang(n, dv); 
     102        }, 
     103 
     104        /** 
     105         * Executed a command on editor that opened the dialog/popup. 
     106         * 
     107         * @method execCommand 
     108         * @param {String} cmd Command to execute. 
     109         * @param {Boolean} ui Optional boolean value if the UI for the command should be presented or not. 
     110         * @param {Object} val Optional value to pass with the comman like an URL. 
     111         * @param {Object} a Optional arguments object. 
     112         */ 
     113        execCommand : function(cmd, ui, val, a) { 
     114                a = a || {}; 
     115                a.skip_focus = 1; 
     116 
     117                this.restoreSelection(); 
     118                return this.editor.execCommand(cmd, ui, val, a); 
     119        }, 
     120 
     121        /** 
     122         * Resizes the dialog to the inner size of the window. This is needed since various browsers 
     123         * have different border sizes on windows. 
     124         * 
     125         * @method resizeToInnerSize 
     126         */ 
     127        resizeToInnerSize : function() { 
     128                var t = this; 
     129 
     130                // Detach it to workaround a Chrome specific bug 
     131                // https://sourceforge.net/tracker/?func=detail&atid=635682&aid=2926339&group_id=103281 
     132                setTimeout(function() { 
     133                        var vp = t.dom.getViewPort(window); 
     134 
     135                        t.editor.windowManager.resizeBy( 
     136                                t.getWindowArg('mce_width') - vp.w, 
     137                                t.getWindowArg('mce_height') - vp.h, 
     138                                t.id || window 
     139                        ); 
     140                }, 0); 
     141        }, 
     142 
     143        /** 
     144         * Will executed the specified string when the page has been loaded. This function 
     145         * was added for compatibility with the 2.x branch. 
     146         * 
     147         * @method executeOnLoad 
     148         * @param {String} s String to evalutate on init. 
     149         */ 
     150        executeOnLoad : function(s) { 
     151                this.onInit.add(function() { 
     152                        eval(s); 
     153                }); 
     154        }, 
     155 
     156        /** 
     157         * Stores the current editor selection for later restoration. This can be useful since some browsers 
     158         * looses it's selection if a control element is selected/focused inside the dialogs. 
     159         * 
     160         * @method storeSelection 
     161         */ 
     162        storeSelection : function() { 
     163                this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1); 
     164        }, 
     165 
     166        /** 
     167         * Restores any stored selection. This can be useful since some browsers 
     168         * looses it's selection if a control element is selected/focused inside the dialogs. 
     169         * 
     170         * @method restoreSelection 
     171         */ 
     172        restoreSelection : function() { 
     173                var t = tinyMCEPopup; 
     174 
     175                if (!t.isWindow && tinymce.isIE) 
     176                        t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark); 
     177        }, 
     178 
     179        /** 
     180         * Loads a specific dialog language pack. If you pass in plugin_url as a arugment 
     181         * when you open the window it will load the <plugin url>/langs/<code>_dlg.js lang pack file. 
     182         * 
     183         * @method requireLangPack 
     184         */ 
     185        requireLangPack : function() { 
     186                var t = this, u = t.getWindowArg('plugin_url') || t.getWindowArg('theme_url'); 
     187 
     188                if (u && t.editor.settings.language && t.features.translate_i18n !== false) { 
     189                        u += '/langs/' + t.editor.settings.language + '_dlg.js'; 
     190 
     191                        if (!tinymce.ScriptLoader.isDone(u)) { 
     192                                document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>'); 
     193                                tinymce.ScriptLoader.markDone(u); 
     194                        } 
     195                } 
     196        }, 
     197 
     198        /** 
     199         * Executes a color picker on the specified element id. When the user 
     200         * then selects a color it will be set as the value of the specified element. 
     201         * 
     202         * @method pickColor 
     203         * @param {DOMEvent} e DOM event object. 
     204         * @param {string} element_id Element id to be filled with the color value from the picker. 
     205         */ 
     206        pickColor : function(e, element_id) { 
     207                this.execCommand('mceColorPicker', true, { 
     208                        color : document.getElementById(element_id).value, 
     209                        func : function(c) { 
     210                                document.getElementById(element_id).value = c; 
     211 
     212                                try { 
     213                                        document.getElementById(element_id).onchange(); 
     214                                } catch (ex) { 
     215                                        // Try fire event, ignore errors 
     216                                } 
     217                        } 
     218                }); 
     219        }, 
     220 
     221        /** 
     222         * Opens a filebrowser/imagebrowser this will set the output value from 
     223         * the browser as a value on the specified element. 
     224         * 
     225         * @method openBrowser 
     226         * @param {string} element_id Id of the element to set value in. 
     227         * @param {string} type Type of browser to open image/file/flash. 
     228         * @param {string} option Option name to get the file_broswer_callback function name from. 
     229         */ 
     230        openBrowser : function(element_id, type, option) { 
     231                tinyMCEPopup.restoreSelection(); 
     232                this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window); 
     233        }, 
     234 
     235        /** 
     236         * Creates a confirm dialog. Please don't use the blocking behavior of this 
     237         * native version use the callback method instead then it can be extended. 
     238         * 
     239         * @method confirm 
     240         * @param {String} t Title for the new confirm dialog. 
     241         * @param {function} cb Callback function to be executed after the user has selected ok or cancel. 
     242         * @param {Object} s Optional scope to execute the callback in. 
     243         */ 
     244        confirm : function(t, cb, s) { 
     245                this.editor.windowManager.confirm(t, cb, s, window); 
     246        }, 
     247 
     248        /** 
     249         * Creates a alert dialog. Please don't use the blocking behavior of this 
     250         * native version use the callback method instead then it can be extended. 
     251         * 
     252         * @method alert 
     253         * @param {String} t Title for the new alert dialog. 
     254         * @param {function} cb Callback function to be executed after the user has selected ok. 
     255         * @param {Object} s Optional scope to execute the callback in. 
     256         */ 
     257        alert : function(tx, cb, s) { 
     258                this.editor.windowManager.alert(tx, cb, s, window); 
     259        }, 
     260 
     261        /** 
     262         * Closes the current window. 
     263         * 
     264         * @method close 
     265         */ 
     266        close : function() { 
     267                var t = this; 
     268 
     269                // To avoid domain relaxing issue in Opera 
     270                function close() { 
     271                        t.editor.windowManager.close(window); 
     272                        t.editor = null; 
     273                }; 
     274 
     275                if (tinymce.isOpera) 
     276                        t.getWin().setTimeout(close, 0); 
     277                else 
     278                        close(); 
     279        }, 
     280 
     281        // Internal functions    
     282 
     283        _restoreSelection : function() { 
     284                var e = window.event.srcElement; 
     285 
     286                if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button')) 
     287                        tinyMCEPopup.restoreSelection(); 
     288        }, 
     289 
     290/*      _restoreSelection : function() { 
     291                var e = window.event.srcElement; 
     292 
     293                // If user focus a non text input or textarea 
     294                if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text') 
     295                        tinyMCEPopup.restoreSelection(); 
     296        },*/ 
     297 
     298        _onDOMLoaded : function() { 
     299                var t = tinyMCEPopup, ti = document.title, bm, h, nv; 
     300 
     301                if (t.domLoaded) 
     302                        return; 
     303 
     304                t.domLoaded = 1; 
     305 
     306                tinyMCEPopup.init(); 
     307 
     308                // Translate page 
     309                if (t.features.translate_i18n !== false) { 
     310                        h = document.body.innerHTML; 
     311 
     312                        // Replace a=x with a="x" in IE 
     313                        if (tinymce.isIE) 
     314                                h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"') 
     315 
     316                        document.dir = t.editor.getParam('directionality',''); 
     317 
     318                        if ((nv = t.editor.translate(h)) && nv != h) 
     319                                document.body.innerHTML = nv; 
     320 
     321                        if ((nv = t.editor.translate(ti)) && nv != ti) 
     322                                document.title = ti = nv; 
     323                } 
     324 
     325                document.body.style.display = ''; 
     326 
     327                // Restore selection in IE when focus is placed on a non textarea or input element of the type text 
     328                if (tinymce.isIE) { 
     329                        document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection); 
     330 
     331                        // Add base target element for it since it would fail with modal dialogs 
     332                        t.dom.add(t.dom.select('head')[0], 'base', {target : '_self'}); 
     333                } 
     334 
     335                t.restoreSelection(); 
     336 
     337                // Set inline title 
     338                if (!t.isWindow) 
     339                        t.editor.windowManager.setTitle(window, ti); 
     340                else 
     341                        window.focus(); 
     342 
     343                if (!tinymce.isIE && !t.isWindow) { 
     344                        tinymce.dom.Event._add(document, 'focus', function() { 
     345                                t.editor.windowManager.focus(t.id); 
     346                        }); 
     347                } 
     348 
     349                // Patch for accessibility 
     350                tinymce.each(t.dom.select('select'), function(e) { 
     351                        e.onkeydown = tinyMCEPopup._accessHandler; 
     352                }); 
     353 
     354                // Call onInit 
     355                // Init must be called before focus so the selection won't get lost by the focus call 
     356                tinymce.each(t.listeners, function(o) { 
     357                        o.func.call(o.scope, t.editor); 
     358                }); 
     359 
     360                // Move focus to window 
     361                if (t.getWindowArg('mce_auto_focus', true)) { 
     362                        window.focus(); 
     363 
     364                        // Focus element with mceFocus class 
     365                        tinymce.each(document.forms, function(f) { 
     366                                tinymce.each(f.elements, function(e) { 
     367                                        if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) { 
     368                                                e.focus(); 
     369                                                return false; // Break loop 
     370                                        } 
     371                                }); 
     372                        }); 
     373                } 
     374 
     375                document.onkeyup = tinyMCEPopup._closeWinKeyHandler; 
     376        }, 
     377 
     378        _accessHandler : function(e) { 
     379                e = e || window.event; 
     380 
     381                if (e.keyCode == 13 || e.keyCode == 32) { 
     382                        e = e.target || e.srcElement; 
     383 
     384                        if (e.onchange) 
     385                                e.onchange(); 
     386 
     387                        return tinymce.dom.Event.cancel(e); 
     388                } 
     389        }, 
     390 
     391        _closeWinKeyHandler : function(e) { 
     392                e = e || window.event; 
     393 
     394                if (e.keyCode == 27) 
     395                        tinyMCEPopup.close(); 
     396        }, 
     397 
     398        _wait : function() { 
     399                // Use IE method 
     400                if (document.attachEvent) { 
     401                        document.attachEvent("onreadystatechange", function() { 
     402                                if (document.readyState === "complete") { 
     403                                        document.detachEvent("onreadystatechange", arguments.callee); 
     404                                        tinyMCEPopup._onDOMLoaded(); 
     405                                } 
     406                        }); 
     407 
     408                        if (document.documentElement.doScroll && window == window.top) { 
     409                                (function() { 
     410                                        if (tinyMCEPopup.domLoaded) 
     411                                                return; 
     412 
     413                                        try { 
     414                                                // If IE is used, use the trick by Diego Perini 
     415                                                // http://javascript.nwbox.com/IEContentLoaded/ 
     416                                                document.documentElement.doScroll("left"); 
     417                                        } catch (ex) { 
     418                                                setTimeout(arguments.callee, 0); 
     419                                                return; 
     420                                        } 
     421 
     422                                        tinyMCEPopup._onDOMLoaded(); 
     423                                })(); 
     424                        } 
     425 
     426                        document.attachEvent('onload', tinyMCEPopup._onDOMLoaded); 
     427                } else if (document.addEventListener) { 
     428                        window.addEventListener('DOMContentLoaded', tinyMCEPopup._onDOMLoaded, false); 
     429                        window.addEventListener('load', tinyMCEPopup._onDOMLoaded, false); 
     430                } 
     431        } 
     432}; 
  • wp-includes/js/tinymce/plugins/wpdialogs/js/popup.js

     
     1var tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=tinymce.dom;b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.features.id;b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return window},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},0)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);a.editor=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.domLoaded){return}b.domLoaded=1;tinyMCEPopup.init();if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){tinymce.dom.Event._add(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);tinyMCEPopup._onDOMLoaded()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(tinyMCEPopup.domLoaded){return}try{document.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}tinyMCEPopup._onDOMLoaded()})()}document.attachEvent("onload",tinyMCEPopup._onDOMLoaded)}else{if(document.addEventListener){window.addEventListener("DOMContentLoaded",tinyMCEPopup._onDOMLoaded,false);window.addEventListener("load",tinyMCEPopup._onDOMLoaded,false)}}}}; 
     2 No newline at end of file 
  • wp-includes/js/tinymce/wp-mce-link.php

     
    11<?php 
     2// args expects optionally 'pagenum' and 's' 
     3function wp_link_query( $args = array() ) { 
     4        $pts = get_post_types( array( 'publicly_queryable' => true ), 'objects' ); 
     5        $pt_names = array_keys( $pts ); 
    26 
    3 require_once '../../../wp-load.php'; 
    4 include './wp-mce-link-includes.php'; 
     7        $query = array( 
     8                'post_type' => $pt_names, 
     9                'suppress_filters' => true, 
     10                'update_post_term_cache' => false, 
     11                'update_post_meta_cache' => false, 
     12                'post_status' => 'publish', 
     13                'order' => 'DESC', 
     14                'orderby' => 'post_date', 
     15                'posts_per_page' => 20, 
     16        ); 
    517 
    6 header( 'Content-Type: text/html; charset=' . get_bloginfo( 'charset' ) ); 
    7 ?> 
    8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    9 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>> 
    10 <head> 
    11 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_bloginfo('charset'); ?>" /> 
    12 <title><?php _e( 'Insert/edit link' ); ?></title> 
    13 <script type="text/javascript"> 
    14 //<![CDATA[ 
    15 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>', 
    16         wpLinkL10n = { 
    17                 untitled : '<?php _e('Untitled'); ?>', 
    18                 noMatchesFound : '<?php _e( 'No matches found.' ); ?>' 
    19         }; 
    20 //]]> 
    21 </script> 
    22 <script type="text/javascript" src="tiny_mce_popup.js?ver=3223"></script> 
    23 <?php 
    24 wp_print_scripts( array( 'jquery', 'jquery-ui-widget' ) ); 
    25 $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '.dev' : ''; 
    26 $src = "plugins/wplink/js/wplink$suffix.js?ver=20101116b"; 
    27 ?> 
    28 <script type="text/javascript" src="<?php echo $src; ?>"></script> 
    29 <?php 
    30 wp_admin_css( 'global', true ); 
    31 wp_admin_css( 'wp-admin', true ); 
    32 register_admin_color_schemes(); 
    33 wp_admin_css( 'colors', true ); 
    34 ?> 
    35 <style> 
    36 html { 
    37         background: #f1f1f1; 
     18        $args['pagenum'] = isset( $args['pagenum'] ) ? absint( $args['pagenum'] ) : 1; 
     19 
     20        if ( isset( $args['s'] ) ) 
     21                $query['s'] = $args['s']; 
     22 
     23        $query['offset'] = $args['pagenum'] > 1 ? $query['posts_per_page'] * ( $args['pagenum'] - 1 ) : 0; 
     24 
     25        // Do main query. 
     26        $get_posts = new WP_Query; 
     27        $posts = $get_posts->query( $query ); 
     28        // Check if any posts were found. 
     29        if ( ! $get_posts->post_count ) 
     30                return false; 
     31 
     32        // Build results. 
     33        $results = array(); 
     34        foreach ( $posts as $post ) { 
     35                if ( 'post' == $post->post_type ) 
     36                        $info = mysql2date( __( 'Y/m/d' ), $post->post_date ); 
     37                else 
     38                        $info = $pts[ $post->post_type ]->labels->singular_name; 
     39 
     40                $results[] = array( 
     41                        'ID' => $post->ID, 
     42                        'title' => esc_html( strip_tags($post->post_title) ), 
     43                        'permalink' => get_permalink( $post->ID ), 
     44                        'info' => $info, 
     45                ); 
     46        } 
     47 
     48        return $results; 
    3849} 
    39 a:link, a:visited { 
    40         color: #21759b; 
     50 
     51function wp_link_ajax( $request ) { 
     52        // Searches have a title term. 
     53        if ( isset( $request['title'] ) ) 
     54                $args['s'] = stripslashes( $request['title'] ); 
     55        $args['pagenum'] = ! empty( $request['page'] ) ? absint( $request['page'] ) : 1; 
     56 
     57        $results = wp_link_query( $args ); 
     58 
     59        if ( ! isset( $results ) ) 
     60                die( '0' ); 
     61 
     62        echo json_encode( $results ); 
     63        echo "\n"; 
    4164} 
    42 p.howto { 
    43         margin: 3px; 
    44 } 
    45 #link-options { 
    46         padding: 10px 0 14px; 
    47         border-bottom: 1px solid #dfdfdf; 
    48         margin: 0 6px 14px; 
    49 } 
    50 label input[type="text"] { 
    51         width: 360px; 
    52         margin-top: 5px; 
    53 } 
    54 label span { 
    55         display: inline-block; 
    56         width: 80px; 
    57         text-align: right; 
    58         padding-right: 5px; 
    59 } 
    60 .link-search-wrapper { 
    61         margin: 5px 5px 9px; 
    62         display: block; 
    63         overflow: hidden; 
    64 } 
    65 .link-search-wrapper span { 
    66         float: left; 
    67         margin-top: 6px; 
    68 } 
    69 .link-search-wrapper input[type="text"] { 
    70         float: left; 
    71         width: 220px; 
    72 } 
    73 .link-search-wrapper img.waiting { 
    74         margin: 8px 1px 0 4px; 
    75         float: left; 
    76         display: none; 
    77 } 
    78 #open-in-new-tab { 
    79         display: inline-block; 
    80         padding: 3px 0 0; 
    81         margin: 0 0 0 87px; 
    82 } 
    83 #open-in-new-tab span { 
    84         width: auto; 
    85         margin-left: 6px; 
    86         font-size: 11px; 
    87 } 
    88 .query-results { 
    89         border: 1px #dfdfdf solid; 
    90         margin: 0 5px 5px; 
    91         background: #fff; 
    92         height: 185px; 
    93         overflow: auto; 
    94 } 
    95 .query-results li { 
    96         margin-bottom: 0; 
    97         border-bottom: 1px solid #f1f1f1; 
    98         color: #555; 
    99         padding: 4px 6px; 
    100         cursor: pointer; 
    101 } 
    102 .query-results li:hover { 
    103         background: #eaf2fa; 
    104         color: #333; 
    105 } 
    106 .query-results li.unselectable:hover { 
    107         background: #fff; 
    108         cursor: auto; 
    109         color: #555; 
    110 } 
    111 .query-results li.unselectable { 
    112         border-bottom: 1px solid #dfdfdf; 
    113 } 
    114 .query-results li.selected { 
    115         background: #f1f1f1; 
    116         color: #333; 
    117 } 
    118 .query-results li.selected .item-title { 
    119         font-weight: bold; 
    120 } 
    121 .item-info { 
    122         text-transform: uppercase; 
    123         color: #aaa; 
    124         font-size: 11px; 
    125         float: right; 
    126 } 
    127 #search-results { 
    128         display: none; 
    129 } 
    130 .river-waiting { 
    131         display: none; 
    132         padding: 10px 0; 
    133 } 
    134 .river-waiting img.waiting { 
    135         margin: 0 auto; 
    136         display: block; 
    137 } 
    138 .submitbox { 
    139         padding: 5px 5px 0; 
    140         font-size: 11px; 
    141         overflow: auto; 
    142         height: 29px; 
    143 } 
    144 #wp-cancel { 
    145         line-height: 25px; 
    146         float: left; 
    147 } 
    148 #wp-update { 
    149         line-height: 23px; 
    150         float: right; 
    151 } 
    152 #wp-update a { 
    153         display: inline-block; 
    154 } 
    155 </style> 
    156 </head> 
    157 <body id="post-body"> 
     65 
     66function wp_link_dialog() { 
     67?> 
     68<div id="wp-link"> 
    15869<div id="link-selector"> 
    15970        <div id="link-options"> 
    16071                <p class="howto"><?php _e( 'Enter the destination URL:' ); ?></p> 
     
    204115        </div> 
    205116</div> 
    206117<div class="submitbox"> 
    207         <div id="wp-cancel"> 
     118        <div id="wp-link-cancel"> 
    208119                <a class="submitdelete deletion"><?php _e( 'Cancel' ); ?></a> 
    209120        </div> 
    210         <div id="wp-update"> 
     121        <div id="wp-link-update"> 
    211122                <a class="button-primary"><?php _e( 'Update' ); ?></a> 
    212123        </div> 
    213124</div> 
    214 </body> 
    215 </html> 
    216  No newline at end of file 
     125</div> 
     126<?php } ?> 
     127 No newline at end of file 
  • wp-includes/js/tinymce/wp-mce-link-includes.php

     
    1 <?php 
    2 // args expects optionally 'pagenum' and 's' 
    3 function wp_link_query( $args = array() ) { 
    4         $pts = get_post_types( array( 'publicly_queryable' => true ), 'objects' ); 
    5         $pt_names = array_keys( $pts ); 
    6  
    7         $query = array( 
    8                 'post_type' => $pt_names, 
    9                 'suppress_filters' => true, 
    10                 'update_post_term_cache' => false, 
    11                 'update_post_meta_cache' => false, 
    12                 'post_status' => 'publish', 
    13                 'order' => 'DESC', 
    14                 'orderby' => 'post_date', 
    15                 'posts_per_page' => 20, 
    16         ); 
    17  
    18         $args['pagenum'] = isset( $args['pagenum'] ) ? absint( $args['pagenum'] ) : 1; 
    19  
    20         if ( isset( $args['s'] ) ) 
    21                 $query['s'] = $args['s']; 
    22  
    23         $query['offset'] = $args['pagenum'] > 1 ? $query['posts_per_page'] * ( $args['pagenum'] - 1 ) : 0; 
    24  
    25         // Do main query. 
    26         $get_posts = new WP_Query; 
    27         $posts = $get_posts->query( $query ); 
    28         // Check if any posts were found. 
    29         if ( ! $get_posts->post_count ) 
    30                 return false; 
    31  
    32         // Build results. 
    33         $results = array(); 
    34         foreach ( $posts as $post ) { 
    35                 if ( 'post' == $post->post_type ) 
    36                         $info = mysql2date( __( 'Y/m/d' ), $post->post_date ); 
    37                 else 
    38                         $info = $pts[ $post->post_type ]->labels->singular_name; 
    39  
    40                 $results[] = array( 
    41                         'ID' => $post->ID, 
    42                         'title' => esc_html( strip_tags($post->post_title) ), 
    43                         'permalink' => get_permalink( $post->ID ), 
    44                         'info' => $info, 
    45                 ); 
    46         } 
    47  
    48         return $results; 
    49 } 
    50  
    51 function wp_link_ajax( $request ) { 
    52         // Searches have a title term. 
    53         if ( isset( $request['title'] ) ) 
    54                 $args['s'] = stripslashes( $request['title'] ); 
    55         $args['pagenum'] = ! empty( $request['page'] ) ? absint( $request['page'] ) : 1; 
    56  
    57         $results = wp_link_query( $args ); 
    58  
    59         if ( ! isset( $results ) ) 
    60                 die( '0' ); 
    61  
    62         echo json_encode( $results ); 
    63         echo "\n"; 
    64 } 
    65  
    66 ?> 
    67  No newline at end of file 
  • wp-includes/css/jquery-ui-dialog.dev.css

     
     1/* 
     2 * jQuery UI CSS Framework @VERSION 
     3 * 
     4 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) 
     5 * Dual licensed under the MIT or GPL Version 2 licenses. 
     6 * http://jquery.org/license 
     7 * 
     8 * http://docs.jquery.com/UI/Theming/API 
     9 */ 
     10 
     11/* Layout helpers 
     12----------------------------------*/ 
     13.ui-helper-hidden { display: none; } 
     14.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } 
     15.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } 
     16.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } 
     17.ui-helper-clearfix { display: inline-block; } 
     18/* required comment for clearfix to work in Opera \*/ 
     19* html .ui-helper-clearfix { height:1%; } 
     20.ui-helper-clearfix { display:block; } 
     21/* end clearfix */ 
     22.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } 
     23 
     24 
     25/* Interaction Cues 
     26----------------------------------*/ 
     27.ui-state-disabled { cursor: default !important; } 
     28 
     29 
     30/* Icons 
     31----------------------------------*/ 
     32 
     33/* states and images */ 
     34.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } 
     35 
     36 
     37/* Misc visuals 
     38----------------------------------*/ 
     39 
     40/* Overlays */ 
     41.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } 
     42 
     43/* 
     44 * jQuery UI Resizable 
     45 * 
     46 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) 
     47 * Dual licensed under the MIT or GPL Version 2 licenses. 
     48 * http://jquery.org/license 
     49 * 
     50 * http://docs.jquery.com/UI/Resizable#theming 
     51 */ 
     52.ui-resizable { position: relative;} 
     53.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} 
     54.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } 
     55.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } 
     56.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } 
     57.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } 
     58.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } 
     59.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } 
     60.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } 
     61.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } 
     62.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} 
     63 
     64/* 
     65 * jQuery UI Dialog 
     66 * 
     67 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) 
     68 * Dual licensed under the MIT or GPL Version 2 licenses. 
     69 * http://jquery.org/license 
     70 * 
     71 * http://docs.jquery.com/UI/Dialog#theming 
     72 */ 
     73.ui-dialog { position: absolute; width: 300px; overflow: hidden; } 
     74.ui-dialog .ui-dialog-titlebar { position: relative; }  
     75.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } 
     76.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: 0; background: none; overflow: auto; zoom: 1; } 
     77.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } 
     78.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } 
     79.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } 
     80.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } 
     81.ui-draggable .ui-dialog-titlebar { cursor: move; } 
     82 
     83 
     84 
     85/* WP jQuery Dialog Theme */ 
     86.ui-dialog { 
     87        background: #f1f1f1; 
     88        border: 1px solid #999; 
     89        -moz-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 ); 
     90        -webkit-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 ); 
     91        box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 ); 
     92} 
     93.ui-dialog-title { 
     94        display: block; 
     95        text-align: center; 
     96        padding: 1px 0 2px; 
     97} 
     98.ui-dialog-titlebar { 
     99        padding: 0 1em; 
     100        background-color: #444; 
     101        font-weight: bold; 
     102        font-size: 11px; 
     103        color: #e5e5e5; 
     104} 
     105.ui-dialog { 
     106        -moz-border-radius-topleft: 4px; 
     107        -webkit-border-top-left-radius: 4px; 
     108        -khtml-border-top-left-radius: 4px; 
     109        border-top-left-radius: 4px; 
     110        -moz-border-radius-topright: 4px; 
     111        -webkit-border-top-right-radius: 4px; 
     112        -khtml-border-top-right-radius: 4px; 
     113        border-top-right-radius: 4px; 
     114} 
     115.ui-dialog-titlebar { 
     116        -moz-border-radius-topleft: 3px; 
     117        -webkit-border-top-left-radius: 3px; 
     118        -khtml-border-top-left-radius: 3px; 
     119        border-top-left-radius: 3px; 
     120        -moz-border-radius-topright: 3px; 
     121        -webkit-border-top-right-radius: 3px; 
     122        -khtml-border-top-right-radius: 3px; 
     123        border-top-right-radius: 3px; 
     124} 
     125 
     126.ui-dialog .ui-dialog-titlebar-close { 
     127        position: absolute; 
     128        width: 29px; 
     129        height: 16px; 
     130        top: 2px; 
     131        right: 6px; 
     132        background: url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px; 
     133        padding: 0; 
     134} 
     135.ui-dialog .ui-dialog-titlebar-close:hover, 
     136.ui-dialog .ui-dialog-titlebar-close:focus { 
     137        background-position: -87px -32px; 
     138} 
     139.ui-widget-overlay { 
     140        background-color: #000; 
     141        opacity: 0.6; 
     142} 
     143 No newline at end of file 
  • wp-includes/css/jquery-ui-dialog.css

     
     1.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute;left:-99999999px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-dialog{position:absolute;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{position:relative;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:0;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-dialog{background:#f1f1f1;border:1px solid #999;-moz-box-shadow:0 0 16px rgba(0,0,0,0.3);-webkit-box-shadow:0 0 16px rgba(0,0,0,0.3);box-shadow:0 0 16px rgba(0,0,0,0.3);}.ui-dialog-title{display:block;text-align:center;padding:1px 0 2px;}.ui-dialog-titlebar{padding:0 1em;background-color:#444;font-weight:bold;font-size:11px;color:#e5e5e5;}.ui-dialog{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-dialog-titlebar{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;width:29px;height:16px;top:2px;right:6px;background:url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;padding:0;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{background-position:-87px -32px;}.ui-widget-overlay{background-color:#000;opacity:.6;} 
     2 No newline at end of file 
  • wp-includes/script-loader.php

     
    268268                'url' => __( 'URL:' ), 
    269269                'noShortlink' => __( 'No shortlink available for this page.' ), 
    270270        ) ); 
     271         
     272        $scripts->add( 'wplink', "/wp-includes/js/tinymce/plugins/wplink/js/wplink$suffix.js", array('jquery'), '20101117' ); 
     273        $scripts->localize( 'wplink', 'wpLinkL10n', array( 
     274                'untitled' => __('Untitled'), 
     275                'noMatchesFound' => __('No matches found.'), 
     276        ) ); 
     277         
     278        $scripts->add( 'wpdialogsPopup', "/wp-includes/js/tinymce/plugins/wpdialogs/js/popup$suffix.js", false, '20101117' ); 
    271279 
    272280        if ( is_admin() ) { 
    273281                $scripts->add( 'ajaxcat', "/wp-admin/js/cat$suffix.js", array( 'wp-lists' ), '20090102' ); 
     
    504512 
    505513        // Admin bar 
    506514        $styles->add( 'admin-bar', "/wp-includes/css/admin-bar$suffix.css", array(), '20101117' ); 
     515         
     516        // WP jQuery UI Dialog  
     517        $styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css", array(), '20101117' ); 
     518        // WPLink TinyMCE plugin 
     519        $styles->add( 'wplink', "/wp-includes/js/tinymce/plugins/wplink/css/wplink$suffix.css", array(), '20101117' ); 
    507520 
    508521        foreach ( $rtl_styles as $rtl_style ) { 
    509522                $styles->add_data( $rtl_style, 'rtl', true ); 
  • wp-admin/admin-ajax.php

     
    10741074        exit; 
    10751075        break; 
    10761076case 'wp-link-ajax': 
    1077         require_once ABSPATH . WPINC . '/js/tinymce/wp-mce-link-includes.php'; 
     1077        require_once ABSPATH . WPINC . '/js/tinymce/wp-mce-link.php'; 
    10781078 
    10791079        wp_link_ajax( $_POST ); 
    10801080 
  • wp-admin/includes/post.php

     
    13271327        $mce_spellchecker_languages = apply_filters('mce_spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv'); 
    13281328 
    13291329        if ( $teeny ) { 
    1330                 $plugins = apply_filters( 'teeny_mce_plugins', array('inlinepopups', 'media', 'fullscreen', 'wordpress', 'wplink') ); 
     1330                $plugins = apply_filters( 'teeny_mce_plugins', array('inlinepopups', 'media', 'fullscreen', 'wordpress', 'wplink', 'wpdialogs') ); 
    13311331                $ext_plugins = ''; 
    13321332        } else { 
    1333                 $plugins = array( 'inlinepopups', 'spellchecker', 'paste', 'wordpress', 'media', 'fullscreen', 'wpeditimage', 'wpgallery', 'tabfocus', 'wplink' ); 
     1333                $plugins = array( 'inlinepopups', 'spellchecker', 'paste', 'wordpress', 'media', 'fullscreen', 'wpeditimage', 'wpgallery', 'tabfocus', 'wplink', 'wpdialogs' ); 
    13341334 
    13351335                /* 
    13361336                The following filter takes an associative array of external plugins for TinyMCE in the form 'plugin_name' => 'url'. 
     
    14111411                } 
    14121412        } 
    14131413 
    1414         $plugins = implode($plugins, ','); 
    1415  
    14161414        if ( $teeny ) { 
    14171415                $mce_buttons = apply_filters( 'teeny_mce_buttons', array('bold, italic, underline, blockquote, separator, strikethrough, bullist, numlist,justifyleft, justifycenter, justifyright, undo, redo, link, unlink, fullscreen') ); 
    14181416                $mce_buttons = implode($mce_buttons, ','); 
     
    14851483                'paste_strip_class_attributes' => 'all', 
    14861484                'paste_text_use_dialog' => true, 
    14871485                'wpeditimage_disable_captions' => $no_captions, 
    1488                 'plugins' => $plugins 
     1486                'plugins' => implode($plugins, ',') 
    14891487        ); 
    14901488 
    14911489        if ( ! empty( $editor_styles ) && is_array( $editor_styles ) ) { 
     
    16081606/* ]]> */ 
    16091607</script> 
    16101608<?php 
     1609 
     1610        // Load additional inline scripts based on active plugins. 
     1611        if ( in_array( 'wpdialogs', $plugins ) ) { 
     1612                wp_print_scripts( array('jquery-ui-dialog', 'wpdialogsPopup') ); 
     1613                wp_print_styles('wp-jquery-ui-dialog'); 
     1614        } 
     1615        if ( in_array( 'wplink', $plugins ) ) { 
     1616                require_once ABSPATH . WPINC . "/js/tinymce/wp-mce-link.php"; 
     1617                add_action('tiny_mce_preload_dialogs', 'wp_link_dialog'); 
     1618                wp_print_scripts('wplink'); 
     1619                wp_print_styles('wplink'); 
     1620        } 
    16111621} 
     1622function wp_tiny_mce_preload_dialogs() { ?> 
     1623        <div id="preloaded-dialogs" style="display:none;"> 
     1624<?php   do_action('tiny_mce_preload_dialogs'); ?> 
     1625        </div> 
     1626<?php } 
     1627 No newline at end of file 
  • wp-admin/admin-header.php

     
    6666 
    6767if ( in_array( $pagenow, array('post.php', 'post-new.php') ) ) { 
    6868        add_action( 'admin_print_footer_scripts', 'wp_tiny_mce', 25 ); 
     69        add_action( 'admin_print_footer_scripts', 'wp_tiny_mce_preload_dialogs', 30 ); 
    6970        wp_enqueue_script('quicktags'); 
    7071} 
    7172