diff --git a/readme.html b/readme.html index 48f59ef..8189763 100644 --- a/readme.html +++ b/readme.html @@ -9,7 +9,7 @@

WordPress -
Version 4.0 +
Version 4.0.1

Semantic Personal Publishing Platform

diff --git a/wp-admin/about.php b/wp-admin/about.php index 2e2ba5c..ae847c1 100644 --- a/wp-admin/about.php +++ b/wp-admin/about.php @@ -41,6 +41,14 @@ include( ABSPATH . 'wp-admin/admin-header.php' ); +
+

+

Version %1$s addressed some security issues and fixed %2$s bug.', + 'Version %1$s addressed some security issues and fixed %2$s bugs.', 23 ), '4.0.1', number_format_i18n( 23 ) ); ?> + the release notes.' ), 'http://codex.wordpress.org/Version_4.0.1' ); ?> +

+
+
diff --git a/wp-admin/includes/class-wp-plugin-install-list-table.php b/wp-admin/includes/class-wp-plugin-install-list-table.php index 1252227..50a4a97 100644 --- a/wp-admin/includes/class-wp-plugin-install-list-table.php +++ b/wp-admin/includes/class-wp-plugin-install-list-table.php @@ -273,7 +273,9 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { return; } - if ( 'top' == $which ) { ?> + if ( 'top' == $which ) { + wp_referer_field(); + ?>
display(); + ?> +
+ display(); ?> +
+ ' . __('Change Permalinks') . "\n"; } } else { - if ( function_exists( 'mb_strlen' ) && mb_strlen( $post_name ) > 30 ) { - $post_name_abridged = mb_substr( $post_name, 0, 14 ) . '…' . mb_substr( $post_name, -14 ); - } elseif ( strlen( $post_name ) > 30 ) { - $post_name_abridged = substr( $post_name, 0, 14 ) . '…' . substr( $post_name, -14 ); + if ( function_exists( 'mb_strlen' ) ) { + if ( mb_strlen( $post_name ) > 30 ) { + $post_name_abridged = mb_substr( $post_name, 0, 14 ) . '…' . mb_substr( $post_name, -14 ); + } else { + $post_name_abridged = $post_name; + } } else { - $post_name_abridged = $post_name; + if ( strlen( $post_name ) > 30 ) { + $post_name_abridged = substr( $post_name, 0, 14 ) . '…' . substr( $post_name, -14 ); + } else { + $post_name_abridged = $post_name; + } } $post_name_html = '' . $post_name_abridged . ''; diff --git a/wp-admin/js/editor-expand.js b/wp-admin/js/editor-expand.js index ab5e885..afacd32 100644 --- a/wp-admin/js/editor-expand.js +++ b/wp-admin/js/editor-expand.js @@ -2,7 +2,7 @@ window.wp = window.wp || {}; -jQuery( document ).ready( function($) { +jQuery( document ).ready( function( $ ) { var $window = $( window ), $document = $( document ), $adminBar = $( '#wpadminbar' ), @@ -148,6 +148,11 @@ jQuery( document ).ready( function($) { // We need to wait for TinyMCE to initialize. $document.on( 'tinymce-editor-init.editor-expand', function( event, editor ) { + var hideFloatPanels = _.debounce( function() { + ! $( '.mce-floatpanel:hover' ).length && tinymce.ui.FloatPanel.hideAll(); + $( '.mce-tooltip' ).hide(); + }, 1000, true ); + // Make sure it's the main editor. if ( editor.id !== 'content' ) { return; @@ -224,6 +229,8 @@ jQuery( document ).ready( function($) { // Adjust when switching editor modes. function mceShow() { + $window.on( 'scroll.mce-float-panels', hideFloatPanels ); + setTimeout( function() { editor.execCommand( 'wpAutoResize' ); adjust(); @@ -231,6 +238,8 @@ jQuery( document ).ready( function($) { } function mceHide() { + $window.off( 'scroll.mce-float-panels' ); + setTimeout( function() { var top = $contentWrap.offset().top; @@ -251,6 +260,8 @@ jQuery( document ).ready( function($) { editor.on( 'hide', mceHide ); // Adjust when the editor resizes. editor.on( 'setcontent wp-autoresize wp-toolbar-toggle', adjust ); + + $window.off( 'scroll.mce-float-panels' ).on( 'scroll.mce-float-panels', hideFloatPanels ); }; mceUnbind = function() { @@ -258,6 +269,8 @@ jQuery( document ).ready( function($) { editor.off( 'show', mceShow ); editor.off( 'hide', mceHide ); editor.off( 'setcontent wp-autoresize wp-toolbar-toggle', adjust ); + + $window.off( 'scroll.mce-float-panels' ); }; if ( $wrap.hasClass( 'wp-editor-expand' ) ) { @@ -590,6 +603,12 @@ jQuery( document ).ready( function($) { } adjust(); + }).on( 'wp-window-resized.editor-expand', function() { + if ( mceEditor && ! mceEditor.isHidden() ) { + mceEditor.execCommand( 'wpAutoResize' ); + } else { + textEditorResize(); + } }); $textEditor.on( 'focus.editor-expand input.editor-expand propertychange.editor-expand', textEditorResize ); diff --git a/wp-admin/js/editor-expand.min.js b/wp-admin/js/editor-expand.min.js index 7104766..44d70d9 100644 --- a/wp-admin/js/editor-expand.min.js +++ b/wp-admin/js/editor-expand.min.js @@ -1 +1 @@ -window.wp=window.wp||{},jQuery(document).ready(function(a){function b(){var a=m.width();R={windowHeight:m.height(),windowWidth:a,adminBarHeight:a>600?o.outerHeight():0,toolsHeight:s.outerHeight()||0,menuBarHeight:z.outerHeight()||0,visualTopHeight:t.outerHeight()||0,textTopHeight:v.outerHeight()||0,bottomHeight:y.outerHeight()||0,statusBarHeight:A.outerHeight()||0,sideSortablesHeight:B.height()||0},R.menuBarHeight<3&&(R.menuBarHeight=0)}function c(a){var b,c,d,e,f,g=jQuery.ui.keyCode,h=a.keyCode,i=document.createRange(),j=w[0].selectionStart,k=w[0].selectionEnd,l=x[0].firstChild,m=10;if(!j||!k||j===k){try{i.setStart(l,j),i.setEnd(l,k+1)}catch(n){}b=i.getBoundingClientRect(),b.height&&(c=b.top-m,d=c+b.height+m,e=R.adminBarHeight+R.toolsHeight+R.textTopHeight,f=R.windowHeight-R.bottomHeight,e>c&&(h===g.UP||h===g.LEFT||h===g.BACKSPACE)?window.scrollTo(window.pageXOffset,c+window.pageYOffset-e):d>f&&window.scrollTo(window.pageXOffset,d+window.pageYOffset-f))}}function d(){if(!(k&&!k.isHidden()||!k&&"tinymce"===Q)){var a,b=w.height();x.width(w.width()-22),x.text(w.val()+" "),a=x.height(),P>a&&(a=P),a!==b&&(w.height(a),e())}}function e(a){if(!E||!E.settings.visible){var c,e,f,g,h,i,j,l,o,q=m.scrollTop(),F="scroll"!==a,G=k&&!k.isHidden(),M=P,Q=D.offset().top,S=1,T=r.width();(F||!R.windowHeight)&&b(),G||"resize"!==a||d(),G?(c=t,e=u,j=R.visualTopHeight):(c=v,e=w,j=R.textTopHeight),i=c.parent().offset().top,l=e.offset().top,o=e.outerHeight(),h=G?P+j:P+20,h=o>h+5,h?((!H||F)&&q>=i-R.toolsHeight-R.adminBarHeight&&q<=i-R.toolsHeight-R.adminBarHeight+o-M?(H=!0,s.css({position:"fixed",top:R.adminBarHeight,width:T}),G&&z.length&&z.css({position:"fixed",top:R.adminBarHeight+R.toolsHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}),c.css({position:"fixed",top:R.adminBarHeight+R.toolsHeight+R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())})):(H||F)&&(q<=i-R.toolsHeight-R.adminBarHeight?(H=!1,s.css({position:"absolute",top:0,width:T}),G&&z.length&&z.css({position:"absolute",top:0,width:T-2*S}),c.css({position:"absolute",top:R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())})):q>=i-R.toolsHeight-R.adminBarHeight+o-M&&(H=!1,s.css({position:"absolute",top:o-M,width:T}),G&&z.length&&z.css({position:"absolute",top:o-M,width:T-2*S}),c.css({position:"absolute",top:o-M+R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}))),(!I||F)&&q+R.windowHeight<=l+o+R.bottomHeight+R.statusBarHeight+S?(I=!0,A.css({position:"fixed",bottom:R.bottomHeight,width:T-2*S}),y.css({position:"fixed",bottom:0,width:T})):(I||F)&&q+R.windowHeight>l+o+R.bottomHeight+R.statusBarHeight-S&&(I=!1,A.add(y).attr("style",""))):F&&(s.css({position:"absolute",top:0,width:T}),G&&z.length&&z.css({position:"absolute",top:0,width:T-2*S}),c.css({position:"absolute",top:R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}),A.add(y).attr("style","")),C.width()<300&&R.windowWidth>600&&n.height()>B.height()+Q+120&&R.windowHeightR.windowHeight||J||K?Q>=q+N?(B.attr("style",""),J=K=!1):q>L?J?(J=!1,f=B.offset().top-R.adminBarHeight,g=p.offset().top,gq&&(K?(K=!1,f=B.offset().top-O,g=p.offset().top,g=q+N&&(J=!0,B.css({position:"fixed",top:N,bottom:""}))):(q>=Q-N?B.css({position:"fixed",top:N}):B.attr("style",""),J=K=!1),L=q):(B.attr("style",""),J=K=!1),F&&(r.css({paddingTop:R.toolsHeight}),G?u.css({paddingTop:R.visualTopHeight+R.menuBarHeight}):(w.css({marginTop:R.textTopHeight}),x.width(T-20-2*S)))}}function f(){d(),e()}function g(a){for(var b=1;6>b;b++)setTimeout(a,500*b)}function h(){clearTimeout(l),l=setTimeout(e,100)}function i(){window.pageYOffset&&window.pageYOffset>M&&window.scrollTo(window.pageXOffset,0),q.addClass("wp-editor-expand"),m.on("scroll.editor-expand resize.editor-expand",function(a){e(a.type),h()}),n.on("wp-collapse-menu.editor-expand postboxes-columnchange.editor-expand editor-classchange.editor-expand",e).on("postbox-toggled.editor-expand",function(){!J&&!K&&window.pageYOffset>N&&(K=!0,window.scrollBy(0,-1),e(),window.scrollBy(0,1)),e()}),w.on("focus.editor-expand input.editor-expand propertychange.editor-expand",d),w.on("keyup.editor-expand",c),F(),E&&E.pubsub.subscribe("hidden",f),k&&(k.settings.wp_autoresize_on=!0,k.execCommand("wpAutoResizeOn"),k.isHidden()||k.execCommand("wpAutoResize")),(!k||k.isHidden())&&d(),e()}function j(){var b=window.getUserSetting("ed_size");window.pageYOffset&&window.pageYOffset>M&&window.scrollTo(window.pageXOffset,0),q.removeClass("wp-editor-expand"),m.off(".editor-expand"),n.off(".editor-expand"),w.off(".editor-expand"),G(),E&&E.pubsub.unsubscribe("hidden",f),a.each([t,v,s,z,y,A,r,u,w,B],function(a,b){b&&b.attr("style","")}),H=I=J=K=!1,k&&(k.settings.wp_autoresize_on=!1,k.execCommand("wpAutoResizeOff"),k.isHidden()||(w.hide(),b&&k.theme.resizeTo(null,b))),b&&w.height(b)}var k,l,m=a(window),n=a(document),o=a("#wpadminbar"),p=a("#wpfooter"),q=a("#postdivrich"),r=a("#wp-content-wrap"),s=a("#wp-content-editor-tools"),t=a(),u=a(),v=a("#ed_toolbar"),w=a("#content"),x=a('
'),y=a("#post-status-info"),z=a(),A=a(),B=a("#side-sortables"),C=a("#postbox-container-1"),D=a("#post-body"),E=window.wp.editor&&window.wp.editor.fullscreen,F=function(){},G=function(){},H=!1,I=!1,J=!1,K=!1,L=0,M=130,N=56,O=20,P=300,Q=window.getUserSetting("editor"),R={windowHeight:0,windowWidth:0,adminBarHeight:0,toolsHeight:0,menuBarHeight:0,visualTopHeight:0,textTopHeight:0,bottomHeight:0,statusBarHeight:0,sideSortablesHeight:0};x.insertAfter(w),x.css({"font-family":w.css("font-family"),"font-size":w.css("font-size"),"line-height":w.css("line-height"),"white-space":"pre-wrap","word-wrap":"break-word"}),n.on("tinymce-editor-init.editor-expand",function(a,b){function c(){var a,c,d=b.selection.getNode();return c=b.plugins.wpview&&(a=b.plugins.wpview.getView(d))?a.getBoundingClientRect():d.getBoundingClientRect(),c.height?c:!1}function f(a){var d,e,f,g,h=tinymce.util.VK,i=a.keyCode,j=c(),k=10;j&&(47>=i&&i!==h.SPACEBAR&&i!==h.ENTER&&i!==h.DELETE&&i!==h.BACKSPACE&&i!==h.UP&&i!==h.LEFT&&i!==h.DOWN&&i!==h.UP||i>=91&&93>=i||i>=112&&123>=i||144===i||145===i||(d=j.top+b.iframeElement.getBoundingClientRect().top,e=d+j.height,d-=k,e+=k,f=R.adminBarHeight+R.toolsHeight+R.menuBarHeight+R.visualTopHeight,g=R.windowHeight-R.bottomHeight-R.statusBarHeight,g-fd&&(i===h.UP||i===h.LEFT||i===h.BACKSPACE)?window.scrollTo(window.pageXOffset,d+window.pageYOffset-f):e>g&&window.scrollTo(window.pageXOffset,e+window.pageYOffset-g))))}function h(){setTimeout(function(){b.execCommand("wpAutoResize"),e()},300)}function i(){setTimeout(function(){var a=r.offset().top;window.pageYOffset>a&&window.scrollTo(window.pageXOffset,a-R.adminBarHeight),d(),e()},100),e()}"content"===b.id&&(k=b,b.settings.autoresize_min_height=P,t=r.find(".mce-toolbar-grp"),u=r.find(".mce-edit-area"),A=r.find(".mce-statusbar"),z=r.find(".mce-menubar"),F=function(){b.on("keyup",f),b.on("show",h),b.on("hide",i),b.on("setcontent wp-autoresize wp-toolbar-toggle",e)},G=function(){b.off("keyup",f),b.off("show",h),b.off("hide",i),b.off("setcontent wp-autoresize wp-toolbar-toggle",e)},q.hasClass("wp-editor-expand")&&(F(),g(e)))}),q.hasClass("wp-editor-expand")&&(i(),r.hasClass("html-active")&&g(function(){e(),d()})),a("#adv-settings .editor-expand").show(),a("#editor-expand-toggle").on("change.editor-expand",function(){a(this).prop("checked")?(i(),window.setUserSetting("editor_expand","on")):(j(),window.setUserSetting("editor_expand","off"))}),window.editorExpand={on:i,off:j}}); \ No newline at end of file +window.wp=window.wp||{},jQuery(document).ready(function(a){function b(){var a=m.width();R={windowHeight:m.height(),windowWidth:a,adminBarHeight:a>600?o.outerHeight():0,toolsHeight:s.outerHeight()||0,menuBarHeight:z.outerHeight()||0,visualTopHeight:t.outerHeight()||0,textTopHeight:v.outerHeight()||0,bottomHeight:y.outerHeight()||0,statusBarHeight:A.outerHeight()||0,sideSortablesHeight:B.height()||0},R.menuBarHeight<3&&(R.menuBarHeight=0)}function c(a){var b,c,d,e,f,g=jQuery.ui.keyCode,h=a.keyCode,i=document.createRange(),j=w[0].selectionStart,k=w[0].selectionEnd,l=x[0].firstChild,m=10;if(!j||!k||j===k){try{i.setStart(l,j),i.setEnd(l,k+1)}catch(n){}b=i.getBoundingClientRect(),b.height&&(c=b.top-m,d=c+b.height+m,e=R.adminBarHeight+R.toolsHeight+R.textTopHeight,f=R.windowHeight-R.bottomHeight,e>c&&(h===g.UP||h===g.LEFT||h===g.BACKSPACE)?window.scrollTo(window.pageXOffset,c+window.pageYOffset-e):d>f&&window.scrollTo(window.pageXOffset,d+window.pageYOffset-f))}}function d(){if(!(k&&!k.isHidden()||!k&&"tinymce"===Q)){var a,b=w.height();x.width(w.width()-22),x.text(w.val()+" "),a=x.height(),P>a&&(a=P),a!==b&&(w.height(a),e())}}function e(a){if(!E||!E.settings.visible){var c,e,f,g,h,i,j,l,o,q=m.scrollTop(),F="scroll"!==a,G=k&&!k.isHidden(),M=P,Q=D.offset().top,S=1,T=r.width();(F||!R.windowHeight)&&b(),G||"resize"!==a||d(),G?(c=t,e=u,j=R.visualTopHeight):(c=v,e=w,j=R.textTopHeight),i=c.parent().offset().top,l=e.offset().top,o=e.outerHeight(),h=G?P+j:P+20,h=o>h+5,h?((!H||F)&&q>=i-R.toolsHeight-R.adminBarHeight&&q<=i-R.toolsHeight-R.adminBarHeight+o-M?(H=!0,s.css({position:"fixed",top:R.adminBarHeight,width:T}),G&&z.length&&z.css({position:"fixed",top:R.adminBarHeight+R.toolsHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}),c.css({position:"fixed",top:R.adminBarHeight+R.toolsHeight+R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())})):(H||F)&&(q<=i-R.toolsHeight-R.adminBarHeight?(H=!1,s.css({position:"absolute",top:0,width:T}),G&&z.length&&z.css({position:"absolute",top:0,width:T-2*S}),c.css({position:"absolute",top:R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())})):q>=i-R.toolsHeight-R.adminBarHeight+o-M&&(H=!1,s.css({position:"absolute",top:o-M,width:T}),G&&z.length&&z.css({position:"absolute",top:o-M,width:T-2*S}),c.css({position:"absolute",top:o-M+R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}))),(!I||F)&&q+R.windowHeight<=l+o+R.bottomHeight+R.statusBarHeight+S?(I=!0,A.css({position:"fixed",bottom:R.bottomHeight,width:T-2*S}),y.css({position:"fixed",bottom:0,width:T})):(I||F)&&q+R.windowHeight>l+o+R.bottomHeight+R.statusBarHeight-S&&(I=!1,A.add(y).attr("style",""))):F&&(s.css({position:"absolute",top:0,width:T}),G&&z.length&&z.css({position:"absolute",top:0,width:T-2*S}),c.css({position:"absolute",top:R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}),A.add(y).attr("style","")),C.width()<300&&R.windowWidth>600&&n.height()>B.height()+Q+120&&R.windowHeightR.windowHeight||J||K?Q>=q+N?(B.attr("style",""),J=K=!1):q>L?J?(J=!1,f=B.offset().top-R.adminBarHeight,g=p.offset().top,gq&&(K?(K=!1,f=B.offset().top-O,g=p.offset().top,g=q+N&&(J=!0,B.css({position:"fixed",top:N,bottom:""}))):(q>=Q-N?B.css({position:"fixed",top:N}):B.attr("style",""),J=K=!1),L=q):(B.attr("style",""),J=K=!1),F&&(r.css({paddingTop:R.toolsHeight}),G?u.css({paddingTop:R.visualTopHeight+R.menuBarHeight}):(w.css({marginTop:R.textTopHeight}),x.width(T-20-2*S)))}}function f(){d(),e()}function g(a){for(var b=1;6>b;b++)setTimeout(a,500*b)}function h(){clearTimeout(l),l=setTimeout(e,100)}function i(){window.pageYOffset&&window.pageYOffset>M&&window.scrollTo(window.pageXOffset,0),q.addClass("wp-editor-expand"),m.on("scroll.editor-expand resize.editor-expand",function(a){e(a.type),h()}),n.on("wp-collapse-menu.editor-expand postboxes-columnchange.editor-expand editor-classchange.editor-expand",e).on("postbox-toggled.editor-expand",function(){!J&&!K&&window.pageYOffset>N&&(K=!0,window.scrollBy(0,-1),e(),window.scrollBy(0,1)),e()}).on("wp-window-resized.editor-expand",function(){k&&!k.isHidden()?k.execCommand("wpAutoResize"):d()}),w.on("focus.editor-expand input.editor-expand propertychange.editor-expand",d),w.on("keyup.editor-expand",c),F(),E&&E.pubsub.subscribe("hidden",f),k&&(k.settings.wp_autoresize_on=!0,k.execCommand("wpAutoResizeOn"),k.isHidden()||k.execCommand("wpAutoResize")),(!k||k.isHidden())&&d(),e()}function j(){var b=window.getUserSetting("ed_size");window.pageYOffset&&window.pageYOffset>M&&window.scrollTo(window.pageXOffset,0),q.removeClass("wp-editor-expand"),m.off(".editor-expand"),n.off(".editor-expand"),w.off(".editor-expand"),G(),E&&E.pubsub.unsubscribe("hidden",f),a.each([t,v,s,z,y,A,r,u,w,B],function(a,b){b&&b.attr("style","")}),H=I=J=K=!1,k&&(k.settings.wp_autoresize_on=!1,k.execCommand("wpAutoResizeOff"),k.isHidden()||(w.hide(),b&&k.theme.resizeTo(null,b))),b&&w.height(b)}var k,l,m=a(window),n=a(document),o=a("#wpadminbar"),p=a("#wpfooter"),q=a("#postdivrich"),r=a("#wp-content-wrap"),s=a("#wp-content-editor-tools"),t=a(),u=a(),v=a("#ed_toolbar"),w=a("#content"),x=a('
'),y=a("#post-status-info"),z=a(),A=a(),B=a("#side-sortables"),C=a("#postbox-container-1"),D=a("#post-body"),E=window.wp.editor&&window.wp.editor.fullscreen,F=function(){},G=function(){},H=!1,I=!1,J=!1,K=!1,L=0,M=130,N=56,O=20,P=300,Q=window.getUserSetting("editor"),R={windowHeight:0,windowWidth:0,adminBarHeight:0,toolsHeight:0,menuBarHeight:0,visualTopHeight:0,textTopHeight:0,bottomHeight:0,statusBarHeight:0,sideSortablesHeight:0};x.insertAfter(w),x.css({"font-family":w.css("font-family"),"font-size":w.css("font-size"),"line-height":w.css("line-height"),"white-space":"pre-wrap","word-wrap":"break-word"}),n.on("tinymce-editor-init.editor-expand",function(b,c){function f(){var a,b,d=c.selection.getNode();return b=c.plugins.wpview&&(a=c.plugins.wpview.getView(d))?a.getBoundingClientRect():d.getBoundingClientRect(),b.height?b:!1}function h(a){var b,d,e,g,h=tinymce.util.VK,i=a.keyCode,j=f(),k=10;j&&(47>=i&&i!==h.SPACEBAR&&i!==h.ENTER&&i!==h.DELETE&&i!==h.BACKSPACE&&i!==h.UP&&i!==h.LEFT&&i!==h.DOWN&&i!==h.UP||i>=91&&93>=i||i>=112&&123>=i||144===i||145===i||(b=j.top+c.iframeElement.getBoundingClientRect().top,d=b+j.height,b-=k,d+=k,e=R.adminBarHeight+R.toolsHeight+R.menuBarHeight+R.visualTopHeight,g=R.windowHeight-R.bottomHeight-R.statusBarHeight,g-eb&&(i===h.UP||i===h.LEFT||i===h.BACKSPACE)?window.scrollTo(window.pageXOffset,b+window.pageYOffset-e):d>g&&window.scrollTo(window.pageXOffset,d+window.pageYOffset-g))))}function i(){m.on("scroll.mce-float-panels",l),setTimeout(function(){c.execCommand("wpAutoResize"),e()},300)}function j(){m.off("scroll.mce-float-panels"),setTimeout(function(){var a=r.offset().top;window.pageYOffset>a&&window.scrollTo(window.pageXOffset,a-R.adminBarHeight),d(),e()},100),e()}var l=_.debounce(function(){!a(".mce-floatpanel:hover").length&&tinymce.ui.FloatPanel.hideAll(),a(".mce-tooltip").hide()},1e3,!0);"content"===c.id&&(k=c,c.settings.autoresize_min_height=P,t=r.find(".mce-toolbar-grp"),u=r.find(".mce-edit-area"),A=r.find(".mce-statusbar"),z=r.find(".mce-menubar"),F=function(){c.on("keyup",h),c.on("show",i),c.on("hide",j),c.on("setcontent wp-autoresize wp-toolbar-toggle",e),m.off("scroll.mce-float-panels").on("scroll.mce-float-panels",l)},G=function(){c.off("keyup",h),c.off("show",i),c.off("hide",j),c.off("setcontent wp-autoresize wp-toolbar-toggle",e),m.off("scroll.mce-float-panels")},q.hasClass("wp-editor-expand")&&(F(),g(e)))}),q.hasClass("wp-editor-expand")&&(i(),r.hasClass("html-active")&&g(function(){e(),d()})),a("#adv-settings .editor-expand").show(),a("#editor-expand-toggle").on("change.editor-expand",function(){a(this).prop("checked")?(i(),window.setUserSetting("editor_expand","on")):(j(),window.setUserSetting("editor_expand","off"))}),window.editorExpand={on:i,off:j}}); \ No newline at end of file diff --git a/wp-admin/js/media.js b/wp-admin/js/media.js index 119c10b..a071cd6 100644 --- a/wp-admin/js/media.js +++ b/wp-admin/js/media.js @@ -72,11 +72,15 @@ var findPosts; }; $( document ).ready( function() { + var $mediaGridWrap = $( '#wp-media-grid' ); + // Open up a manage media frame into the grid. - wp.media && wp.media({ - frame: 'manage', - container: $('#wpbody-content > .wrap') - }).open(); + if ( $mediaGridWrap.length && window.wp && window.wp.media ) { + window.wp.media({ + frame: 'manage', + container: $mediaGridWrap + }).open(); + } $( '#find-posts-submit' ).click( function( event ) { if ( ! $( '#find-posts-response input[type="radio"]:checked' ).length ) diff --git a/wp-admin/js/media.min.js b/wp-admin/js/media.min.js index 8a90fa7..0b040ab 100644 --- a/wp-admin/js/media.min.js +++ b/wp-admin/js/media.min.js @@ -1 +1 @@ -var findPosts;!function(a){findPosts={open:function(b,c){var d=a(".ui-find-overlay");return 0===d.length&&(a("body").append('
'),findPosts.overlay()),d.show(),b&&c&&a("#affected").attr("name",b).val(c),a("#find-posts").show(),a("#find-posts-input").focus().keyup(function(a){27==a.which&&findPosts.close()}),findPosts.send(),!1},close:function(){a("#find-posts-response").html(""),a("#find-posts").hide(),a(".ui-find-overlay").hide()},overlay:function(){a(".ui-find-overlay").on("click",function(){findPosts.close()})},send:function(){var b={ps:a("#find-posts-input").val(),action:"find_posts",_ajax_nonce:a("#_ajax_nonce").val()},c=a(".find-box-search .spinner");c.show(),a.ajax(ajaxurl,{type:"POST",data:b,dataType:"json"}).always(function(){c.hide()}).done(function(b){b.success||a("#find-posts-response").text(attachMediaBoxL10n.error),a("#find-posts-response").html(b.data)}).fail(function(){a("#find-posts-response").text(attachMediaBoxL10n.error)})}},a(document).ready(function(){wp.media&&wp.media({frame:"manage",container:a("#wpbody-content > .wrap")}).open(),a("#find-posts-submit").click(function(b){a('#find-posts-response input[type="radio"]:checked').length||b.preventDefault()}),a("#find-posts .find-box-search :input").keypress(function(a){return 13==a.which?(findPosts.send(),!1):void 0}),a("#find-posts-search").click(findPosts.send),a("#find-posts-close").click(findPosts.close),a("#doaction, #doaction2").click(function(b){a('select[name^="action"]').each(function(){"attach"===a(this).val()&&(b.preventDefault(),findPosts.open())})}),a(".find-box-inside").on("click","tr",function(){a(this).find(".found-radio input").prop("checked",!0)})})}(jQuery); \ No newline at end of file +var findPosts;!function(a){findPosts={open:function(b,c){var d=a(".ui-find-overlay");return 0===d.length&&(a("body").append('
'),findPosts.overlay()),d.show(),b&&c&&a("#affected").attr("name",b).val(c),a("#find-posts").show(),a("#find-posts-input").focus().keyup(function(a){27==a.which&&findPosts.close()}),findPosts.send(),!1},close:function(){a("#find-posts-response").html(""),a("#find-posts").hide(),a(".ui-find-overlay").hide()},overlay:function(){a(".ui-find-overlay").on("click",function(){findPosts.close()})},send:function(){var b={ps:a("#find-posts-input").val(),action:"find_posts",_ajax_nonce:a("#_ajax_nonce").val()},c=a(".find-box-search .spinner");c.show(),a.ajax(ajaxurl,{type:"POST",data:b,dataType:"json"}).always(function(){c.hide()}).done(function(b){b.success||a("#find-posts-response").text(attachMediaBoxL10n.error),a("#find-posts-response").html(b.data)}).fail(function(){a("#find-posts-response").text(attachMediaBoxL10n.error)})}},a(document).ready(function(){var b=a("#wp-media-grid");b.length&&window.wp&&window.wp.media&&window.wp.media({frame:"manage",container:b}).open(),a("#find-posts-submit").click(function(b){a('#find-posts-response input[type="radio"]:checked').length||b.preventDefault()}),a("#find-posts .find-box-search :input").keypress(function(a){return 13==a.which?(findPosts.send(),!1):void 0}),a("#find-posts-search").click(findPosts.send),a("#find-posts-close").click(findPosts.close),a("#doaction, #doaction2").click(function(b){a('select[name^="action"]').each(function(){"attach"===a(this).val()&&(b.preventDefault(),findPosts.open())})}),a(".find-box-inside").on("click","tr",function(){a(this).find(".found-radio input").prop("checked",!0)})})}(jQuery); \ No newline at end of file diff --git a/wp-admin/plugin-install.php b/wp-admin/plugin-install.php index 6ec2b9d..4140d36 100644 --- a/wp-admin/plugin-install.php +++ b/wp-admin/plugin-install.php @@ -24,8 +24,27 @@ if ( is_multisite() && ! is_network_admin() ) { $wp_list_table = _get_list_table('WP_Plugin_Install_List_Table'); $pagenum = $wp_list_table->get_pagenum(); + +if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) { + $location = remove_query_arg( '_wp_http_referer', wp_unslash( $_SERVER['REQUEST_URI'] ) ); + + if ( ! empty( $_REQUEST['paged'] ) ) { + $location = add_query_arg( 'paged', (int) $_REQUEST['paged'], $location ); + } + + wp_redirect( $location ); + exit; +} + $wp_list_table->prepare_items(); +$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' ); + +if ( $pagenum > $total_pages && $total_pages > 0 ) { + wp_redirect( add_query_arg( 'paged', $total_pages ) ); + exit; +} + $title = __( 'Add Plugins' ); $parent_file = 'plugins.php'; diff --git a/wp-admin/press-this.php b/wp-admin/press-this.php index 5daa2f9..9773364 100644 --- a/wp-admin/press-this.php +++ b/wp-admin/press-this.php @@ -63,7 +63,7 @@ function press_it() { // Error handling for media_sideload. if ( is_wp_error($upload) ) { wp_delete_post($post_ID); - wp_die($upload); + wp_die( esc_html( $upload->get_error_message() ) ); } else { // Post formats. if ( isset( $_POST['post_format'] ) ) { diff --git a/wp-admin/upload.php b/wp-admin/upload.php index 646381e..dbdf310 100644 --- a/wp-admin/upload.php +++ b/wp-admin/upload.php @@ -57,7 +57,7 @@ if ( 'grid' === $mode ) { require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?> -
+

(%s)" +msgid_plural "All (%s)" +msgstr[0] "Alle (%s)" +msgstr[1] "Alle (%s)" + +#: wp-admin/edit-link-form.php:94 +#: wp-admin/includes/class-wp-links-list-table.php:91 +msgctxt "link name" +msgid "Name" +msgstr "Navn" + +#. translators: comment type radio button +#: wp-admin/edit-form-comment.php:90 +msgctxt "adjective" +msgid "Pending" +msgstr "Ventende" + #: wp-admin/credits.php:182 msgid "Release Lead" msgstr "Utgivelsesansvarlig" @@ -38,67 +73,68 @@ msgstr "Du kan også slette individuelle filer og få tilgang til den utvidede r msgid "Thank you for updating! WordPress %s brings you a smoother writing and management experience." msgstr "Takk for at du oppdaterer! WordPress %s gir deg en bedre skrive- og administrasjonsopplevelse." -#: wp-admin/about.php:57 +#: wp-admin/about.php:65 msgid "Manage your media with style" msgstr "Håndter din media med stil" -#: wp-admin/about.php:58 +#: wp-admin/about.php:66 msgid "Explore your uploads in a beautiful, endless grid. A new details preview makes viewing and editing any amount of media in sequence a snap." msgstr "Utforsk dine opplastede filer i et pent rutenett. En ny detaljvisning gjør at du kan forhåndsvise og redigere mange filer på et øyeblikk. " -#: wp-admin/about.php:84 +#: wp-admin/about.php:92 msgid "Working with embeds has never been easier" msgstr "Å jobbe med innbygginger har aldri vært enklere" -#: wp-admin/about.php:85 +#: wp-admin/about.php:93 msgid "Paste in a YouTube URL on a new line, and watch it magically become an embedded video. Now try it with a tweet. Oh yeah — embedding has become a visual experience. The editor shows a true preview of your embedded content, saving you time and giving you confidence." msgstr "Lim inn en YouTube-URL på en ny linje, og se hvordan den automatisk blir til en innebygget video. Så kan du gjøre det samme med en Tweet. Det stemmer – innbygging har blitt til en visuell opplevelse. Redigereren viser en forhåndsvisning av ditt innebygde innhold, som gjør at du med en gang ser hvordan ting blir." -#: wp-admin/about.php:86 +#: wp-admin/about.php:94 msgid "We’ve expanded the services supported by default, too — you can embed videos from CollegeHumor, playlists from YouTube, and talks from TED. Check out all of the embeds that WordPress supports." msgstr "Vi har utvidet tjenestene som støttes som standard, også. Du kan bygge inn filmer fra CollegeHumor, spillelister fra YouTube og foredrag fra TED. Sjekk ut alle innbyggingene som WordPress støtter." -#: wp-admin/about.php:94 +#: wp-admin/about.php:102 msgid "Focus on your content" msgstr "Fokuser på ditt innhold" -#: wp-admin/about.php:95 +#: wp-admin/about.php:103 msgid "Writing and editing is smoother and more immersive with an editor that expands to fit your content as you write, and keeps the formatting tools available at all times." msgstr "Å skrive og redigere har blitt enklere og mer innbydende med en redigerer som utvider seg slik at den passer til innholdet du skriver, og holder formateringsverktøyene tilgjengelige hele tiden." -#: wp-admin/about.php:121 +#: wp-admin/about.php:129 msgid "Finding the right plugin" msgstr "Å finne den rette utvidelsen" -#: wp-admin/about.php:122 +#: wp-admin/about.php:130 msgid "There are more than 30,000 free and open source plugins in the WordPress plugin directory. WordPress 4.0 makes it easier to find the right one for your needs, with new metrics, improved search, and a more visual browsing experience." msgstr "Det er mer enn 30 000 gratis utvidelser med åpen kildekode i WordPress' utvidelseskatalog. WordPress 4.0 gjør det enklere å finne den utvidelsen som passer dine behov best, med nye måleverktøy og forbedret søk." -#: wp-admin/about.php:123 +#: wp-admin/about.php:131 msgid "Browse plugins" msgstr "Bla i utvidelser" -#: wp-admin/about.php:135 +#: wp-admin/about.php:143 msgid "Customizer API" msgstr "Tematilpasser-API" -#: wp-admin/about.php:136 +#: wp-admin/about.php:144 msgid "Contexts, panels, and a wider array of controls are now supported in the customizer." msgstr "Kontekst, paneler og en rekke kontrollere er nå støttet i tematilpasseren." -#: wp-admin/about.php:139 +#: wp-admin/about.php:147 msgid "Query Ordering" msgstr "Query-rekkefølge" -#: wp-admin/about.php:142 +#. translators: 1: "ORDER BY" (SQL), 2: "WP_Query" +#: wp-admin/about.php:150 msgid "Developers have more flexibility creating %1$s clauses through %2$s." msgstr "Utviklere har mer fleksibilitet til å lage %1$s-spørringer gjennom %2$s." -#: wp-admin/about.php:147 +#: wp-admin/about.php:155 msgid "Updated libraries: TinyMCE 4.1.3, jQuery 1.11.1, MediaElement 2.15." msgstr "Oppdaterte biblioteker: TinyMCE 4.1.3, jQuery 1.11.1, MediaElement 2.15." -#: wp-admin/plugin-install.php:59 +#: wp-admin/plugin-install.php:78 msgid "If you just want to get an idea of what’s available, you can browse Featured and Popular plugins by using the links in the upper left of the screen. These sections rotate regularly." msgstr "Hvis du bare vil få et inntrykk av hva som er tilgjengelig, kan du bla i fremhevede og populære utvidelser ved å bruke lenkene oppe til venstre på skjermen. Disse seksjonene oppdateres jevnlig." @@ -106,15 +142,10 @@ msgstr "Hvis du bare vil få et inntrykk av hva som er tilgjengelig, kan du bla msgid "All the files you’ve uploaded are listed in the Media Library, with the most recent uploads listed first." msgstr "Alle filene du har lastet opp er listet i Mediebiblioteket, med de nyeste opplastingene først." -#: wp-admin/plugin-install.php:29 +#: wp-admin/plugin-install.php:48 msgid "Add Plugins" msgstr "Legg til utvidelser" -#: wp-admin/plugin-install.php:82 -msgctxt "plugins" -msgid "Browse" -msgstr "Bla" - #: wp-admin/includes/translation-install.php:23 msgid "Invalid translation type." msgstr "Ugyldig oversettelses-type." @@ -152,19 +183,19 @@ msgstr[1] "Forkast (%s)" msgid "Welcome to the famous five-minute WordPress installation process! Just fill in the information below and you’ll be on your way to using the most extendable and powerful personal publishing platform in the world." msgstr "Velkommen til den berømte fem-minutters-installasjonen av WordPress! Fyll inn informasjonen nedenfor, og du vil være godt på vei til å komme i gang med den mest utvidbare og kraftige personlige publiseringsplattformen i verden." -#: wp-admin/includes/class-wp-plugin-install-list-table.php:470 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:472 msgid "Untested with your version of WordPress" msgstr "Ikke testet mot din versjon av WordPress" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:472 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:474 msgid "Incompatible with your version of WordPress" msgstr "Ikke kompatibel med din versjon av WordPress" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:474 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:476 msgid "Compatible with your version of WordPress" msgstr "Kompatibel med din versjon av WordPress" -#: wp-admin/includes/plugin-install.php:459 +#: wp-admin/includes/plugin-install.php:464 msgid "%d star" msgid_plural "%d stars" msgstr[0] "%d stjerne" @@ -254,34 +285,36 @@ msgctxt "Plugin Installer" msgid "Beta Testing" msgstr "Betatesting" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:336 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:338 msgctxt "Plugin installer group title" msgid "Performance" msgstr "Ytelse" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:337 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:339 msgctxt "Plugin installer group title" msgid "Social" msgstr "Sosialt" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:338 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:340 msgctxt "Plugin installer group title" msgid "Tools" msgstr "Verktøy" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:392 +#. translators: 1: Plugin name and version. +#: wp-admin/includes/class-wp-plugin-install-list-table.php:394 msgid "Install %s now" msgstr "Installer %s nå" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:399 +#. translators: 1: Plugin name and version +#: wp-admin/includes/class-wp-plugin-install-list-table.php:401 msgid "Update %s now" msgstr "Oppdater %s nå" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:414 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:416 msgid "More Details" msgstr "Mer detaljer" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:465 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:467 msgid "%s download" msgid_plural "%s downloads" msgstr[0] "%s nedlasting" @@ -311,23 +344,23 @@ msgstr "" "OPPDATERINGSLOGG\n" "==================" -#: wp-admin/includes/plugin-install.php:350 +#: wp-admin/includes/plugin-install.php:355 msgctxt "Plugin installer section title" msgid "Reviews" msgstr "Omtaler" -#: wp-admin/includes/plugin-install.php:442 -#: wp-admin/includes/plugin-install.php:490 +#: wp-admin/includes/plugin-install.php:447 +#: wp-admin/includes/plugin-install.php:495 msgid "Donate to this plugin »" msgstr "Doner til denne utvidelsen »" -#: wp-admin/includes/plugin-install.php:458 +#: wp-admin/includes/plugin-install.php:463 msgid "Click to see reviews that provided a rating of %d star" msgid_plural "Click to see reviews that provided a rating of %d stars" msgstr[0] "Klikk for å se omtaler som ga vurderingen %d stjerne" msgstr[1] "Klikk for å se omtaler som ga vurderingen %d stjerner" -#: wp-admin/includes/plugin-install.php:470 +#: wp-admin/includes/plugin-install.php:475 msgid "Contributors" msgstr "Bidragsytere" @@ -404,6 +437,7 @@ msgstr "Bla gjennom" msgid "All comment types" msgstr "Alle kommentartyper" +#. translators: 1: relative date, 2: time, 3: post title #: wp-admin/includes/dashboard.php:724 msgid "%1$s, %2$s %3$s" msgstr "%1$s, %2$s %3$s" @@ -541,7 +575,7 @@ msgstr "Takk for at du skaper med WordPress." #: wp-admin/options-discussion.php:27 wp-admin/options-general.php:80 #: wp-admin/options-media.php:35 wp-admin/options-permalink.php:46 #: wp-admin/options-reading.php:72 wp-admin/options-writing.php:52 -#: wp-admin/plugin-editor.php:142 wp-admin/plugin-install.php:67 +#: wp-admin/plugin-editor.php:142 wp-admin/plugin-install.php:86 #: wp-admin/plugins.php:360 wp-admin/revision.php:120 #: wp-admin/theme-editor.php:43 wp-admin/theme-install.php:104 #: wp-admin/themes.php:86 wp-admin/tools.php:29 wp-admin/update-core.php:490 @@ -550,6 +584,8 @@ msgstr "Takk for at du skaper med WordPress." msgid "Support Forums" msgstr "Supportforum" +#. translators: URL to the Make WordPress 'Get Involved' landing page used on +#. the credits page #: wp-admin/credits.php:164 msgid "https://make.wordpress.org/" msgstr "https://make.wordpress.org/" @@ -670,6 +706,7 @@ msgid_plural "%s Comments" msgstr[0] "%s kommentar" msgstr[1] "%s kommentarer" +#. translators: Number of comments in moderation #: wp-admin/includes/dashboard.php:245 msgctxt "comments" msgid "%s in moderation" @@ -677,18 +714,23 @@ msgid_plural "%s in moderation" msgstr[0] "%s i moderasjonskø" msgstr[1] "%s i moderasjonskø" +#. translators: date and time format for recent posts on the dashboard, see +#. http:php.net/date #: wp-admin/includes/dashboard.php:715 msgid "M jS" msgstr "j. M" +#. translators: 1: relative date, 2: time, 3: post edit link, 4: post title #: wp-admin/includes/dashboard.php:720 msgid "%1$s, %2$s %4$s" msgstr "%1$s, %2$s %4$s" +#. translators: number of megabytes #: wp-admin/includes/dashboard.php:1138 msgid "%s MB Space Allowed" msgstr "%s MB lagringsplass tillatt" +#. translators: 1: number of megabytes, 2: percentage #: wp-admin/includes/dashboard.php:1150 msgid "%1$s MB (%2$s%%) Space Used" msgstr "%1$s MB (%2$s%%) lagringsplass brukt" @@ -754,12 +796,14 @@ msgstr "Når du forhåndsviser på små skjermer kan du bruke trekk sammen-ikone msgid "To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back." msgstr "For å aktivere en widget, dra den til sidekolonnen eller klikk på den. For å deaktivere en widget og slette innstillingene, dra den tilbake." +#. translators: 1: The rating, 2: The number of ratings #: wp-admin/includes/template.php:2144 msgid "%1$s rating based on %2$s rating" msgid_plural "%1$s rating based on %2$s ratings" msgstr[0] "%1$s – basert på %2$s vurdering" msgstr[1] "%1$s – basert på %2$s vurderinger" +#. translators: 1: The rating #: wp-admin/includes/template.php:2148 msgid "%s rating" msgstr "%s vurdering" @@ -768,10 +812,12 @@ msgstr "%s vurdering" msgid "This screen shows an individual user all of their sites in this network, and also allows that user to set a primary site. They can use the links under each site to visit either the frontend or the dashboard for that site." msgstr "Denne skjermen viser individuelle brukere alle deres nettsteder i dette nettverket, og lar også brukeren velge sitt primære nettsted. De kan bruke lenkene under hvert nettsted for å vise enten forsiden eller kontrollpanelet for det nettstedet." +#. translators: 1: Error code, 2: Error message. #: wp-admin/includes/class-wp-upgrader.php:2633 msgid "Rollback Error: [%1$s] %2$s" msgstr "Rollback-feil: [%1$s] %2$s" +#. translators: 1: Error code, 2: Error message. #: wp-admin/includes/class-wp-upgrader.php:2636 msgid "Error: [%1$s] %2$s" msgstr "Feil: [%1$s] %2$s" @@ -984,14 +1030,17 @@ msgstr "Oppdaterer oversettelser for %1$s (%2$s)…" msgid "Translations for %s" msgstr "Oversettelser for %s" +#. translators: 1: Site name, 2: WordPress version number. #: wp-admin/includes/class-wp-upgrader.php:2369 msgid "[%1$s] Your site has updated to WordPress %2$s" msgstr "[%1$s] Ditt nettsted har blitt oppdatert til WordPress %2$s" +#. translators: 1: Site name, 2: WordPress version number. #: wp-admin/includes/class-wp-upgrader.php:2375 msgid "[%1$s] WordPress %2$s is available. Please update!" msgstr "[%1$s] WordPress %2$s er tilgjengelig. Vennligst oppdater!" +#. translators: 1: Site name. #: wp-admin/includes/class-wp-upgrader.php:2380 msgid "[%1$s] URGENT: Your site may be down due to a failed update" msgstr "[%1$s] HASTER: Ditt nettsted kan være nede på grunn av en mislykket oppdatering" @@ -1065,11 +1114,11 @@ msgstr "Feilkode: %s" msgid "ERROR: %s" msgstr "FEIL: %s" -#: wp-admin/includes/post.php:1436 +#: wp-admin/includes/post.php:1442 msgid "This content is currently locked." msgstr "Dette innholdet er for tiden låst." -#: wp-admin/includes/post.php:1438 +#: wp-admin/includes/post.php:1444 msgid "If you take over, %s will be blocked from continuing to edit." msgstr "Hvis du tar over, vil %s bli blokkert fra å fortsette å redigere." @@ -1379,14 +1428,17 @@ msgstr "Noen andre redigerer dette. Du trenger ikke å laste inn vinduet på nyt msgid "Compare any two revisions" msgstr "Sammenlikne to revisjoner" +#. translators: 1: audio track title, 2: album title, 3: artist name #: wp-admin/includes/media.php:281 msgid "\"%1$s\" from %2$s by %3$s." msgstr "\"%1$s\" fra %2$s av %3$s." +#. translators: 1: audio track title, 2: album title #: wp-admin/includes/media.php:284 msgid "\"%1$s\" from %2$s." msgstr "\"%1$s\" fra %2$s." +#. translators: 1: audio track title, 2: artist name #: wp-admin/includes/media.php:287 msgid "\"%1$s\" by %2$s." msgstr "\"%1$s\" av %2$s." @@ -1457,6 +1509,7 @@ msgstr "Legg til menyelementer fra kolonnen til venstre." msgid "Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the WordPress Plugin Directory or upload a plugin in .zip format via this page." msgstr "Utvidelser gir WordPress mer funksjonalitet. Du kan installere utvidelser automatisk fra WordPress Plugin Directory eller laste opp utvidelser i .zip-format via denne siden." +#. Plugin URI of the plugin/theme msgid "http://wordpress.org/plugins/hello-dolly/" msgstr "http://wordpress.org/plugins/hello-dolly/" @@ -1557,6 +1610,7 @@ msgctxt "revision date short format" msgid "j M @ G:i" msgstr "j. M @ H:i" +#. translators: 1: audio album title, 2: artist name #: wp-admin/includes/media.php:296 msgid "%1$s by %2$s." msgstr "%1$s av %2$s." @@ -1585,11 +1639,11 @@ msgstr "Lydformat:" msgid "Audio Codec:" msgstr "Lydkodek:" -#: wp-admin/includes/post.php:1475 +#: wp-admin/includes/post.php:1481 msgid "Saving revision..." msgstr "Lagrer revisjon..." -#: wp-admin/includes/post.php:1476 +#: wp-admin/includes/post.php:1482 msgid "Your latest changes were saved as a revision." msgstr "Dine siste endringer ble lagret som en revisjon." @@ -1711,26 +1765,32 @@ msgstr "Flytt ned" msgid "Move to the top" msgstr "Flytt til toppen" +#. translators: %s: previous item name #: wp-admin/nav-menus.php:404 msgid "Move under %s" msgstr "Flytt til %s" +#. translators: %s: previous item name #: wp-admin/nav-menus.php:406 msgid "Move out from under %s" msgstr "Flytt %s" +#. translators: %s: previous item name #: wp-admin/nav-menus.php:408 msgid "Under %s" msgstr "Under %s" +#. translators: %s: previous item name #: wp-admin/nav-menus.php:410 msgid "Out from under %s" msgstr "Bort fra %s" +#. translators: 1: item name, 2: item position, 3: total number of items #: wp-admin/nav-menus.php:412 msgid "%1$s. Menu item %2$d of %3$d." msgstr "%1$s. Menyelement %2$d av %3$d." +#. translators: 1: item name, 2: item position, 3: parent item name #: wp-admin/nav-menus.php:414 msgid "%1$s. Sub item number %2$d under %3$s." msgstr "%1$s. Undermeny %2$d under %3$s." @@ -1791,7 +1851,7 @@ msgstr "Kladd opprettet %1$s klokka %2$s" msgid "%s has taken over and is currently editing." msgstr "%s har tatt over og skriver." -#: wp-admin/includes/post.php:1461 +#: wp-admin/includes/post.php:1467 msgid "Take over" msgstr "Ta over" @@ -1962,6 +2022,7 @@ msgctxt "color" msgid "Default: %s" msgstr "Standard: %s" +#. translators: column name #: wp-admin/includes/class-wp-media-list-table.php:251 msgctxt "column name" msgid "Uploaded to" @@ -2165,15 +2226,15 @@ msgstr "Be søkemotorer om ikke å indeksere nettstedet" msgid "It is up to search engines to honor this request." msgstr "Det er opp til søkemotorene å oppfylle ditt ønske." -#: wp-admin/plugin-install.php:58 +#: wp-admin/plugin-install.php:77 msgid "If you know what you’re looking for, Search is your best bet. The Search screen has options to search the WordPress.org Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting popular tags. Tags in larger type mean more plugins have been labeled with that tag." msgstr "Hvis du vet hva du leter etter, er det best å søke. Søkeskjermen har valg for å søke i utvidelseskatalogen til WordPress.org for et bestemt nøkkelord, forfatter eller stikkord. Du kan også søke i katalogen ved å velge populære stikkord. Stikkord i større skrift betyr at flere utvidelser har blitt merket med det stikkordet." -#: wp-admin/plugin-install.php:60 +#: wp-admin/plugin-install.php:79 msgid "You can also browse a user’s favorite plugins, by using the Favorites link in the upper left of the screen and entering their WordPress.org username." msgstr "Du kan også bla i en brukers favorittutvidelser, ved å bruke lenken Favoritter oppe til venstre i skjermen og ved å skrive inn deres WordPress.org-brukernavn" -#: wp-admin/plugin-install.php:61 +#: wp-admin/plugin-install.php:80 msgid "If you want to install a plugin that you’ve downloaded elsewhere, click the Upload link in the upper left. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin." msgstr "Hvis du vil installere en utvidelse som du har lastet ned andre steder, klikke på Last opp-lenken oppe til venstre. Du vil bli bedt om å laste opp .zip-filen, og når den er lastet opp kan du aktivere den nye utvidelsen." @@ -2350,6 +2411,7 @@ msgstr "Du kan velge et tilpasset toppbilde for ditt nettsted. Bare last opp bil msgid "Skip Cropping, Publish Image as Is" msgstr "Hopp over beskjæring. Publiser bildet som det er" +#. translators: %s is the theme name in the Customize/Live Preview pane #: wp-admin/customize.php:139 msgid "You are previewing %s" msgstr "Du forhåndsviser %s" @@ -2380,7 +2442,7 @@ msgstr "Hvis du ikke ønsker å vise et toppbilde på nettstedet ditt, klikk på msgid "You attempted to edit an item that isn’t an attachment. Please go back and try again." msgstr "Du har prøvd å redigere en fil som ikke er et vedlegg. Vennligst gå tilbake og prøv igjen." -#: wp-admin/includes/class-wp-plugin-install-list-table.php:405 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:407 msgctxt "plugin" msgid "Installed" msgstr "Installert" @@ -2547,9 +2609,9 @@ msgid "Restore" msgstr "Gjenopprett" #: wp-admin/includes/class-wp-media-list-table.php:398 -#: wp-admin/includes/class-wp-plugin-install-list-table.php:461 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:463 #: wp-admin/includes/class-wp-posts-list-table.php:734 -#: wp-admin/includes/plugin-install.php:429 wp-admin/includes/revision.php:173 +#: wp-admin/includes/plugin-install.php:434 wp-admin/includes/revision.php:173 msgid "%s ago" msgstr "%s siden" @@ -2573,7 +2635,7 @@ msgid "Collapse Sidebar" msgstr "Trekk sammen sidekolonnen" #: wp-admin/includes/class-wp-theme-install-list-table.php:381 -#: wp-admin/includes/plugin-install.php:424 +#: wp-admin/includes/plugin-install.php:429 msgid "Version:" msgstr "Versjon:" @@ -2678,14 +2740,17 @@ msgstr "Nøkkelord" msgid "This theme requires a parent theme. Checking if it is installed…" msgstr "Temaet forutsetter et foreldretema. Sjekker om det er installert…" +#. translators: 1: theme name, 2: version #: wp-admin/includes/class-wp-upgrader.php:826 msgid "Preparing to install %1$s %2$s…" msgstr "Forbereder installasjon av %1$s %2$s…" +#. translators: 1: theme name, 2: version #: wp-admin/includes/class-wp-upgrader.php:828 msgid "The parent theme, %1$s %2$s, is currently installed." msgstr "Foreldretemaet, %1$s %2$s, er installert." +#. translators: 1: theme name, 2: version #: wp-admin/includes/class-wp-upgrader.php:830 msgid "Successfully installed the parent theme, %1$s %2$s." msgstr "Vellykket installasjon av foreldretema, %1$s %2$s." @@ -2738,15 +2803,19 @@ msgstr[1] "Ødelagte (%s)" msgid "Light" msgstr "Lyst" +#. Plugin Name of the plugin/theme msgid "Hello Dolly" msgstr "Hello Dolly" +#. Description of the plugin/theme msgid "This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from Hello, Dolly in the upper right of your admin screen on every page." msgstr "Dette er ikke bare en utvidelse, men symboliserer håp og entusiasme for en hel generasjon - summert i to ord, som ble mest berømt av Louis Armstrong: Hello Dolly. Etter aktivering av utvidelsen vil tilfeldige strofer fra sangteksten i Hello Dolly bli vist øverst til høyre i skjermbildet." +#. Author of the plugin/theme msgid "Matt Mullenweg" msgstr "Matt Mullenweg" +#. Author URI of the plugin/theme msgid "http://ma.tt/" msgstr "http://ma.tt/" @@ -2758,6 +2827,7 @@ msgstr "Vis i skjermbildet" msgid "Welcome - Shows links for some of the most common tasks when setting up a new site." msgstr "Velkommen - Viser lenker for noen av de vanligste tingene som man gjør når man setter opp et nytt nettsted." +#. translators: 1: user_login, 2: user_email #: wp-admin/includes/ajax-actions.php:284 msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2766,21 +2836,13 @@ msgstr "%1$s (%2$s)" msgid "There is a new version of %1$s available. View version %4$s details. Automatic update is unavailable for this theme." msgstr "Det er en ny versjon av %1$s tilgjengelig. Vis detaljene for versjon %4$s. Automatisk oppdatering er ikke tilgjengelig for dette temaet." +#. translators: default start of the week. 0 = Sunday, 1 = Monday #: wp-admin/includes/schema.php:375 msgctxt "start of week" msgid "1" msgstr "1" -#: wp-admin/includes/screen.php:1049 -msgctxt "Welcome panel" -msgid "Welcome" -msgstr "Velkommen" - -#: wp-admin/includes/schema.php:360 -msgctxt "default GMT offset or timezone string" -msgid "0" -msgstr "Europe/Oslo" - +#. translators: 1: month number (01, 02, etc.), 2: month abbreviation #: wp-admin/includes/template.php:742 msgid "%1$s-%2$s" msgstr "%1$s-%2$s" @@ -2921,10 +2983,12 @@ msgstr "" msgid "Your email address has not been updated yet. Please check your inbox at %s for a confirmation email." msgstr "Din e-postadresse har ikke blitt oppdatert ennå. Vennligst sjekk din innboks på %s for en bekreftelsese-post." +#. translators: Gigabytes #: wp-admin/includes/ms.php:383 msgid "GB" msgstr "GB" +#. translators: Megabytes #: wp-admin/includes/ms.php:387 msgid "MB" msgstr "MB" @@ -3030,6 +3094,7 @@ msgstr[1] "Superadminer (%s)" msgid "American English" msgstr "Amerikansk engelsk" +#. translators: My sites label #: wp-admin/includes/ms.php:637 msgid "Primary Site" msgstr "Primærnettsted" @@ -3185,36 +3250,38 @@ msgstr "For å go denne siden muligheten til å automatisk reparere databaseprob msgid "No comments awaiting moderation." msgstr "Ingen kommentarer venter på gjennomgang." -#: wp-admin/includes/plugin-install.php:349 +#: wp-admin/includes/plugin-install.php:354 msgctxt "Plugin installer section title" msgid "Changelog" msgstr "Endringslogg" -#: wp-admin/includes/plugin-install.php:351 +#: wp-admin/includes/plugin-install.php:356 msgctxt "Plugin installer section title" msgid "Other Notes" msgstr "Andre bemerkninger" -#: wp-admin/includes/plugin-install.php:347 +#: wp-admin/includes/plugin-install.php:352 msgctxt "Plugin installer section title" msgid "FAQ" msgstr "Vanlige spørsmål" -#: wp-admin/includes/plugin-install.php:346 +#: wp-admin/includes/plugin-install.php:351 msgctxt "Plugin installer section title" msgid "Installation" msgstr "Installasjon" -#: wp-admin/includes/plugin-install.php:345 +#: wp-admin/includes/plugin-install.php:350 msgctxt "Plugin installer section title" msgid "Description" msgstr "Beskrivelse" -#: wp-admin/includes/plugin-install.php:348 +#: wp-admin/includes/plugin-install.php:353 msgctxt "Plugin installer section title" msgid "Screenshots" msgstr "Skjermdumper" +#. translators: %s is a placeholder that must come at the start of the URL +#. path. #: wp-admin/options-permalink.php:244 msgid "If you like, you may enter custom structures for your category and tag URLs here. For example, using topics as your category base would make your category links like http://example.org/%stopics/uncategorized/. If you leave these blank the defaults will be used." msgstr "Hvis du vil, kan du lage egendefinerte strukturer for kategori- og stikkords URL-er her. Hvis du for eksempel bruker emner som en samlende kategori, så vil dine kategorilenker se slik ut http://eksempel.no/%semner/ukategorisert/. Hvis du lar feltet stå tomt, blir standardoppsettet brukt." @@ -3231,7 +3298,7 @@ msgstr "" "Du er i ferd med å slette lenken '%s'\n" "Klikk enten 'Avbryt' for å stoppe handlingen, eller 'OK' for å slette." -#: wp-admin/includes/plugin-install.php:440 +#: wp-admin/includes/plugin-install.php:445 msgid "Plugin Homepage »" msgstr "Utvidelser →" @@ -3239,6 +3306,7 @@ msgstr "Utvidelser →" msgid "You can export a file of your site’s content in order to import it into another installation or platform. The export file will be an XML file format called WXR. Posts, pages, comments, custom fields, categories, and tags can be included. You can choose for the WXR file to include only certain posts or pages by setting the dropdown filters to limit the export by category, author, date range by month, or publishing status." msgstr "Du kan eksportere en fil med innholdet på ditt nettsted for så å importere det til en annen installasjon eller plattform. Den eksporterte filen vil være i et XML-format som heter WXR. Innlegg, sider, kommentarer, egendefinerte felt, kategorier og stikkord kan inkluderes. Du kan velge om WXR-filen kun skal inkludere noen innlegg eller sider ved å sette filtrene til kun å eksportere bestemte kategorier, forfattere, måneder eller innlegg med en bestemt publiseringsstatus." +#. translators: 1: table name, 2: error message, #: wp-admin/maint/repair.php:73 msgid "Failed to repair the %1$s table. Error: %2$s" msgstr "Rettingen av tabellen %1$s feilet. Feil: %2$s" @@ -3288,6 +3356,7 @@ msgstr "Det aktiverte temaet er ufullstendig. Standardtemaet vil bli brukt i ste msgid "Image could not be processed. Please go back and try again." msgstr "Bildet ble ikke behandlet. Vennligst gå tilbake og prøv igjen." +#. translators: 1: table name, 2: error message, #: wp-admin/maint/repair.php:63 msgid "The %1$s table is not okay. It is reporting the following error: %2$s. WordPress will attempt to repair this table…" msgstr "Tabellen %1$s er ikke i orden. Den rapporterer følgende feil: %2$s. WordPress vil forsøke å rette denne tabellen…" @@ -3332,23 +3401,28 @@ msgstr "Medvirkende utviklere" msgid "Show Toolbar when viewing site" msgstr "Vis verktøylinjen når du ser på nettstedet" -#: wp-admin/about.php:186 +#. translators: 1: WordPress version number, 2: plural number of bugs. Singular +#. security issue. +#: wp-admin/about.php:194 msgid "Version %1$s addressed a security issue and fixed %2$s bug." msgid_plural "Version %1$s addressed a security issue and fixed %2$s bugs." msgstr[0] "Versjon %1$s tettet et sikkerhetshull og rettet %2$s programfeil." msgstr[1] "Versjon %1$s tettet et sikkerhetshull og rettet %2$s programfeil." -#: wp-admin/about.php:193 +#: wp-admin/about.php:48 wp-admin/about.php:201 msgid "For more information, see the release notes." msgstr "For mer informasjon, se versjonsmerknadene." -#: wp-admin/about.php:190 +#. translators: 1: WordPress version number, 2: plural number of bugs. More +#. than one security issue. +#: wp-admin/about.php:46 wp-admin/about.php:198 msgid "Version %1$s addressed some security issues and fixed %2$s bug." msgid_plural "Version %1$s addressed some security issues and fixed %2$s bugs." msgstr[0] "Versjon %1$s tettet noen sikkerhetshull og rettet %2$s programfeil." msgstr[1] "Versjon %1$s tettet noen sikkerhetshull og rettet %2$s programfeil." -#: wp-admin/about.php:182 +#. translators: 1: WordPress version number, 2: plural number of bugs. +#: wp-admin/about.php:190 msgid "Version %1$s addressed %2$s bug." msgid_plural "Version %1$s addressed %2$s bugs." msgstr[0] "Versjon %1$s rettet %2$s programfeil." @@ -3358,7 +3432,7 @@ msgstr[1] "Versjon %1$s rettet %2$s programfeil." msgid "Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab in the upper corner." msgstr "Velkommen til kontrollpanelet i WordPress. Dette er det skjermbildet vil du se hver gang du logger inn på nettstedet, og gir deg tilgang alle administrative funksjoner i WordPress. Du kan få mer informasjon om hvert enkelt skjermbilde om du klikker Hjelp-fanen i øvre høyre hjørne." -#: wp-admin/about.php:175 +#: wp-admin/about.php:45 wp-admin/about.php:183 msgid "Maintenance and Security Release" msgid_plural "Maintenance and Security Releases" msgstr[0] "Vedlikeholds- og sikkerhetsoppdatering" @@ -3368,19 +3442,20 @@ msgstr[1] "Vedlikeholds- og sikkerhetsoppdateringer" msgid "What’s New" msgstr "Hva er nytt" -#: wp-admin/about.php:174 +#: wp-admin/about.php:182 msgid "Security Release" msgid_plural "Security Releases" msgstr[0] "Sikkerhetsoppdatering" msgstr[1] "Sikkerhetsoppdateringer" -#: wp-admin/about.php:173 +#: wp-admin/about.php:181 msgid "Maintenance Release" msgid_plural "Maintenance Releases" msgstr[0] "Vedlikeholdsoppdatering" msgstr[1] "Vedlikeholdsoppdateringer" -#: wp-admin/about.php:178 +#. translators: 1: WordPress version number. +#: wp-admin/about.php:186 msgid "Version %1$s addressed a security issue." msgid_plural "Version %1$s addressed some security issues." msgstr[0] "Versjon %1$s tettet et sikkerhetshull" @@ -3390,7 +3465,7 @@ msgstr[1] "Versjon %1$s tettet noen sikkerhetshull." msgid "This screen allows you to choose your default permalink structure. You can choose from common settings or create custom URL structures." msgstr "Dette skjermbildet lar deg velge strukturen på permalenkene dine. Du kan velge blant de vanligste eller opprette din egen URL-struktur." -#: wp-admin/about.php:156 +#: wp-admin/about.php:164 msgid "Return to Updates" msgstr "Tilbake til oppdateringer" @@ -3486,7 +3561,7 @@ msgstr "Dette skjermbildet gir deg tilgang til alle dine innlegg. Du kan tilpass msgid "You can also edit or move multiple posts to the trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk Actions menu and click Apply." msgstr "Du kan redigere eller slette mange innlegg samtidig. Velg de innleggene du vil endre ved å krysse dem av i boksen til venstre for tittlfeltet. Så velger du hva du vil gjøre i boksen Massehandlinger, før du klikker Bruk." -#: wp-admin/plugin-install.php:56 +#: wp-admin/plugin-install.php:75 msgid "Adding Plugins" msgstr "Legge til utvidelser" @@ -3502,7 +3577,7 @@ msgstr "Du kan endre innstillingene til dette skjermbildet på mange måter:" msgid "Adding Themes" msgstr "Legge til temaer" -#: wp-admin/plugin-install.php:52 +#: wp-admin/plugin-install.php:71 msgid "Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official WordPress.org Plugin Directory are compatible with the license WordPress uses. You can find new plugins to install by searching or browsing the Directory right here in your own Plugins section." msgstr "Utvidelser kobler seg på WordPress for å utvide funksjonaliteten. Utvidelser er utviklet uavhengig av WordPress-kjernen av tusenvis av utviklere over hele verden. Alle utvidelser i den offisielle WordPress.org utvidelseskatalogen er kompatible med den brukerlisensen WordPress selv har. Du kan finne nye utvidelser ved å søke etter, eller bla gjennom katalogen direkte her fra administrasjonsområdet." @@ -3690,11 +3765,11 @@ msgstr "Sannsynligvis direkte inkludering av wp-admin/includes/template.php for msgid "Welcome to WordPress %s" msgstr "Velkommen til WordPress %s" -#: wp-admin/about.php:160 +#: wp-admin/about.php:168 msgid "Go to Dashboard → Home" msgstr "Gå til Kontrollpanel → Hjem" -#: wp-admin/about.php:156 +#: wp-admin/about.php:164 msgid "Return to Dashboard → Updates" msgstr "Tilbake til Kontrollpanel → Oppdateringer" @@ -3706,7 +3781,7 @@ msgstr "WordPress er blitt til av et nettverk med ihuga entusiaster i hele verde msgid "Core Developers" msgstr "Kjerneutviklere" -#: wp-admin/about.php:131 +#: wp-admin/about.php:139 msgid "Under the Hood" msgstr "Under panseret" @@ -3718,6 +3793,7 @@ msgstr "Tilpass nettstedet ditt" msgid "Profile updated." msgstr "Profil oppdatert." +#. translators: 1: Site name, 2: site URL, 3: role, 4: activation URL #: wp-admin/user-new.php:81 msgid "" "Hi,\n" @@ -3785,22 +3861,27 @@ msgstr "%s utvidelser" msgid "%s plugin" msgstr "%s utvidelse" +#. translators: %s: table name #: wp-admin/maint/repair.php:92 msgid "Successfully optimized the %s table." msgstr "Optimalisering av tabellen %s var vellykket." +#. translators: 1: table name, 2: error message, #: wp-admin/maint/repair.php:95 msgid "Failed to optimize the %1$s table. Error: %2$s" msgstr "Klarte ikke å optimalisere tabellen %1$s. Feil: %2$s" +#. translators: %s: table name #: wp-admin/maint/repair.php:70 msgid "Successfully repaired the %s table." msgstr "Reparasjon av tabellen %s var vellykket." +#. translators: %s: table name #: wp-admin/maint/repair.php:85 msgid "The %s table is already optimized." msgstr "Tabellen %s er allerede optimalisert." +#. translators: %s: table name #: wp-admin/maint/repair.php:60 msgid "The %s table is okay." msgstr "Tabellen %s er OK." @@ -3821,6 +3902,8 @@ msgstr "Importer innlegg & media fra Tumblrs mikroblogg ved hjelp av deres A msgid "Update %2$s or learn how to browse happy" msgstr "Oppdater %2$s eller lær hvordan å glad-surfe" +#. translators: %1$s is link start tag, %2$s is link end tag, %3$d is width, +#. %4$d is height #: wp-admin/includes/media.php:2580 msgid "Scale images to match the large size selected in %1$simage options%2$s (%3$d × %4$d)." msgstr "Skalere bilder for å matche den store størrelsen som er valgt i %1$sbilde-alternativer%2$s (%3$d × %4$d)." @@ -3874,7 +3957,7 @@ msgstr "Du kan bruke følgende kontroller til å ordne kontrollpanelet slik at d #: wp-admin/options-general.php:73 wp-admin/options-media.php:28 #: wp-admin/options-permalink.php:20 wp-admin/options-reading.php:55 #: wp-admin/options-writing.php:20 wp-admin/plugin-editor.php:128 -#: wp-admin/plugin-install.php:50 wp-admin/plugins.php:344 +#: wp-admin/plugin-install.php:69 wp-admin/plugins.php:344 #: wp-admin/revision.php:114 wp-admin/theme-editor.php:25 #: wp-admin/theme-install.php:87 wp-admin/themes.php:49 #: wp-admin/update-core.php:470 wp-admin/upload.php:33 wp-admin/upload.php:198 @@ -3908,6 +3991,7 @@ msgstr[1] "Oppdateringer tilgjengelige (%s)" msgid "Click to view entire list of files which will be deleted" msgstr "Klikk for å se hele listen med filer som vil bli slettet" +#. translators: 1: plugin name, 2: plugin author #: wp-admin/plugins.php:283 msgid "%1$s by %2$s" msgstr "%1$s av %2$s" @@ -3960,7 +4044,7 @@ msgid "Version %s" msgstr "Versjon %s" #: wp-admin/includes/class-wp-ms-themes-list-table.php:387 -#: wp-admin/includes/class-wp-plugin-install-list-table.php:380 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:382 #: wp-admin/includes/class-wp-plugins-list-table.php:519 #: wp-admin/includes/class-wp-theme-install-list-table.php:272 #: wp-admin/includes/class-wp-theme-install-list-table.php:374 @@ -4019,14 +4103,6 @@ msgstr "Legg til eksisterende bruker" msgid "Role" msgstr "Rolle" -#: wp-admin/includes/class-wp-ms-users-list-table.php:98 -#: wp-admin/includes/class-wp-users-list-table.php:156 -msgctxt "users" -msgid "All (%s)" -msgid_plural "All (%s)" -msgstr[0] "Alle (%s)" -msgstr[1] "Alle (%s)" - #: wp-admin/comment.php:57 wp-admin/custom-background.php:149 #: wp-admin/custom-header.php:190 wp-admin/edit-comments.php:132 #: wp-admin/edit-form-advanced.php:292 wp-admin/edit-form-advanced.php:307 @@ -4038,7 +4114,7 @@ msgstr[1] "Alle (%s)" #: wp-admin/options-discussion.php:25 wp-admin/options-general.php:78 #: wp-admin/options-media.php:33 wp-admin/options-permalink.php:43 #: wp-admin/options-reading.php:70 wp-admin/options-writing.php:50 -#: wp-admin/plugin-editor.php:139 wp-admin/plugin-install.php:65 +#: wp-admin/plugin-editor.php:139 wp-admin/plugin-install.php:84 #: wp-admin/plugins.php:358 wp-admin/revision.php:118 #: wp-admin/theme-editor.php:38 wp-admin/theme-install.php:102 #: wp-admin/themes.php:84 wp-admin/tools.php:27 wp-admin/update-core.php:488 @@ -4053,11 +4129,6 @@ msgctxt "user" msgid "Add New" msgstr "Legg til ny" -#: wp-admin/menu.php:167 -msgctxt "theme editor" -msgid "Editor" -msgstr "Redigering" - #: wp-admin/includes/class-wp-links-list-table.php:58 #: wp-admin/includes/class-wp-links-list-table.php:155 #: wp-admin/includes/class-wp-ms-sites-list-table.php:142 @@ -4153,6 +4224,7 @@ msgstr "Nettstedsspråk" msgid "Attempt to notify any blogs linked to from the article" msgstr "Prøv å varsle blogger som er lenket i innlegget" +#. translators: 1: Site name, 2: site URL, 3: role #: wp-admin/user-new.php:24 msgid "" "Hi,\n" @@ -4201,6 +4273,7 @@ msgstr "Det ser ut som du bruker en usikker versjon av %s. Bruk msgid "There are some invalid menu items. Please check or delete them." msgstr "Det er noen ugyldige menyelementer. Vennligst rett opp eller slett dem." +#. translators: %s: title of menu item which is invalid #: wp-admin/includes/nav-menu.php:85 msgid "%s (Invalid)" msgstr "%s (Ugyldig)" @@ -4226,12 +4299,6 @@ msgctxt "theme name" msgid "Name" msgstr "Navn" -#: wp-admin/edit-link-form.php:94 -#: wp-admin/includes/class-wp-links-list-table.php:91 -msgctxt "link name" -msgid "Name" -msgstr "Navn" - #: wp-admin/credits.php:192 msgid "Icon Design" msgstr "Ikondesign" @@ -4264,7 +4331,7 @@ msgstr "Kjerneutvikler" msgid "Guest Committer" msgstr "Gjesteutvikler" -#: wp-admin/about.php:146 wp-admin/credits.php:191 +#: wp-admin/about.php:154 wp-admin/credits.php:191 msgid "External Libraries" msgstr "Eksterne programbibliotek" @@ -4293,6 +4360,8 @@ msgctxt "Translate this to be the equivalent of English Translators in your lang msgid "Translators" msgstr "Oversettere til norsk (bokmål)" +#. translators: Url to the codex documentation on contributing to WordPress +#. used on the credits page #: wp-admin/credits.php:107 msgid "http://codex.wordpress.org/Contributing_to_WordPress" msgstr "http://codex.wordpress.org/Contributing_to_WordPress" @@ -4520,7 +4589,7 @@ msgstr "Documentation on Reading Settings" msgstr "Dokumentasjon om leseinnstillinger" -#: wp-admin/plugin-install.php:66 +#: wp-admin/plugin-install.php:85 msgid "Documentation on Installing Plugins" msgstr "Dokumentasjon om installering av utvidelser" @@ -4667,6 +4736,7 @@ msgstr "Hvis du ønsker å gjøre endringer, men ikke vil at de skal bli overskr msgid "Descriptions of Roles and Capabilities" msgstr "Beskrivelser av roller og muligheter" +#. translators: Default page slug #: wp-admin/includes/upgrade.php:219 msgid "sample-page" msgstr "testside" @@ -4832,6 +4902,7 @@ msgctxt "column name" msgid "In Response To" msgstr "Som svar til" +#. translators: 2: comment date, 3: comment time #: wp-admin/includes/class-wp-comments-list-table.php:407 msgid "Submitted on %2$s at %3$s" msgstr "Sendt %2$s kl. %3$s" @@ -4899,6 +4970,7 @@ msgstr "Velg én eller flere utvidelser for å oppdatere." msgid "Please select one or more themes to update." msgstr "Velg ett eller flere temaer for å oppdatere." +#. translators: %1 date, %2 time. #: wp-admin/update-core.php:514 msgid "Last checked on %1$s at %2$s." msgstr "Sist sjekket %1$s kl. %2$s." @@ -5055,6 +5127,7 @@ msgstr "Gå til siden med utvidelser" msgid "Go to WordPress Updates page" msgstr "Gå til siden for WordPress-oppdateringer" +#. translators: %s: title of menu item in draft status #: wp-admin/includes/nav-menu.php:89 msgid "%s (Pending)" msgstr "%s (venter)" @@ -5689,11 +5762,6 @@ msgctxt "Taxonomy Parent" msgid "Parent" msgstr "Forelder" -#: wp-admin/edit-form-comment.php:90 -msgctxt "adjective" -msgid "Pending" -msgstr "Ventende" - #: wp-admin/includes/class-wp-comments-list-table.php:223 msgctxt "comment" msgid "Mark as Spam" @@ -5715,6 +5783,7 @@ msgstr "Noen Walker-klasse som heter %s finnes ikke." msgid "Show advanced menu properties" msgstr "Vis avanserte menyegenskaper" +#. translators: %s: add new taxonomy label #: wp-admin/includes/meta-boxes.php:495 wp-admin/press-this.php:557 msgid "+ %s" msgstr "+ %s" @@ -6077,16 +6146,17 @@ msgstr "Stikkordmal" msgid "Page saved." msgstr "Side lagret." -#: wp-admin/includes/class-wp-plugin-install-list-table.php:405 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:407 msgid "This plugin is already installed and is up to date" msgstr "Denne utvidelsen er allerede installert og oppdatert" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:414 +#. translators: 1: Plugin name and version. +#: wp-admin/includes/class-wp-plugin-install-list-table.php:416 #: wp-admin/includes/class-wp-plugins-list-table.php:527 msgid "More information about %s" msgstr "Mer informasjon om %s" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:399 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:401 #: wp-admin/update-core.php:40 msgid "Update Now" msgstr "Oppdater nå" @@ -6103,7 +6173,7 @@ msgstr "Viktig:" msgid "This user has super admin privileges." msgstr "Denne brukeren har superadminrettigheter." -#: wp-admin/includes/post.php:1280 +#: wp-admin/includes/post.php:1286 msgid "Remove featured image" msgstr "Slett fremhevet bilde" @@ -6308,6 +6378,7 @@ msgstr "Denne adressen er brukt til administrative oppgaver. Hvis du endrer denn msgid "Daylight saving time begins on: %s." msgstr "Sommertid starter: %s." +#. translators: 1: plugin name, 2: plugin author #: wp-admin/plugins.php:279 msgid "%1$s by %2$s (will also delete its data)" msgstr "%1$s av %2$s (vil også slette tilknyttet data)" @@ -6346,7 +6417,7 @@ msgid_plural "Must-Use (%s)" msgstr[0] "Må bruke (%s)" msgstr[1] "Må bruke (%s)" -#: wp-admin/about.php:160 +#: wp-admin/about.php:168 msgid "Go to Dashboard" msgstr "Gå til kontrollpanel" @@ -6655,6 +6726,7 @@ msgstr "En automatisk WordPress-oppdatering feilet! Vennligst si ifra til nettst msgid "Note that password carefully! It is a random password that was generated just for you." msgstr "Merk deg passordet og pass på det! Det er et tilfeldig passord som er lagd bare for deg." +#. translators: Default category slug #: wp-admin/includes/upgrade.php:125 msgctxt "Default category slug" msgid "Uncategorized" @@ -6668,6 +6740,7 @@ msgstr "Velkommen til WordPress. Dette er ditt første innlegg. Rediger eller sl msgid "Hello world!" msgstr "Hei, verden!" +#. translators: Default post slug #: wp-admin/includes/upgrade.php:167 msgctxt "Default post slug" msgid "hello-world" @@ -6753,6 +6826,7 @@ msgstr "WordPress har blitt installert. Ventet du deg flere steg? Beklager å m msgid "Add New Link" msgstr "Legg til ny lenke" +#. translators: add new links #: wp-admin/edit-link-form.php:73 wp-admin/link-manager.php:72 #: wp-admin/menu.php:78 msgctxt "link" @@ -6830,6 +6904,7 @@ msgstr "Oppdater media" msgid "Library" msgstr "Bibliotek" +#. translators: add new file #: wp-admin/media.php:110 wp-admin/menu.php:66 wp-admin/upload.php:65 #: wp-admin/upload.php:231 msgctxt "file" @@ -6844,6 +6919,7 @@ msgstr "Kommentarer %s" msgid "Appearance" msgstr "Utseende" +#. translators: add new plugin #: wp-admin/menu.php:183 wp-admin/plugins.php:416 msgctxt "plugin" msgid "Add New" @@ -7048,18 +7124,22 @@ msgstr "Vis avatarer" msgid "Maximum Rating" msgstr "Maks klassifisering" +#. translators: Content suitability rating: http:bit.ly/89QxZA #: wp-admin/options-discussion.php:194 msgid "G — Suitable for all audiences" msgstr "G — Passende for alle" +#. translators: Content suitability rating: http:bit.ly/89QxZA #: wp-admin/options-discussion.php:196 msgid "PG — Possibly offensive, usually for audiences 13 and above" msgstr "PG — Mulig støtende, vanligvis for lesere på 13 år eller eldre" +#. translators: Content suitability rating: http:bit.ly/89QxZA #: wp-admin/options-discussion.php:198 msgid "R — Intended for adult audiences above 17" msgstr "R — Ment for voksne over 17 år" +#. translators: Content suitability rating: http:bit.ly/89QxZA #: wp-admin/options-discussion.php:200 msgid "X — Even more mature than above" msgstr "X — Enda mer støtende enn det over" @@ -7100,6 +7180,8 @@ msgstr "MonsterID (generert)" msgid "General Settings" msgstr "Generelle innstillinger" +#. translators: date and time format for exact current time, mainly about +#. timezones, see http:php.net/date #: wp-admin/options-general.php:18 msgctxt "timezone date format" msgid "Y-m-d G:i:s" @@ -7246,6 +7328,7 @@ msgstr "Egendefinert stuktur" msgid "Optional" msgstr "Valgfritt" +#. translators: prefix for category permalinks #: wp-admin/options-permalink.php:248 msgid "Category base" msgstr "Kategoriprefiks" @@ -7589,7 +7672,7 @@ msgid "You attempted to edit an item that doesn’t exist. Perhaps it was de msgstr "Du forsøkte å redigere noe som ikke eksisterer. Kanskje den ble slettet?" #: wp-admin/async-upload.php:56 wp-admin/edit-tags.php:247 -#: wp-admin/includes/post.php:1645 wp-admin/post.php:154 +#: wp-admin/includes/post.php:1651 wp-admin/post.php:154 msgid "You are not allowed to edit this item." msgstr "Du har ikke lov til å redigere dette." @@ -7771,7 +7854,7 @@ msgid "Installing Plugin: %s" msgstr "Installerer utvidelse: %s" #: wp-admin/includes/class-wp-plugin-install-list-table.php:74 -#: wp-admin/plugin-install.php:85 wp-admin/update.php:134 +#: wp-admin/plugin-install.php:104 wp-admin/update.php:134 msgid "Upload Plugin" msgstr "Last opp utvidelse" @@ -8017,6 +8100,7 @@ msgstr "Du kan ikke slette gjeldende bruker." msgid "Other users have been deleted." msgstr "Andre brukere har blitt slettet." +#. translators: User role name with count #: wp-admin/includes/class-wp-users-list-table.php:169 msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -8058,7 +8142,7 @@ msgstr "Lagre widget" msgid "Changes saved." msgstr "Endringer ble lagret." -#: wp-admin/includes/misc.php:816 wp-admin/includes/post.php:1639 +#: wp-admin/includes/misc.php:816 wp-admin/includes/post.php:1645 #: wp-admin/widgets.php:306 msgid "Error while saving." msgstr "Feil under lagring." @@ -8303,6 +8387,7 @@ msgstr "Slettet egendefinert felt." msgid "Post updated." msgstr "Innlegg oppdatert." +#. translators: %s: date and time of the revision #: wp-admin/edit-form-advanced.php:71 msgid "Post restored to revision from %s" msgstr "Innlegg tilbakestilt til revisjon fra %s" @@ -8323,6 +8408,7 @@ msgstr "Innlegg sendt. Forhåndsvis innlegget%1$s. Preview post" msgstr "Innlegg planlagt for: %1$s. Forhåndsvis innlegget" +#. translators: Publish box date format, see http:php.net/date #: wp-admin/edit-form-advanced.php:77 wp-admin/edit-form-advanced.php:90 #: wp-admin/edit-form-comment.php:103 wp-admin/includes/meta-boxes.php:165 #: wp-admin/includes/meta-boxes.php:296 wp-admin/includes/revision.php:171 @@ -8695,6 +8781,7 @@ msgstr "Klarte ikke å finne WordPress-mappen for utvidelser (wp-content/plugins msgid "Unable to locate WordPress Theme directory." msgstr "Klarte ikke å finne WordPress tema mappen." +#. translators: %s: directory name #: wp-admin/includes/class-wp-upgrader.php:49 msgid "Unable to locate needed folder (%s)." msgstr "Klarte ikke å finne obligatorisk mappe (%s)." @@ -8841,6 +8928,7 @@ msgstr "Installerte utvidelsen %s %s." msgid "Return to Plugin Installer" msgstr "Gå tilbake til installering av utvidelser" +#. translators: 1: theme name, 2: version #: wp-admin/includes/class-wp-upgrader.php:823 msgid "Successfully installed the theme %1$s %2$s." msgstr "Suksess: %1$s %2$s temaet er installert." @@ -8942,6 +9030,7 @@ msgstr "Svar på denne kommentaren" msgid "Mark this comment as spam" msgstr "Merk denne kommentaren som useriøs" +#. translators: mark as spam link #: wp-admin/includes/class-wp-comments-list-table.php:459 #: wp-admin/includes/dashboard.php:556 msgctxt "verb" @@ -8959,6 +9048,8 @@ msgctxt "verb" msgid "Trash" msgstr "Flytt til papirkurven" +#. translators: 1: comment author, 2: post link, 3: notification if the comment +#. is pending #: wp-admin/includes/dashboard.php:598 msgid "From %1$s on %2$s%3$s" msgstr "Fra %1$s, %2$s%3$s" @@ -8967,6 +9058,7 @@ msgstr "Fra %1$s, %2$s%3$s" msgid "[Pending]" msgstr "[Ventende]" +#. translators: %1$s is type of comment, %2$s is link to the post #: wp-admin/includes/dashboard.php:618 msgctxt "dashboard" msgid "%1$s on %2$s" @@ -9580,10 +9672,12 @@ msgstr "_none — samme vindu eller fane." msgid "Choose the target frame for your link." msgstr "Velg målramme for lenken din." +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:939 msgid "rel:" msgstr "rel:" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:943 wp-admin/includes/meta-boxes.php:944 msgid "identity" msgstr "identitet" @@ -9592,99 +9686,123 @@ msgstr "identitet" msgid "another web address of mine" msgstr "Den andre nettadressen min" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:951 wp-admin/includes/meta-boxes.php:952 msgid "friendship" msgstr "vennskap" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:954 msgid "contact" msgstr "kontakt" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:957 msgid "acquaintance" msgstr "bekjentskap" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:960 msgid "friend" msgstr "venn" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:963 wp-admin/includes/meta-boxes.php:996 #: wp-admin/includes/meta-boxes.php:1019 msgid "none" msgstr "ingen" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:968 wp-admin/includes/meta-boxes.php:969 msgid "physical" msgstr "fysisk" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:971 msgid "met" msgstr "møtt i virkeligheten" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:976 wp-admin/includes/meta-boxes.php:977 msgid "professional" msgstr "profesjonelt" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:979 msgid "co-worker" msgstr "medarbeider" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:982 msgid "colleague" msgstr "kollega" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:987 wp-admin/includes/meta-boxes.php:988 msgid "geographical" msgstr "geografisk" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:990 msgid "co-resident" msgstr "under samme tak" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:993 msgid "neighbor" msgstr "nabo" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1001 wp-admin/includes/meta-boxes.php:1002 msgid "family" msgstr "familie" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1004 msgid "child" msgstr "barn" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1007 msgid "kin" msgstr "slektning" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1010 msgid "parent" msgstr "forelder" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1013 msgid "sibling" msgstr "søsken" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1016 msgid "spouse" msgstr "ektefelle" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1024 wp-admin/includes/meta-boxes.php:1025 msgid "romantic" msgstr "romantisk" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1027 msgid "muse" msgstr "muse" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1030 msgid "crush" msgstr "forelsket" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1033 msgid "date" msgstr "date" +#. translators: xfn: http:gmpg.org/xfn/ #: wp-admin/includes/meta-boxes.php:1036 msgid "sweetheart" msgstr "kjæreste" @@ -9740,10 +9858,10 @@ msgstr "Hvis du har en utvidelse i .zip-format kan du installere den ved å last msgid "Plugin zip file" msgstr "Zip-fil med utvidelse" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:392 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:394 #: wp-admin/includes/class-wp-theme-install-list-table.php:249 #: wp-admin/includes/plugin-install.php:203 -#: wp-admin/includes/plugin-install.php:523 +#: wp-admin/includes/plugin-install.php:528 #: wp-admin/includes/theme-install.php:143 msgid "Install Now" msgstr "Installer nå" @@ -9753,72 +9871,72 @@ msgid "No plugins match your request." msgstr "Ingen utvidelser tilfredsstiller din forespørsel." #: wp-admin/includes/ajax-actions.php:2623 -#: wp-admin/includes/plugin-install.php:448 +#: wp-admin/includes/plugin-install.php:453 msgid "(based on %s rating)" msgid_plural "(based on %s ratings)" msgstr[0] "(basert på %s vurdering)" msgstr[1] "(basert på %s vurderinger)" -#: wp-admin/includes/plugin-install.php:373 wp-admin/update.php:106 +#: wp-admin/includes/plugin-install.php:378 wp-admin/update.php:106 msgid "Plugin Install" msgstr "Installer utvidelser" -#: wp-admin/includes/plugin-install.php:528 +#: wp-admin/includes/plugin-install.php:533 msgid "Install Update Now" msgstr "Installer oppdatering nå" -#: wp-admin/includes/plugin-install.php:532 +#: wp-admin/includes/plugin-install.php:537 msgid "Newer Version (%s) Installed" msgstr "Nyere versjon (%s) installert" -#: wp-admin/includes/plugin-install.php:535 +#: wp-admin/includes/plugin-install.php:540 msgid "Latest Version Installed" msgstr "Siste versjon installert" -#: wp-admin/includes/plugin-install.php:426 +#: wp-admin/includes/plugin-install.php:431 msgid "Author:" msgstr "Forfatter:" -#: wp-admin/includes/class-wp-plugin-install-list-table.php:460 -#: wp-admin/includes/plugin-install.php:428 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:462 +#: wp-admin/includes/plugin-install.php:433 msgid "Last Updated:" msgstr "Sist oppdatert:" -#: wp-admin/includes/plugin-install.php:432 +#: wp-admin/includes/plugin-install.php:437 msgid "Requires WordPress Version:" msgstr "Krever WordPress versjon" -#: wp-admin/includes/plugin-install.php:432 +#: wp-admin/includes/plugin-install.php:437 msgid "%s or higher" msgstr "%s eller høyere" -#: wp-admin/includes/plugin-install.php:434 +#: wp-admin/includes/plugin-install.php:439 msgid "Compatible up to:" msgstr "Kompatibel opp til:" -#: wp-admin/includes/plugin-install.php:436 +#: wp-admin/includes/plugin-install.php:441 msgid "Downloaded:" msgstr "Lastet ned:" -#: wp-admin/includes/plugin-install.php:436 +#: wp-admin/includes/plugin-install.php:441 msgid "%s time" msgid_plural "%s times" msgstr[0] "%s gang" msgstr[1] "%s ganger" -#: wp-admin/includes/plugin-install.php:438 +#: wp-admin/includes/plugin-install.php:443 msgid "WordPress.org Plugin Page »" msgstr "WordPress.org utvidelsesside »" -#: wp-admin/includes/plugin-install.php:446 +#: wp-admin/includes/plugin-install.php:451 msgid "Average Rating" msgstr "Gjennomsnittlig vurdering" -#: wp-admin/includes/plugin-install.php:497 +#: wp-admin/includes/plugin-install.php:502 msgid "Warning: This plugin has not been tested with your current version of WordPress." msgstr "Advarsel: Denne utvidelsen har ikke blitt testet med din versjon av WordPress." -#: wp-admin/includes/plugin-install.php:499 +#: wp-admin/includes/plugin-install.php:504 msgid "Warning: This plugin has not been marked as compatible with your version of WordPress." msgstr "Advarsel: Denne utvidelsen er ikke merket som kompatibel med din versjon av WordPress." @@ -9878,7 +9996,7 @@ msgstr "Klikk for å redigere denne delen av permalenken" msgid "Temporary permalink. Click to edit this part." msgstr "Midlertidig permalenke. Klikk for å endre denne delen." -#: wp-admin/includes/post.php:1203 wp-admin/includes/post.php:1219 +#: wp-admin/includes/post.php:1203 wp-admin/includes/post.php:1225 msgid "Permalink:" msgstr "Permalenke:" @@ -9886,34 +10004,41 @@ msgstr "Permalenke:" msgid "Change Permalinks" msgstr "Endre permalenker" +#. translators: blog tagline #: wp-admin/includes/schema.php:371 msgid "Just another WordPress site" msgstr "Bare enda et WordPress-nettsted" +#. translators: blog tagline #: wp-admin/includes/schema.php:496 msgid "Just another %s site" msgstr "Bare enda et %s-nettsted" +#. translators: user role #: wp-admin/includes/schema.php:602 msgctxt "User role" msgid "Administrator" msgstr "Administrator" +#. translators: user role #: wp-admin/includes/schema.php:604 msgctxt "User role" msgid "Editor" msgstr "Redaktør" +#. translators: user role #: wp-admin/includes/schema.php:606 msgctxt "User role" msgid "Author" msgstr "Forfatter" +#. translators: user role #: wp-admin/includes/schema.php:608 msgctxt "User role" msgid "Contributor" msgstr "Bidragsyter" +#. translators: user role #: wp-admin/includes/schema.php:610 msgctxt "User role" msgid "Subscriber" @@ -9938,16 +10063,19 @@ msgstr "Hurtigredigering" msgid "Quick Edit" msgstr "Hurtigredigering" +#. translators: manage posts column name #: wp-admin/includes/class-wp-posts-list-table.php:285 msgctxt "column name" msgid "Title" msgstr "Tittel" +#. translators: column name #: wp-admin/includes/class-wp-media-list-table.php:221 msgctxt "column name" msgid "File" msgstr "Fil" +#. translators: column name #: wp-admin/includes/class-wp-media-list-table.php:256 msgctxt "column name" msgid "Date" @@ -9982,6 +10110,8 @@ msgstr "Masserediger" msgid "— No Change —" msgstr "— Ingen endring —" +#. translators: Between password field and private checkbox on post quick edit +#. interface #: wp-admin/includes/class-wp-posts-list-table.php:1008 msgid "–OR–" msgstr "–ELLER–" @@ -10108,6 +10238,7 @@ msgstr "Installer temaer" msgid "Manage Themes" msgstr "Håndter temaer" +#. translators: post state #: wp-admin/includes/template.php:1633 msgctxt "post state" msgid "Pending" @@ -10153,10 +10284,12 @@ msgstr "Vennligst angi en verdi for tilpasset felt" msgid "User %s added" msgstr "La til brukeren %s" +#. translators: draft saved date format, see http:php.net/date #: wp-admin/includes/misc.php:819 msgid "g:i:s a" msgstr "H:i:s" +#. translators: %s: date and time #: wp-admin/includes/misc.php:821 msgid "Draft saved at %s." msgstr "Kladd lagret %s." @@ -10170,7 +10303,7 @@ msgid "You are not allowed to edit this page." msgstr "Du har ikke lov til å redigere denne siden." #: wp-admin/includes/ajax-actions.php:1505 wp-admin/includes/post.php:205 -#: wp-admin/includes/post.php:1580 wp-admin/includes/post.php:1584 +#: wp-admin/includes/post.php:1586 wp-admin/includes/post.php:1590 #: wp-admin/press-this.php:33 wp-admin/upload.php:110 msgid "You are not allowed to edit this post." msgstr "Du har ikke lov til å redigere dette innlegget." @@ -10232,7 +10365,7 @@ msgid "Oops, no comment with this ID." msgstr "Oops, ingen kommentar med denne IDen." #: wp-admin/comment.php:68 wp-admin/comment.php:221 -#: wp-admin/includes/post.php:1382 +#: wp-admin/includes/post.php:1388 msgid "Go back" msgstr "Gå tilbake" diff --git a/wp-content/languages/admin-network-nb_NO.po b/wp-content/languages/admin-network-nb_NO.po index 5fa7b92..ef2b1b9 100644 --- a/wp-content/languages/admin-network-nb_NO.po +++ b/wp-content/languages/admin-network-nb_NO.po @@ -10,6 +10,7 @@ msgstr "" "X-Generator: GlotPress/0.1\n" "Project-Id-Version: Network Admin\n" +#. translators: 1: a filename like .htaccess. 2: a file path. #: wp-admin/network.php:477 wp-admin/network.php:513 msgid "Add the following to your %1$s file in %2$s, replacing other WordPress rules:" msgstr "Legg til følgende i din %1$s-fil i %2$s, som erstatning for andre WordPress-regler:" @@ -223,6 +224,7 @@ msgstr "You have successfully updated WordPress! Please log back in to see what’s new." msgstr "Du har oppdatert WordPress! Vennligst logg inn igjen for å se hva som er nytt." -#: wp-includes/media.php:2942 +#: wp-includes/media.php:2951 msgid "Trash Selected" msgstr "Flytt valgte til papirkurven" -#: wp-includes/media.php:2943 +#: wp-includes/media.php:2952 msgid "Untrash Selected" msgstr "Gjenopprett valgte fra papirkurven" -#: wp-includes/media-template.php:416 wp-includes/media-template.php:519 +#: wp-includes/media-template.php:418 wp-includes/media-template.php:521 msgid "Untrash" msgstr "Gjenopprett fra papirkurven" -#: wp-includes/media.php:2939 +#: wp-includes/media.php:2948 msgid "" "You are about to trash these items.\n" " 'Cancel' to stop, 'OK' to delete." @@ -43,15 +79,15 @@ msgstr "" msgid "Press return or enter to open this panel" msgstr "Trykk linjeskift eller «Enter» for å åpne dette panelet" -#: wp-includes/media.php:2940 +#: wp-includes/media.php:2949 msgid "Bulk Select" msgstr "Velg mange" -#: wp-includes/media.php:2941 +#: wp-includes/media.php:2950 msgid "Cancel Selection" msgstr "Avbryt utvelging" -#: wp-includes/media.php:2944 +#: wp-includes/media.php:2953 msgid "Delete Selected" msgstr "Slett utvalgte" @@ -60,6 +96,7 @@ msgctxt "missing menu item navigation label" msgid "(no label)" msgstr "(ikke noe navigasjonsmerke)" +#. translators: %s: taxonomy label, %l: list of term links #: wp-includes/taxonomy.php:3757 wp-includes/taxonomy.php:3782 msgid "%s: %l." msgstr "%s: %l." @@ -72,7 +109,7 @@ msgstr "FEIL: Ugyldig brukernavn. Mistet ditt pa msgid "ERROR: The password you entered for the username %1$s is incorrect. Lost your password?" msgstr "FEIL: Passordetr du skrev inn for brukernavnet %1$s er feil. Mistet ditt passord?" -#: wp-includes/media.php:1467 +#: wp-includes/media.php:1471 msgid "Bitrate" msgstr "Bitrate" @@ -152,27 +189,27 @@ msgstr "Lastet opp til" msgid "View attachment page" msgstr "Vis vedleggsside" -#: wp-includes/media-template.php:412 +#: wp-includes/media-template.php:413 msgid "Edit more details" msgstr "Rediger flere detaljer" -#: wp-includes/media.php:1468 +#: wp-includes/media.php:1472 msgid "Bitrate Mode" msgstr "Bitratemodus" -#: wp-includes/media.php:2930 +#: wp-includes/media.php:2939 msgid "All media types" msgstr "Alle medietyper" -#: wp-includes/media.php:2931 +#: wp-includes/media.php:2940 msgid "All dates" msgstr "Alle datoer" -#: wp-includes/media.php:2934 +#: wp-includes/media.php:2943 msgid "Unattached" msgstr "Ikke vedlagt" -#: wp-includes/media.php:2938 +#: wp-includes/media.php:2947 msgid "" "You are about to permanently delete these items.\n" " 'Cancel' to stop, 'OK' to delete." @@ -180,19 +217,19 @@ msgstr "" "Du er i ferd med å permanent slette disse gjenstandene.\n" "«Avbryt» for å stoppe, «OK» for å slette." -#: wp-includes/media.php:2947 +#: wp-includes/media.php:2956 msgid "Filter by date" msgstr "Filtrer etter dato" -#: wp-includes/media.php:2948 +#: wp-includes/media.php:2957 msgid "Filter by type" msgstr "Filtrer etter type" -#: wp-includes/media.php:2949 +#: wp-includes/media.php:2958 msgid "Search Media" msgstr "Søk i media" -#: wp-includes/media.php:3022 +#: wp-includes/media.php:3031 msgid "Edit Metadata" msgstr "Rediger metadata" @@ -220,6 +257,7 @@ msgstr "Selv om du kan beskjære bilder slik du selv vil etter å ha klikket på msgid "Press return or enter to expand" msgstr "Trykk linjeskift eller «Enter» for å utvide" +#. translators: %s is the site/panel title in the Customizer #: wp-includes/class-wp-customize-panel.php:182 msgid "You are customizing %s" msgstr "Du tilpasser %s" @@ -251,15 +289,15 @@ msgstr "Hvis du skal lime inn rik tekst fra Microsoft Word, prøv å skru av den msgid "Keyboard Shortcuts" msgstr "Tastatursnarveier" -#: wp-login.php:770 +#: wp-login.php:774 msgid "ERROR: Cookies are blocked due to unexpected output. For help, please see this documentation or try the support forums." msgstr "FEIL: Informasjonskapsler er blokkert på grunn av uventede utdata. Vennligst se denne dokumentasjonen for hjelp eller prøv brukerstøtteforumene." -#: wp-login.php:771 wp-login.php:775 +#: wp-login.php:775 wp-login.php:779 msgid "http://codex.wordpress.org/Cookies" msgstr "http://codex.wordpress.org/Cookies" -#: wp-login.php:774 +#: wp-login.php:778 msgid "ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress." msgstr "FEIL: Informasjonskapsler er blokkert eller ikke støttet av din nettleser. Du må tillate informasjonskapsler for å bruke WordPress." @@ -267,19 +305,19 @@ msgstr "FEIL: Informasjonskapsler er blokkert eller ikke støtt msgid "Add/remove code tag" msgstr "Legg til eller fjern kode-element" -#: wp-includes/media-template.php:968 +#: wp-includes/media-template.php:970 msgid "Link CSS Class" msgstr "CSS-klasse for lenke" -#: wp-includes/media-template.php:748 +#: wp-includes/media-template.php:750 msgid "Show Video List" msgstr "Vis videoliste" -#: wp-includes/media-template.php:865 +#: wp-includes/media-template.php:867 msgid "Display Settings" msgstr "Vis innstillinger" -#: wp-includes/media-template.php:844 +#: wp-includes/media-template.php:846 msgid "Edit Original" msgstr "Rediger original" @@ -300,74 +338,74 @@ msgstr "Skriftstørrelse" msgid "Split table cell" msgstr "Del opp tabellcelle" -#: wp-includes/media-template.php:223 wp-includes/media.php:2984 +#: wp-includes/media-template.php:223 wp-includes/media.php:2993 msgid "Suggested image dimensions:" msgstr "Anbefalte bildedimensjoner:" -#: wp-includes/media-template.php:912 +#: wp-includes/media-template.php:914 msgid "Custom Size" msgstr "Tilpasset størrelse" -#: wp-includes/media-template.php:947 +#: wp-includes/media-template.php:949 msgid "Advanced Options" msgstr "Avanserte alternativer" -#: wp-includes/media-template.php:951 +#: wp-includes/media-template.php:953 msgid "Image Title Attribute" msgstr "Tittel-attributt for bilde" -#: wp-includes/media-template.php:955 +#: wp-includes/media-template.php:957 msgid "Image CSS Class" msgstr "CSS-klasse for bilde" -#: wp-includes/media-template.php:370 wp-includes/media-template.php:547 -#: wp-includes/media.php:1458 +#: wp-includes/media-template.php:370 wp-includes/media-template.php:549 +#: wp-includes/media.php:1462 msgid "Artist" msgstr "Artist" -#: wp-includes/media-template.php:371 wp-includes/media-template.php:548 -#: wp-includes/media.php:1459 +#: wp-includes/media-template.php:371 wp-includes/media-template.php:550 +#: wp-includes/media.php:1463 msgid "Album" msgstr "Album" -#: wp-includes/media.php:1463 +#: wp-includes/media.php:1467 msgid "Genre" msgstr "Sjanger" -#: wp-includes/media.php:1464 +#: wp-includes/media.php:1468 msgid "Year" msgstr "År" -#: wp-includes/media.php:1465 +#: wp-includes/media.php:1469 msgctxt "video or audio" msgid "Length" msgstr "Lengde" -#: wp-includes/media.php:2985 +#: wp-includes/media.php:2994 msgid "There has been an error cropping your image." msgstr "Det oppsto en feil i beskjæringen av bildet." -#: wp-includes/media.php:3004 +#: wp-includes/media.php:3013 msgid "Edit Audio Playlist" msgstr "Rediger spillelisten med lydfiler" -#: wp-includes/media.php:3005 +#: wp-includes/media.php:3014 msgid "← Cancel Audio Playlist" msgstr "← Avbryt spilleliste med lydfiler" -#: wp-includes/media.php:3006 +#: wp-includes/media.php:3015 msgid "Insert audio playlist" msgstr "Sett inn spillelisten med lydfiler" -#: wp-includes/media.php:3007 +#: wp-includes/media.php:3016 msgid "Update audio playlist" msgstr "Oppdater spilleliste med lydfiler" -#: wp-includes/media.php:3008 +#: wp-includes/media.php:3017 msgid "Add to audio playlist" msgstr "Legg til i spilleliste med lydfiler" -#: wp-includes/media.php:3009 +#: wp-includes/media.php:3018 msgid "Add to Audio Playlist" msgstr "Legg til i spillelisten med lydfiler" @@ -380,11 +418,13 @@ msgstr "Flytt" msgid "Set image" msgstr "Bestem bilde" +#. translators: Hide as in hide header image via the Customizer #: wp-includes/class-wp-customize-control.php:1005 msgctxt "custom header" msgid "Hide image" msgstr "Skjul bilde" +#. translators: New as in add new header image via the Customizer #: wp-includes/class-wp-customize-control.php:1007 msgctxt "header image" msgid "Add new image" @@ -421,7 +461,7 @@ msgctxt "TinyMCE" msgid "Headings" msgstr "Overskrifter" -#: wp-includes/media-template.php:1037 wp-includes/media-template.php:1127 +#: wp-includes/media-template.php:1039 wp-includes/media-template.php:1129 msgctxt "auto preload" msgid "Auto" msgstr "Automatisk" @@ -430,11 +470,11 @@ msgstr "Automatisk" msgid "Move to another area…" msgstr "Flytt til et annet område…" -#: wp-includes/media.php:2983 +#: wp-includes/media.php:2992 msgid "Cropping…" msgstr "Beskjæring…" -#: wp-includes/media-template.php:1144 +#: wp-includes/media-template.php:1146 msgid "Tracks (subtitles, captions, descriptions, chapters, or metadata)" msgstr "Spor (undertitler, overskrifter, beskrivelser, kapitler eller annen metainformasjon)" @@ -453,6 +493,7 @@ msgctxt "table column" msgid "Column" msgstr "Kolonne" +#. translators: block tags #: wp-includes/class-wp-editor.php:752 msgctxt "TinyMCE" msgid "Blocks" @@ -487,11 +528,6 @@ msgctxt "list style" msgid "Square" msgstr "Firkant" -#: wp-includes/class-wp-editor.php:794 -msgctxt "list style" -msgid "Default" -msgstr "Standard" - #: wp-includes/class-wp-editor.php:795 msgctxt "list style" msgid "Circle" @@ -562,6 +598,7 @@ msgctxt "find/replace" msgid "Next" msgstr "Neste" +#. translators: previous #: wp-includes/class-wp-editor.php:860 msgctxt "find/replace" msgid "Prev" @@ -642,6 +679,7 @@ msgctxt "editor button" msgid "Show blocks" msgstr "Vis blokker" +#. translators: word count #: wp-includes/class-wp-editor.php:928 msgid "Words: %s" msgstr "Ord: %s" @@ -676,16 +714,11 @@ msgctxt "TinyMCE menu" msgid "Table" msgstr "Tabell" -#: wp-includes/class-wp-editor.php:941 -msgctxt "TinyMCE menu" -msgid "Format" -msgstr "Format" - -#: wp-includes/media-template.php:1025 wp-includes/media-template.php:1108 +#: wp-includes/media-template.php:1027 wp-includes/media-template.php:1110 msgid "Add alternate sources for maximum HTML5 playback:" msgstr "Legg til flere kilder for maksimal HTML5-avspilling:" -#: wp-includes/media.php:2972 +#: wp-includes/media.php:2981 msgid "Image Details" msgstr "Bildedetaljer" @@ -694,20 +727,20 @@ msgstr "Bildedetaljer" msgid "An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums." msgstr "En uventet feil skjedde. Noe er kanskje galt med WordPress.org eller denne serverkonfigurasjonen. Hvis problemene fortsetter, vennligst prøv supportforumene." -#: wp-includes/media.php:2910 +#: wp-includes/media.php:2919 msgid "Back" msgstr "Tilbake" -#: wp-includes/media-template.php:750 +#: wp-includes/media-template.php:752 msgid "Show Tracklist" msgstr "Vis spilleliste" -#: wp-includes/media-template.php:418 wp-includes/media-template.php:521 -#: wp-includes/media.php:2935 +#: wp-includes/media-template.php:420 wp-includes/media-template.php:523 +#: wp-includes/media.php:2944 msgid "Trash" msgstr "Søppel" -#: wp-includes/media-template.php:738 +#: wp-includes/media-template.php:740 msgid "Playlist Settings" msgstr "Innstillinger for spilleliste" @@ -716,148 +749,151 @@ msgctxt "Search widget" msgid "Search" msgstr "Søk" -#: wp-includes/formatting.php:3602 +#. translators: used to join items in a list with more than 2 items +#: wp-includes/formatting.php:3615 msgid "%s, %s" msgstr "%s, %s" -#: wp-includes/formatting.php:3604 +#. translators: used to join last two items in a list with more than 2 times +#: wp-includes/formatting.php:3617 msgid "%s, and %s" msgstr "%s og %s" -#: wp-includes/formatting.php:3606 +#. translators: used to join items in a list with only 2 items +#: wp-includes/formatting.php:3619 msgid "%s and %s" msgstr "%s og %s" -#: wp-includes/media-template.php:759 +#: wp-includes/media-template.php:761 msgid "Show Artist Name in Tracklist" msgstr "Vis artistnavnet i spillelisten" -#: wp-includes/media-template.php:767 +#: wp-includes/media-template.php:769 msgid "Show Images" msgstr "Vis bilder" -#: wp-includes/media-template.php:1038 wp-includes/media-template.php:1128 +#: wp-includes/media-template.php:1040 wp-includes/media-template.php:1130 msgid "Metadata" msgstr "Metadata" -#: wp-includes/media-template.php:1045 wp-includes/media-template.php:1135 +#: wp-includes/media-template.php:1047 wp-includes/media-template.php:1137 msgid "Autoplay" msgstr "Automatisk" -#: wp-includes/media-template.php:1119 +#: wp-includes/media-template.php:1121 msgid "Poster Image" msgstr "Poster-bilde" -#: wp-includes/media-template.php:1157 +#: wp-includes/media-template.php:1159 msgid "There are no associated subtitles." msgstr "Det er ingen assosierte undertekster." -#: wp-includes/media.php:2926 +#: wp-includes/media.php:2935 msgid "Create a new playlist" msgstr "Lag ny spilleliste" -#: wp-includes/media.php:2927 +#: wp-includes/media.php:2936 msgid "Create a new video playlist" msgstr "Lag en ny spilleliste med video" -#: wp-includes/media.php:2973 +#: wp-includes/media.php:2982 msgid "Replace Image" msgstr "Bytt bilde" -#: wp-includes/media.php:2974 wp-includes/media.php:2991 -#: wp-includes/media.php:2997 +#: wp-includes/media.php:2983 wp-includes/media.php:3000 +#: wp-includes/media.php:3006 msgid "Cancel Edit" msgstr "Avbryt redigering" -#: wp-includes/media.php:2978 +#: wp-includes/media.php:2987 msgid "Choose Image" msgstr "Velg bilde" -#: wp-includes/media.php:2979 +#: wp-includes/media.php:2988 msgid "Select and Crop" msgstr "Velg og beskjær" -#: wp-includes/media.php:2980 +#: wp-includes/media.php:2989 msgid "Skip Cropping" msgstr "Avbryt beskjæringen" -#: wp-includes/media.php:2981 +#: wp-includes/media.php:2990 msgid "Crop Image" msgstr "Beskjær bilde" -#: wp-includes/media.php:2982 +#: wp-includes/media.php:2991 msgid "Crop your image" msgstr "Beskjær bildet ditt" -#: wp-includes/media.php:2988 +#: wp-includes/media.php:2997 msgid "Audio Details" msgstr "Lydbeskrivelse" -#: wp-includes/media.php:2989 +#: wp-includes/media.php:2998 msgid "Replace Audio" msgstr "Erstatt lyd" -#: wp-includes/media.php:2990 +#: wp-includes/media.php:2999 msgid "Add Audio Source" msgstr "Legg til lydkilde" -#: wp-includes/media.php:2994 +#: wp-includes/media.php:3003 msgid "Video Details" msgstr "Videobeskrivelse" -#: wp-includes/media.php:2995 +#: wp-includes/media.php:3004 msgid "Replace Video" msgstr "Erstatt video" -#: wp-includes/media.php:2996 +#: wp-includes/media.php:3005 msgid "Add Video Source" msgstr "Legg til videokilde" -#: wp-includes/media.php:2998 +#: wp-includes/media.php:3007 msgid "Select Poster Image" msgstr "Velg poster-bilde" -#: wp-includes/media.php:2999 +#: wp-includes/media.php:3008 msgid "Add Subtitles" msgstr "Legg til undertekster" -#: wp-includes/media.php:3002 +#: wp-includes/media.php:3011 msgid "Drag and drop to reorder tracks." msgstr "Dra og slipp for å bytte om på sporene." -#: wp-includes/media.php:3003 +#: wp-includes/media.php:3012 msgid "Create Audio Playlist" msgstr "Lag lyd-spilleliste" -#: wp-includes/media.php:3012 +#: wp-includes/media.php:3021 msgid "Drag and drop to reorder videos." msgstr "Dra og slipp for å omorganisere videoer." -#: wp-includes/media.php:3013 +#: wp-includes/media.php:3022 msgid "Create Video Playlist" msgstr "Lag video-spilleliste" -#: wp-includes/media.php:3014 +#: wp-includes/media.php:3023 msgid "Edit Video Playlist" msgstr "Rediger video-spilleliste" -#: wp-includes/media.php:3015 +#: wp-includes/media.php:3024 msgid "← Cancel Video Playlist" msgstr "← Avbryt videospilleliste" -#: wp-includes/media.php:3016 +#: wp-includes/media.php:3025 msgid "Insert video playlist" msgstr "Sett inn video-spilleliste" -#: wp-includes/media.php:3017 +#: wp-includes/media.php:3026 msgid "Update video playlist" msgstr "Oppdater video-spilleliste" -#: wp-includes/media.php:3018 +#: wp-includes/media.php:3027 msgid "Add to video playlist" msgstr "Legg til i videospilleliste" -#: wp-includes/media.php:3019 +#: wp-includes/media.php:3028 msgid "Add to Video Playlist" msgstr "Legg til i videospilleliste" @@ -911,7 +947,7 @@ msgstr "" "\n" "

Hvis du er usikker på hva disse tingene betyr bør du kontakte din nettvert/-hotell. Hvis du fortsatt trenger hjelp kan du besøke WordPress brukerstøtteforumer.

\n" -#: wp-login.php:629 +#: wp-login.php:632 msgid "Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers, and symbols like ! \" ? $ % ^ & )." msgstr "Tips: Passord bør minst inneholde sju tegn. For å styrke det, benytt store og små bokstaver, tall eller symbolder som ! \" ? $ % ^ & )." @@ -960,7 +996,7 @@ msgstr "Nøkkelord" msgid "https://wordpress.org/" msgstr "https://wordpress.org/" -#: wp-includes/admin-bar.php:146 wp-login.php:771 +#: wp-includes/admin-bar.php:146 wp-login.php:775 msgid "https://wordpress.org/support/" msgstr "https://wordpress.org/support/" @@ -1119,7 +1155,7 @@ msgstr "Sideskille" msgid "Paste as text" msgstr "Lim inn som tekst" -#: wp-includes/media-template.php:845 wp-includes/media.php:2908 +#: wp-includes/media-template.php:847 wp-includes/media.php:2917 msgid "Replace" msgstr "Erstatt" @@ -1271,6 +1307,9 @@ msgstr "En sky med de mest brukte stikkordene." msgid "Add a custom menu to your sidebar." msgstr "Legg til en tilpasset meny i sidekolonnen." +#. translators: If there are characters in your language that are not supported +#. * by Open Sans, translate this to 'off'. Do not translate into your own +#. language. #: wp-includes/script-loader.php:586 msgctxt "Open Sans font: on or off" msgid "on" @@ -1291,10 +1330,14 @@ msgctxt "admin color scheme" msgid "Midnight" msgstr "Mørk" -#: wp-includes/link-template.php:1489 +#: wp-includes/link-template.php:1491 msgid "Use commas instead of %s to separate excluded terms." msgstr "Bruk komma i stedet for %s for å skille utelatte termer." +#. translators: To add an additional Open Sans character subset specific to +#. your language, +#. * translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate +#. into your own language. #: wp-includes/script-loader.php:592 msgctxt "Open Sans font: add new subset (greek, cyrillic, vietnamese)" msgid "no-subset" @@ -1332,6 +1375,12 @@ msgstr "Dette innholdet er passordbeskyttet. For å vise det, vennligst skriv in msgid "http://codex.wordpress.org/Function_Reference/is_main_query" msgstr "http://codex.wordpress.org/Function_Reference/is_main_query" +#. translators: This is a comma-separated list of very common words that should +#. be excluded from a search, +#. * like a, an, and the. These are usually called "stopwords". You should +#. not simply translate these individual +#. * words into your language. Instead, look for and provide commonly +#. accepted stopwords in your language. #: wp-includes/query.php:2144 msgctxt "Comma-separated list of search stopwords in your language" msgid "about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to,was,what,when,where,who,will,with,www" @@ -1345,23 +1394,23 @@ msgstr "Klarte ikke å skrive forespørsel til midlertidig fil." msgid "The SSL certificate for the host could not be verified." msgstr "SSL-sertifikatet for verten kunne ikke verifiseres." -#: wp-includes/media-template.php:629 +#: wp-includes/media-template.php:631 msgid "Embed Media Player" msgstr "Bygg inn mediespiller" -#: wp-includes/media-template.php:339 wp-includes/media-template.php:513 +#: wp-includes/media-template.php:339 wp-includes/media-template.php:515 msgid "Length:" msgstr "Lengde:" -#: wp-includes/media-template.php:616 +#: wp-includes/media-template.php:618 msgid "Embed or Link" msgstr "Bygg inn eller bruk lenke" -#: wp-includes/media-template.php:636 +#: wp-includes/media-template.php:638 msgid "Link to Media File" msgstr "Lenke til mediefil" -#: wp-includes/media-template.php:643 +#: wp-includes/media-template.php:645 msgid "Link to Attachment Page" msgstr "Lenke til vedleggsside" @@ -1397,19 +1446,19 @@ msgstr "Opphev demp" msgid "Captions/Subtitles" msgstr "Bildetekster/undertitler" -#: wp-includes/formatting.php:2487 +#: wp-includes/formatting.php:2500 msgid "%s week" msgid_plural "%s weeks" msgstr[0] "%s uke" msgstr[1] "%s uker" -#: wp-includes/formatting.php:2492 +#: wp-includes/formatting.php:2505 msgid "%s month" msgid_plural "%s months" msgstr[0] "%s måned" msgstr[1] "%s måneder" -#: wp-includes/formatting.php:2497 +#: wp-includes/formatting.php:2510 msgid "%s year" msgid_plural "%s years" msgstr[0] "%s år" @@ -1424,14 +1473,17 @@ msgstr "#%d (ingen tittel)" msgid "JavaScript must be enabled to use this feature." msgstr "JavaScript må være slått på for bruke denne funksjonen." +#. translators: localized date format, see http:php.net/date #: wp-includes/locale.php:351 msgid "F j, Y" msgstr "j. F Y" +#. translators: localized time format, see http:php.net/date #: wp-includes/locale.php:353 msgid "g:i a" msgstr "H:i" +#. translators: localized date and time format, see http:php.net/date #: wp-includes/locale.php:355 msgid "F j, Y g:i a" msgstr "j. F Y H:i" @@ -1457,15 +1509,17 @@ msgstr "(mer…)" msgid "Possible reason: your host may have disabled the mail() function." msgstr "Mulig grunn: mail()-funksjonen er kanskje deaktivert på din server." -#: wp-includes/user.php:2179 +#: wp-includes/user.php:2182 msgid "ERROR: Couldn’t register you… please contact the webmaster !" msgstr "FEIL: Kunne ikke registrere deg… vennligst kontakt admin !" +#. translators: 1: date #: wp-includes/post-template.php:1655 msgctxt "post revision title extra" msgid "%1$s [Autosave]" msgstr "%1$s [Autolagring]" +#. translators: 1: date #: wp-includes/post-template.php:1657 msgctxt "post revision title extra" msgid "%1$s [Current Revision]" @@ -1475,11 +1529,12 @@ msgstr "%1$s [Gjeldende revisjon]" msgid "Your session has expired. You can log in again from this page or go to the login page." msgstr "Din innlogging har utløpt. Du kan logge inn igjen fra denne siden eller gå til innloggingssiden." +#. translators: 1: month, 2: day, 3: year, 4: hour, 5: minute #: wp-includes/script-loader.php:444 msgid "%1$s %2$s, %3$s @ %4$s : %5$s" msgstr "%1$s. %2$s, %3$s @ %4$s:%5$s" -#: wp-login.php:827 +#: wp-login.php:831 msgid "Session expired. Please log in again. You will not move away from this page." msgstr "Innlogging utløpt. Vennligst logg inn igjen. Du vil ikke forlate denne siden." @@ -1499,6 +1554,8 @@ msgstr "Nettstedet du ser etter, %s, finnes ikke." msgid "The login page will open in a new window. After logging in you can close it and return to this page." msgstr "Innloggingssiden vil åpnes i et nytt vindu. Etter at du har logget inn kan du lukke det vinduet og gå tilbake til denne siden." +#. translators: post revision title: 1: author avatar, 2: author name, 3: time +#. ago, 4: date #: wp-includes/post-template.php:1701 msgctxt "post revision title" msgid "%1$s %2$s, %3$s ago (%4$s)" @@ -1529,6 +1586,7 @@ msgctxt "submit button" msgid "Search" msgstr "Søk" +#. translators: revision date format, see http:php.net/date #: wp-includes/post-template.php:1691 msgctxt "revision date format" msgid "j F, Y @ G:i:s" @@ -1559,27 +1617,32 @@ msgstr "WordPress-adresse (URL)" msgid "Site Address (URL)" msgstr "Nettstedsadresse (URL)" -#: wp-includes/user.php:1900 +#: wp-includes/user.php:1903 msgid "Invalid user ID." msgstr "Ugyldig bruker-ID." -#: wp-includes/media-template.php:732 +#: wp-includes/media-template.php:734 msgid "Random Order" msgstr "Tilfeldig rekkefølge" -#: wp-includes/media-template.php:463 +#: wp-includes/media-template.php:465 msgid "Caption this image…" msgstr "Gi bildetekst til dette bildet…" -#: wp-includes/media.php:2915 +#. translators: This is a would-be plural string used in the media manager. +#. If there is not a word you can use in your language to avoid issues +#. with the +#. lack of plural support here, turn it into "selected: %d" then translate +#. it. +#: wp-includes/media.php:2924 msgid "%d selected" msgstr "%d er valgt" -#: wp-includes/media.php:2955 +#: wp-includes/media.php:2964 msgid "Insert from URL" msgstr "Sett inn fra URL" -#: wp-includes/media.php:2958 +#: wp-includes/media.php:2967 msgid "Set Featured Image" msgstr "Bestem fremhevet bilde" @@ -1588,23 +1651,23 @@ msgctxt "Links widget" msgid "Random" msgstr "Tilfeldig" -#: wp-includes/media-template.php:1190 wp-includes/media.php:2932 +#: wp-includes/media-template.php:1192 wp-includes/media.php:2941 msgid "No items found." msgstr "Fant ikke noe." -#: wp-includes/media.php:2968 +#: wp-includes/media.php:2977 msgid "Add to Gallery" msgstr "Legg til i galleri" -#: wp-includes/media.php:2969 +#: wp-includes/media.php:2978 msgid "Reverse order" msgstr "Omvendt rekkefølge" -#: wp-includes/media.php:2959 +#: wp-includes/media.php:2968 msgid "Set featured image" msgstr "Bestem fremhevet bilde" -#: wp-includes/media-template.php:456 +#: wp-includes/media-template.php:458 msgid "Deselect" msgstr "Fjern markering" @@ -1613,7 +1676,7 @@ msgstr "Fjern markering" msgid "Sorry, that file cannot be edited." msgstr "Beklager, den filen kan ikke redigeres." -#: wp-includes/media.php:2937 +#: wp-includes/media.php:2946 msgid "" "You are about to permanently delete this item.\n" " 'Cancel' to stop, 'OK' to delete." @@ -1621,8 +1684,8 @@ msgstr "" "Du er i ferd med å permanent slette dette objektet.\n" " 'Avbryt' for å stoppe, 'OK' for å slette." -#: wp-includes/media-template.php:421 wp-includes/media-template.php:524 -#: wp-includes/media.php:2945 +#: wp-includes/media-template.php:423 wp-includes/media-template.php:526 +#: wp-includes/media.php:2954 msgid "Delete Permanently" msgstr "Slett permanent" @@ -1638,7 +1701,7 @@ msgstr "Avvis feil" msgid "Error" msgstr "Feil" -#: wp-includes/media.php:2458 +#: wp-includes/media.php:2462 msgid "No editor could be selected." msgstr "Ingen redigerer kunne velges." @@ -1680,19 +1743,19 @@ msgid_plural "Video (%s)" msgstr[0] "Video (%s)" msgstr[1] "Video (%s)" -#: wp-includes/media.php:2933 +#: wp-includes/media.php:2942 msgid "Insert into page" msgstr "Sett inn på side" -#: wp-includes/media.php:2936 +#: wp-includes/media.php:2945 msgid "Uploaded to this page" msgstr "Lastet opp til denne siden" -#: wp-includes/media.php:2929 +#: wp-includes/media.php:2938 msgid "All media items" msgstr "Alle mediefiler" -#: wp-includes/media.php:2936 +#: wp-includes/media.php:2945 msgid "Uploaded to this post" msgstr "Lastet opp til dette innlegget" @@ -1700,54 +1763,54 @@ msgstr "Lastet opp til dette innlegget" msgid "Audio" msgstr "Lyd" -#: wp-includes/media.php:2928 +#: wp-includes/media.php:2937 msgid "← Return to library" msgstr "← Tilbake til bibliotek" -#: wp-includes/media-template.php:650 wp-includes/media-template.php:825 -#: wp-includes/media-template.php:938 +#: wp-includes/media-template.php:652 wp-includes/media-template.php:827 +#: wp-includes/media-template.php:940 msgid "Custom URL" msgstr "Tilpasset URL" -#: wp-includes/media-template.php:479 wp-includes/media.php:2952 +#: wp-includes/media-template.php:481 wp-includes/media.php:2961 msgid "Attachment Details" msgstr "Vedleggsdetaljer" -#: wp-includes/media-template.php:385 wp-includes/media-template.php:562 -#: wp-includes/media-template.php:796 +#: wp-includes/media-template.php:385 wp-includes/media-template.php:564 +#: wp-includes/media-template.php:798 msgid "Alt Text" msgstr "Alt-tekst" -#: wp-includes/media-template.php:718 +#: wp-includes/media-template.php:720 msgid "Columns" msgstr "Kolonner" -#: wp-includes/media.php:2916 +#: wp-includes/media.php:2925 msgid "Drag and drop to reorder images." msgstr "Dra og slipp for å endre rekkefølgen på bildene." -#: wp-includes/media-template.php:674 wp-includes/media-template.php:898 -#: wp-includes/media.php:2676 +#: wp-includes/media-template.php:676 wp-includes/media-template.php:900 +#: wp-includes/media.php:2685 msgid "Large" msgstr "Stor" -#: wp-includes/media-template.php:586 +#: wp-includes/media-template.php:588 msgid "Attachment Display Settings" msgstr "Skjerminnstillinger for vedlegg" -#: wp-includes/media-template.php:693 +#: wp-includes/media-template.php:695 msgid "Gallery Settings" msgstr "Galleriinnstillinger" -#: wp-includes/media.php:2920 +#: wp-includes/media.php:2929 msgid "Upload Images" msgstr "Last opp bilder" -#: wp-includes/media.php:2964 +#: wp-includes/media.php:2973 msgid "← Cancel Gallery" msgstr "← Avbryt galleri" -#: wp-includes/ms-functions.php:1967 +#: wp-includes/ms-functions.php:1969 msgid "WordPress › Success" msgstr "WordPress › Suksess" @@ -1755,11 +1818,11 @@ msgstr "WordPress › Suksess" msgid "Drop files anywhere to upload" msgstr "Slipp filer hvor som helst for å laste opp" -#: wp-includes/media.php:2919 +#: wp-includes/media.php:2928 msgid "Upload Files" msgstr "Last opp filer" -#: wp-includes/media.php:2965 +#: wp-includes/media.php:2974 msgid "Insert gallery" msgstr "Sett inn galleri" @@ -1767,11 +1830,11 @@ msgstr "Sett inn galleri" msgid "Drop files to upload" msgstr "Slipp filer for å laste opp" -#: wp-includes/media.php:2923 +#: wp-includes/media.php:2932 msgid "Media Library" msgstr "Mediebibliotek" -#: wp-includes/media.php:2962 +#: wp-includes/media.php:2971 msgid "Create Gallery" msgstr "Lag galleri" @@ -1827,34 +1890,34 @@ msgstr "" "\n" "Deaktiver disse beskjedene: %3$s" -#: wp-includes/media-template.php:618 wp-includes/media-template.php:696 -#: wp-includes/media-template.php:819 wp-includes/media-template.php:923 +#: wp-includes/media-template.php:620 wp-includes/media-template.php:698 +#: wp-includes/media-template.php:821 wp-includes/media-template.php:925 msgid "Link To" msgstr "Lenk til" -#: wp-includes/media-template.php:645 wp-includes/media-template.php:706 -#: wp-includes/media-template.php:930 +#: wp-includes/media-template.php:647 wp-includes/media-template.php:708 +#: wp-includes/media-template.php:932 msgid "Attachment Page" msgstr "Vedleggsside" -#: wp-includes/media-template.php:638 wp-includes/media-template.php:709 -#: wp-includes/media-template.php:927 +#: wp-includes/media-template.php:640 wp-includes/media-template.php:711 +#: wp-includes/media-template.php:929 msgid "Media File" msgstr "Mediefil" -#: wp-includes/media-template.php:467 +#: wp-includes/media-template.php:469 msgid "Describe this video…" msgstr "Beskriv videoen…" -#: wp-includes/media-template.php:469 +#: wp-includes/media-template.php:471 msgid "Describe this audio file…" msgstr "Beskriv lydfilen…" -#: wp-includes/media-template.php:471 +#: wp-includes/media-template.php:473 msgid "Describe this media file…" msgstr "Beskriv mediafilen…" -#: wp-includes/media.php:2966 +#: wp-includes/media.php:2975 msgid "Update gallery" msgstr "Oppdater galleri" @@ -1866,7 +1929,7 @@ msgstr "Den forespurte brukeren eksisterer ikke." msgid "Please enter a valid email address." msgstr "Vennligst skriv inn en gyldig e-postadresse." -#: wp-includes/user.php:2129 +#: wp-includes/user.php:2132 msgid "ERROR: This username is already registered. Please choose another one." msgstr "FEIL: Dette brukernavnet er allerede registrert. Vennligst velg et annet." @@ -1908,16 +1971,6 @@ msgstr "Speiling av bilde mislyktes." msgid "Image Editor Save Failed" msgstr "Lagring i bilderedigering mislyktes" -#: wp-includes/post.php:55 -msgctxt "post type general name" -msgid "Media" -msgstr "Media" - -#: wp-includes/post.php:57 -msgctxt "add new media" -msgid "Add New" -msgstr "Legg til" - #: wp-includes/post.php:59 msgid "View Attachment Page" msgstr "Vis vedleggsside" @@ -1926,23 +1979,23 @@ msgstr "Vis vedleggsside" msgid "Whoops, the provided date is invalid." msgstr "Beklager, den angitte datoen er ugyldig." -#: wp-includes/media.php:2924 +#: wp-includes/media.php:2933 msgid "Insert Media" msgstr "Sett inn media" -#: wp-includes/media.php:2925 +#: wp-includes/media.php:2934 msgid "Create a new gallery" msgstr "Lag et nytt galleri" -#: wp-includes/media.php:2933 +#: wp-includes/media.php:2942 msgid "Insert into post" msgstr "Sett inn i innlegg" -#: wp-includes/media.php:2967 +#: wp-includes/media.php:2976 msgid "Add to gallery" msgstr "Legg til i galleri" -#: wp-includes/media-template.php:579 wp-includes/script-loader.php:505 +#: wp-includes/media-template.php:581 wp-includes/script-loader.php:505 msgid "Clear" msgstr "Tøm" @@ -1958,6 +2011,7 @@ msgstr "Gjeldende farge" msgid "Could not insert term relationship into the database" msgstr "Kunne ikke sette inn nøkkelforholdet i databasen" +#. translators: 1: first name, 2: last name #: wp-includes/user.php:1760 msgctxt "Display name based on first name and last name" msgid "%1$s %2$s" @@ -1975,6 +2029,7 @@ msgstr "XML-RPC-tjenester er deaktivert på dette nettstedet." msgid "There is a revision of this post that is more recent." msgstr "Det er en versjon av dette innlegget som er nyere." +#. translators: 1: blog name, 2: separator(raquo), 3: post type name #: wp-includes/general-template.php:2130 msgid "%1$s %2$s %3$s Feed" msgstr "%1$s %2$s %3$s-strøm" @@ -2028,7 +2083,7 @@ msgstr "Beklager, du kan ikke redigere innlegg." msgid "Sorry, revisions are disabled." msgstr "Beklager, revisjoner er deaktivert." -#: wp-includes/media-template.php:861 +#: wp-includes/media-template.php:863 msgid "Alternative Text" msgstr "Alternativ tekst" @@ -2242,10 +2297,10 @@ msgstr "Last opp" #: wp-includes/class-wp-customize-control.php:591 #: wp-includes/class-wp-customize-widgets.php:726 -#: wp-includes/media-template.php:452 wp-includes/media-template.php:1004 -#: wp-includes/media-template.php:1018 wp-includes/media-template.php:1088 -#: wp-includes/media-template.php:1100 wp-includes/media-template.php:1121 -#: wp-includes/media-template.php:1153 wp-includes/media.php:2909 +#: wp-includes/media-template.php:454 wp-includes/media-template.php:1006 +#: wp-includes/media-template.php:1020 wp-includes/media-template.php:1090 +#: wp-includes/media-template.php:1102 wp-includes/media-template.php:1123 +#: wp-includes/media-template.php:1155 wp-includes/media.php:2918 msgid "Remove" msgstr "Fjern" @@ -2351,7 +2406,7 @@ msgid_plural "Your theme supports %s menus. Select which menu appears in each lo msgstr[0] "Temaet ditt støtter %s meny. Velg hvilken meny du vil bruke." msgstr[1] "Temaet ditt støtter %s menyer. Velg hvilke menyer du vil bruke." -#: wp-includes/media-template.php:508 +#: wp-includes/media-template.php:510 msgid "Refresh" msgstr "Last inn på nytt" @@ -2385,7 +2440,15 @@ msgstr "Slagord" msgid "— Select —" msgstr "— Velg —" -#: wp-includes/formatting.php:2589 wp-includes/script-loader.php:370 +#. translators: If your word count is based on single characters (East Asian +#. characters), +#. enter 'characters'. Otherwise, enter 'words'. Do not translate into your +#. own language. +#. translators: If your word count is based on single characters (East Asian +#. characters), +#. enter 'characters'. Otherwise, enter 'words'. Do not translate into +#. your own language. +#: wp-includes/formatting.php:2602 wp-includes/script-loader.php:370 msgctxt "word count: words or characters?" msgid "words" msgstr "words" @@ -2490,36 +2553,43 @@ msgstr "Beklager, en av klassifiseringene støttes ikke av denne typen innlegg." msgid "Sorry, you are not allowed to stick this post." msgstr "Beklager, du har ikke tillatelse til å gjøre dette innlegget klebrig." -#: wp-includes/formatting.php:62 wp-includes/formatting.php:3842 +#. translators: opening curly double quote +#: wp-includes/formatting.php:62 wp-includes/formatting.php:3855 msgctxt "opening curly double quote" msgid "“" msgstr "«" +#. translators: closing curly double quote #: wp-includes/formatting.php:64 msgctxt "closing curly double quote" msgid "”" msgstr "»" +#. translators: apostrophe, for example in 'cause or can't #: wp-includes/formatting.php:67 msgctxt "apostrophe" msgid "’" msgstr "’" +#. translators: prime, for example in 9' (nine feet) #: wp-includes/formatting.php:70 msgctxt "prime" msgid "′" msgstr "′" +#. translators: double prime, for example in 9" (nine inches) #: wp-includes/formatting.php:72 msgctxt "double prime" msgid "″" msgstr "″" +#. translators: opening curly single quote #: wp-includes/formatting.php:75 msgctxt "opening curly single quote" msgid "‘" msgstr "‘" +#. translators: closing curly single quote #: wp-includes/formatting.php:77 msgctxt "closing curly single quote" msgid "’" @@ -2584,10 +2654,6 @@ msgid_plural "%s comments awaiting moderation" msgstr[0] "%s kommentar venter på moderering" msgstr[1] "%s kommentarer venter på moderering" -#: wp-includes/ms-load.php:411 -msgid "What do I do now?" -msgstr "Hva gjør jeg nå?" - #: wp-includes/script-loader.php:253 msgid "%s exceeds the maximum upload size for the multi-file uploader when used in your browser." msgstr "%s overstiger maksimal filstørrelse for flerfilopplasteren når det brukes i nettleseren din." @@ -2609,11 +2675,13 @@ msgctxt "links widget" msgid "All Links" msgstr "Alle lenker" +#. translators: en dash #: wp-includes/formatting.php:80 msgctxt "en dash" msgid "–" msgstr "–" +#. translators: em dash #: wp-includes/formatting.php:82 msgctxt "em dash" msgid "—" @@ -2639,36 +2707,6 @@ msgstr "Vennligst se ERROR: please type a comment." msgstr "FEIL: vennligst skriv en kommentar." @@ -2693,99 +2731,6 @@ msgstr "FEIL: Nettsteds-URL allerede tatt." msgid "ERROR: problem creating site entry." msgstr "FEIL: Problem med å lage nettstedsoppføring." -#: wp-signup.php:135 -msgid "No" -msgstr "Nei" - -#: wp-includes/comment-template.php:2085 -msgid "Email" -msgstr "E-post" - -#: wp-includes/admin-bar.php:374 -msgid "Users" -msgstr "Brukere" - -#: wp-includes/class-wp-editor.php:1188 wp-includes/media.php:2907 -#: wp-includes/script-loader.php:358 wp-includes/script-loader.php:449 -msgid "Update" -msgstr "Oppdater" - -#: wp-includes/admin-bar.php:368 -msgid "Sites" -msgstr "Nettsteder" - -#: wp-includes/theme-compat/comments-popup.php:79 wp-login.php:711 -msgid "E-mail" -msgstr "E-post" - -#: wp-includes/comment-template.php:2083 -#: wp-includes/theme-compat/comments-popup.php:74 -#: wp-includes/theme-compat/comments.php:77 -msgid "Name" -msgstr "Navn" - -#: wp-includes/general-template.php:405 wp-login.php:707 wp-login.php:867 -msgid "Username" -msgstr "Brukernavn" - -#: wp-includes/admin-bar.php:315 wp-includes/admin-bar.php:362 -#: wp-includes/admin-bar.php:418 wp-includes/deprecated.php:2854 -#: wp-includes/deprecated.php:2856 -msgid "Dashboard" -msgstr "Kontrollpanelet" - -#: wp-includes/class-wp-customize-manager.php:125 -#: wp-includes/script-loader.php:390 -msgid "Cheatin’ uh?" -msgstr "Jukser du?" - -#: wp-includes/admin-bar.php:380 wp-includes/admin-bar.php:658 -msgid "Themes" -msgstr "Temaer" - -#: wp-includes/general-template.php:408 wp-login.php:858 wp-login.php:884 -msgid "Log In" -msgstr "Logg inn" - -#: wp-includes/class-wp-editor.php:811 wp-includes/class-wp-editor.php:1388 -#: wp-includes/media-template.php:365 wp-includes/media-template.php:542 -#: wp-includes/media-template.php:773 wp-includes/revision.php:29 -msgid "Title" -msgstr "Overskrift" - -#: wp-includes/script-loader.php:453 -msgid "Public" -msgstr "Offentlig" - -#: wp-includes/admin-bar.php:386 -msgid "Plugins" -msgstr "Utvidelser" - -#: wp-signup.php:131 -msgid "Yes" -msgstr "Ja" - -#: wp-includes/admin-bar.php:342 -msgid "My Sites" -msgstr "Mine nettsteder" - -#: wp-includes/class-wp-customize-manager.php:944 -#: wp-includes/class-wp-xmlrpc-server.php:419 -msgid "Site Title" -msgstr "Nettstedets navn" - -#: wp-includes/deprecated.php:2737 -msgid "First Post" -msgstr "Første innlegg" - -#: wp-activate.php:115 wp-includes/post-template.php:1567 -msgid "Password:" -msgstr "Passord:" - -#: wp-activate.php:80 -msgid "Activate" -msgstr "Aktiver" - #: wp-includes/admin-bar.php:137 msgid "Documentation" msgstr "Dokumentasjon" @@ -2794,7 +2739,7 @@ msgstr "Dokumentasjon" msgid "Support Forums" msgstr "Supportforum" -#: wp-includes/formatting.php:2584 wp-includes/general-template.php:2547 +#: wp-includes/formatting.php:2597 wp-includes/general-template.php:2547 msgid "…" msgstr "…" @@ -2854,7 +2799,7 @@ msgstr "Tillat varsling av lenker fra andre blogger (tilbaketråkk og tilbakespo msgid "Use WP_User->ID instead." msgstr "Bruk WP_User->ID isteden." -#: wp-includes/ms-functions.php:1967 +#: wp-includes/ms-functions.php:1969 msgid "You have been added to this site. Please visit the homepage or log in using your username and password." msgstr "Du har blitt lagt til dette nettstedet. Vennligst besøk forsiden eller logg inn med ditt brukernavn og passord." @@ -2875,36 +2820,51 @@ msgctxt "admin color scheme" msgid "Blue" msgstr "Blå" -#: wp-includes/formatting.php:3403 +#: wp-includes/formatting.php:3416 msgid "The timezone you have entered is not valid. Please select a valid timezone." msgstr "Tidssonen du har skrevet inn er ikke gyldig. Vennligst velg en gyldig tidssone." -#: wp-includes/post.php:22 -msgctxt "add new on admin bar" -msgid "Post" -msgstr "Innlegg" - -#: wp-includes/post.php:38 -msgctxt "add new on admin bar" -msgid "Page" -msgstr "Side" +#: wp-includes/ms-functions.php:1468 +msgid "" +"Dear User,\n" +"\n" +"Your new SITE_NAME site has been successfully set up at:\n" +"BLOG_URL\n" +"\n" +"You can log in to the administrator account with the following information:\n" +"Username: USERNAME\n" +"Password: PASSWORD\n" +"Log in here: BLOG_URLwp-login.php\n" +"\n" +"We hope you enjoy your new site. Thanks!\n" +"\n" +"--The Team @ SITE_NAME" +msgstr "" +"Kjære bruker,\n" +"\n" +"Ditt nye nettsted SITE_NAME har blitt satt opp her:\n" +"BLOG_URL\n" +"\n" +"Du kan logge inn i adminkontoen ved å bruke følgende informasjon:\n" +"Brukernavn: USERNAME\n" +"Passord: PASSWORD\n" +"Logg inn her: BLOG_URLwp-login.php\n" +"\n" +"Vi håper du blir fornøyd med ditt nye nettsted!\n" +"\n" +"--Vi på SITE_NAME" #: wp-includes/post.php:56 msgctxt "add new from admin bar" msgid "Media" msgstr "Media" -#: wp-includes/admin-bar.php:573 -msgctxt "add new from admin bar" -msgid "Link" -msgstr "Lenke" - #: wp-includes/admin-bar.php:593 msgctxt "add new from admin bar" msgid "User" msgstr "Bruker" -#: wp-includes/pluggable.php:1067 +#: wp-includes/pluggable.php:1073 msgid "You should specify a nonce action to be verified by using the first parameter." msgstr "Du bør spesifisere et nonce-tiltak som skal bekreftes ved hjelp av første parameter." @@ -3008,7 +2968,7 @@ msgstr "Tilbaketråkk:" msgid "Poster" msgstr "Plakat" -#: wp-includes/media-template.php:1035 wp-includes/media-template.php:1125 +#: wp-includes/media-template.php:1037 wp-includes/media-template.php:1127 msgid "Preload" msgstr "Forhåndslast" @@ -3065,7 +3025,7 @@ msgstr "(Denne meldingen ble lagt i versjon %s.)" msgid "Sorry, you cannot publish this post." msgstr "Beklager, du kan ikke publisere dette innlegget." -#: wp-includes/pluggable.php:1412 +#: wp-includes/pluggable.php:1418 msgid "Permalink: %s" msgstr "Permalenke: %s" @@ -3101,11 +3061,11 @@ msgstr "Lyd" msgid "Invalid post format" msgstr "Ugyldig innleggsformat" -#: wp-includes/pluggable.php:1404 wp-includes/pluggable.php:1533 +#: wp-includes/pluggable.php:1410 wp-includes/pluggable.php:1539 msgid "Whois : http://whois.arin.net/rest/ip/%s" msgstr "Whois : http://whois.arin.net/rest/ip/%s" -#: wp-includes/class-wp-editor.php:1391 wp-includes/media-template.php:961 +#: wp-includes/class-wp-editor.php:1391 wp-includes/media-template.php:963 msgid "Open link in a new window/tab" msgstr "Åpne lenken i nytt vindu / fane" @@ -3228,11 +3188,11 @@ msgstr "Bredde på miniatyrbilde" msgid "No matches found." msgstr "Ingen treff funnet." -#: wp-login.php:620 +#: wp-login.php:623 msgid "New password" msgstr "Nytt passord" -#: wp-login.php:624 +#: wp-login.php:627 msgid "Confirm new password" msgstr "Bekreft nytt passord" @@ -3240,19 +3200,19 @@ msgstr "Bekreft nytt passord" msgid "To reset your password, visit the following address:" msgstr "For å tilbakestille passordet ditt, gå til følgende adresse:" -#: wp-login.php:613 wp-login.php:643 +#: wp-login.php:616 wp-login.php:647 msgid "Reset Password" msgstr "Tilbakestill passord" -#: wp-login.php:590 +#: wp-login.php:593 msgid "The passwords do not match." msgstr "Passordene samsvarer ikke." -#: wp-login.php:605 +#: wp-login.php:608 msgid "Password Reset" msgstr "Passord tilbakestilt" -#: wp-login.php:605 +#: wp-login.php:608 msgid "Your password has been reset." msgstr "Ditt passord er tilbakestilt." @@ -3264,7 +3224,7 @@ msgstr "Noen ba om at passordet bli tilbakestilt for følgende konto:" msgid "If this was a mistake, just ignore this email and nothing will happen." msgstr "Hvis dette var en feil, bare ignorere denne e-posten, og ingenting vil skje." -#: wp-login.php:613 +#: wp-login.php:616 msgid "Enter your new password below." msgstr "Skriv inn ditt nye passord nedenfor." @@ -3332,18 +3292,6 @@ msgstr "[%1$s] Aktiver %2$s" msgid "Your server is running PHP version %1$s but WordPress %2$s requires at least %3$s." msgstr "Din tjener kjører PHP versjon %1$s, men WordPress %2$s trenger minimum %3$s." -#: wp-includes/pluggable.php:1514 -msgid "A new trackback on the post \"%s\" is waiting for your approval" -msgstr "En ny tilbakesporing til innlegget \"%s\" venter på godkjenning fra deg" - -#: wp-includes/ms-load.php:404 -msgid "If you are the owner of this network please check that MySQL is running properly and all tables are error free." -msgstr "Hvis du er eieren av nettverket, vennligst sjekk at MySQL kjører og at alle tabeller er feilfrie." - -#: wp-includes/ms-load.php:403 -msgid "If your site does not display, please contact the owner of this network." -msgstr "Hvis nettstedet ikke vises, vennligst kontakt eieren av dette nettverket." - #: wp-includes/theme-compat/comments.php:26 msgid "One Response to %2$s" msgid_plural "%1$s Responses to %2$s" @@ -3374,26 +3322,6 @@ msgstr "alle" msgid "Custom Menu" msgstr "Egendefinert meny" -#: wp-includes/pluggable.php:1389 -msgid "New pingback on your post \"%s\"" -msgstr "Nytt tilbakeping til ditt innlegg \"%s\"" - -#: wp-includes/pluggable.php:1521 -msgid "A new pingback on the post \"%s\" is waiting for your approval" -msgstr "Et nytt tilbakeping til innlegget \"%s\" venter på godkjenning fra deg" - -#: wp-includes/pluggable.php:1528 -msgid "A new comment on the post \"%s\" is waiting for your approval" -msgstr "En ny kommentar til innlegget \"%s\" venter på godkjenning fra deg" - -#: wp-includes/pluggable.php:1379 -msgid "New trackback on your post \"%s\"" -msgstr "Ny tilbakesporing til ditt innlegg \"%s\"" - -#: wp-includes/pluggable.php:1399 -msgid "New comment on your post \"%s\"" -msgstr "Ny kommentar til ditt innlegg \"%s\"" - #: wp-includes/theme-compat/sidebar.php:74 msgid "XFN" msgstr "XFN" @@ -3402,10 +3330,6 @@ msgstr "XFN" msgid "XHTML Friends Network" msgstr "XHTML vennenettverk" -#: wp-includes/theme-compat/sidebar.php:73 -msgid "Valid XHTML" -msgstr "Gyldig XHTML" - #: wp-includes/theme-compat/footer.php:19 msgid "%1$s and %2$s." msgstr "%1$s og %2$s." @@ -3422,10 +3346,6 @@ msgstr "Du ser nå i %2$s-arkivet." msgid "You are currently browsing the %2$s blog archives for %3$s." msgstr "Du ser nå i arkivet for %2$s for %3$s." -#: wp-includes/theme-compat/comments.php:49 -msgid "Comments are closed." -msgstr "Det er stengt for kommentarer." - #: wp-includes/theme-compat/sidebar.php:41 msgid "You are currently browsing the %2$s blog archives for the year %3$s." msgstr "Du ser nå i arkivet for %2$s for %3$s." @@ -3438,50 +3358,14 @@ msgstr "Logget inn som %2$s." msgid "Logged in as %2$s. Log out »" msgstr "Logget inn som %2$s. Logg ut »" -#: wp-includes/theme-compat/comments.php:91 -msgid "Submit Comment" -msgstr "Send kommentar" - #: wp-includes/theme-compat/footer.php:17 msgid "%1$s is proudly powered by %2$s" msgstr "%1$s er stolt drevet av %2$s" -#: wp-includes/theme-compat/comments-popup.php:84 -msgid "URL" -msgstr "Tilbakesporings-URL" - -#: wp-includes/theme-compat/comments-popup.php:89 -msgid "Your Comment" -msgstr "Din kommentar" - -#: wp-includes/theme-compat/comments-popup.php:97 -msgid "Say It!" -msgstr "Si det!" - -#: wp-includes/theme-compat/comments-popup.php:107 -msgid "Close this window." -msgstr "Lukk dette vinduet." - -#: wp-includes/theme-compat/comments-popup.php:113 -msgid "Sorry, no posts matched your criteria." -msgstr "Beklager, ingen innlegg passet til kriteriene dine." - #: wp-includes/theme-compat/comments-popup.php:117 msgid "Powered by WordPress" msgstr "Drives med WordPress" -#: wp-includes/theme-compat/comments.php:72 -msgid "Log out of this account" -msgstr "Logg ut fra denne kontoen" - -#: wp-includes/theme-compat/comments.php:72 -msgid "Log out »" -msgstr "Logg ut »" - -#: wp-includes/theme-compat/comments.php:80 -msgid "Mail (will not be published)" -msgstr "E-post (vil ikke bli publisert)" - #: wp-includes/theme-compat/comments.php:87 msgid "XHTML: You can use these tags: %s" msgstr "XHTML: Du kan bruke disse kodene: %s" @@ -3522,22 +3406,10 @@ msgstr "Avsnitt og linjeskift lages automatisk, e-postadressen din vil aldri vis msgid "This post is password protected. Enter the password to view comments." msgstr "Dette innlegget er passordbeskyttet. Du må oppgi passord for å se kommentarer." -#: wp-includes/theme-compat/sidebar.php:73 -msgid "This page validates as XHTML 1.0 Transitional" -msgstr "Denne siden består av gyldig XHTML 1.0 Transitional" - -#: wp-includes/theme-compat/comments-popup.php:102 -msgid "Sorry, the comment form is closed at this time." -msgstr "Beklager, men kommentarskjemaet er nå lukket." - #: wp-includes/theme-compat/comments-popup.php:14 msgid "%1$s - Comments on %2$s" msgstr "%1$s - Kommentarer til %2$s" -#: wp-includes/theme-compat/comments-popup.php:35 -msgid "RSS feed for comments on this post." -msgstr "RSS-strøm med kommentarer til dette innlegget." - #: wp-includes/theme-compat/comments-popup.php:38 msgid "The URL to TrackBack this entry is: %s" msgstr "URL-en for å lage tilbakesporing til dette innlegget er: %s\"" @@ -3546,10 +3418,6 @@ msgstr " msgid "by %1$s — %2$s @ %4$s" msgstr "av %1$s — %2$s @ %4$s" -#: wp-includes/theme-compat/comments-popup.php:65 -msgid "Leave a comment" -msgstr "Legg igjen en kommentar" - #: wp-includes/taxonomy.php:489 msgid "Choose from the most used tags" msgstr "Velg fra de mest brukte stikkordene" @@ -3684,7 +3552,7 @@ msgstr "Konstanten VHOST er utgått. Bruk den bool msgid "Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL. The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting." msgstr "Motstridende verdier for konstantene VHOST og SUBDOMAIN_INSTALL. Verdien til SUBDOMAIN_INSTALL vil antas å være din konfigurasjonsinnstilling for subdomener." -#: wp-includes/user.php:2126 +#: wp-includes/user.php:2129 msgid "ERROR: This username is invalid because it uses illegal characters. Please enter a valid username." msgstr "FEIL: Brukernavnet er ugyldig fordi det bruker tegn som ikke er tillatte. Vennligst oppgi et gyldig brukernavn." @@ -3782,7 +3650,7 @@ msgstr "Ny nettstedsregistering: %s" msgid "Sorry, site names may not contain the character “_”!" msgstr "Beklager, nettstedsnavn kan ikke inneholde tegnet «_»!" -#: wp-includes/ms-functions.php:1523 +#: wp-includes/ms-functions.php:1525 msgid "New %1$s Site: %2$s" msgstr "Nytt %1$s-nettsted: %2$s" @@ -3828,7 +3696,7 @@ msgstr "Beklager, det nettstedet er reservert!" msgid "That site is currently reserved but may be available in a couple days." msgstr "Det nettstedet er reservert nå, men kan bli gjort tilgjengelig i løpet av noen dager." -#: wp-includes/pluggable.php:1639 +#: wp-includes/pluggable.php:1645 msgid "New user registration on your site %s:" msgstr "Ny brukerregistrering på ditt nettsted %s:" @@ -3869,15 +3737,15 @@ msgstr "Menynavnet %s finnes allerede. Vennligst prøv et annet msgid "The given object ID is not that of a menu item." msgstr "Spesifisert objekt-ID er ikke et menyvalg." -#: wp-includes/formatting.php:3261 +#: wp-includes/formatting.php:3274 msgid "The email address entered did not appear to be a valid email address. Please enter a valid email address." msgstr "E-postadressen som du skrev inn virker ikke å være en gyldig adresse. Vennligst skriv inn en gyldig e-postadresse." -#: wp-includes/formatting.php:3348 +#: wp-includes/formatting.php:3361 msgid "The WordPress address you entered did not appear to be a valid URL. Please enter a valid URL." msgstr "WordPress-adressen som du skrev inn virker ikke å være en gyldig URL. Vennligst skriv inn en gyldig URL." -#: wp-includes/formatting.php:3358 +#: wp-includes/formatting.php:3371 msgid "The Site address you entered did not appear to be a valid URL. Please enter a valid URL." msgstr "Nettstedsadressen du skrev inn virker ikke å være en gyldig URL. Vennligst skriv inn en gyldig URL." @@ -3885,18 +3753,14 @@ msgstr "Nettstedsadressen du skrev inn virker ikke å være en gyldig URL. Vennl msgid "A term with the name provided already exists with this parent." msgstr "Et nøkkelord med dette navnet finnes allerede med denne forelderen." -#: wp-includes/ms-functions.php:1965 +#: wp-includes/ms-functions.php:1967 msgid "An error occurred adding you to this site. Back to the homepage." msgstr "En feil skjedde når du skulle legges til på nettstedet. Tilbake til forsiden." -#: wp-includes/ms-functions.php:1881 +#: wp-includes/ms-functions.php:1883 msgid "This file is too big. Files must be less than %d KB in size." msgstr "Filen er for stor. Filer må være mindre enn %d Kb store." -#: wp-includes/locale.php:177 -msgid "number_format_decimal_point" -msgstr "," - #: wp-includes/comment-template.php:2108 msgid "Your email address will not be published." msgstr "Din e-postadresse vil ikke bli publisert." @@ -4006,7 +3870,7 @@ msgstr "" "Du er i ferd med å permanent slette denne menyen.\n" " 'Avbryt' for å stoppe, 'OK' for å slette." -#: wp-includes/link-template.php:3116 +#: wp-includes/link-template.php:3118 msgid "This is the short link." msgstr "Dette er den korte lenken." @@ -4042,10 +3906,42 @@ msgstr "Hvis du ikke skal bruke et flott domenenavn, la det være åpent til en msgid "Sites you are already a member of:" msgstr "Nettsteder du allerede er medlem i:" +#: wp-includes/pluggable.php:1385 +msgid "New trackback on your post \"%s\"" +msgstr "Ny tilbakesporing til ditt innlegg \"%s\"" + +#: wp-includes/ms-load.php:404 +msgid "If you are the owner of this network please check that MySQL is running properly and all tables are error free." +msgstr "Hvis du er eieren av nettverket, vennligst sjekk at MySQL kjører og at alle tabeller er feilfrie." + #: wp-includes/ms-load.php:102 msgid "This site has not been activated yet. If you are having problems activating your site, please contact %1$s." msgstr "Dette nettstedet har ikke blitt aktivert ennå. Hvis du har problemer med aktivering, vennligst kontakt %1$s." +#: wp-includes/ms-load.php:403 +msgid "If your site does not display, please contact the owner of this network." +msgstr "Hvis nettstedet ikke vises, vennligst kontakt eieren av dette nettverket." + +#: wp-includes/pluggable.php:1405 +msgid "New comment on your post \"%s\"" +msgstr "Ny kommentar til ditt innlegg \"%s\"" + +#: wp-includes/pluggable.php:1395 +msgid "New pingback on your post \"%s\"" +msgstr "Nytt tilbakeping til ditt innlegg \"%s\"" + +#: wp-includes/pluggable.php:1520 +msgid "A new trackback on the post \"%s\" is waiting for your approval" +msgstr "" + +#: wp-includes/pluggable.php:1527 +msgid "A new pingback on the post \"%s\" is waiting for your approval" +msgstr "Et nytt tilbakeping til innlegget \"%s\" venter på godkjenning fra deg" + +#: wp-includes/pluggable.php:1534 +msgid "A new comment on the post \"%s\" is waiting for your approval" +msgstr "En ny kommentar til innlegget \"%s\" venter på godkjenning fra deg" + #: wp-includes/script-loader.php:256 msgid "File canceled." msgstr "Fil avbrutt." @@ -4442,6 +4338,7 @@ msgstr "Siste innlegg" msgid "Number of posts to show:" msgstr "Antall innlegg å vise:" +#. translators: comments widget: 1: comment author, 2: post link #: wp-includes/default-widgets.php:876 msgctxt "widgets" msgid "%1$s on %2$s" @@ -4519,24 +4416,26 @@ msgstr "Kommentarer til: %s" msgid "Protected Comments: Please enter your password to view comments." msgstr "Beskyttede kommentarer. Vennligst skriv inn passordet ditt for å se kommentarene." -#: wp-includes/formatting.php:2472 +#. translators: min=minute +#: wp-includes/formatting.php:2485 msgid "%s min" msgid_plural "%s mins" msgstr[0] "%s minutt" msgstr[1] "%s minutter" -#: wp-includes/formatting.php:2477 +#: wp-includes/formatting.php:2490 msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s time" msgstr[1] "%s timer" -#: wp-includes/formatting.php:2482 +#: wp-includes/formatting.php:2495 msgid "%s day" msgid_plural "%s days" msgstr[0] "%s dag" msgstr[1] "%s dager" +#. translators: used between list items, there is a space after the comma #: wp-includes/class-wp-theme.php:674 msgid ", " msgstr ", " @@ -4569,7 +4468,7 @@ msgstr "WordPress feilnote" msgid "Do you really want to log out?" msgstr "Vil du virkelig logge ut?" -#: wp-includes/functions.php:2324 wp-includes/ms-functions.php:1912 +#: wp-includes/functions.php:2324 wp-includes/ms-functions.php:1914 msgid "Please try again." msgstr "Vennligst prøv igjen." @@ -4609,8 +4508,8 @@ msgstr "UTC" msgid "Manual Offsets" msgstr "Manuelle offset" -#: wp-includes/general-template.php:284 wp-login.php:545 wp-login.php:605 -#: wp-login.php:647 wp-login.php:729 +#: wp-includes/general-template.php:284 wp-login.php:545 wp-login.php:608 +#: wp-login.php:651 wp-login.php:733 msgid "Log in" msgstr "Logg inn" @@ -4618,12 +4517,12 @@ msgstr "Logg inn" msgid "Log out" msgstr "Logg ut" -#: wp-includes/general-template.php:407 wp-login.php:882 +#: wp-includes/general-template.php:407 wp-login.php:886 msgid "Remember Me" msgstr "Husk meg" -#: wp-includes/general-template.php:540 wp-login.php:548 wp-login.php:650 -#: wp-login.php:725 wp-login.php:901 +#: wp-includes/general-template.php:540 wp-login.php:548 wp-login.php:654 +#: wp-login.php:729 wp-login.php:905 msgid "Register" msgstr "Registrer" @@ -4631,6 +4530,7 @@ msgstr "Registrer" msgid "Site Admin" msgstr "Nettstedsadmin" +#. translators: 1: separator, 2: search phrase #: wp-includes/general-template.php:827 msgid "Search Results %1$s %2$s" msgstr "Søkeresultater %1$s %2$s" @@ -4639,44 +4539,54 @@ msgstr "Søkeresultater %1$s %2$s" msgid "Page not found" msgstr "Fant ikke siden" -#: wp-includes/general-template.php:1274 wp-includes/media.php:2848 +#. translators: 1: month name, 2: 4-digit year +#: wp-includes/general-template.php:1274 wp-includes/media.php:2857 msgid "%1$s %2$d" msgstr "%1$s %2$d" +#. translators: Calendar caption: 1: month name, 2: 4-digit year #: wp-includes/general-template.php:1480 msgctxt "calendar caption" msgid "%1$s %2$s" msgstr "%1$s %2$s" +#. translators: Separator between blog name and feed type in feed links #: wp-includes/general-template.php:2095 wp-includes/general-template.php:2118 msgctxt "feed link" msgid "»" msgstr "»" +#. translators: 1: blog title, 2: separator (raquo) #: wp-includes/general-template.php:2097 msgid "%1$s %2$s Feed" msgstr "%1$s %2$s strøm" +#. translators: 1: blog title, 2: separator (raquo) #: wp-includes/general-template.php:2099 msgid "%1$s %2$s Comments Feed" msgstr "%1$s %2$s kommentarstrøm" +#. translators: 1: blog name, 2: separator(raquo), 3: post title #: wp-includes/general-template.php:2120 msgid "%1$s %2$s %3$s Comments Feed" msgstr "%1$s %2$s %3$s kommentarstrøm" +#. translators: 1: blog name, 2: separator(raquo), 3: category name #: wp-includes/general-template.php:2122 msgid "%1$s %2$s %3$s Category Feed" msgstr "%1$s %2$s %3$s kategori-strøm" +#. translators: 1: blog name, 2: separator(raquo), 3: tag name #: wp-includes/general-template.php:2124 msgid "%1$s %2$s %3$s Tag Feed" msgstr "%1$s %2$s %3$s stikkord-strøm" +#. translators: 1: blog name, 2: separator(raquo), 3: author name #: wp-includes/general-template.php:2126 msgid "%1$s %2$s Posts by %3$s Feed" msgstr "%1$s %2$s innlegg etter %3$s-strøm" +#. translators: 1: blog name, 2: separator(raquo), 3: search phrase #: wp-includes/general-template.php:2128 msgid "%1$s %2$s Search Results for “%3$s” Feed" msgstr "%1$s %2$s Søkeresultater for «%3$s»-strøm" @@ -4702,161 +4612,199 @@ msgstr "For mange redirigeringer." msgid "Could not open handle for fopen() to %s" msgstr "Klarte ikke åpne peker for fopen() til %s" +#. translators: month name #: wp-includes/locale.php:131 wp-includes/locale.php:146 msgid "January" msgstr "januar" +#. translators: month name #: wp-includes/locale.php:132 wp-includes/locale.php:147 msgid "February" msgstr "februar" +#. translators: month name #: wp-includes/locale.php:133 wp-includes/locale.php:148 msgid "March" msgstr "mars" +#. translators: month name #: wp-includes/locale.php:134 wp-includes/locale.php:149 msgid "April" msgstr "april" +#. translators: month name #: wp-includes/locale.php:135 wp-includes/locale.php:150 msgid "May" msgstr "mai" +#. translators: month name #: wp-includes/locale.php:136 wp-includes/locale.php:151 msgid "June" msgstr "juni" +#. translators: month name #: wp-includes/locale.php:137 wp-includes/locale.php:152 msgid "July" msgstr "juli" +#. translators: month name #: wp-includes/locale.php:138 wp-includes/locale.php:153 msgid "August" msgstr "august" +#. translators: month name #: wp-includes/locale.php:139 wp-includes/locale.php:154 msgid "September" msgstr "september" +#. translators: month name #: wp-includes/locale.php:140 wp-includes/locale.php:155 msgid "October" msgstr "oktober" +#. translators: month name #: wp-includes/locale.php:141 wp-includes/locale.php:156 msgid "November" msgstr "november" +#. translators: month name #: wp-includes/locale.php:142 wp-includes/locale.php:157 msgid "December" msgstr "desember" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:146 msgid "Jan_January_abbreviation" msgstr "jan" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:147 msgid "Feb_February_abbreviation" msgstr "feb" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:148 msgid "Mar_March_abbreviation" msgstr "mar" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:149 msgid "Apr_April_abbreviation" msgstr "apr" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:150 msgid "May_May_abbreviation" msgstr "mai" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:151 msgid "Jun_June_abbreviation" msgstr "jun" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:152 msgid "Jul_July_abbreviation" msgstr "jul" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:153 msgid "Aug_August_abbreviation" msgstr "aug" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:154 msgid "Sep_September_abbreviation" msgstr "sept" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:155 msgid "Oct_October_abbreviation" msgstr "okt" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:156 msgid "Nov_November_abbreviation" msgstr "nov" +#. translators: three-letter abbreviation of the month #: wp-includes/locale.php:157 msgid "Dec_December_abbreviation" msgstr "des" +#. translators: weekday #: wp-includes/locale.php:99 wp-includes/locale.php:109 #: wp-includes/locale.php:122 msgid "Sunday" msgstr "søndag" +#. translators: weekday #: wp-includes/locale.php:100 wp-includes/locale.php:110 #: wp-includes/locale.php:123 msgid "Monday" msgstr "mandag" +#. translators: weekday #: wp-includes/locale.php:101 wp-includes/locale.php:111 #: wp-includes/locale.php:124 msgid "Tuesday" msgstr "tirsdag" +#. translators: weekday #: wp-includes/locale.php:102 wp-includes/locale.php:112 #: wp-includes/locale.php:125 msgid "Wednesday" msgstr "onsdag" +#. translators: weekday #: wp-includes/locale.php:103 wp-includes/locale.php:113 #: wp-includes/locale.php:126 msgid "Thursday" msgstr "torsdag" +#. translators: weekday #: wp-includes/locale.php:104 wp-includes/locale.php:114 #: wp-includes/locale.php:127 msgid "Friday" msgstr "fredag" +#. translators: weekday #: wp-includes/locale.php:105 wp-includes/locale.php:115 #: wp-includes/locale.php:128 msgid "Saturday" msgstr "lørdag" +#. translators: three-letter abbreviation of the weekday #: wp-includes/locale.php:122 msgid "Sun" msgstr "søn" +#. translators: three-letter abbreviation of the weekday #: wp-includes/locale.php:123 msgid "Mon" msgstr "man" +#. translators: three-letter abbreviation of the weekday #: wp-includes/locale.php:124 msgid "Tue" msgstr "tir" +#. translators: three-letter abbreviation of the weekday #: wp-includes/locale.php:125 msgid "Wed" msgstr "ons" +#. translators: three-letter abbreviation of the weekday #: wp-includes/locale.php:126 msgid "Thu" msgstr "tor" +#. translators: three-letter abbreviation of the weekday #: wp-includes/locale.php:127 msgid "Fri" msgstr "fre" +#. translators: three-letter abbreviation of the weekday #: wp-includes/locale.php:128 msgid "Sat" msgstr "lør" @@ -5082,11 +5030,11 @@ msgstr "Liste" msgid "Constrain proportions" msgstr "Tving proposjoner" -#: wp-includes/media-template.php:1050 wp-includes/media-template.php:1140 +#: wp-includes/media-template.php:1052 wp-includes/media-template.php:1142 msgid "Loop" msgstr "Løkke" -#: wp-includes/media-template.php:801 wp-includes/media-template.php:867 +#: wp-includes/media-template.php:803 wp-includes/media-template.php:869 msgid "Align" msgstr "Plasser" @@ -5106,7 +5054,7 @@ msgstr "Stille" msgid "Insert More Tag" msgstr "Sett inn mer-skille" -#: wp-includes/media.php:2963 +#: wp-includes/media.php:2972 msgid "Edit Gallery" msgstr "Endre galleri" @@ -5114,7 +5062,7 @@ msgstr "Endre galleri" msgid "Source" msgstr "Kilde" -#: wp-includes/media-template.php:964 +#: wp-includes/media-template.php:966 msgid "Link Rel" msgstr "Rel-attributt for lenke" @@ -5167,15 +5115,15 @@ msgstr "Sitat" msgid "Insert Page Break tag" msgstr "Sett inn sideskift" -#: wp-includes/link-template.php:671 +#: wp-includes/link-template.php:673 msgid "Comments Feed" msgstr "Kommentarstrøm" -#: wp-includes/link-template.php:1609 wp-includes/link-template.php:1841 +#: wp-includes/link-template.php:1611 wp-includes/link-template.php:1843 msgid "Previous Post" msgstr "Forrige innlegg" -#: wp-includes/link-template.php:1609 wp-includes/link-template.php:1841 +#: wp-includes/link-template.php:1611 wp-includes/link-template.php:1843 msgid "Next Post" msgstr "Neste innlegg" @@ -5183,38 +5131,45 @@ msgstr "Neste innlegg" msgid "Last Post" msgstr "Siste innlegg" -#: wp-includes/link-template.php:2260 +#: wp-includes/link-template.php:2262 msgid "Newer Comments »" msgstr "Nyere kommentarer »" -#: wp-includes/link-template.php:2304 +#: wp-includes/link-template.php:2306 msgid "« Older Comments" msgstr "« Eldre kommentarer" +#. translators: one-letter abbreviation of the weekday #: wp-includes/locale.php:109 msgid "S_Sunday_initial" msgstr "S" +#. translators: one-letter abbreviation of the weekday #: wp-includes/locale.php:110 msgid "M_Monday_initial" msgstr "M" +#. translators: one-letter abbreviation of the weekday #: wp-includes/locale.php:111 msgid "T_Tuesday_initial" msgstr "T" +#. translators: one-letter abbreviation of the weekday #: wp-includes/locale.php:112 msgid "W_Wednesday_initial" msgstr "O" +#. translators: one-letter abbreviation of the weekday #: wp-includes/locale.php:113 msgid "T_Thursday_initial" msgstr "T" +#. translators: one-letter abbreviation of the weekday #: wp-includes/locale.php:114 msgid "F_Friday_initial" msgstr "F" +#. translators: one-letter abbreviation of the weekday #: wp-includes/locale.php:115 msgid "S_Saturday_initial" msgstr "L" @@ -5235,6 +5190,14 @@ msgstr "AM" msgid "PM" msgstr "PM" +#. translators: $dec_point argument for http:php.net/number_format, default is +#. . +#: wp-includes/locale.php:177 +msgid "number_format_decimal_point" +msgstr "," + +#. translators: $thousands_sep argument for http:php.net/number_format, default +#. is , #: wp-includes/locale.php:173 msgid "number_format_thousands_sep" msgstr " " @@ -5291,11 +5254,11 @@ msgstr "Det brukernavnet er allerede aktivert." msgid "New User Registration: %s" msgstr "Ny brukerregistrering: %s" -#: wp-includes/ms-functions.php:1601 +#: wp-includes/ms-functions.php:1603 msgid "New %1$s User: %2$s" msgstr "Ny %1$s-bruker: %2$s" -#: wp-includes/ms-functions.php:2119 +#: wp-includes/ms-functions.php:2121 msgid "" "Dear User,\n" "\n" @@ -5323,120 +5286,130 @@ msgstr "" "\n" "--Vi på SITE_NAME" +#: wp-includes/ms-load.php:411 +msgid "What do I do now?" +msgstr "" + #: wp-includes/pluggable.php:562 msgid "ERROR: Invalid username or incorrect password." msgstr "FEIL: Ugyldig brukernavn eller feil passord." -#: wp-includes/pluggable.php:1401 wp-includes/pluggable.php:1530 +#. translators: 1: comment author, 2: author IP, 3: author domain +#: wp-includes/pluggable.php:1407 wp-includes/pluggable.php:1536 msgid "Author : %1$s (IP: %2$s , %3$s)" msgstr "Forfatter : %1$s (IP: %2$s , %3$s)" -#: wp-includes/pluggable.php:1402 wp-includes/pluggable.php:1531 +#: wp-includes/pluggable.php:1408 wp-includes/pluggable.php:1537 msgid "E-mail : %s" msgstr "E-post: %s" -#: wp-includes/pluggable.php:1382 wp-includes/pluggable.php:1392 -#: wp-includes/pluggable.php:1403 wp-includes/pluggable.php:1517 -#: wp-includes/pluggable.php:1524 wp-includes/pluggable.php:1532 +#: wp-includes/pluggable.php:1388 wp-includes/pluggable.php:1398 +#: wp-includes/pluggable.php:1409 wp-includes/pluggable.php:1523 +#: wp-includes/pluggable.php:1530 wp-includes/pluggable.php:1538 msgid "URL : %s" msgstr "URL : %s" -#: wp-includes/pluggable.php:1405 wp-includes/pluggable.php:1534 +#: wp-includes/pluggable.php:1411 wp-includes/pluggable.php:1540 msgid "Comment: " msgstr "Kommentar: " -#: wp-includes/pluggable.php:1406 +#: wp-includes/pluggable.php:1412 msgid "You can see all comments on this post here: " msgstr "Du kan se alle kommentarer til dette innlegget her: " -#: wp-includes/pluggable.php:1408 +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1414 msgid "[%1$s] Comment: \"%2$s\"" msgstr "[%1$s] Kommentar: \"%2$s\"" -#: wp-includes/pluggable.php:1381 wp-includes/pluggable.php:1391 +#. translators: 1: website name, 2: author IP, 3: author domain +#. translators: 1: comment author, 2: author IP, 3: author domain +#: wp-includes/pluggable.php:1387 wp-includes/pluggable.php:1397 msgid "Website: %1$s (IP: %2$s , %3$s)" msgstr "Nettsted: %1$s (IP: %2$s , %3$s)" -#: wp-includes/pluggable.php:1383 wp-includes/pluggable.php:1393 +#: wp-includes/pluggable.php:1389 wp-includes/pluggable.php:1399 msgid "Excerpt: " msgstr "Utdrag: " -#: wp-includes/pluggable.php:1384 +#: wp-includes/pluggable.php:1390 msgid "You can see all trackbacks on this post here: " msgstr "Du kan se alle tilbakesporinger til dette innlegget her: " -#: wp-includes/pluggable.php:1386 +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1392 msgid "[%1$s] Trackback: \"%2$s\"" msgstr "[%1$s] Tilbakesporing: \"%2$s\"" -#: wp-includes/pluggable.php:1394 +#: wp-includes/pluggable.php:1400 msgid "You can see all pingbacks on this post here: " msgstr "Du kan se alle tilbakeping til dette innlegget her: " -#: wp-includes/pluggable.php:1396 +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1402 msgid "[%1$s] Pingback: \"%2$s\"" msgstr "[%1$s] Tilbakeping: \"%2$s\"" -#: wp-includes/pluggable.php:1416 wp-includes/pluggable.php:1540 +#: wp-includes/pluggable.php:1422 wp-includes/pluggable.php:1546 msgid "Trash it: %s" msgstr "Kast det: %s" -#: wp-includes/pluggable.php:1418 wp-includes/pluggable.php:1542 +#: wp-includes/pluggable.php:1424 wp-includes/pluggable.php:1548 msgid "Delete it: %s" msgstr "Slett den: %s" -#: wp-includes/pluggable.php:1419 wp-includes/pluggable.php:1543 +#: wp-includes/pluggable.php:1425 wp-includes/pluggable.php:1549 msgid "Spam it: %s" msgstr "Gjør useriøs: %s" -#: wp-includes/pluggable.php:1516 wp-includes/pluggable.php:1523 +#: wp-includes/pluggable.php:1522 wp-includes/pluggable.php:1529 msgid "Website : %1$s (IP: %2$s , %3$s)" msgstr "Nettsted : %1$s (IP: %2$s , %3$s)" -#: wp-includes/pluggable.php:1518 +#: wp-includes/pluggable.php:1524 msgid "Trackback excerpt: " msgstr "Tilbakesporing utdrag:" -#: wp-includes/pluggable.php:1525 +#: wp-includes/pluggable.php:1531 msgid "Pingback excerpt: " msgstr "Tilbakeping utdrag:" -#: wp-includes/pluggable.php:1538 +#: wp-includes/pluggable.php:1544 msgid "Approve it: %s" msgstr "Godkjenn den: %s" -#: wp-includes/pluggable.php:1545 +#: wp-includes/pluggable.php:1551 msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:" msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:" msgstr[0] "%s kommentar venter på godkjenning. Vennligst gå til modereringspanelet:" msgstr[1] "%s kommentarer venter på godkjenning. Vennligst gå til modereringspanelet:" -#: wp-includes/pluggable.php:1549 +#: wp-includes/pluggable.php:1555 msgid "[%1$s] Please moderate: \"%2$s\"" msgstr "[%1$s] Vennligst moderer: \"%2$s\"" -#: wp-includes/pluggable.php:1612 +#: wp-includes/pluggable.php:1618 msgid "Password Lost and Changed for user: %s" msgstr "Passord fjernet og endret for bruker: %s" -#: wp-includes/pluggable.php:1616 +#: wp-includes/pluggable.php:1622 msgid "[%s] Password Lost/Changed" msgstr "[%s] Passord fjernet/endret" -#: wp-includes/pluggable.php:1640 wp-includes/pluggable.php:1648 +#: wp-includes/pluggable.php:1646 wp-includes/pluggable.php:1654 #: wp-login.php:362 msgid "Username: %s" msgstr "Brukernavn: %s" -#: wp-includes/pluggable.php:1643 +#: wp-includes/pluggable.php:1649 msgid "[%s] New User Registration" msgstr "[%s] Ny brukerregistrering" -#: wp-includes/pluggable.php:1649 +#: wp-includes/pluggable.php:1655 msgid "Password: %s" msgstr "Passord: %s" -#: wp-includes/pluggable.php:1652 +#: wp-includes/pluggable.php:1658 msgid "[%s] Your username and password" msgstr "[%s] Ditt nye brukernavn og passord" @@ -5464,6 +5437,7 @@ msgstr "Forrige side" msgid "Home" msgstr "Hjem" +#. translators: revision date format, see http:php.net/date #: wp-includes/post-template.php:1653 msgctxt "revision date format" msgid "j F, Y @ G:i" @@ -5575,15 +5549,15 @@ msgstr "Du har ikke lov til å forhåndsvise kladder." msgid "Cannot create a user with an empty login name." msgstr "Kan ikke opprette en bruker med et tomt innloggingsnavn." -#: wp-includes/user.php:1995 +#: wp-includes/user.php:1998 msgid "AIM" msgstr "AIM" -#: wp-includes/user.php:1996 +#: wp-includes/user.php:1999 msgid "Yahoo IM" msgstr "Yahoo IM" -#: wp-includes/user.php:1997 +#: wp-includes/user.php:2000 msgid "Jabber / Google Talk" msgstr "Jabber / Google Talk" @@ -5699,6 +5673,7 @@ msgstr "Komprimerer…" msgid "moved to the trash." msgstr "flyttet til papirkurven." +#. translators: password strength #: wp-includes/script-loader.php:343 msgctxt "password strength" msgid "Medium" @@ -5852,17 +5827,17 @@ msgstr "[%s] Nullstill passord" msgid "The e-mail could not be sent." msgstr "E-posten kunne ikke sendes." -#: wp-includes/user.php:2042 wp-includes/user.php:2045 -#: wp-includes/user.php:2049 wp-includes/user.php:2060 -#: wp-includes/user.php:2076 +#: wp-includes/user.php:2045 wp-includes/user.php:2048 +#: wp-includes/user.php:2052 wp-includes/user.php:2063 +#: wp-includes/user.php:2079 msgid "Invalid key" msgstr "Ugyldig nøkkel" -#: wp-includes/user.php:2134 +#: wp-includes/user.php:2137 msgid "ERROR: Please type your e-mail address." msgstr "Feil: Vennligst skriv inn en e-postadresse" -#: wp-includes/user.php:2136 +#: wp-includes/user.php:2139 msgid "ERROR: The email address isn’t correct." msgstr "Feil: E-postadressen er ikke riktig" @@ -5890,47 +5865,47 @@ msgstr "Gått deg bort?" msgid "← Back to %s" msgstr "← Tilbake til %s" -#: wp-login.php:702 +#: wp-login.php:706 msgid "Registration Form" msgstr "Registreringsskjema" -#: wp-login.php:702 +#: wp-login.php:706 msgid "Register For This Site" msgstr "Registrer deg for dette nettstedet" -#: wp-login.php:722 +#: wp-login.php:726 msgid "A password will be e-mailed to you." msgstr "Et passord blir sendt til deg på e-post." -#: wp-login.php:730 wp-login.php:907 +#: wp-login.php:734 wp-login.php:911 msgid "Password Lost and Found" msgstr "Hittegodskontor for passord" -#: wp-login.php:730 wp-login.php:907 +#: wp-login.php:734 wp-login.php:911 msgid "Lost your password?" msgstr "Mistet passordet ditt?" -#: wp-login.php:793 +#: wp-login.php:797 msgid "You have logged in successfully." msgstr "Du har logget inn." -#: wp-login.php:831 +#: wp-login.php:835 msgid "You are now logged out." msgstr "Du er nå logget ut." -#: wp-login.php:833 +#: wp-login.php:837 msgid "User registration is currently not allowed." msgstr "Registrering av brukere er for tiden ikke tillatt." -#: wp-login.php:835 +#: wp-login.php:839 msgid "Check your e-mail for the confirmation link." msgstr "Bekreftelseslenken finner du i e-posten din." -#: wp-login.php:837 +#: wp-login.php:841 msgid "Check your e-mail for your new password." msgstr "Det nye passordet finner du i e-posten din." -#: wp-login.php:839 +#: wp-login.php:843 msgid "Registration complete. Please check your e-mail." msgstr "Registreringen er ferdig. Vennligst sjekk e-posten din." @@ -6018,15 +5993,15 @@ msgstr "Registrering av brukere har blitt deaktivert." msgid "Help" msgstr "Hjelp" -#: wp-includes/class-wp-editor.php:903 wp-includes/media-template.php:918 +#: wp-includes/class-wp-editor.php:903 wp-includes/media-template.php:920 msgid "Width" msgstr "Bredde" -#: wp-includes/user.php:2124 +#: wp-includes/user.php:2127 msgid "ERROR: Please enter a username." msgstr "Feil: Vennligst oppgi et brukernavn." -#: wp-includes/user.php:2139 +#: wp-includes/user.php:2142 msgid "ERROR: This email is already registered, please choose another one." msgstr "Feil: Denne e-post er allerede registrert. Vennligst velg en annen." @@ -6034,10 +6009,20 @@ msgstr "Feil: Denne e-post er allerede registrert. Vennligst ve msgid "There are no options for this widget." msgstr "Det er ingen innstillinger for denne widget." -#: wp-includes/script-loader.php:339 wp-login.php:628 +#: wp-includes/admin-bar.php:315 wp-includes/admin-bar.php:362 +#: wp-includes/admin-bar.php:418 wp-includes/deprecated.php:2854 +#: wp-includes/deprecated.php:2856 +msgid "Dashboard" +msgstr "Kontrollpanel" + +#: wp-includes/script-loader.php:339 wp-login.php:631 msgid "Strength indicator" msgstr "Styrkeindikator" +#: wp-includes/general-template.php:408 wp-login.php:862 wp-login.php:888 +msgid "Log In" +msgstr "Logg inn" + #: wp-includes/script-loader.php:340 msgid "Very weak" msgstr "Veldig svakt" @@ -6054,11 +6039,40 @@ msgstr "Sterk" msgid "Edit Category" msgstr "Rediger kategori" +#: wp-signup.php:131 +msgid "Yes" +msgstr "Ja" + +#: wp-includes/admin-bar.php:368 +msgid "Sites" +msgstr "Nettsteder" + +#: wp-includes/admin-bar.php:380 wp-includes/admin-bar.php:658 +msgid "Themes" +msgstr "Temaer" + +#: wp-includes/admin-bar.php:342 +msgid "My Sites" +msgstr "Mine nettsteder" + #: wp-includes/post.php:1624 msgctxt "page" msgid "Add New" msgstr "Legg til ny" +#: wp-includes/deprecated.php:2737 +msgid "First Post" +msgstr "Første innlegg" + +#: wp-includes/class-wp-customize-manager.php:944 +#: wp-includes/class-wp-xmlrpc-server.php:419 +msgid "Site Title" +msgstr "Nettstedstittel" + +#: wp-includes/comment-template.php:2085 +msgid "Email" +msgstr "E-post" + #: wp-includes/class-wp-xmlrpc-server.php:479 msgid "Allow people to post comments on new articles" msgstr "Tillat andre å kommentere nye innlegg og sider." @@ -6071,7 +6085,7 @@ msgstr "Datoformat" msgid "Time Format" msgstr "Tidsformat" -#: wp-includes/class-wp-editor.php:902 wp-includes/media-template.php:918 +#: wp-includes/class-wp-editor.php:902 wp-includes/media-template.php:920 msgid "Height" msgstr "Høyde" @@ -6148,11 +6162,11 @@ msgstr "Beklager, men det er ikke åpent for kommentarer." msgid "Sorry, you must be logged in to post a comment." msgstr "Beklager, du må være innlogget for å kunne kommentere." -#: wp-includes/link-template.php:2108 wp-includes/link-template.php:2151 +#: wp-includes/link-template.php:2110 wp-includes/link-template.php:2153 msgid "« Previous Page" msgstr "« Forrige side" -#: wp-includes/link-template.php:2029 wp-includes/link-template.php:2152 +#: wp-includes/link-template.php:2031 wp-includes/link-template.php:2154 msgid "Next Page »" msgstr "Neste side »" @@ -6160,6 +6174,42 @@ msgstr "Neste side »" msgid "Comments on %s" msgstr "Kommentarer til %s" +#: wp-includes/theme-compat/comments-popup.php:35 +msgid "RSS feed for comments on this post." +msgstr "RSS-strøm med kommentarer til dette innlegget." + +#: wp-includes/theme-compat/comments-popup.php:65 +msgid "Leave a comment" +msgstr "Legg igjen en kommentar" + +#: wp-includes/theme-compat/comments.php:72 +msgid "Log out of this account" +msgstr "Logg ut fra denne kontoen" + +#: wp-includes/theme-compat/comments.php:72 +msgid "Log out »" +msgstr "Logg ut »" + +#: wp-includes/theme-compat/comments-popup.php:84 +msgid "URL" +msgstr "Tilbakesporings-URL" + +#: wp-includes/theme-compat/comments-popup.php:89 +msgid "Your Comment" +msgstr "Din kommentar" + +#: wp-includes/theme-compat/comments-popup.php:97 +msgid "Say It!" +msgstr "Si det!" + +#: wp-includes/theme-compat/comments-popup.php:102 +msgid "Sorry, the comment form is closed at this time." +msgstr "Beklager, men kommentarskjemaet er nå lukket." + +#: wp-includes/theme-compat/comments-popup.php:107 +msgid "Close this window." +msgstr "Lukk dette vinduet." + #: wp-includes/default-widgets.php:400 wp-includes/theme-compat/sidebar.php:75 msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform." msgstr "Drives med WordPress, toppmoderne personlig publiseringsverktøy." @@ -6180,8 +6230,8 @@ msgstr "1 kommentar" msgid "% Comments" msgstr "% kommentarer" -#: wp-includes/link-template.php:948 wp-includes/link-template.php:1214 -#: wp-includes/link-template.php:1316 wp-includes/link-template.php:1377 +#: wp-includes/link-template.php:950 wp-includes/link-template.php:1216 +#: wp-includes/link-template.php:1318 wp-includes/link-template.php:1379 msgid "Edit This" msgstr "Rediger dette" @@ -6190,10 +6240,22 @@ msgstr "Rediger dette" msgid "You must be logged in to post a comment." msgstr "Du må være innlogget for å kunne kommentere." +#: wp-includes/theme-compat/comments.php:80 +msgid "Mail (will not be published)" +msgstr "E-post (vil ikke bli publisert)" + +#: wp-includes/theme-compat/comments.php:91 +msgid "Submit Comment" +msgstr "Send kommentar" + #: wp-includes/category-template.php:1199 msgid "Tags: " msgstr "Stikkord: " +#: wp-includes/theme-compat/comments-popup.php:113 +msgid "Sorry, no posts matched your criteria." +msgstr "Beklager, ingen innlegg passet til kriteriene dine." + #: wp-includes/post-template.php:747 msgid "Pages:" msgstr "Sider:" @@ -6202,6 +6264,18 @@ msgstr "Sider:" msgid "Comments RSS" msgstr "Kommentarer RSS" +#: wp-includes/theme-compat/sidebar.php:73 +msgid "This page validates as XHTML 1.0 Transitional" +msgstr "Denne siden består av gyldig XHTML 1.0 Transitional" + +#: wp-includes/theme-compat/sidebar.php:73 +msgid "Valid XHTML" +msgstr "Gyldig XHTML" + +#: wp-includes/theme-compat/comments.php:49 +msgid "Comments are closed." +msgstr "Kommentarer er stengt." + #: wp-includes/comment-template.php:1806 msgid "%s says:" msgstr "%s sier:" @@ -6210,6 +6284,7 @@ msgstr "%s sier:" msgid "Your comment is awaiting moderation." msgstr "Din kommentar avventer moderasjon." +#. translators: 1: date, 2: time #: wp-includes/comment-template.php:1816 msgid "%1$s at %2$s" msgstr "%1$s, kl. %2$s" @@ -6372,8 +6447,12 @@ msgstr "Legg igjen en kommentar til %s" msgid "Author" msgstr "Forfatter" +#: wp-includes/theme-compat/comments-popup.php:79 wp-login.php:715 +msgid "E-mail" +msgstr "E-post" + #: wp-includes/class-wp-editor.php:1385 wp-includes/media-template.php:360 -#: wp-includes/media-template.php:537 wp-includes/media.php:2902 +#: wp-includes/media-template.php:539 wp-includes/media.php:2911 msgid "URL" msgstr "URL" @@ -6386,12 +6465,16 @@ msgstr "Kommentar" msgid "Are you sure you want to do this?" msgstr "Sikker på at det er dette du vil?" +#: wp-signup.php:135 +msgid "No" +msgstr "Nei" + #: wp-includes/comment-template.php:1774 wp-includes/comment-template.php:1860 -#: wp-includes/media-template.php:576 +#: wp-includes/media-template.php:578 msgid "Edit" msgstr "Rediger" -#: wp-includes/media.php:3023 +#: wp-includes/media.php:3032 msgid "No media attachments found." msgstr "Ingen medievedlegg ble funnet." @@ -6400,7 +6483,7 @@ msgstr "Ingen medievedlegg ble funnet." msgid "Undo" msgstr "Angre" -#: wp-includes/class-wp-customize-widgets.php:724 wp-includes/media.php:2946 +#: wp-includes/class-wp-customize-widgets.php:724 wp-includes/media.php:2955 msgid "Apply" msgstr "Bruk" @@ -6420,11 +6503,13 @@ msgstr "Utdrag" msgid "Revisions" msgstr "Revisjoner" +#. translators: comment status #: wp-includes/comment.php:534 msgctxt "adjective" msgid "Approved" msgstr "Godkjent" +#. translators: comment status #: wp-includes/comment.php:536 msgctxt "adjective" msgid "Spam" @@ -6463,16 +6548,22 @@ msgstr "Kategorier" msgid "Advanced" msgstr "Avansert" +#: wp-includes/comment-template.php:2083 +#: wp-includes/theme-compat/comments-popup.php:74 +#: wp-includes/theme-compat/comments.php:77 +msgid "Name" +msgstr "Navn" + #: wp-includes/class-wp-editor.php:814 wp-includes/media-template.php:390 -#: wp-includes/media-template.php:567 +#: wp-includes/media-template.php:569 msgid "Description" msgstr "Beskrivelse" -#: wp-includes/deprecated.php:707 wp-includes/media-template.php:607 -#: wp-includes/media-template.php:653 wp-includes/media-template.php:712 -#: wp-includes/media-template.php:813 wp-includes/media-template.php:828 -#: wp-includes/media-template.php:879 wp-includes/media-template.php:941 -#: wp-includes/media-template.php:1039 wp-includes/media-template.php:1129 +#: wp-includes/deprecated.php:707 wp-includes/media-template.php:609 +#: wp-includes/media-template.php:655 wp-includes/media-template.php:714 +#: wp-includes/media-template.php:815 wp-includes/media-template.php:830 +#: wp-includes/media-template.php:881 wp-includes/media-template.php:943 +#: wp-includes/media-template.php:1041 wp-includes/media-template.php:1131 #: wp-includes/script-loader.php:315 msgid "None" msgstr "Ingen" @@ -6507,6 +6598,10 @@ msgstr "Vis innlegg" msgid "Edit Post" msgstr "Rediger innlegg" +#: wp-includes/admin-bar.php:374 +msgid "Users" +msgstr "Brukere" + #: wp-includes/script-loader.php:531 msgid "Done" msgstr "Ferdig" @@ -6535,8 +6630,12 @@ msgstr "Forhåndsvis" msgid "Recent Comments" msgstr "Siste kommentarer" +#: wp-includes/admin-bar.php:386 +msgid "Plugins" +msgstr "Utvidelser" + #: wp-includes/class-wp-editor.php:787 wp-includes/class-wp-editor.php:1423 -#: wp-includes/media.php:2906 wp-includes/script-loader.php:388 +#: wp-includes/media.php:2915 wp-includes/script-loader.php:388 #: wp-includes/script-loader.php:439 msgid "Cancel" msgstr "Avbryt" @@ -6594,7 +6693,11 @@ msgstr "Sidekolonnen" msgid "Archives" msgstr "Arkiv" -#: wp-includes/general-template.php:406 wp-login.php:871 +#: wp-includes/general-template.php:405 wp-login.php:711 wp-login.php:871 +msgid "Username" +msgstr "Brukernavn" + +#: wp-includes/general-template.php:406 wp-login.php:875 msgid "Password" msgstr "Passord" @@ -6603,8 +6706,8 @@ msgstr "Passord" msgid "Redo" msgstr "Gjør om" -#: wp-includes/media-template.php:672 wp-includes/media-template.php:896 -#: wp-includes/media.php:2674 +#: wp-includes/media-template.php:674 wp-includes/media-template.php:898 +#: wp-includes/media.php:2683 msgid "Thumbnail" msgstr "Miniatyrbilde" @@ -6620,63 +6723,63 @@ msgstr "Bildebilioteket GD er ikke installert." msgid "File “%s” is not an image." msgstr "Filen «%s» er ikke et bilde." -#: wp-includes/media.php:2903 +#: wp-includes/media.php:2912 msgid "Add Media" msgstr "Legg til media" #: wp-includes/class-wp-editor.php:1253 wp-includes/media-template.php:324 -#: wp-includes/media-template.php:483 +#: wp-includes/media-template.php:485 msgid "Saved." msgstr "Lagret." #: wp-includes/class-wp-customize-manager.php:1070 -#: wp-includes/class-wp-editor.php:906 wp-includes/media-template.php:598 -#: wp-includes/media-template.php:804 wp-includes/media-template.php:870 +#: wp-includes/class-wp-editor.php:906 wp-includes/media-template.php:600 +#: wp-includes/media-template.php:806 wp-includes/media-template.php:872 msgid "Left" msgstr "Venstre" #: wp-includes/class-wp-customize-manager.php:1071 -#: wp-includes/class-wp-editor.php:907 wp-includes/media-template.php:601 -#: wp-includes/media-template.php:807 wp-includes/media-template.php:873 +#: wp-includes/class-wp-editor.php:907 wp-includes/media-template.php:603 +#: wp-includes/media-template.php:809 wp-includes/media-template.php:875 msgid "Center" msgstr "Senter" #: wp-includes/class-wp-customize-manager.php:1072 -#: wp-includes/class-wp-editor.php:908 wp-includes/media-template.php:604 -#: wp-includes/media-template.php:810 wp-includes/media-template.php:876 +#: wp-includes/class-wp-editor.php:908 wp-includes/media-template.php:606 +#: wp-includes/media-template.php:812 wp-includes/media-template.php:878 msgid "Right" msgstr "Høyre" -#: wp-includes/media-template.php:673 wp-includes/media-template.php:897 -#: wp-includes/media.php:2675 +#: wp-includes/media-template.php:675 wp-includes/media-template.php:899 +#: wp-includes/media.php:2684 msgid "Medium" msgstr "Medium" -#: wp-includes/media-template.php:675 wp-includes/media-template.php:899 -#: wp-includes/media.php:2677 +#: wp-includes/media-template.php:677 wp-includes/media-template.php:901 +#: wp-includes/media.php:2686 msgid "Full Size" msgstr "Full størrelse" -#: wp-includes/media-template.php:663 wp-includes/media-template.php:887 +#: wp-includes/media-template.php:665 wp-includes/media-template.php:889 msgid "Size" msgstr "Størrelse" -#: wp-includes/class-wp-editor.php:905 wp-includes/media-template.php:590 +#: wp-includes/class-wp-editor.php:905 wp-includes/media-template.php:592 msgid "Alignment" msgstr "Stille opp" #: wp-includes/class-wp-editor.php:904 wp-includes/media-template.php:380 -#: wp-includes/media-template.php:557 wp-includes/media-template.php:790 -#: wp-includes/media-template.php:855 +#: wp-includes/media-template.php:559 wp-includes/media-template.php:792 +#: wp-includes/media-template.php:857 msgid "Caption" msgstr "Bildetekst" -#: wp-includes/media-template.php:316 wp-includes/media-template.php:507 -#: wp-includes/media.php:2975 +#: wp-includes/media-template.php:316 wp-includes/media-template.php:509 +#: wp-includes/media.php:2984 msgid "Edit Image" msgstr "Rediger bilde" -#: wp-includes/media-template.php:822 wp-includes/media-template.php:934 +#: wp-includes/media-template.php:824 wp-includes/media-template.php:936 msgid "Image URL" msgstr "Bilde URL" @@ -6701,10 +6804,19 @@ msgstr "Privat" msgid "Public, Sticky" msgstr "Offentlig, klebrig" +#: wp-includes/script-loader.php:453 +msgid "Public" +msgstr "Offentlig" + #: wp-includes/script-loader.php:448 msgid "Schedule" msgstr "Planlegg" +#: wp-includes/class-wp-editor.php:1188 wp-includes/media.php:2916 +#: wp-includes/script-loader.php:358 wp-includes/script-loader.php:449 +msgid "Update" +msgstr "Oppdater" + #: wp-includes/taxonomy.php:488 msgid "Add or remove tags" msgstr "Legg til eller fjern stikkord" @@ -6718,7 +6830,7 @@ msgid "Dismiss" msgstr "Lukk" #: wp-includes/admin-bar.php:730 wp-includes/class-wp-editor.php:1398 -#: wp-includes/media.php:2904 +#: wp-includes/media.php:2913 msgid "Search" msgstr "Søk" @@ -6738,7 +6850,7 @@ msgstr "Lenker" msgid "Uncategorized" msgstr "Ukategorisert" -#: wp-includes/pluggable.php:1641 +#: wp-includes/pluggable.php:1647 msgid "E-mail: %s" msgstr "E-post: %s" @@ -6753,7 +6865,7 @@ msgstr "Sider" msgid "Close" msgstr "Lukk" -#: wp-includes/media.php:2905 +#: wp-includes/media.php:2914 msgid "Select" msgstr "Velg" @@ -6769,7 +6881,7 @@ msgstr "Rediger media" msgid "New Post" msgstr "Nytt innlegg" -#: wp-includes/media.php:2650 wp-includes/script-loader.php:360 +#: wp-includes/media.php:2659 wp-includes/script-loader.php:360 #: wp-includes/script-loader.php:483 msgid "(no title)" msgstr "(ingen tittel)" @@ -6782,6 +6894,10 @@ msgstr "Aktiveringsnøkkel påkrevet" msgid "Activation Key:" msgstr "Aktiveringsnøkkel:" +#: wp-activate.php:80 +msgid "Activate" +msgstr "Aktiver" + #: wp-activate.php:92 wp-activate.php:111 msgid "Your account is now active!" msgstr "Kontoen din er nå aktiv!" @@ -6794,10 +6910,25 @@ msgstr "En feil oppstod under aktivering" msgid "Username:" msgstr "Brukernavn:" +#: wp-activate.php:115 wp-includes/post-template.php:1567 +msgid "Password:" +msgstr "Passord:" + +#: wp-includes/class-wp-customize-manager.php:125 +#: wp-includes/script-loader.php:390 +msgid "Cheatin’ uh?" +msgstr "Jukser vi?" + #: wp-includes/post.php:1630 msgid "No posts found." msgstr "Ingen innlegg funnet." +#: wp-includes/class-wp-editor.php:811 wp-includes/class-wp-editor.php:1388 +#: wp-includes/media-template.php:365 wp-includes/media-template.php:544 +#: wp-includes/media-template.php:775 wp-includes/revision.php:29 +msgid "Title" +msgstr "Tittel" + #: wp-includes/post.php:908 wp-includes/post.php:928 #: wp-includes/script-loader.php:457 msgid "Published" diff --git a/wp-content/languages/plugins/akismet-nb_NO.mo b/wp-content/languages/plugins/akismet-nb_NO.mo index fb6509e..6407dd2 100644 Binary files a/wp-content/languages/plugins/akismet-nb_NO.mo and b/wp-content/languages/plugins/akismet-nb_NO.mo differ diff --git a/wp-content/languages/plugins/akismet-nb_NO.po b/wp-content/languages/plugins/akismet-nb_NO.po index ce88e68..f1bb49c 100644 --- a/wp-content/languages/plugins/akismet-nb_NO.po +++ b/wp-content/languages/plugins/akismet-nb_NO.po @@ -10,7 +10,13 @@ msgstr "" "X-Generator: GlotPress/0.1\n" "Project-Id-Version: Development\n" -#: class.akismet-admin.php:680 +#: views/config.php:97 +msgid "Spam in the spam folder older than 1 day is deleted automatically." +msgid_plural "Spam in the spam folder older than %2$d days is deleted automatically." +msgstr[0] "" +msgstr[1] "" + +#: class.akismet-admin.php:700 msgid "Please check your Akismet configuration and contact your web host if problems persist." msgstr "Vennligst sjekk din Akismet-konfigurasjon og kontakt din web-admin hvis problemet vedvarer." @@ -46,23 +52,23 @@ msgstr "Ditt abonnement på %s er avbrutt" msgid "Reactivate Akismet" msgstr "Reaktiver Akismet" -#: views/config.php:136 +#: views/config.php:152 msgid "Cancelled" msgstr "Avbrutt" -#: views/config.php:138 +#: views/config.php:154 msgid "Suspended" msgstr "Suspendert" -#: views/config.php:140 +#: views/config.php:156 msgid "Missing" msgstr "Savnes" -#: views/config.php:142 +#: views/config.php:158 msgid "No Subscription Found" msgstr "Ikke noe abonnement funnet" -#: views/config.php:144 +#: views/config.php:160 msgid "Active" msgstr "Aktiv" @@ -74,11 +80,11 @@ msgstr "Det er et problem med din nøkkel." msgid "Since 2012, Akismet began using subscriptions for all accounts (even free ones). It looks like a subscription has not been assigned to your account, and we’d appreciate it if you’d sign into your account and choose one. Please contact our support team with any questions." msgstr "Siden 2012 har Akismet begynt å bruke abonnementer for alle kontoer (også gratiskontoer). Det ser ikke ut til at et abonnement har blitt knyttet til din konto, og vi setter pris på om du logger inn i din konto og velger en. Vennligst kontakt vårt support-team hvis du har noen spørsmål." -#: class.akismet-admin.php:195 views/config.php:84 +#: class.akismet-admin.php:196 views/config.php:84 msgid "Strictness" msgstr "Strenghet" -#: class.akismet-admin.php:195 +#: class.akismet-admin.php:196 msgid "Choose to either discard the worst spam automatically or to always put all spam in spam folder." msgstr "Velg om du skal slette den verste spammen automatisk eller alltid putte all spam i spam-mappen." @@ -90,7 +96,7 @@ msgstr "Forkast de verste og mest utbredte useriøse innholdet i bakgrunnen slik msgid "Always put spam in the Spam folder for review." msgstr "Legg alltid useriøst innhold for gjennomgang i mappen Useriøse." -#: class.akismet-admin.php:194 views/config.php:75 +#: class.akismet-admin.php:195 views/config.php:75 msgid "Comments" msgstr "Kommentarer" @@ -126,6 +132,8 @@ msgstr "Akismet %s krever WordPress 3.0 eller nyere." msgid "Akismet Error Code: %s" msgstr "Akismet feilkode: %s" +#. translators: the placeholder is a clickable URL that leads to more +#. information regarding an error code. #: views/notice.php:35 msgid "For more information: %s" msgstr "For mer informasjon: %s" @@ -250,109 +258,109 @@ msgstr "Strengt: forkast det verste og mest utbredte useriøse innholdet." msgid "Safe: always put spam in the Spam folder for review." msgstr "Trygg: legg alltid useriøst innhold for gjennomgang i Useriøs-mappen." -#: class.akismet-admin.php:52 +#: class.akismet-admin.php:53 msgid "Comment History" msgstr "Kommentarhistorikk" -#: class.akismet-admin.php:75 class.akismet-admin.php:77 -#: class.akismet-admin.php:737 views/config.php:3 +#: class.akismet-admin.php:76 class.akismet-admin.php:78 +#: class.akismet-admin.php:757 views/config.php:3 msgid "Akismet" msgstr "Akismet" -#: class.akismet-admin.php:103 +#: class.akismet-admin.php:104 msgid "Remove this URL" msgstr "Slett denne URL-en" -#: class.akismet-admin.php:104 +#: class.akismet-admin.php:105 msgid "Removing..." msgstr "Sletter..." -#: class.akismet-admin.php:105 +#: class.akismet-admin.php:106 msgid "URL removed" msgstr "URL slettet" -#: class.akismet-admin.php:106 +#: class.akismet-admin.php:107 msgid "(undo)" msgstr "(angre)" -#: class.akismet-admin.php:107 +#: class.akismet-admin.php:108 msgid "Re-adding..." msgstr "Legger til igjen..." -#: class.akismet-admin.php:128 class.akismet-admin.php:166 -#: class.akismet-admin.php:179 +#: class.akismet-admin.php:129 class.akismet-admin.php:167 +#: class.akismet-admin.php:180 msgid "Overview" msgstr "Oversikt" -#: class.akismet-admin.php:130 class.akismet-admin.php:141 -#: class.akismet-admin.php:152 +#: class.akismet-admin.php:131 class.akismet-admin.php:142 +#: class.akismet-admin.php:153 msgid "Akismet Setup" msgstr "Konfigurering av Akismet" -#: class.akismet-admin.php:131 class.akismet-admin.php:169 -#: class.akismet-admin.php:182 +#: class.akismet-admin.php:132 class.akismet-admin.php:170 +#: class.akismet-admin.php:183 msgid "Akismet filters out your comment and trackback spam for you, so you can focus on more important things." msgstr "Akismet filtrerer dine kommentarer og tilbakesporinger for deg slik at du kan konsentrere deg om viktigere ting." -#: class.akismet-admin.php:132 +#: class.akismet-admin.php:133 msgid "On this page, you are able to setup the Akismet plugin." msgstr "På denne siden kan du konfigurere Akismet-utvidelsen." -#: class.akismet-admin.php:139 +#: class.akismet-admin.php:140 msgid "New to Akismet" msgstr "Fersk med Akismet" -#: class.akismet-admin.php:142 +#: class.akismet-admin.php:143 msgid "You need to enter an API key to activate the Akismet service on your site." msgstr "Du trenger an API-nøkkel for å aktivere Akismet-tjenesten på ditt nettsted." -#: class.akismet-admin.php:143 +#: class.akismet-admin.php:144 msgid "Signup for an account on %s to get an API Key." msgstr "Registrer deg for en konto på %s og få en API-nøkkel." -#: class.akismet-admin.php:150 +#: class.akismet-admin.php:151 msgid "Enter an API Key" msgstr "Skriv inn en API-nøkkel" -#: class.akismet-admin.php:153 +#: class.akismet-admin.php:154 msgid "If you already have an API key" msgstr "Du har allerede en API-nøkkel" -#: class.akismet-admin.php:155 +#: class.akismet-admin.php:156 msgid "Copy and paste the API key into the text field." msgstr "Kopier og lim inn API-nøkkelen i tekstfeltet." -#: class.akismet-admin.php:156 +#: class.akismet-admin.php:157 msgid "Click the Use this Key button." msgstr "Trykk på knappen Bruk denne nøkkelen." -#: class.akismet-admin.php:168 views/stats.php:2 +#: class.akismet-admin.php:169 views/stats.php:2 msgid "Akismet Stats" msgstr "Akismet statistikk" -#: class.akismet-admin.php:170 +#: class.akismet-admin.php:171 msgid "On this page, you are able to view stats on spam filtered on your site." msgstr "På denne siden kan du se statistikk for useriøst innhold filtrert på ditt nettsted." -#: class.akismet-admin.php:181 class.akismet-admin.php:192 -#: class.akismet-admin.php:204 +#: class.akismet-admin.php:182 class.akismet-admin.php:193 +#: class.akismet-admin.php:205 msgid "Akismet Configuration" msgstr "Akismet innstillinger" -#: class.akismet-admin.php:183 +#: class.akismet-admin.php:184 msgid "On this page, you are able to enter/remove an API key, view account information and view spam stats." msgstr "På denne siden kan du legge inn eller fjerne en API-nøkkel, vise kontoinformasjon og vise statistikk over useriøst innhold." -#: class.akismet-admin.php:68 class.akismet-admin.php:190 -#: class.akismet-admin.php:503 views/config.php:60 views/stats.php:2 +#: class.akismet-admin.php:69 class.akismet-admin.php:191 +#: class.akismet-admin.php:508 views/config.php:60 views/stats.php:2 msgid "Settings" msgstr "Innstillinger" -#: class.akismet-admin.php:193 views/config.php:67 +#: class.akismet-admin.php:194 views/config.php:67 msgid "API Key" msgstr "API-nøkkel" -#: class.akismet-admin.php:193 +#: class.akismet-admin.php:194 msgid "Enter/remove an API key." msgstr "Legg til eller fjern en API-nøkkel." @@ -360,156 +368,156 @@ msgstr "Legg til eller fjern en API-nøkkel." msgid "Show the number of approved comments beside each comment author" msgstr "Vis antall godkjente kommentarer ved siden av hver kommentarforfatter" -#: class.akismet-admin.php:194 +#: class.akismet-admin.php:195 msgid "Show the number of approved comments beside each comment author in the comments list page." msgstr "Vis antallet godkjente kommentarer ved siden av hver kommentarforfatter i på siden med kommentarlisten." -#: class.akismet-admin.php:202 views/config.php:119 +#: class.akismet-admin.php:203 views/config.php:135 msgid "Account" msgstr "Konto" -#: class.akismet-admin.php:205 views/config.php:124 +#: class.akismet-admin.php:206 views/config.php:140 msgid "Subscription Type" msgstr "Type abonnement" -#: class.akismet-admin.php:205 +#: class.akismet-admin.php:206 msgid "The Akismet subscription plan" msgstr "Akismet abonnementer" -#: class.akismet-admin.php:206 views/config.php:131 +#: class.akismet-admin.php:207 views/config.php:147 msgid "Status" msgstr "Status" -#: class.akismet-admin.php:206 +#: class.akismet-admin.php:207 msgid "The subscription status - active, cancelled or suspended" msgstr "Abonnementets status - aktivt, avbrutt eller avsluttet." -#: class.akismet-admin.php:214 +#: class.akismet-admin.php:215 msgid "For more information:" msgstr "For mer informasjon:" -#: class.akismet-admin.php:215 +#: class.akismet-admin.php:216 msgid "Akismet FAQ" msgstr "Akismet FAQ" -#: class.akismet-admin.php:216 +#: class.akismet-admin.php:217 msgid "Akismet Support" msgstr "Akismet brukerstøtte" -#: class.akismet-admin.php:222 +#: class.akismet-admin.php:223 msgid "Cheatin’ uh?" msgstr "Jukser du?" -#: class.akismet-admin.php:281 +#: class.akismet-admin.php:282 msgctxt "comments" msgid "Spam" msgstr "Useriøse" -#: class.akismet-admin.php:283 +#: class.akismet-admin.php:284 msgid "Akismet has protected your site from %3$s spam comment." msgid_plural "Akismet has protected your site from %3$s spam comments." msgstr[0] "Akismet har beskyttet ditt nettsted fra %3$s useriøs kommentar." msgstr[1] "Akismet har beskyttet dit nettsted fra %3$s useriøse kommentarer." -#: class.akismet-admin.php:302 +#: class.akismet-admin.php:303 msgid "Akismet has protected your site from %2$s spam comment already. " msgid_plural "Akismet has protected your site from %2$s spam comments already. " msgstr[0] "Akismet har beskyttet din side mot %2$s useriøs kommentar allerede." msgstr[1] "Akismet har beskyttet din side mot %2$s useriøse kommentarer allerede." -#: class.akismet-admin.php:308 +#: class.akismet-admin.php:309 msgid "Akismet blocks spam from getting to your blog. " msgstr "Akismet hindrer useriøst innhold fra å komme inn i ditt nettsted. " -#: class.akismet-admin.php:313 +#: class.akismet-admin.php:314 msgid "There’s %1$s comment in your spam queue right now." msgid_plural "There are %1$s comments in your spam queue right now." msgstr[0] "Det er akkurat nå %1$s kommentar din useriøs-kø." msgstr[1] "Det er akkurat nå %1$s kommentarer i din useriøs-kø." -#: class.akismet-admin.php:319 +#: class.akismet-admin.php:320 msgid "There’s nothing in your spam queue at the moment." msgstr "Akkurat nå er det er intet i din useriøs-kø." -#: class.akismet-admin.php:335 +#: class.akismet-admin.php:340 msgid "Check for Spam" msgstr "Se etter useriøse" -#: class.akismet.php:424 +#: class.akismet.php:442 msgid "%1$s changed the comment status to %2$s" msgstr "%1$s endret kommentarens status til %2$s" -#: class.akismet-admin.php:377 +#: class.akismet-admin.php:382 msgid "Akismet re-checked and caught this comment as spam" msgstr "Akismet re-sjekket og fanget denne kommentaren som useriøs" -#: class.akismet-admin.php:383 +#: class.akismet-admin.php:388 msgid "Akismet re-checked and cleared this comment" msgstr "Akismet re-sjekket og klarerte denne kommentaren" -#: class.akismet-admin.php:387 +#: class.akismet-admin.php:392 msgid "Akismet was unable to re-check this comment (response: %s)" msgstr "Akismet klarte ikke å re-sjekke denne kommentaren (respons:%s)" -#: class.akismet-admin.php:441 +#: class.akismet-admin.php:446 msgid "Awaiting spam check" msgstr "Avventer spam-sjekk" -#: class.akismet-admin.php:445 +#: class.akismet-admin.php:450 msgid "Flagged as spam by Akismet" msgstr "Merket som useriøst av Akismet" -#: class.akismet-admin.php:447 +#: class.akismet-admin.php:452 msgid "Cleared by Akismet" msgstr "Godkjent av Akismet" -#: class.akismet-admin.php:451 +#: class.akismet-admin.php:456 msgid "Flagged as spam by %s" msgstr "Merket som useriøs av %s" -#: class.akismet-admin.php:453 +#: class.akismet-admin.php:458 msgid "Un-spammed by %s" msgstr "Merket som ikke useriøs av %s" -#: class.akismet-admin.php:465 class.akismet-admin.php:473 +#: class.akismet-admin.php:470 class.akismet-admin.php:478 msgid "View comment history" msgstr "Se kommentarhistorikk" -#: class.akismet-admin.php:465 +#: class.akismet-admin.php:470 msgid "History" msgstr "Historikk" -#: class.akismet-admin.php:481 +#: class.akismet-admin.php:486 msgid "%s approved" msgid_plural "%s approved" msgstr[0] "%s godkjent" msgstr[1] "%s godkjente" -#: class.akismet-admin.php:494 +#: class.akismet-admin.php:499 msgid "%s ago" msgstr "%s siden" -#: class.akismet.php:469 +#: class.akismet.php:487 msgid "%s reported this comment as spam" msgstr "%s rapporterte denne kommentaren som useriøs" -#: class.akismet.php:515 +#: class.akismet.php:533 msgid "%s reported this comment as not spam" msgstr "%s rapporterte denne kommentaren som ikke useriøs" -#: class.akismet-admin.php:767 +#: class.akismet-admin.php:787 msgid "Cleaning up spam takes time." msgstr "Opprenskning av useriøst innhold tar tid." -#: class.akismet-admin.php:770 +#: class.akismet-admin.php:790 msgid "Since you joined us, Akismet has saved you %s days!" msgstr "Siden du ble med har Akismet spart deg for %s dager!" -#: class.akismet-admin.php:772 +#: class.akismet-admin.php:792 msgid "Since you joined us, Akismet has saved you %d hours!" msgstr "Siden du ble med har Akismet spart deg for %d timer!" -#: class.akismet-admin.php:774 +#: class.akismet-admin.php:794 msgid "Since you joined us, Akismet has saved you %d minutes!" msgstr "Siden du ble med har Aksimet spart deg for %d minutter!" @@ -555,19 +563,19 @@ msgstr "Kommentaren ble fanget opp av wp_blacklist_check" msgid "Akismet was unable to check this comment (response: %s), will automatically retry again later." msgstr "Akismet var ikke i stand til å sjekke denne kommentaren (respons: %s), men vil automatisk prøve på nytt igjen senere." -#: class.akismet.php:555 +#: class.akismet.php:573 msgid "Akismet caught this comment as spam during an automatic retry." msgstr "Akismet fanget denne kommentaren som useriøs i løpet av en automatisk re-sjekk." -#: class.akismet.php:557 +#: class.akismet.php:575 msgid "Akismet cleared this comment during an automatic retry." msgstr "Akismet godkjente denne kommentaren ved en ny automatisk kontroll." -#: class.akismet.php:905 +#: class.akismet.php:923 msgid "Akismet %s requires WordPress %s or higher." msgstr "Akismet %s krever WordPress %s eller nyere." -#: class.akismet.php:905 views/notice.php:27 +#: class.akismet.php:923 views/notice.php:27 msgid "Please upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin." msgstr "Vennligst oppgrader WordPress til en nyere versjon eller nedgrader til versjon 2.4 av utvidelsen Akismet.." @@ -605,27 +613,23 @@ msgstr "Vis godkjente kommentarer" msgid "Note:" msgstr "Merk:" -#: views/config.php:91 -msgid "Spam in the spam folder older than 15 days is deleted automatically." -msgstr "Useriøst innhold eldre en 15 dager i useriøs-mappen slettes automatisk." - -#: views/config.php:100 +#: views/config.php:116 msgid "Disconnect this account" msgstr "Koble fra denne kontoen" -#: views/config.php:106 +#: views/config.php:122 msgid "Save Changes" msgstr "Lagre endringer" -#: views/config.php:150 +#: views/config.php:166 msgid "Next Billing Date" msgstr "Neste fakturadato" -#: views/config.php:162 +#: views/config.php:178 msgid "Upgrade" msgstr "Oppgrader" -#: views/config.php:162 +#: views/config.php:178 msgid "Change" msgstr "Endre" diff --git a/wp-content/languages/themes/twentyfourteen-nb_NO.po b/wp-content/languages/themes/twentyfourteen-nb_NO.po index e151c54..16270ec 100644 --- a/wp-content/languages/themes/twentyfourteen-nb_NO.po +++ b/wp-content/languages/themes/twentyfourteen-nb_NO.po @@ -38,6 +38,7 @@ msgstr "Flere gallerier" msgid "More asides" msgstr "Flere notiser" +#. translators: used with More archives link #: inc/widgets.php:206 msgid "%s →" msgstr "%s →" @@ -52,6 +53,7 @@ msgstr "fremhevet" msgid "Use this widget to list your recent Aside, Quote, Video, Audio, Image, Gallery, and Link posts." msgstr "Bruk denne widgeten for å vise dine siste notis-, sitat-, video-, lyd-, bilde-, galleri- og lenke-innlegg." +#. Theme URI of the plugin/theme msgid "http://wordpress.org/themes/twentyfourteen" msgstr "http://wordpress.org/themes/twentyfourteen" @@ -93,6 +95,7 @@ msgstr "Stikkord" msgid "Don’t display tag on front end." msgstr "Ikke vis dette stikkordet på fremsidene." +#. Description of the plugin/theme msgid "In 2014, our default theme lets you create a responsive magazine website with a sleek, modern design. Feature your favorite homepage content in either a grid or a slider. Use the three widget areas to customize your website, and change your content's layout with a full-width page template and a contributor page to show off your authors. Creating a magazine website with WordPress has never been easier." msgstr "I 2014 gjør vårt standardtema deg i stand til å lage et responsivt magasinnettsted med et moderne design. Fremhev ditt favorittinnhold i et rutenett eller en slider. Bruk de tre widgetområdene for å tilpasse nettstedet og endre layouten med fullbreddeformat og bidragsytersider for å fremheve dine ulike forfattere. Å lage et magasinnettsted med WordPress har aldri vært enklere." @@ -215,6 +218,7 @@ msgstr "Antall innlegg som skal vises:" msgid "Post format to show:" msgstr "Innleggsformat som skal vises:" +#. Template Name of the plugin/theme msgid "Contributor Page" msgstr "Bidragsyters side" @@ -301,6 +305,8 @@ msgstr "% kommentarer" msgid "Continue reading →" msgstr "Les videre →" +#. #-#-#-#-# twentyfourteen.pot (Twenty Fourteen 1.2) #-#-#-#-# +#. Author URI of the plugin/theme #: footer.php:21 msgid "http://wordpress.org/" msgstr "http://nb.wordpress.org/" @@ -414,12 +420,16 @@ msgstr "Sitater" msgid "Search Results for: %s" msgstr "Søkeresultater for: %s" +#. #-#-#-#-# twentyfourteen.pot (Twenty Fourteen 1.2) #-#-#-#-# +#. Theme Name of the plugin/theme #: inc/customizer.php:99 msgid "Twenty Fourteen" msgstr "Twenty Fourteen" +#. Author of the plugin/theme msgid "the WordPress team" msgstr "WordPress-gjengen" +#. Template Name of the plugin/theme msgid "Full Width Page" msgstr "Side i full bredde" \ No newline at end of file diff --git a/wp-content/languages/themes/twentythirteen-nb_NO.po b/wp-content/languages/themes/twentythirteen-nb_NO.po index 5acb690..8a5003a 100644 --- a/wp-content/languages/themes/twentythirteen-nb_NO.po +++ b/wp-content/languages/themes/twentythirteen-nb_NO.po @@ -14,6 +14,7 @@ msgstr "" msgid "Not Found" msgstr "Ikke funnet" +#. Description of the plugin/theme msgid "The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small." msgstr "2013-temaet for WordPress tar oss tilbake til bloggen, med alle mulige innleggsformater, og hvert eneste format vises på sin unike måte. Twenty Thirteen har drøssevis av designdetaljer, som fargeskjema og matchende toppbilder, flott typografi, ikoner og et fleksibelt oppsett som ser fantastisk ut på både data, nettbrett og mobil." @@ -21,6 +22,7 @@ msgstr "2013-temaet for WordPress tar oss tilbake til bloggen, med alle mulige i msgid "Appears in the footer section of the site." msgstr "Vises i bunnområdet på netttedet." +#. Theme URI of the plugin/theme msgid "http://wordpress.org/themes/twentythirteen" msgstr "http://wordpress.org/themes/twentythirteen" @@ -176,6 +178,8 @@ msgstr "Beklager, ingenting passet til dine søkekriterier. Vennligst prøv igje msgid "It seems we can’t find what you’re looking for. Perhaps searching can help." msgstr "Vi klarer ikke å finne det du leter etter. Prøv å søke." +#. #-#-#-#-# twentythirteen.pot (Twenty Thirteen 1.3) #-#-#-#-# +#. Author URI of the plugin/theme #: footer.php:19 msgid "http://wordpress.org/" msgstr "http://wordpress.org/" @@ -192,11 +196,17 @@ msgstr "Stolt drevet av %s" msgid "Navigation Menu" msgstr "Navigasjonsmeny" +#. Translators: If there are characters in your language that are not +#. * supported by Source Sans Pro, translate this to 'off'. Do not translate +#. * into your own language. #: functions.php:128 msgctxt "Source Sans Pro font: on or off" msgid "on" msgstr "på" +#. Translators: If there are characters in your language that are not +#. * supported by Bitter, translate this to 'off'. Do not translate into your +#. * own language. #: functions.php:134 msgctxt "Bitter font: on or off" msgid "on" @@ -236,6 +246,7 @@ msgstr "%title →" msgid "Sticky" msgstr "Fremhevet" +#. Translators: used between list items, there is a space after the comma. #: functions.php:328 functions.php:334 msgid ", " msgstr ", " @@ -296,8 +307,10 @@ msgstr "Stikkordarkiv: %s" msgid "%s Archives" msgstr "Arkiv for %s" +#. Theme Name of the plugin/theme msgid "Twenty Thirteen" msgstr "Twenty Thirteen" +#. Author of the plugin/theme msgid "the WordPress team" msgstr "WordPress-gjengen" \ No newline at end of file diff --git a/wp-content/languages/themes/twentytwelve-nb_NO.po b/wp-content/languages/themes/twentytwelve-nb_NO.po index 743376a..d436228 100644 --- a/wp-content/languages/themes/twentytwelve-nb_NO.po +++ b/wp-content/languages/themes/twentytwelve-nb_NO.po @@ -10,6 +10,7 @@ msgstr "" "X-Generator: GlotPress/0.1\n" "Project-Id-Version: Twenty Twelve\n" +#. Theme URI of the plugin/theme msgid "http://wordpress.org/themes/twentytwelve" msgstr "http://wordpress.org/themes/twentytwelve" @@ -21,14 +22,22 @@ msgstr "Svar" msgid "Published at %4$s × %5$s in %8$s." msgstr "Publisert , %4$s × %5$s i %8$s." +#. Description of the plugin/theme msgid "The 2012 theme for WordPress is a fully responsive theme that looks great on any device. Features include a front page template with its own widgets, an optional display font, styling for post formats on both index and single views, and an optional no-sidebar page template. Make it yours with a custom menu, header image, and background." msgstr "2012-temaet for WordPress er et helresponsivt tema som ser bra ut både på såvel mobil som datamaskin. Funksjoner inkluderer forsidemal med egne widgeter, en valgfri visningsfont, stiler for innleggsformater, både i arkivvisning og enkeltvisning, og en valgfri sidemal uten sidekolonne. Gjør temaet til ditt eget med en egendefinert meny, toppbilde og bakgrunn." +#. translators: If there are characters in your language that are not supported +#. * by Open Sans, translate this to 'off'. Do not translate into your own +#. language. #: functions.php:101 msgctxt "Open Sans font: on or off" msgid "on" msgstr "on" +#. translators: To add an additional Open Sans character subset specific to +#. your language, +#. * translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate +#. into your own language. #: functions.php:107 msgctxt "Open Sans font: add new subset (greek, cyrillic, vietnamese)" msgid "no-subset" @@ -50,6 +59,8 @@ msgstr "Vises når man bruker den valgfrie forsidemalen med en side satt som sta msgid "Second Front Page Widget Area" msgstr "Andre widget-område på forside" +#. Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's +#. name. #: functions.php:390 msgid "This entry was posted in %1$s and tagged %2$s on %3$s by %4$s." msgstr "Dette innlegget ble skrevet i %1$s og merket %2$s, %3$s av %4$s." @@ -72,9 +83,11 @@ msgctxt "Next post link" msgid "→" msgstr "→" +#. Template Name of the plugin/theme msgid "Front Page Template" msgstr "Forsidemal" +#. Template Name of the plugin/theme msgid "Full-width Page Template, No Sidebar" msgstr "Sidemal med full bredde, uten sidekolonne" @@ -156,9 +169,11 @@ msgstr "Det var ingen treff på dine søkekriterier. Søk på nytt med noen andr msgid "Archives" msgstr "Arkiv" +#. Theme Name of the plugin/theme msgid "Twenty Twelve" msgstr "Twenty Twelve" +#. Author of the plugin/theme msgid "the WordPress team" msgstr "WordPress-gjengen" @@ -166,6 +181,7 @@ msgstr "WordPress-gjengen" msgid "Your comment is awaiting moderation." msgstr "Din kommentar avventer moderasjon." +#. translators: 1: date, 2: time #: functions.php:334 msgid "%1$s at %2$s" msgstr "%1$s, kl. %2$s" @@ -267,6 +283,8 @@ msgstr "Les videre →" msgid "Leave a reply" msgstr "Skriv en kommentar" +#. #-#-#-#-# twentytwelve.pot (Twenty Twelve 1.5) #-#-#-#-# +#. Author URI of the plugin/theme #: footer.php:16 msgid "http://wordpress.org/" msgstr "http://wordpress.org/" @@ -291,6 +309,7 @@ msgstr "Kommentarnavigasjon" msgid "← Older Comments" msgstr "← Eldre kommentarer" +#. Translators: used between list items, there is a space after the comma. #: functions.php:370 functions.php:373 msgid ", " msgstr ", " diff --git a/wp-content/plugins/akismet/akismet.php b/wp-content/plugins/akismet/akismet.php index 68289a3..bbc36ea 100644 --- a/wp-content/plugins/akismet/akismet.php +++ b/wp-content/plugins/akismet/akismet.php @@ -6,7 +6,7 @@ Plugin Name: Akismet Plugin URI: http://akismet.com/ Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from comment and trackback spam. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) Sign up for an Akismet API key, and 3) Go to your Akismet configuration page, and save your API key. -Version: 3.0.2 +Version: 3.0.3 Author: Automattic Author URI: http://automattic.com/wordpress-plugins/ License: GPLv2 or later @@ -35,7 +35,7 @@ if ( !function_exists( 'add_action' ) ) { exit; } -define( 'AKISMET_VERSION', '3.0.2' ); +define( 'AKISMET_VERSION', '3.0.3' ); define( 'AKISMET__MINIMUM_WP_VERSION', '3.1' ); define( 'AKISMET__PLUGIN_URL', plugin_dir_url( __FILE__ ) ); define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); diff --git a/wp-content/plugins/akismet/class.akismet-admin.php b/wp-content/plugins/akismet/class.akismet-admin.php index a1c712e..b609494 100644 --- a/wp-content/plugins/akismet/class.akismet-admin.php +++ b/wp-content/plugins/akismet/class.akismet-admin.php @@ -327,6 +327,10 @@ class Akismet_Admin { if ( 'approved' == $comment_status ) return; + if ( 'spam' == $comment_status ) { + return; + } + if ( function_exists('plugins_url') ) $link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) ); else diff --git a/wp-content/plugins/akismet/class.akismet.php b/wp-content/plugins/akismet/class.akismet.php index a9ab0ea..bcc5163 100644 --- a/wp-content/plugins/akismet/class.akismet.php +++ b/wp-content/plugins/akismet/class.akismet.php @@ -256,13 +256,31 @@ class Akismet { public static function delete_old_comments() { global $wpdb; - while( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", defined( 'AKISMET_DELETE_LIMIT' ) ? AKISMET_DELETE_LIMIT : 10000 ) ) ) { + /** + * Determines how many comments will be deleted in each batch. + * + * @param int The default, as defined by AKISMET_DELETE_LIMIT. + */ + $delete_limit = apply_filters( 'akismet_delete_comment_limit', defined( 'AKISMET_DELETE_LIMIT' ) ? AKISMET_DELETE_LIMIT : 10000 ); + $delete_limit = max( 1, intval( $delete_limit ) ); + + /** + * Determines how many days a comment will be left in the Spam queue before being deleted. + * + * @param int The default number of days. + */ + $delete_interval = apply_filters( 'akismet_delete_comment_interval', 15 ); + $delete_interval = max( 1, intval( $delete_interval ) ); + + while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL %d DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", $delete_interval, $delete_limit ) ) ) { if ( empty( $comment_ids ) ) return; $wpdb->queries = array(); - do_action( 'delete_comment', $comment_ids ); + foreach ( $comment_ids as $comment_id ) { + do_action( 'delete_comment', $comment_id ); + } $comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) ); @@ -926,8 +944,16 @@ p { return _http_build_query( $args, '', '&' ); } + /** + * Log debugging info to the error log. + * + * Enabled when WP_DEBUG_LOG is enabled, but can be disabled via the akismet_debug_log filter. + * + * @param mixed $akismet_debug The data to log. + */ public static function log( $akismet_debug ) { - if ( defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG ) - error_log( print_r( compact( 'akismet_debug' ), 1 ) ); //send message to debug.log when in debug mode + if ( apply_filters( 'akismet_debug_log', defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG ) ) { + error_log( print_r( compact( 'akismet_debug' ), true ) ); + } } } \ No newline at end of file diff --git a/wp-content/plugins/akismet/readme.txt b/wp-content/plugins/akismet/readme.txt index d0e5a1d..2407368 100644 --- a/wp-content/plugins/akismet/readme.txt +++ b/wp-content/plugins/akismet/readme.txt @@ -3,7 +3,7 @@ Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eo Tags: akismet, comments, spam Requires at least: 3.1 Tested up to: 4.0 -Stable tag: 3.0.2 +Stable tag: 3.0.3 License: GPLv2 or later Akismet checks your comments against the Akismet Web service to see if they look like spam or not. @@ -30,11 +30,24 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co == Changelog == += 3.0.3 = +*Release Date - 3rd November, 2014* + +* Fix for sending the wrong data to delete_comment action that could have prevented old spam comments from being deleted. +* Added a filter to disable logging of Akismet debugging information. +* Added a filter for the maximum comment age when deleting old spam comments. +* Added a filter for the number per batch when deleting old spam comments. +* Removed the "Check for Spam" button from the Spam folder. + = 3.0.2 = +*Release Date - 18th August, 2014* + * Performance improvements. * Fixed a bug that could truncate the comment data being sent to Akismet for checking. = 3.0.1 = +*Release Date - 9th July, 2014* + * Removed dependency on PHP's fsockopen function * Fix spam/ham reports to work when reported outside of the WP dashboard, e.g., from Notifications or the WP app * Remove jQuery dependency for comment form JavaScript @@ -42,6 +55,8 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Suspended keys will now result in all comments being put in moderation, not spam. = 3.0.0 = +*Release Date - 15th April, 2014* + * Move Akismet to Settings menu * Drop Akismet Stats menu * Add stats snapshot to Akismet settings @@ -55,6 +70,8 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Replace the old discard setting with a new "discard pervasive spam" feature. = 2.6.0 = +*Release Date - 18th March, 2014* + * Add ajax paging to the check for spam button to handle large volumes of comments * Optimize javascript and add localization support * Fix bug in link to spam comments from right now dashboard widget @@ -63,16 +80,22 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Add pre-check for pingbacks, to stop spam before an outbound verification request is made = 2.5.9 = +*Release Date - 1st August, 2013* + * Update 'Already have a key' link to redirect page rather than depend on javascript * Fix some non-translatable strings to be translatable * Update Activation banner in plugins page to redirect user to Akismet config page = 2.5.8 = +*Release Date - 20th January, 2013* + * Simplify the activation process for new users * Remove the reporter_ip parameter * Minor preventative security improvements = 2.5.7 = +*Release Date - 13th December, 2012* + * FireFox Stats iframe preview bug * Fix mshots preview when using https * Add .htaccess to block direct access to files @@ -82,6 +105,8 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Fix prepare() warnings in WP 3.5 = 2.5.6 = +*Release Date - 26th April, 2012* + * Prevent retry scheduling problems on sites where wp_cron is misbehaving * Preload mshot previews * Modernize the widget code @@ -93,10 +118,14 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Improve error messages when verifying an API key = 2.5.5 = +*Release Date - 11th January, 2012* + * Add nonce check for comment author URL remove action * Fix the settings link = 2.5.4 = +*Release Date - 5th January, 2012* + * Limit Akismet CSS and Javascript loading in wp-admin to just the pages that need it * Added author URL quick removal functionality * Added mShot preview on Author URL hover @@ -105,11 +134,14 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Purge old Akismet comment meta data, default of 15 days = 2.5.3 = +*Release Date - 8th Febuary, 2011* + * Specify the license is GPL v2 or later * Fix a bug that could result in orphaned commentmeta entries * Include hotfix for WordPress 3.0.5 filter issue = 2.5.2 = +*Release Date - 14th January, 2011* * Properly format the comment count for author counts * Look for super admins on multisite installs when looking up user roles @@ -119,6 +151,7 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Set Akismet stats iframe height to fixed 2500px. Better to have one tall scroll bar than two side by side. = 2.5.1 = +*Release Date - 17th December, 2010* * Fix a bug that caused the "Auto delete" option to fail to discard comments correctly * Remove the comment nonce form field from the 'Akismet Configuration' page in favor of using a filter, akismet_comment_nonce @@ -137,6 +170,7 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Hid "flagged by..." notification while on dashboard = 2.5.0 = +*Release Date - 7th December, 2010* * Track comment actions under 'Akismet Status' on the edit comment screen * Fix a few remaining deprecated function calls ( props Mike Glendinning ) @@ -152,6 +186,7 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * New option, "Use a nonce on the comment form." = 2.4.0 = +*Release Date - 23rd August, 2010* * Spell out that the license is GPLv2 * Fix PHP warnings @@ -161,6 +196,7 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * General code clean up = 2.3.0 = +*Release Date - 5th June, 2010* * Fix "Are you sure" nonce message on config screen in WPMU * Fix XHTML compliance issue in sidebar widget @@ -168,10 +204,12 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Localize the widget title (core ticket #13879) = 2.2.9 = +*Release Date - 2nd June, 2010* * Eliminate a potential conflict with some plugins that may cause spurious reports = 2.2.8 = +*Release Date - 27th May, 2010* * Fix bug in initial comment check for ipv6 addresses * Report comments as ham when they are moved from spam to moderation @@ -181,12 +219,14 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Better handling of comments by logged-in users = 2.2.7 = +*Release Date - 17th December, 2009* * Add a new AKISMET_VERSION constant * Reduce the possibility of over-counting spam when another spam filter plugin is in use * Disable the connectivity check when the API key is hard-coded for WPMU = 2.2.6 = +*Release Date - 20th July, 2009* * Fix a global warning introduced in 2.2.5 * Add changelog and additional readme.txt tags @@ -194,10 +234,12 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co * Support a new WPCOM_API_KEY constant for easier use with WordPress MU = 2.2.5 = +*Release Date - 13th July, 2009* * Include a new Server Connectivity diagnostic check, to detect problems caused by firewalls = 2.2.4 = +*Release Date - 3rd June, 2009* * Fixed a key problem affecting the stats feature in WordPress MU * Provide additional blog information in Akismet API calls diff --git a/wp-content/plugins/akismet/views/notice.php b/wp-content/plugins/akismet/views/notice.php index 8a1411d..60f2e8c 100644 --- a/wp-content/plugins/akismet/views/notice.php +++ b/wp-content/plugins/akismet/views/notice.php @@ -40,12 +40,12 @@

-

gethostbynamel functions. Akismet cannot work correctly until this is fixed. Please contact your web host or firewall administrator and give them this information about Akismet’s system requirements.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?>

+

gethostbynamel functions. Akismet cannot work correctly until this is fixed. Please contact your web host or firewall administrator and give them this information about Akismet’s system requirements.', 'akismet'), 'http://blog.akismet.com/akismet-hosting-faq/'); ?>

-

our guide about firewalls.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?>

+

our guide about firewalls.', 'akismet'), 'http://blog.akismet.com/akismet-hosting-faq/'); ?>

@@ -99,4 +99,4 @@

upgrade to an Enterprise subscription, which covers an unlimited number of sites. Please contact our support team with any questions.', 'akismet'), 'https://akismet.com/account/upgrade/', 'https://akismet.com/contact/'); ?>

- \ No newline at end of file + diff --git a/wp-content/plugins/wordpress-seo/.gruntjshintrc b/wp-content/plugins/wordpress-seo/.gruntjshintrc deleted file mode 100644 index 7ad8a44..0000000 --- a/wp-content/plugins/wordpress-seo/.gruntjshintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "boss": true, - "curly": true, - "eqeqeq": true, - "eqnull": true, - "es3": true, - "immed": true, - "latedef": true, - "newcap": true, - "noarg": true, - "quotmark": "single", - "sub": true, - "strict": true, - "undef": true, - "unused": true, - - "node": true -} diff --git a/wp-content/plugins/wordpress-seo/.jscsrc b/wp-content/plugins/wordpress-seo/.jscsrc deleted file mode 100644 index 5e4168f..0000000 --- a/wp-content/plugins/wordpress-seo/.jscsrc +++ /dev/null @@ -1,112 +0,0 @@ -{ - "requireSpacesInConditionalExpression": true, - "requireSpacesInFunctionExpression": { - "beforeOpeningCurlyBrace": true - }, - "disallowSpacesInFunctionExpression": { - "beforeOpeningRoundBrace": true - }, - "requireMultipleVarDecl": "onevar", - "requireSpacesInsideObjectBrackets": "all", - "disallowSpaceAfterObjectKeys": true, - "requireSpaceAfterBinaryOperators": [ - "=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", - "&=", "|=", "^=", "+=", - - "+", "-", "*", "/", "%", "<<", ">>", ">>>", "&", - "|", "^", "&&", "||", "===", "==", ">=", - "<=", "<", ">", "!=", "!==" - ], - "requireSpaceBeforeBinaryOperators": [ - "=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", - "&=", "|=", "^=", "+=", - - "+", "-", "*", "/", "%", "<<", ">>", ">>>", "&", - "|", "^", "&&", "||", "===", "==", ">=", - "<=", "<", ">", "!=", "!==" - ], - "disallowKeywords": ["with"], - "disallowMultipleLineBreaks": true, - "validateLineBreaks": "LF", - "disallowMixedSpacesAndTabs": "smart", - "disallowTrailingWhitespace": true, - - "requireCurlyBraces": [ "if", "else", "for", "while", "do", "try", "catch" ], - "requireSpaceBeforeBlockStatements": true, - "requireParenthesesAroundIIFE": true, - "requireBlocksOnNewline": true, - "requireRightStickedOperators": [], - "requireOperatorBeforeLineBreak": [ - "?", - "=", - "+", - "-", - "/", - "*", - "==", - "===", - "!=", - "!==", - ">", - ">=", - "<", - "<=" - ], - "disallowLeftStickedOperators": [ - "?", - "=", - "+", - "-", - "/", - "*", - "==", - "===", - "!=", - "!==", - ">", - ">=", - "<", - "<=" - ], - "disallowRightStickedOperators": [ - "?", - "=", - "+", - "/", - "*", - ":", - "==", - "===", - "!=", - "!==", - ">", - ">=", - "<", - "<=" - ], - "requireLeftStickedOperators": [","], - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~"], - "requireSpaceAfterPrefixUnaryOperators": ["!"], - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireCamelCaseOrUpperCaseIdentifiers": true, - "disallowMultipleLineStrings": true, - "validateQuoteMarks": "'", - "validateIndentation": "\t", - "requireLineFeedAtFileEnd": true, - "requireDotNotation": true, - - "disallowTrailingComma": true, - "disallowPaddingNewlinesInBlocks": true, - "disallowEmptyBlocks": true, - "disallowQuotedKeysInObjects": "allButReserved", - "disallowDanglingUnderscores": true, - "requireCommaBeforeLineBreak": true, - "disallowKeywordsOnNewLine": ["else"], - "requireCapitalizedConstructors": true, - "safeContextKeyword": [ "that" ], - "validateJSDoc": { - "checkParamNames": true, - "checkRedundantParams": true, - "requireParamTypes": true - } -} diff --git a/wp-content/plugins/wordpress-seo/CONTRIBUTING.md b/wp-content/plugins/wordpress-seo/CONTRIBUTING.md index f687b53..bb7f6e1 100644 --- a/wp-content/plugins/wordpress-seo/CONTRIBUTING.md +++ b/wp-content/plugins/wordpress-seo/CONTRIBUTING.md @@ -42,11 +42,11 @@ If there is no ticket for your issue, submit it first, following the above guide ## Making Changes -* Fork the repository on GitHub. +* Fork the repository on GitHub (make sure to use the trunk branch, not master). * Make the changes to your forked repository. * Ensure you stick to the [WordPress Coding Standards](http://make.wordpress.org/core/handbook/coding-standards/) and have properly documented any new functions, actions and filters following the [documentation standards](http://make.wordpress.org/core/handbook/inline-documentation-standards/php-documentation-standards/). * When committing, reference your issue (if present) and include a note about the fix. -* Push the changes to your fork and submit a pull request to the 'master' branch of the WordPress SEO repository. +* Push the changes to your fork and submit a pull request to the 'trunk' branch of the WordPress SEO repository. At this point you're waiting on us to merge your pull request. We'll review all pull requests, and make suggestions and changes if necessary. diff --git a/wp-content/plugins/wordpress-seo/README.md b/wp-content/plugins/wordpress-seo/README.md index 130e76c..b43c340 100644 --- a/wp-content/plugins/wordpress-seo/README.md +++ b/wp-content/plugins/wordpress-seo/README.md @@ -2,6 +2,8 @@ WordPress SEO by Yoast ====================== [![Build Status](https://api.travis-ci.org/Yoast/wordpress-seo.png?branch=master)](https://travis-ci.org/Yoast/wordpress-seo) +[![Stable Version](https://poser.pugx.org/yoast/wordpress-seo/v/stable.svg)](https://packagist.org/packages/yoast/wordpress-seo) +[![License](https://poser.pugx.org/yoast/wordpress-seo/license.svg)](https://packagist.org/packages/yoast/wordpress-seo) Welcome to the WordPress SEO Github repository ---------------------------------------------- diff --git a/wp-content/plugins/wordpress-seo/admin/ajax.php b/wp-content/plugins/wordpress-seo/admin/ajax.php index d52975d..571c6af 100644 --- a/wp-content/plugins/wordpress-seo/admin/ajax.php +++ b/wp-content/plugins/wordpress-seo/admin/ajax.php @@ -130,9 +130,9 @@ add_action( 'wp_ajax_wpseo_replace_vars', 'wpseo_ajax_replace_vars' ); function wpseo_save_title() { check_ajax_referer( 'wpseo-bulk-editor' ); - $new_title = $_POST['new_title']; + $new_title = $_POST['new_value']; $id = intval( $_POST['wpseo_post_id'] ); - $original_title = $_POST['existing_title']; + $original_title = $_POST['existing_value']; $results = wpseo_upsert_new_title( $id, $new_title, $original_title ); @@ -159,6 +159,10 @@ function wpseo_upsert_new_title( $post_id, $new_title, $original_title ) { */ function wpseo_upsert_meta( $post_id, $new_meta_value, $orig_meta_value, $meta_key, $return_key ) { + $post_id = intval( $post_id ); + $sanitized_new_meta_value = wp_strip_all_tags( $new_meta_value ); + $orig_meta_value = wp_strip_all_tags( $orig_meta_value ); + $upsert_results = array( 'status' => 'success', 'post_id' => $post_id, @@ -201,7 +205,14 @@ function wpseo_upsert_meta( $post_id, $new_meta_value, $orig_meta_value, $meta_k } - $res = update_post_meta( $post_id, $meta_key, $new_meta_value ); + if ( $sanitized_new_meta_value === $orig_meta_value && $sanitized_new_meta_value !== $new_meta_value ) { + $upsert_results['status'] = 'failure'; + $upsert_results['results'] = __( 'You have used HTML in your value which is not allowed.', 'wordpress-seo' ); + + return $upsert_results; + } + + $res = update_post_meta( $post_id, $meta_key, $sanitized_new_meta_value ); $upsert_results['status'] = ( $res !== false ) ? 'success' : 'failure'; $upsert_results['results'] = $res; @@ -215,8 +226,8 @@ function wpseo_upsert_meta( $post_id, $new_meta_value, $orig_meta_value, $meta_k function wpseo_save_all_titles() { check_ajax_referer( 'wpseo-bulk-editor' ); - $new_titles = $_POST['titles']; - $original_titles = $_POST['existing_titles']; + $new_titles = $_POST['items']; + $original_titles = $_POST['existing_items']; $results = array(); @@ -236,11 +247,12 @@ add_action( 'wp_ajax_wpseo_save_all_titles', 'wpseo_save_all_titles' ); * Save an individual meta description from the Bulk Editor. */ function wpseo_save_description() { + check_ajax_referer( 'wpseo-bulk-editor' ); - $new_metadesc = $_POST['new_metadesc']; + $new_metadesc = $_POST['new_value']; $id = intval( $_POST['wpseo_post_id'] ); - $original_metadesc = $_POST['existing_metadesc']; + $original_metadesc = $_POST['existing_value']; $results = wpseo_upsert_new_description( $id, $new_metadesc, $original_metadesc ); @@ -248,7 +260,7 @@ function wpseo_save_description() { die(); } -add_action( 'wp_ajax_wpseo_save_desc', 'wpseo_save_description' ); +add_action( 'wp_ajax_wpseo_save_metadesc', 'wpseo_save_description' ); /** * Helper function to create or update a post's meta description. @@ -266,8 +278,8 @@ function wpseo_upsert_new_description( $post_id, $new_metadesc, $original_metade function wpseo_save_all_descriptions() { check_ajax_referer( 'wpseo-bulk-editor' ); - $new_metadescs = $_POST['metadescs']; - $original_metadescs = $_POST['existing_metadescs']; + $new_metadescs = $_POST['items']; + $original_metadescs = $_POST['existing_items']; $results = array(); @@ -281,4 +293,4 @@ function wpseo_save_all_descriptions() { die(); } -add_action( 'wp_ajax_wpseo_save_all_descs', 'wpseo_save_all_descriptions' ); +add_action( 'wp_ajax_wpseo_save_all_descriptions', 'wpseo_save_all_descriptions' ); diff --git a/wp-content/plugins/wordpress-seo/admin/class-admin.php b/wp-content/plugins/wordpress-seo/admin/class-admin.php index 6952c68..0c96c10 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-admin.php +++ b/wp-content/plugins/wordpress-seo/admin/class-admin.php @@ -66,6 +66,8 @@ if ( ! class_exists( 'WPSEO_Admin' ) ) { add_filter( 'set-screen-option', array( $this, 'save_bulk_edit_options' ), 10, 3 ); add_filter( 'upgrader_post_install', array( $this, 'remove_transients_on_update' ), 10, 1 ); + + add_action( 'activated_plugin', array( 'WPSEO_Plugin_Conflict', 'hook_check_for_plugin_conflicts' ), 10, 1 ); } /** @@ -86,11 +88,14 @@ if ( ! class_exists( 'WPSEO_Admin' ) ) { return; } + // Base 64 encoded SVG image + $icon_svg = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWw0KCTwhRU5USVRZIG5zX2Zsb3dzICJodHRwOi8vbnMuYWRvYmUuY29tL0Zsb3dzLzEuMC8iPg0KCTwhRU5USVRZIG5zX2V4dGVuZCAiaHR0cDovL25zLmFkb2JlLmNvbS9FeHRlbnNpYmlsaXR5LzEuMC8iPg0KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPg0KCTwhRU5USVRZIG5zX2dyYXBocyAiaHR0cDovL25zLmFkb2JlLmNvbS9HcmFwaHMvMS4wLyI+DQpdPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYWFnXzEiIHhtbG5zOng9IiZuc19leHRlbmQ7IiB4bWxuczppPSImbnNfYWk7IiB4bWxuczpncmFwaD0iJm5zX2dyYXBoczsiDQoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmE9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQWRvYmVTVkdWaWV3ZXJFeHRlbnNpb25zLzMuMC8iDQoJIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDAgMzEuODkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDMxLjg5IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQwLDEyLjUyNEM0MCw1LjYwOCwzMS40NjksMCwyMCwwQzguNTMsMCwwLDUuNjA4LDAsMTIuNTI0YzAsNS41Niw1LjI0MywxMC4yNzIsMTMuNTU3LDExLjkwN3YtNC4wNjUNCgljMCwwLDAuMDQtMS0wLjI4LTEuOTJjLTAuMzItMC45MjEtMS43Ni0zLjAwMS0xLjc2LTUuMTIxYzAtMi4xMjEsMi41NjEtOS41NjMsNS4xMjItMTAuNDQ0Yy0wLjQsMS4yMDEtMC4zMiw3LjY4My0wLjMyLDcuNjgzDQoJczEuNCwyLjcyLDQuNjQxLDIuNzJjMy4yNDIsMCw0LjUxMS0xLjc2LDQuNzE1LTIuMmMwLjIwNi0wLjQ0LDAuODQ2LTguNzIzLDAuODQ2LTguNzIzczQuMDgyLDQuNDAyLDMuNjgyLDkuMzYzDQoJYy0wLjQwMSw0Ljk2Mi00LjQ4Miw3LjIwMy02LjEyMiw5LjEyM2MtMS4yODYsMS41MDUtMi4yMjQsMy4xMy0yLjYyOSw0LjE2OGMwLjgwMS0wLjAzNCwxLjU4Ny0wLjA5OCwyLjM2MS0wLjE4NGw5LjE1MSw3LjA1OQ0KCWwtNC44ODQtNy44M0MzNS41MzUsMjIuMTYxLDQwLDE3LjcxMyw0MCwxMi41MjR6Ii8+DQo8L2c+DQo8L3N2Zz4='; + // Add main page $admin_page = add_menu_page( __( 'Yoast WordPress SEO:', 'wordpress-seo' ) . ' ' . __( 'General Settings', 'wordpress-seo' ), __( 'SEO', 'wordpress-seo' ), 'manage_options', 'wpseo_dashboard', array( $this, 'load_page', - ), plugins_url( 'images/yoast-icon.png', WPSEO_FILE ), '99.31337' ); + ), $icon_svg, '99.31337' ); /** * Filter: 'wpseo_manage_options_capability' - Allow changing the capability users need to view the settings pages @@ -158,7 +163,7 @@ if ( ! class_exists( 'WPSEO_Admin' ) ) { array( 'wpseo_dashboard', '', - __( 'Import & Export', 'wordpress-seo' ), + esc_html__( 'Import & Export', 'wordpress-seo' ), $manage_options_cap, 'wpseo_import', array( $this, 'load_page' ), @@ -266,10 +271,12 @@ if ( ! class_exists( 'WPSEO_Admin' ) ) { */ function register_network_settings_page() { if ( WPSEO_Options::grant_access() ) { + // Base 64 encoded SVG image + $icon_svg = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWw0KCTwhRU5USVRZIG5zX2Zsb3dzICJodHRwOi8vbnMuYWRvYmUuY29tL0Zsb3dzLzEuMC8iPg0KCTwhRU5USVRZIG5zX2V4dGVuZCAiaHR0cDovL25zLmFkb2JlLmNvbS9FeHRlbnNpYmlsaXR5LzEuMC8iPg0KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPg0KCTwhRU5USVRZIG5zX2dyYXBocyAiaHR0cDovL25zLmFkb2JlLmNvbS9HcmFwaHMvMS4wLyI+DQpdPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYWFnXzEiIHhtbG5zOng9IiZuc19leHRlbmQ7IiB4bWxuczppPSImbnNfYWk7IiB4bWxuczpncmFwaD0iJm5zX2dyYXBoczsiDQoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmE9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQWRvYmVTVkdWaWV3ZXJFeHRlbnNpb25zLzMuMC8iDQoJIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDAgMzEuODkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDMxLjg5IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQwLDEyLjUyNEM0MCw1LjYwOCwzMS40NjksMCwyMCwwQzguNTMsMCwwLDUuNjA4LDAsMTIuNTI0YzAsNS41Niw1LjI0MywxMC4yNzIsMTMuNTU3LDExLjkwN3YtNC4wNjUNCgljMCwwLDAuMDQtMS0wLjI4LTEuOTJjLTAuMzItMC45MjEtMS43Ni0zLjAwMS0xLjc2LTUuMTIxYzAtMi4xMjEsMi41NjEtOS41NjMsNS4xMjItMTAuNDQ0Yy0wLjQsMS4yMDEtMC4zMiw3LjY4My0wLjMyLDcuNjgzDQoJczEuNCwyLjcyLDQuNjQxLDIuNzJjMy4yNDIsMCw0LjUxMS0xLjc2LDQuNzE1LTIuMmMwLjIwNi0wLjQ0LDAuODQ2LTguNzIzLDAuODQ2LTguNzIzczQuMDgyLDQuNDAyLDMuNjgyLDkuMzYzDQoJYy0wLjQwMSw0Ljk2Mi00LjQ4Miw3LjIwMy02LjEyMiw5LjEyM2MtMS4yODYsMS41MDUtMi4yMjQsMy4xMy0yLjYyOSw0LjE2OGMwLjgwMS0wLjAzNCwxLjU4Ny0wLjA5OCwyLjM2MS0wLjE4NGw5LjE1MSw3LjA1OQ0KCWwtNC44ODQtNy44M0MzNS41MzUsMjIuMTYxLDQwLDE3LjcxMyw0MCwxMi41MjR6Ii8+DQo8L2c+DQo8L3N2Zz4='; add_menu_page( __( 'Yoast WordPress SEO:', 'wordpress-seo' ) . ' ' . __( 'MultiSite Settings', 'wordpress-seo' ), __( 'SEO', 'wordpress-seo' ), 'delete_users', 'wpseo_dashboard', array( $this, 'network_config_page', - ), plugins_url( 'images/yoast-icon.png', WPSEO_FILE ) ); + ), $icon_svg ); if ( wpseo_allow_system_file_edit() === true ) { add_submenu_page( 'wpseo_dashboard', __( 'Yoast WordPress SEO:', 'wordpress-seo' ) . ' ' . __( 'Edit Files', 'wordpress-seo' ), __( 'Edit Files', 'wordpress-seo' ), 'delete_users', 'wpseo_files', array( @@ -569,6 +576,11 @@ if ( ! class_exists( 'WPSEO_Admin' ) ) { return $slug; } + // Don't change slug if the post is a draft, this conflicts with polylang + if ( 'draft' == $_POST['post_status'] ) { + return $slug; + } + // Lowercase the slug and strip slashes $clean_slug = sanitize_title( stripslashes( $_POST['post_title'] ) ); @@ -590,7 +602,7 @@ if ( ! class_exists( 'WPSEO_Admin' ) ) { */ function stopwords() { /* translators: this should be an array of stopwords for your language, separated by comma's. */ - $stopwords = explode( ',', __( "a,about,above,after,again,against,all,am,an,and,any,are,aren't,as,at,be,because,been,before,being,below,between,both,but,by,can't,cannot,could,couldn't,did,didn't,do,does,doesn't,doing,don't,down,during,each,few,for,from,further,had,hadn't,has,hasn't,have,haven't,having,he,he'd,he'll,he's,her,here,here's,hers,herself,him,himself,his,how,how's,i,i'd,i'll,i'm,i've,if,in,into,is,isn't,it,it's,its,itself,let's,me,more,most,mustn't,my,myself,no,nor,not,of,off,on,once,only,or,other,ought,our,ours,ourselves,out,over,own,same,shan't,she,she'd,she'll,she's,should,shouldn't,so,some,such,than,that,that's,the,their,theirs,them,themselves,then,there,there's,these,they,they'd,they'll,they're,they've,this,those,through,to,too,under,until,up,very,was,wasn't,we,we'd,we'll,we're,we've,were,weren't,what,what's,when,when's,where,where's,which,while,who,who's,whom,why,why's,with,won't,would,wouldn't,you,you'd,you'll,you're,you've,your,yours,yourself,yourselves", 'wordpress-seo' ) ); + $stopwords = explode( ',', __( "a,about,above,after,again,against,all,am,an,and,any,are,as,at,be,because,been,before,being,below,between,both,but,by,could,did,do,does,doing,down,during,each,few,for,from,further,had,has,have,having,he,he'd,he'll,he's,her,here,here's,hers,herself,him,himself,his,how,how's,i,i'd,i'll,i'm,i've,if,in,into,is,it,it's,its,itself,let's,me,more,most,my,myself,nor,of,on,once,only,or,other,ought,our,ours,ourselves,out,over,own,same,she,she'd,she'll,she's,should,so,some,such,than,that,that's,the,their,theirs,them,themselves,then,there,there's,these,they,they'd,they'll,they're,they've,this,those,through,to,too,under,until,up,very,was,we,we'd,we'll,we're,we've,were,what,what's,when,when's,where,where's,which,while,who,who's,whom,why,why's,with,would,you,you'd,you'll,you're,you've,your,yours,yourself,yourselves", 'wordpress-seo' ) ); /** * Allows filtering of the stop words list diff --git a/wp-content/plugins/wordpress-seo/admin/class-bulk-description-editor-list-table.php b/wp-content/plugins/wordpress-seo/admin/class-bulk-description-editor-list-table.php index e4b870b..27b6739 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-bulk-description-editor-list-table.php +++ b/wp-content/plugins/wordpress-seo/admin/class-bulk-description-editor-list-table.php @@ -35,58 +35,47 @@ if ( ! class_exists( 'WPSEO_Bulk_Description_List_Table' ) ) { 'ajax' => true, ); + /** + * The field in the database where meta field is saved. + * @var string + */ + protected $target_db_field = 'metadesc'; + /** * The columns shown on the table * * @return array */ - function get_columns() { - return $columns = array( - 'col_page_title' => __( 'WP Page Title', 'wordpress-seo' ), - 'col_post_type' => __( 'Post Type', 'wordpress-seo' ), - 'col_post_status' => __( 'Post Status', 'wordpress-seo' ), - 'col_post_date' => __( 'Publication date', 'wordpress-seo' ), - 'col_page_slug' => __( 'Page URL/Slug', 'wordpress-seo' ), + public function get_columns() { + $columns = array( 'col_existing_yoast_seo_metadesc' => __( 'Existing Yoast Meta Description', 'wordpress-seo' ), 'col_new_yoast_seo_metadesc' => __( 'New Yoast Meta Description', 'wordpress-seo' ), - 'col_row_action' => __( 'Action', 'wordpress-seo' ), ); + + return $this->merge_columns( $columns ); } /** - * Method for setting the meta data, which belongs to the records that will be shown on the current page + * Parse the metadescription * - * This method will loop through the current items ($this->items) for getting the post_id. With this data - * ($needed_ids) the method will query the meta-data table for getting the metadescription. + * @param string $column_name + * @param object $record + * @param string $attributes * + * @return string */ - function get_meta_data() { + protected function parse_page_specific_column( $column_name, $record, $attributes ) { + switch ( $column_name ) { + case 'col_new_yoast_seo_metadesc' : + return sprintf( '', 'wpseo-new-metadesc-' . $record->ID, $record->ID ); + break; - global $wpdb; - $needed_ids = array(); - foreach ( $this->items AS $item ) { - $needed_ids[] = $item->ID; + case 'col_existing_yoast_seo_metadesc': + echo $this->parse_meta_data_field( $record->ID, $attributes ); + break; } - - $post_ids = "'" . implode( "', '", $needed_ids ) . "'"; - $meta_data = $wpdb->get_results( - " - SELECT * - FROM {$wpdb->postmeta} - WHERE post_id IN({$post_ids}) && meta_key = '" . WPSEO_Meta::$meta_prefix . "metadesc' - " - ); - - foreach ( $meta_data AS $row ) { - $this->meta_data[$row->post_id][$row->meta_key] = $row->meta_value; - } - - // Little housekeeping - unset( $needed_ids, $post_ids, $meta_data ); - } - } /* End of class */ } /* End of class-exists wrapper */ diff --git a/wp-content/plugins/wordpress-seo/admin/class-bulk-editor-list-table.php b/wp-content/plugins/wordpress-seo/admin/class-bulk-editor-list-table.php index bce4d64..6974a0f 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-bulk-editor-list-table.php +++ b/wp-content/plugins/wordpress-seo/admin/class-bulk-editor-list-table.php @@ -89,6 +89,8 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { */ protected $settings; + protected $pagination = array(); + /** * Class constructor */ @@ -109,6 +111,14 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { } + public function show_page() { + $this->prepare_page_navigation(); + $this->prepare_items(); + + $this->views(); + $this->display(); + } + /** * Used in the constructor to build a reference list of post types the current user can edit. */ @@ -148,13 +158,13 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { ?>
- +
- - - - + + + + @@ -166,7 +176,7 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { ?>
- +
@@ -384,10 +394,72 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { * Preparing the requested pagerows and setting the needed variables */ function prepare_items() { + + $post_type_clause = $this->get_post_type_clause(); + $all_states = $this->get_all_states(); + $subquery = $this->get_base_subquery(); + + // Setting the column headers + $this->set_column_headers(); + + // Count the total number of needed items and setting pagination given $total_items + $total_items = $this->count_items( $subquery, $all_states, $post_type_clause ); + $this->set_pagination( $total_items ); + + // Getting items given $query + $query = $this->parse_item_query( $subquery, $all_states, $post_type_clause ); + $this->get_items( $query ); + + // Get the metadata for the current items ($this->items) + $this->get_meta_data(); + + } + + /** + * Getting the columns for first row + * + * @param array $columns + * + * @return array + */ + public function get_columns( ) { + return $this->merge_columns( ); + } + + /** + * Setting the column headers + */ + protected function set_column_headers() { + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + $this->_column_headers = array( $columns, $hidden, $sortable ); + } + + /** + * Counting total items + * @return mixed + */ + protected function count_items( $subquery, $all_states, $post_type_clause ) { global $wpdb; + $total_items = $wpdb->get_var( + " + SELECT COUNT(ID) + FROM {$subquery} + WHERE post_status IN ({$all_states}) $post_type_clause + " + ); + return $total_items; + } + + /** + * Getting the post_type_clause filter + * + * @return string + */ + protected function get_post_type_clause() { // Filter Block - $post_types = null; $post_type_clause = ''; @@ -396,6 +468,56 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { $post_type_clause = "AND post_type IN ('{$post_types}')"; } + return $post_type_clause; + } + + /** + * Setting the pagination + * + * Total items is the number of all visible items + * + * @param $total_items + */ + protected function set_pagination( $total_items ) { + + // Calculate items per page + $per_page = $this->get_items_per_page( 'wpseo_posts_per_page', 10 ); + + $paged = ! empty( $_GET['paged'] ) ? esc_sql( sanitize_text_field( $_GET['paged'] ) ) : ''; + + if ( empty( $paged ) || ! is_numeric( $paged ) || $paged <= 0 ) { + $paged = 1; + } + + $this->set_pagination_args( + array( + 'total_items' => $total_items, + 'total_pages' => ceil( $total_items / $per_page ), + 'per_page' => $per_page, + ) + ); + + $this->pagination = array( + 'per_page' => $per_page, + 'offset' => ( $paged - 1 ) * $per_page, + ); + + } + + /** + * Parse the query to get items from database + * + * Based on given parameters there will be parse a query which will get all the pages/posts and other post_types + * from the database + * + * @param $subquery + * @param $all_states + * @param $post_type_clause + * + * @return string + */ + protected function parse_item_query( $subquery, $all_states, $post_type_clause ) { + // Order By block $orderby = ! empty( $_GET['orderby'] ) ? esc_sql( sanitize_text_field( $_GET['orderby'] ) ) : 'post_title'; $order = 'ASC'; @@ -404,6 +526,41 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { $order = esc_sql( strtoupper( sanitize_text_field( $_GET['order'] ) ) ); } + // Get all needed results + $query = " + SELECT ID, post_title, post_type, post_status, post_modified, post_date + FROM {$subquery} + WHERE post_status IN ({$all_states}) $post_type_clause + ORDER BY {$orderby} {$order} + LIMIT %d,%d + "; + + return $query; + } + + /** + * Getting all the items + * + * @param string $query + */ + protected function get_items( $query ) { + global $wpdb; + + $this->items = $wpdb->get_results( + $wpdb->prepare( + $query, + $this->pagination['offset'], + $this->pagination['per_page'] + ) + ); + } + + /** + * Getting all the states + * + * @return string + */ + protected function get_all_states() { $states = get_post_stati( array( 'show_in_admin_all_list' => true ) ); $states['trash'] = 'trash'; @@ -417,64 +574,10 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { $states = esc_sql( $states ); $all_states = "'" . implode( "', '", $states ) . "'"; - $subquery = $this->get_base_subquery(); - - // Count the total number of needed items - $total_items = $wpdb->get_var( - " - SELECT COUNT(ID) - FROM {$subquery} - WHERE post_status IN ({$all_states}) $post_type_clause - " - ); - - // Get all needed results - $query = " - SELECT ID, post_title, post_type, post_status, post_modified, post_date - FROM {$subquery} - WHERE post_status IN ({$all_states}) $post_type_clause - ORDER BY {$orderby} {$order} - LIMIT %d,%d - "; - - $per_page = $this->get_items_per_page( 'wpseo_posts_per_page', 10 ); - - $paged = ! empty( $_GET['paged'] ) ? esc_sql( sanitize_text_field( $_GET['paged'] ) ) : ''; - - if ( empty( $paged ) || ! is_numeric( $paged ) || $paged <= 0 ) { - $paged = 1; - } - - $total_pages = ceil( $total_items / $per_page ); - - $offset = ( $paged - 1 ) * $per_page; - - $this->set_pagination_args( - array( - 'total_items' => $total_items, - 'total_pages' => $total_pages, - 'per_page' => $per_page, - ) - ); - - $columns = $this->get_columns(); - $hidden = array(); - $sortable = $this->get_sortable_columns(); - $this->_column_headers = array( $columns, $hidden, $sortable ); - - $this->items = $wpdb->get_results( - $wpdb->prepare( - $query, - $offset, - $per_page - ) - ); - - // Get the metadata for the current items ($this->items) - $this->get_meta_data(); - + return $all_states; } + /** * Based on $this->items and the defined columns, the table rows will be displayed. * @@ -485,101 +588,24 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { list( $columns, $hidden ) = $this->get_column_info(); - - $date_format = get_option( 'date_format' ); - if ( ( is_array( $records ) && $records !== array() ) && ( is_array( $columns ) && $columns !== array() ) ) { - foreach ( $records as $rec ) { - // Fill meta data if exists in $this->meta_data - $meta_data = ( ! empty( $this->meta_data[$rec->ID] ) ) ? $this->meta_data[$rec->ID] : array(); + foreach ( $records as $rec ) { echo ''; foreach ( $columns as $column_name => $column_display_name ) { - $class = sprintf( 'class="%1$s column-%1$s"', $column_name ); - $style = ''; + $attributes = $this->column_attributes( $column_name, $hidden ); - if ( in_array( $column_name, $hidden ) ) { - $style = ' style="display:none;"'; + $column_value = $this->parse_column( $column_name, $rec ); + + if ( method_exists( $this, 'parse_page_specific_column' ) && empty( $column_value ) ) { + $column_value = $this->parse_page_specific_column( $column_name, $rec, $attributes ); } - $attributes = $class . $style; - - switch ( $column_name ) { - case 'col_page_title': - echo sprintf( '%1$s', stripslashes( $rec->post_title ), $attributes ); - - $post_type_object = get_post_type_object( $rec->post_type ); - $can_edit_post = current_user_can( $post_type_object->cap->edit_post, $rec->ID ); - - $actions = array(); - - if ( $can_edit_post && 'trash' != $rec->post_status ) { - $actions['edit'] = '' . __( 'Edit', 'wordpress-seo' ) . ''; - } - - if ( $post_type_object->public ) { - if ( in_array( $rec->post_status, array( 'pending', 'draft', 'future' ) ) ) { - if ( $can_edit_post ) { - $actions['view'] = '' . __( 'Preview', 'wordpress-seo' ) . ''; - } - } elseif ( 'trash' != $rec->post_status ) { - $actions['view'] = '' . __( 'View', 'wordpress-seo' ) . ''; - } - } - - echo $this->row_actions( $actions ); - echo ''; - break; - - case 'col_page_slug': - $permalink = get_permalink( $rec->ID ); - $display_slug = str_replace( get_bloginfo( 'url' ), '', $permalink ); - echo sprintf( '%1$s', stripslashes( $display_slug ), $attributes, esc_url( $permalink ) ); - break; - - case 'col_post_type': - $post_type = get_post_type_object( $rec->post_type ); - echo sprintf( '%1$s', $post_type->labels->singular_name, $attributes ); - break; - - case 'col_post_status': - $post_status = get_post_status_object( $rec->post_status ); - echo sprintf( '%1$s', $post_status->label, $attributes ); - break; - - case 'col_post_date': - $cell_value = date_i18n( $date_format, strtotime( $rec->post_date ) ); - echo sprintf( '%1$s', $cell_value, $attributes ); - break; - - case 'col_existing_yoast_seo_title': - $cell_value = ( ( ! empty( $meta_data[WPSEO_Meta::$meta_prefix . 'title'] ) ) ? $meta_data[WPSEO_Meta::$meta_prefix . 'title'] : '' ); - echo sprintf( '%1$s', $cell_value, $attributes, $rec->ID ); - break; - - case 'col_new_yoast_seo_title': - $input = sprintf( '', 'wpseo-new-title-' . $rec->ID, $rec->ID ); - echo sprintf( '%1$s', $input, $attributes ); - break; - - case 'col_new_yoast_seo_metadesc' : - $input = sprintf( '', 'wpseo-new-metadesc-' . $rec->ID, $rec->ID ); - echo sprintf( '%1$s', $input, $attributes ); - break; - - - case 'col_existing_yoast_seo_metadesc': - $cell_value = ( ( ! empty( $meta_data[WPSEO_Meta::$meta_prefix . 'metadesc'] ) ) ? $meta_data[WPSEO_Meta::$meta_prefix . 'metadesc'] : '' ); - echo sprintf( '%1$s', $cell_value, $attributes, $rec->ID ); - break; - - case 'col_row_action': - $actions = sprintf( 'Save | Save All', $rec->ID ); - echo sprintf( '%1$s', $actions, $attributes ); - break; + if ( ! empty( $column_value ) ) { + echo sprintf( '%1$s', $column_value, $attributes ); } } @@ -587,5 +613,233 @@ if ( ! class_exists( 'WPSEO_Bulk_List_Table' ) ) { } } } + + /** + * Getting the attributes for each table cell + * + * @param string $column_name + * @param string $hidden + * + * @return string + */ + protected function column_attributes( $column_name, $hidden ) { + + $class = sprintf( 'class="%1$s column-%1$s"', $column_name ); + $style = ''; + + if ( in_array( $column_name, $hidden ) ) { + $style = ' style="display:none;"'; + } + + $attributes = $class . $style; + + return $attributes; + } + + /** + * Parsing the title + * @param object $rec + * + * @return string + */ + protected function parse_page_title_column( $rec ) { + + $return = sprintf( '%1$s', stripslashes( wp_strip_all_tags( $rec->post_title ) ) ); + + $post_type_object = get_post_type_object( $rec->post_type ); + $can_edit_post = current_user_can( $post_type_object->cap->edit_post, $rec->ID ); + + $actions = array(); + + if ( $can_edit_post && 'trash' != $rec->post_status ) { + $actions['edit'] = '' . __( 'Edit', 'wordpress-seo' ) . ''; + } + + if ( $post_type_object->public ) { + if ( in_array( $rec->post_status, array( 'pending', 'draft', 'future' ) ) ) { + if ( $can_edit_post ) { + $actions['view'] = '' . __( 'Preview', 'wordpress-seo' ) . ''; + } + } elseif ( 'trash' != $rec->post_status ) { + $actions['view'] = '' . __( 'View', 'wordpress-seo' ) . ''; + } + } + + $return .= $this->row_actions( $actions ); + + return $return; + + } + + /** + * Parsing the column based on the $column_name + * + * @param string $column_name + * @param stdobject $rec + * + * @return string + */ + protected function parse_column( $column_name, $rec ) { + + static $date_format; + + if ( $date_format == null ) { + $date_format = get_option( 'date_format' ); + } + + switch ( $column_name ) { + case 'col_page_title': + $column_value = $this->parse_page_title_column( $rec ); + + break; + + case 'col_page_slug': + $permalink = get_permalink( $rec->ID ); + $display_slug = str_replace( get_bloginfo( 'url' ), '', $permalink ); + $column_value = sprintf( '%1$s', stripslashes( $display_slug ), esc_url( $permalink ) ); + break; + + case 'col_post_type': + $post_type = get_post_type_object( $rec->post_type ); + $column_value = $post_type->labels->singular_name; + break; + + case 'col_post_status': + $post_status = get_post_status_object( $rec->post_status ); + $column_value = $post_status->label; + break; + + case 'col_post_date': + $column_value = date_i18n( $date_format, strtotime( $rec->post_date ) ); + break; + + case 'col_row_action': + $column_value = sprintf( 'Save | Save All', $rec->ID ); + break; + } + + if ( ! empty( $column_value ) ) { + return $column_value; + } + } + + /** + * Parse the field where the existing meta-data value is displayed + * + * @param integer $record_id + * @param string $attributes + * @param bool|array $values + * + * @return string + */ + protected function parse_meta_data_field( $record_id, $attributes, $values = false ) { + + // Fill meta data if exists in $this->meta_data + $meta_data = ( ! empty( $this->meta_data[$record_id] ) ) ? $this->meta_data[$record_id] : array(); + $meta_key = WPSEO_Meta::$meta_prefix . $this->target_db_field; + $meta_value = ( ! empty( $meta_data[$meta_key] ) ) ? $meta_data[$meta_key] : ''; + + if ( ! empty( $values ) ) { + $meta_value = $values[$meta_value]; + } + + return sprintf( '%1$s', $meta_value, $attributes, $record_id, $this->target_db_field ); + } + + /** + * Method for setting the meta data, which belongs to the records that will be shown on the current page + * + * This method will loop through the current items ($this->items) for getting the post_id. With this data + * ($needed_ids) the method will query the meta-data table for getting the title. + * + */ + protected function get_meta_data() { + + $post_ids = $this->get_post_ids(); + $meta_data = $this->get_meta_data_result( $post_ids ); + + $this->parse_meta_data( $meta_data ); + + // Little housekeeping + unset( $post_ids, $meta_data ); + + } + + /** + * Getting all post_ids from to $this->items + * + * @return string + */ + protected function get_post_ids() { + $needed_ids = array(); + foreach ( $this->items AS $item ) { + $needed_ids[] = $item->ID; + } + + $post_ids = "'" . implode( "', '", $needed_ids ) . "'"; + + return $post_ids; + } + + /** + * Getting the meta_data from database + * + * @param string $post_ids + * @param string $target_field + * + * @return mixed + */ + protected function get_meta_data_result( $post_ids ) { + global $wpdb; + + $meta_data = $wpdb->get_results( + " + SELECT * + FROM {$wpdb->postmeta} + WHERE post_id IN({$post_ids}) && meta_key = '" . WPSEO_Meta::$meta_prefix . $this->target_db_field . "' + " + ); + + return $meta_data; + } + + /** + * Setting $this->meta_data + * + * @param array $meta_data + */ + protected function parse_meta_data( $meta_data ) { + + foreach ( $meta_data AS $row ) { + $this->meta_data[$row->post_id][$row->meta_key] = $row->meta_value; + } + + } + + /** + * This method will merge general array with given parameter $columns + * + * @param array $columns + * + * return array + */ + protected function merge_columns( $columns = array() ) { + $columns = array_merge( + array( + 'col_page_title' => __( 'WP Page Title', 'wordpress-seo' ), + 'col_post_type' => __( 'Post Type', 'wordpress-seo' ), + 'col_post_status' => __( 'Post Status', 'wordpress-seo' ), + 'col_post_date' => __( 'Publication date', 'wordpress-seo' ), + 'col_page_slug' => __( 'Page URL/Slug', 'wordpress-seo' ), + ), + $columns + ); + + $columns['col_row_action'] = __( 'Action', 'wordpress-seo' ); + + return $columns; + + } + } /* End of class */ } /* End of class-exists wrapper */ diff --git a/wp-content/plugins/wordpress-seo/admin/class-bulk-title-editor-list-table.php b/wp-content/plugins/wordpress-seo/admin/class-bulk-title-editor-list-table.php index 142b988..5d031f0 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-bulk-title-editor-list-table.php +++ b/wp-content/plugins/wordpress-seo/admin/class-bulk-title-editor-list-table.php @@ -35,58 +35,54 @@ if ( ! class_exists( 'WPSEO_Bulk_Title_Editor_List_Table' ) ) { 'ajax' => true, ); + /** + * The field in the database where meta field is saved. + * @var string + */ + protected $target_db_field = 'title'; + /** * The columns shown on the table * * @return array */ - function get_columns() { - return $columns = array( - 'col_page_title' => __( 'WP Page Title', 'wordpress-seo' ), - 'col_post_type' => __( 'Post Type', 'wordpress-seo' ), - 'col_post_status' => __( 'Post Status', 'wordpress-seo' ), - 'col_post_date' => __( 'Publication date', 'wordpress-seo' ), - 'col_page_slug' => __( 'Page URL/Slug', 'wordpress-seo' ), + public function get_columns() { + + $columns = array( 'col_existing_yoast_seo_title' => __( 'Existing Yoast SEO Title', 'wordpress-seo' ), 'col_new_yoast_seo_title' => __( 'New Yoast SEO Title', 'wordpress-seo' ), - 'col_row_action' => __( 'Action', 'wordpress-seo' ), ); + + return $this->merge_columns($columns); } /** - * Method for setting the meta data, which belongs to the records that will be shown on the current page + * Parse the title columns * - * This method will loop through the current items ($this->items) for getting the post_id. With this data - * ($needed_ids) the method will query the meta-data table for getting the title. + * @param string $column_name + * @param object $record + * @param string $attributes * + * @return string */ - function get_meta_data() { + protected function parse_page_specific_column( $column_name, $record, $attributes ) { - global $wpdb; + // Fill meta data if exists in $this->meta_data + $meta_data = ( ! empty( $this->meta_data[$record->ID] ) ) ? $this->meta_data[$record->ID] : array(); - $needed_ids = array(); - foreach ( $this->items AS $item ) { - $needed_ids[] = $item->ID; + switch ( $column_name ) { + case 'col_existing_yoast_seo_title': + echo $this->parse_meta_data_field( $record->ID, $attributes ); + break; + + case 'col_new_yoast_seo_title': + return sprintf( '', 'wpseo-new-title-' . $record->ID, $record->ID ); + break; } - $post_ids = "'" . implode( "', '", $needed_ids ) . "'"; - $meta_data = $wpdb->get_results( - " - SELECT * - FROM {$wpdb->postmeta} - WHERE post_id IN({$post_ids}) && meta_key = '" . WPSEO_Meta::$meta_prefix . "title' - " - ); - - foreach ( $meta_data AS $row ) { - $this->meta_data[$row->post_id][$row->meta_key] = $row->meta_value; - } - - - // Little housekeeping - unset( $needed_ids, $post_ids, $meta_data ); - + unset( $meta_data ); } + } /* End of class */ } /* End of class-exists wrapper */ diff --git a/wp-content/plugins/wordpress-seo/admin/class-config.php b/wp-content/plugins/wordpress-seo/admin/class-config.php index 5f6eb21..04b0e1a 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-config.php +++ b/wp-content/plugins/wordpress-seo/admin/class-config.php @@ -201,6 +201,8 @@ if ( ! class_exists( 'WPSEO_Admin_Pages' ) ) { '; } + do_action( 'wpseo_admin_footer' ); + echo '

diff --git a/wp-content/plugins/wordpress-seo/admin/class-metabox.php b/wp-content/plugins/wordpress-seo/admin/class-metabox.php index 4bae818..9ad25b5 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-metabox.php +++ b/wp-content/plugins/wordpress-seo/admin/class-metabox.php @@ -27,7 +27,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { /** * Class constructor */ - function __construct() { + public function __construct() { add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) ); add_action( 'wp_insert_post', array( $this, 'save_postdata' ) ); @@ -53,13 +53,13 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { self::$meta_fields['general']['title']['title'] = __( 'SEO Title', 'wordpress-seo' ); self::$meta_fields['general']['title']['description'] = '

' . '' . __( 'Warning:', 'wordpress-seo' ) . ' ' . __( 'Title display in Google is limited to a fixed width, yours is too long.', 'wordpress-seo' ) . '

'; - self::$meta_fields['general']['title']['help'] = __( 'The SEO Title defaults to what is generated based on this sites title template for this posttype.', 'wordpress-seo' ); + self::$meta_fields['general']['title']['help'] = __( 'The SEO title defaults to what is generated based on this sites title template for this posttype.', 'wordpress-seo' ); - self::$meta_fields['general']['metadesc']['title'] = __( 'Meta Description', 'wordpress-seo' ); + self::$meta_fields['general']['metadesc']['title'] = __( 'Meta description', 'wordpress-seo' ); self::$meta_fields['general']['metadesc']['description'] = sprintf( __( 'The meta description will be limited to %s chars%s, %s chars left.', 'wordpress-seo' ), self::$meta_length, self::$meta_length_reason, '' ) . '
'; self::$meta_fields['general']['metadesc']['help'] = sprintf( __( 'The meta description is often shown as the black text under the title in a search result. For this to work it has to contain the keyword that was searched for.

Read %sthis post%s for more info.', 'wordpress-seo' ), '', '' ); - self::$meta_fields['general']['metakeywords']['title'] = __( 'Meta Keywords', 'wordpress-seo' ); + self::$meta_fields['general']['metakeywords']['title'] = __( 'Meta keywords', 'wordpress-seo' ); self::$meta_fields['general']['metakeywords']['description'] = __( 'If you type something above it will override your %smeta keywords template%s.', 'wordpress-seo' ); @@ -85,7 +85,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { self::$meta_fields['advanced']['meta-robots-adv']['options']['noarchive'] = __( 'No Archive', 'wordpress-seo' ); self::$meta_fields['advanced']['meta-robots-adv']['options']['nosnippet'] = __( 'No Snippet', 'wordpress-seo' ); - self::$meta_fields['advanced']['bctitle']['title'] = __( 'Breadcrumbs title', 'wordpress-seo' ); + self::$meta_fields['advanced']['bctitle']['title'] = __( 'Breadcrumbs Title', 'wordpress-seo' ); self::$meta_fields['advanced']['bctitle']['description'] = __( 'Title to use for this page in breadcrumb paths', 'wordpress-seo' ); self::$meta_fields['advanced']['sitemap-include']['title'] = __( 'Include in Sitemap', 'wordpress-seo' ); @@ -103,18 +103,6 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { self::$meta_fields['advanced']['sitemap-prio']['options']['0.5'] .= __( 'Medium priority', 'wordpress-seo' ); self::$meta_fields['advanced']['sitemap-prio']['options']['0.1'] .= __( 'Lowest priority', 'wordpress-seo' ); - self::$meta_fields['advanced']['sitemap-html-include']['title'] = __( 'Include in HTML Sitemap', 'wordpress-seo' ); - self::$meta_fields['advanced']['sitemap-html-include']['description'] = __( 'Should this page be in the HTML Sitemap at all times, regardless of Robots Meta settings?', 'wordpress-seo' ); - self::$meta_fields['advanced']['sitemap-html-include']['options']['-'] = __( 'Auto detect', 'wordpress-seo' ); - self::$meta_fields['advanced']['sitemap-html-include']['options']['always'] = __( 'Always include', 'wordpress-seo' ); - self::$meta_fields['advanced']['sitemap-html-include']['options']['never'] = __( 'Never include', 'wordpress-seo' ); - - self::$meta_fields['advanced']['authorship']['title'] = __( 'Authorship', 'wordpress-seo' ); - self::$meta_fields['advanced']['authorship']['description'] = __( 'Show rel="author" on this page?', 'wordpress-seo' ); - self::$meta_fields['advanced']['authorship']['options']['-'] = __( 'Default for post type, currently: %s', 'wordpress-seo' ); - self::$meta_fields['advanced']['authorship']['options']['always'] = __( 'Always show', 'wordpress-seo' ); - self::$meta_fields['advanced']['authorship']['options']['never'] = __( 'Never show', 'wordpress-seo' ); - self::$meta_fields['advanced']['canonical']['title'] = __( 'Canonical URL', 'wordpress-seo' ); self::$meta_fields['advanced']['canonical']['description'] = sprintf( __( 'The canonical URL that this page should point to, leave empty to default to permalink. %sCross domain canonical%s supported too.', 'wordpress-seo' ), '', '' ); @@ -198,6 +186,22 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { return $this->statistics; } + /** + * Returns post in metabox context + * + * @returns WP_Post + */ + private function get_metabox_post() { + if ( isset( $_GET['post'] ) ) { + $post_id = (int) WPSEO_Option::validate_int( $_GET['post'] ); + $post = get_post( $post_id ); + } else { + global $post; + } + + return $post; + } + /** * Lowercase a sentence while preserving "weird" characters. * @@ -241,17 +245,13 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { echo '
'; - if ( self::get_value( 'meta-robots-noindex' ) === '1' ) { + $post = $this->get_metabox_post(); + + if ( self::get_value( 'meta-robots-noindex', $post->ID ) === '1' ) { $score_label = 'noindex'; $title = __( 'Post is set to noindex.', 'wordpress-seo' ); $score_title = $title; } else { - if ( isset( $_GET['post'] ) ) { - $post_id = (int) WPSEO_Option::validate_int( $_GET['post'] ); - $post = get_post( $post_id ); - } else { - global $post; - } $score = ''; $results = $this->calculate_results( $post ); @@ -306,12 +306,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { * @return array */ public function localize_script() { - if ( isset( $_GET['post'] ) ) { - $post_id = (int) WPSEO_Option::validate_int( $_GET['post'] ); - $post = get_post( $post_id ); - } else { - global $post; - } + $post = $this->get_metabox_post(); if ( ( ! is_object( $post ) || ! isset( $post->post_type ) ) || $this->is_metabox_hidden( $post->post_type ) === true ) { return array(); @@ -371,7 +366,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { return array_merge( $cached_replacement_vars, array( 'field_prefix' => self::$form_prefix, - 'keyword_header' => __( 'Your focus keyword was found in:', 'wordpress-seo' ), + 'keyword_header' => '' . __( 'Focus keyword usage', 'wordpress-seo' ) . '
' . __( 'Your focus keyword was found in:', 'wordpress-seo' ), 'article_header_text' => __( 'Article Heading: ', 'wordpress-seo' ), 'page_title_text' => __( 'Page title: ', 'wordpress-seo' ), 'page_url_text' => __( 'Page URL: ', 'wordpress-seo' ), @@ -384,7 +379,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { 'wpseo_permalink_template' => $sample_permalink, 'wpseo_keyword_suggest_nonce' => wp_create_nonce( 'wpseo-get-suggest' ), 'wpseo_replace_vars_nonce' => wp_create_nonce( 'wpseo-replace-vars' ), - 'no_parent_text' => __( '(no parent)' ), + 'no_parent_text' => __( '(no parent)', 'wordpress-seo' ), ) ); } @@ -410,13 +405,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { * Output the meta box */ function meta_box() { - if ( isset( $_GET['post'] ) ) { - $post_id = (int) WPSEO_Option::validate_int( $_GET['post'] ); - $post = get_post( $post_id ); - } else { - global $post; - } - + $post = $this->get_metabox_post(); $options = WPSEO_Options::get_all(); ?> @@ -471,7 +460,8 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { function do_meta_box( $meta_field_def, $key = '' ) { $content = ''; $esc_form_key = esc_attr( self::$form_prefix . $key ); - $meta_value = self::get_value( $key ); + $post = $this->get_metabox_post(); + $meta_value = self::get_value( $key, $post->ID ); $class = ''; if ( isset( $meta_field_def['class'] ) && $meta_field_def['class'] !== '' ) { @@ -634,45 +624,13 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { * @return string */ function snippet() { - if ( isset( $_GET['post'] ) ) { - $post_id = (int) WPSEO_Option::validate_int( $_GET['post'] ); - $post = get_post( $post_id ); - } else { - global $post; - } + $post = $this->get_metabox_post(); + $title = self::get_value( 'title', $post->ID ); + $description = self::get_value( 'metadesc', $post->ID ); - $options = WPSEO_Options::get_all(); + $snippet_preview = new WPSEO_Snippet_Preview( $post, $title, $description ); - $date = ''; - if ( is_object( $post ) && isset( $options[ 'showdate-' . $post->post_type ] ) && $options[ 'showdate-' . $post->post_type ] === true ) { - $date = $this->get_post_date( $post ); - } - - $title = self::get_value( 'title' ); - $desc = self::get_value( 'metadesc' ); - - $slug = ( is_object( $post ) && isset( $post->post_name ) ) ? $post->post_name : ''; - if ( $slug !== '' ) { - $slug = sanitize_title( $title ); - } - - if ( is_string( $date ) && $date !== '' ) { - $datestr = '' . $date . ' - '; - } else { - $datestr = ''; - } - $content = '
- ' . esc_html( $title ) . ''; - - $content .= '' . str_replace( 'http://', '', get_bloginfo( 'url' ) ) . '/' . esc_html( $slug ) . '/'; - - $content .= '

' . $datestr . '' . esc_html( $desc ) . '

'; - - $content .= '
'; - - $content = apply_filters( 'wpseo_snippet', $content, $post, compact( 'title', 'desc', 'date', 'slug' ) ); - - return $content; + return $snippet_preview->get_content(); } /** @@ -701,6 +659,8 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { return false; } + do_action( 'wpseo_save_compare_data', $post ); + $meta_boxes = apply_filters( 'wpseo_save_metaboxes', array() ); $meta_boxes = array_merge( $meta_boxes, $this->get_meta_field_defs( 'general', $post->post_type ), $this->get_meta_field_defs( 'advanced' ) ); @@ -727,11 +687,12 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { */ public function enqueue() { global $pagenow; - if ( ! in_array( $pagenow, array( + /* Filter 'wpseo_always_register_metaboxes_on_admin' documented in wpseo-main.php */ + if ( ( ! in_array( $pagenow, array( 'post-new.php', 'post.php', 'edit.php', - ), true ) || $this->is_metabox_hidden() === true + ), true ) && apply_filters( 'wpseo_always_register_metaboxes_on_admin', false ) === false ) || $this->is_metabox_hidden() === true ) { return; } @@ -751,17 +712,18 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { } wp_enqueue_style( 'metabox-tabs', plugins_url( 'css/metabox-tabs' . WPSEO_CSSJS_SUFFIX . '.css', WPSEO_FILE ), array(), WPSEO_VERSION ); wp_enqueue_style( "metabox-$color", plugins_url( 'css/metabox-' . esc_attr( $color ) . WPSEO_CSSJS_SUFFIX . '.css', WPSEO_FILE ), array(), WPSEO_VERSION ); + wp_enqueue_style( "jquery-qtip.js", plugins_url( 'css/jquery.qtip' . WPSEO_CSSJS_SUFFIX . '.css', WPSEO_FILE ), array(), '2.2.1' ); wp_enqueue_script( 'jquery-ui-autocomplete' ); - wp_enqueue_script( 'jquery-qtip', plugins_url( 'js/jquery.qtip.min.js', WPSEO_FILE ), array( 'jquery' ), '1.0.0-RC3', true ); + wp_enqueue_script( 'jquery-qtip', plugins_url( 'js/jquery.qtip' . WPSEO_CSSJS_SUFFIX . '.js', WPSEO_FILE ), array( 'jquery' ), '2.2.1', true ); wp_enqueue_script( 'wp-seo-metabox', plugins_url( 'js/wp-seo-metabox' . WPSEO_CSSJS_SUFFIX . '.js', WPSEO_FILE ), array( 'jquery', 'jquery-ui-core', 'jquery-ui-autocomplete', ), WPSEO_VERSION, true ); - wp_enqueue_script( 'wpseo-admin-media', plugins_url( 'js/wp-seo-admin-media' . WPSEO_CSSJS_SUFFIX . '.js', WPSEO_FILE ), array( 'jquery', 'jquery-ui-core' ), WPSEO_VERSION, true ); + wp_enqueue_script( 'wpseo-admin-media', plugins_url( 'js/wp-seo-admin-media' . WPSEO_CSSJS_SUFFIX . '.js', WPSEO_FILE ), array( 'jquery', 'jquery-ui-core' ), WPSEO_VERSION, true ); wp_localize_script( 'wpseo-admin-media', 'wpseoMediaL10n', $this->localize_media_script() ); // Text strings to pass to metabox for keyword analysis @@ -825,11 +787,11 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { } return array_merge( $columns, array( - 'wpseo-score' => __( 'SEO', 'wordpress-seo' ), - 'wpseo-title' => __( 'SEO Title', 'wordpress-seo' ), - 'wpseo-metadesc' => __( 'Meta Desc.', 'wordpress-seo' ), - 'wpseo-focuskw' => __( 'Focus KW', 'wordpress-seo' ) - ) ); + 'wpseo-score' => __( 'SEO', 'wordpress-seo' ), + 'wpseo-title' => __( 'SEO Title', 'wordpress-seo' ), + 'wpseo-metadesc' => __( 'Meta Desc.', 'wordpress-seo' ), + 'wpseo-focuskw' => __( 'Focus KW', 'wordpress-seo' ) + ) ); } /** @@ -908,6 +870,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { */ function column_sort_orderby( $vars ) { if ( isset( $_GET['seo_filter'] ) ) { + $na = false; $noindex = false; $high = false; switch ( $_GET['seo_filter'] ) { @@ -916,8 +879,8 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { $noindex = true; break; case 'na': - $low = 0; - $high = 0; + $low = false; + $na = true; break; case 'bad': $low = 1; @@ -971,6 +934,21 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { add_filter( 'posts_where', array( $this, 'seo_score_posts_where' ) ); + } elseif ( $na ) { + $vars = array_merge( + $vars, + array( + 'meta_query' => array( + 'relation' => 'OR', + array( + 'key' => self::$meta_prefix . 'linkdex', + 'value' => 'needs-a-value-anyway', + 'compare' => 'NOT EXISTS', + ) + ) + ) + ); + } elseif ( $noindex ) { $vars = array_merge( $vars, @@ -1062,8 +1040,8 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { } else { $post = get_post( $post_id ); $options = WPSEO_Options::get_all(); - if ( is_object( $post ) && ( isset( $options[ 'title-' . $post->post_type ] ) && $options[ 'title-' . $post->post_type ] !== '' ) ) { - $title_template = $options[ 'title-' . $post->post_type ]; + if ( is_object( $post ) && ( isset( $options['title-' . $post->post_type] ) && $options['title-' . $post->post_type] !== '' ) ) { + $title_template = $options['title-' . $post->post_type]; $title_template = str_replace( ' %%page%% ', ' ', $title_template ); return wpseo_replace_vars( $title_template, $post ); @@ -1084,11 +1062,11 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { $ret = array(); reset( $array ); foreach ( $array as $ii => $va ) { - $sorter[ $ii ] = $va[ $key ]; + $sorter[$ii] = $va[$key]; } asort( $sorter ); foreach ( $sorter as $ii => $va ) { - $ret[ $ii ] = $array[ $ii ]; + $ret[$ii] = $array[$ii]; } $array = $ret; } @@ -1180,7 +1158,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { $sampleurl = $this->get_sample_permalink( $post ); $job['pageUrl'] = preg_replace( '`%(?:post|page)name%`', $sampleurl[1], $sampleurl[0] ); $job['pageSlug'] = urldecode( $post->post_name ); - $job['keyword'] = self::get_value( 'focuskw' ); + $job['keyword'] = self::get_value( 'focuskw', $post->ID ); $job['keyword_folded'] = $this->strip_separators_and_fold( $job['keyword'] ); $job['post_id'] = $post->ID; $job['post_type'] = $post->post_type; @@ -1214,7 +1192,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { $this->score_keyword( $job['keyword'], $results ); // Title - $title = self::get_value( 'title' ); + $title = self::get_value( 'title', $post->ID ); if ( $title !== '' ) { $job['title'] = $title; } else { @@ -1230,11 +1208,11 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { // Meta description $description = ''; - $desc_meta = self::get_value( 'metadesc' ); + $desc_meta = self::get_value( 'metadesc', $post->ID ); if ( $desc_meta !== '' ) { $description = $desc_meta; - } elseif ( isset( $options[ 'metadesc-' . $post->post_type ] ) && $options[ 'metadesc-' . $post->post_type ] !== '' ) { - $description = wpseo_replace_vars( $options[ 'metadesc-' . $post->post_type ], $post ); + } elseif ( isset( $options['metadesc-' . $post->post_type] ) && $options['metadesc-' . $post->post_type] !== '' ) { + $description = wpseo_replace_vars( $options['metadesc-' . $post->post_type], $post ); } unset( $desc_meta ); @@ -1336,12 +1314,12 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { * @param string $rawScore The raw score, to be used by other filters. */ function save_score_result( &$results, $scoreValue, $scoreMessage, $scoreLabel, $rawScore = null ) { - $score = array( + $score = array( 'val' => $scoreValue, 'msg' => $scoreMessage, 'raw' => $rawScore, ); - $results[ $scoreLabel ] = $score; + $results[$scoreLabel] = $score; } /** @@ -1364,7 +1342,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { $inputString = str_replace( $keywordCharactersAlwaysReplacedBySpace, ' ', $inputString ); // standardise whitespace - $inputString = preg_replace( '`\s+`u', ' ', $inputString ); + $inputString = wpseo_standardize_whitespace( $inputString ); // deal with the separators that can be either removed or replaced by space if ( $removeOptionalCharacters ) { @@ -1377,7 +1355,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { } // standardise whitespace again - $inputString = preg_replace( '`\s+`u', ' ', $inputString ); + $inputString = wpseo_standardize_whitespace( $inputString ); return trim( $inputString ); } @@ -1485,6 +1463,8 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { if ( $job['title'] == '' ) { $this->save_score_result( $results, 1, $scoreTitleMissing, 'title' ); } else { + $job['title'] = wp_strip_all_tags( $job['title'] ); + $length = $this->statistics()->text_length( $job['title'] ); if ( $length < $scoreTitleMinLength ) { $this->save_score_result( $results, 6, sprintf( $scoreTitleTooShort, $length ), 'title_length' ); @@ -1611,12 +1591,12 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { if ( $dom_object->attributes->getNamedItem( 'rel' ) ) { $link_rel = $dom_object->attributes->getNamedItem( 'rel' )->textContent; if ( stripos( $link_rel, 'nofollow' ) !== false ) { - $count[ $type ]['nofollow'] ++; + $count[$type]['nofollow'] ++; } else { - $count[ $type ]['dofollow'] ++; + $count[$type]['dofollow'] ++; } } else { - $count[ $type ]['dofollow'] ++; + $count[$type]['dofollow'] ++; } } } @@ -1866,7 +1846,7 @@ if ( ! class_exists( 'WPSEO_Metabox' ) ) { // Keyword Density check $keywordDensity = 0; if ( $wordCount > 100 ) { - $keywordCount = preg_match_all( '`\b' . preg_quote( $job['keyword'], '`' ) . '\b`miu', utf8_encode( $body ), $res ); + $keywordCount = preg_match_all( '`\b' . preg_quote( $job['keyword'], '`' ) . '\b`miu', $body, $res ); if ( ( $keywordCount > 0 && $keywordWordCount > 0 ) && $wordCount > $keywordCount ) { $keywordDensity = wpseo_calc( wpseo_calc( $keywordCount, '/', wpseo_calc( $wordCount, '-', ( wpseo_calc( wpseo_calc( $keywordWordCount, '-', 1 ), '*', $keywordCount ) ) ) ), '*', 100, true, 2 ); } diff --git a/wp-content/plugins/wordpress-seo/admin/class-opengraph-admin.php b/wp-content/plugins/wordpress-seo/admin/class-opengraph-admin.php index 50089c6..3515c8f 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-opengraph-admin.php +++ b/wp-content/plugins/wordpress-seo/admin/class-opengraph-admin.php @@ -23,6 +23,7 @@ if ( ! class_exists( 'WPSEO_Social_Admin' ) ) { add_action( 'wpseo_tab_header', array( $this, 'tab_header' ), 60 ); add_action( 'wpseo_tab_content', array( $this, 'tab_content' ) ); add_filter( 'wpseo_save_metaboxes', array( $this, 'save_meta_boxes' ), 10, 1 ); + add_action( 'wpseo_save_compare_data', array( $this, 'og_data_compare' ), 10, 1 ); } /** @@ -32,23 +33,35 @@ if ( ! class_exists( 'WPSEO_Social_Admin' ) ) { * the main meta box definition array in the class WPSEO_Meta() as well!!!! */ public static function translate_meta_boxes() { - self::$meta_fields['social']['opengraph-title']['title'] = __( 'Facebook Title', 'wordpress-seo' ); - self::$meta_fields['social']['opengraph-title']['description'] = __( 'If you don\'t want to use the post title for sharing the post on Facebook but instead want another title there, write it here.', 'wordpress-seo' ); + $title_text = __( 'If you don\'t want to use the post title for sharing the post on %s but instead want another title there, write it here.', 'wordpress-seo' ); + $description_text = __( 'If you don\'t want to use the meta description for sharing the post on %s but want another description there, write it here.', 'wordpress-seo' ); + $image_text = __( 'If you want to override the image used on %s for this post, upload / choose an image or add the URL here.', 'wordpress-seo' ); - self::$meta_fields['social']['opengraph-description']['title'] = __( 'Facebook Description', 'wordpress-seo' ); - self::$meta_fields['social']['opengraph-description']['description'] = __( 'If you don\'t want to use the meta description for sharing the post on Facebook but want another description there, write it here.', 'wordpress-seo' ); + $options = WPSEO_Options::get_all(); - self::$meta_fields['social']['opengraph-image']['title'] = __( 'Facebook Image', 'wordpress-seo' ); - self::$meta_fields['social']['opengraph-image']['description'] = __( 'If you want to override the Facebook image for this post, upload / choose an image or add the URL here.', 'wordpress-seo' ); + foreach ( + array( + 'opengraph' => __( 'Facebook', 'wordpress-seo' ), + 'twitter' => __( 'Twitter', 'wordpress-seo' ), + 'googleplus' => __( 'Google+', 'wordpress-seo' ), + ) as $network => $label + ) { + if ( true === $options[ $network ] ) { + if ( 'googleplus' == $network ) { + $network = 'google-plus'; // Yuck, I know. + } - self::$meta_fields['social']['google-plus-title']['title'] = __( 'Google+ Title', 'wordpress-seo' ); - self::$meta_fields['social']['google-plus-title']['description'] = __( 'If you don\'t want to use the post title for sharing the post on Google+ but instead want another title there, write it here.', 'wordpress-seo' ); + self::$meta_fields['social'][ $network . '-title' ]['title'] = sprintf( __( '%s Title', 'wordpress-seo' ), $label ); + self::$meta_fields['social'][ $network . '-title' ]['description'] = sprintf( $title_text, $label ); - self::$meta_fields['social']['google-plus-description']['title'] = __( 'Google+ Description', 'wordpress-seo' ); - self::$meta_fields['social']['google-plus-description']['description'] = __( 'If you don\'t want to use the meta description for sharing the post on Google+ but want another description there, write it here.', 'wordpress-seo' ); + self::$meta_fields['social'][ $network . '-description' ]['title'] = sprintf( __( '%s Description', 'wordpress-seo' ), $label ); + self::$meta_fields['social'][ $network . '-description' ]['description'] = sprintf( $description_text, $label ); + + self::$meta_fields['social'][ $network . '-image' ]['title'] = sprintf( __( '%s Image', 'wordpress-seo' ), $label ); + self::$meta_fields['social'][ $network . '-image' ]['description'] = sprintf( $image_text, $label ); + } + } - self::$meta_fields['social']['google-plus-image']['title'] = __( 'Google+ Image', 'wordpress-seo' ); - self::$meta_fields['social']['google-plus-image']['description'] = __( 'If you want to override the image for this post that Google+ will use, upload / choose an image or add the URL here. Note that it will otherwise default to the Facebook one above.', 'wordpress-seo' ); } /** @@ -74,12 +87,51 @@ if ( ! class_exists( 'WPSEO_Social_Admin' ) ) { * Filter over the meta boxes to save, this function adds the Social meta boxes. * * @param array $field_defs Array of metaboxes to save. + * * @return array */ public function save_meta_boxes( $field_defs ) { return array_merge( $field_defs, $this->get_meta_field_defs( 'social' ) ); } + /** + * This method will compare opengraph fields with the posted values. + * + * When fields are changed, the facebook cache will be purge. + * + * @param object $post + */ + public function og_data_compare( $post ) { + + // Check if post data is available, if post_id is set and if original post_status is publish + if ( ! empty( $_POST ) && ! empty( $post->ID ) && $post->post_status == 'publish' && $_POST['original_post_status'] === 'publish' ) { + + $fields_to_compare = array( + 'opengraph-title', + 'opengraph-description', + 'opengraph-image' + ); + + $reset_facebook_cache = false; + + foreach ( $fields_to_compare AS $field_to_compare ) { + $old_value = self::get_value( $field_to_compare, $post->ID ); + $new_value = self::get_post_value( self::$form_prefix . $field_to_compare ); + + if ( $old_value !== $new_value ) { + $reset_facebook_cache = true; + break; + } + } + + if ( $reset_facebook_cache ) { + wp_remote_get( + 'https://graph.facebook.com/?id=' . get_permalink( $post->ID ) . '&scrape=true&method=post' + ); + } + } + } + /********************** DEPRECATED METHODS **********************/ @@ -88,16 +140,18 @@ if ( ! class_exists( 'WPSEO_Social_Admin' ) ) { * * @deprecated 1.5.0 * @deprecated use WPSEO_Meta::get_meta_field_defs() - * @see WPSEO_Meta::get_meta_field_defs() + * @see WPSEO_Meta::get_meta_field_defs() * - * @param string $post_type - * @return array Array containing the meta boxes + * @param string $post_type + * + * @return array Array containing the meta boxes */ public function get_meta_boxes( $post_type = 'post' ) { _deprecated_function( __METHOD__, 'WPSEO 1.5.0', 'WPSEO_Meta::get_meta_field_defs()' ); + return $this->get_meta_field_defs( 'social' ); } } /* End of class */ -} /* End of class-exists wrapper */ \ No newline at end of file +} /* End of class-exists wrapper */ diff --git a/wp-content/plugins/wordpress-seo/admin/class-plugin-conflict.php b/wp-content/plugins/wordpress-seo/admin/class-plugin-conflict.php new file mode 100644 index 0000000..aba899c --- /dev/null +++ b/wp-content/plugins/wordpress-seo/admin/class-plugin-conflict.php @@ -0,0 +1,129 @@ + array( + '2-click-socialmedia-buttons/2-click-socialmedia-buttons.php', + + // 2 Click Social Media Buttons + 'add-link-to-facebook/add-link-to-facebook.php', // Add Link to Facebook + 'add-meta-tags/add-meta-tags.php', // Add Meta Tags + 'easy-facebook-share-thumbnails/esft.php', // Easy Facebook Share Thumbnail + 'facebook/facebook.php', // Facebook (official plugin) + 'facebook-awd/AWD_facebook.php', // Facebook AWD All in one + 'facebook-featured-image-and-open-graph-meta-tags/fb-featured-image.php', + // Facebook Featured Image & OG Meta Tags + 'facebook-meta-tags/facebook-metatags.php', // Facebook Meta Tags + 'wonderm00ns-simple-facebook-open-graph-tags/wonderm00n-open-graph.php', + // Facebook Open Graph Meta Tags for WordPress + 'facebook-revised-open-graph-meta-tag/index.php', // Facebook Revised Open Graph Meta Tag + 'facebook-thumb-fixer/_facebook-thumb-fixer.php', // Facebook Thumb Fixer + 'facebook-and-digg-thumbnail-generator/facebook-and-digg-thumbnail-generator.php', + // Fedmich's Facebook Open Graph Meta + 'header-footer/plugin.php', // Header and Footer + 'network-publisher/networkpub.php', // Network Publisher + 'nextgen-facebook/nextgen-facebook.php', // NextGEN Facebook OG + 'social-networks-auto-poster-facebook-twitter-g/NextScripts_SNAP.php', + // NextScripts SNAP + 'opengraph/opengraph.php', // Open Graph + 'open-graph-protocol-framework/open-graph-protocol-framework.php', + // Open Graph Protocol Framework + 'seo-facebook-comments/seofacebook.php', // SEO Facebook Comments + 'seo-ultimate/seo-ultimate.php', // SEO Ultimate + 'sexybookmarks/sexy-bookmarks.php', // Shareaholic + 'shareaholic/sexy-bookmarks.php', // Shareaholic + 'sharepress/sharepress.php', // SharePress + 'simple-facebook-connect/sfc.php', // Simple Facebook Connect + 'social-discussions/social-discussions.php', // Social Discussions + 'social-sharing-toolkit/social_sharing_toolkit.php', // Social Sharing Toolkit + 'socialize/socialize.php', // Socialize + 'only-tweet-like-share-and-google-1/tweet-like-plusone.php', + // Tweet, Like, Google +1 and Share + 'wordbooker/wordbooker.php', // Wordbooker + 'wpsso/wpsso.php', // WordPress Social Sharing Optimization + 'wp-caregiver/wp-caregiver.php', // WP Caregiver + 'wp-facebook-like-send-open-graph-meta/wp-facebook-like-send-open-graph-meta.php', + // WP Facebook Like Send & Open Graph Meta + 'wp-facebook-open-graph-protocol/wp-facebook-ogp.php', // WP Facebook Open Graph protocol + 'wp-ogp/wp-ogp.php', // WP-OGP + 'zoltonorg-social-plugin/zosp.php', // Zolton.org Social Plugin + ), + + 'xml_sitemaps' => array( + 'google-sitemap-plugin/google-sitemap-plugin.php', // Google Sitemap (BestWebSoft) + 'xml-sitemaps/xml-sitemaps.php', // XML Sitemaps (Denis de Bernardy and Mike Koepke) + 'bwp-google-xml-sitemaps/bwp-simple-gxs.php', // Better WordPress Google XML Sitemaps (Khang Minh) + 'google-sitemap-generator/sitemap.php', // Google XML Sitemaps (Arne Brachhold) + 'xml-sitemap-feed/xml-sitemap.php', // XML Sitemap & Google News feeds (RavanH) + 'google-monthly-xml-sitemap/monthly-xml-sitemap.php', // Google Monthly XML Sitemap (Andrea Pernici) + 'simple-google-sitemap-xml/simple-google-sitemap-xml.php', // Simple Google Sitemap XML (iTx Technologies) + 'another-simple-xml-sitemap/another-simple-xml-sitemap.php', // Another Simple XML Sitemap + 'xml-maps/google-sitemap.php', // Xml Sitemap (Jason Martens) + 'google-xml-sitemap-generator-by-anton-dachauer/adachauer-google-xml-sitemap.php', // Google XML Sitemap Generator by Anton Dachauer (Anton Dachauer) + 'wp-xml-sitemap/wp-xml-sitemap.php', // WP XML Sitemap (Team Vivacity) + 'sitemap-generator-for-webmasters/sitemap.php', // Sitemap Generator for Webmasters (iwebslogtech) + 'xml-sitemap-xml-sitemapcouk/xmls.php', // XML Sitemap - XML-Sitemap.co.uk (Simon Hancox) + 'sewn-in-xml-sitemap/sewn-xml-sitemap.php', // Sewn In XML Sitemap (jcow) + 'rps-sitemap-generator/rps-sitemap-generator.php', // RPS Sitemap Generator (redpixelstudios) + ) + ); + + /** + * Overrides instance to set with this class as class + * + * @return Yoast_Plugin_Conflict + */ + public static function get_instance( $classname = __CLASS__ ) { + return parent::get_instance( $classname ); + } + + /** + * After activating any plugin, this method will be executed by a hook. + * + * If the activated plugin is conflicting with ours a notice will be shown. + * + * @param string|bool $plugin + * + */ + public static function hook_check_for_plugin_conflicts( $plugin = false ) { + // The instance of itself + $instance = self::get_instance(); + + // Only add plugin as active plugin if $plugin isn't false + if ( $plugin ) { + // Because it's just activated + $instance->add_active_plugin( $instance->find_plugin_category( $plugin ), $plugin ); + } + + $plugin_sections = array( + 'open_graph' => 'open graph', + 'xml_sitemaps' => 'xml sitemaps' + ); + + $instance->check_plugin_conflicts( $plugin_sections ); + } + + } + +} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/admin/class-pointers.php b/wp-content/plugins/wordpress-seo/admin/class-pointers.php index 42fe367..c81c401 100644 --- a/wp-content/plugins/wordpress-seo/admin/class-pointers.php +++ b/wp-content/plugins/wordpress-seo/admin/class-pointers.php @@ -19,7 +19,7 @@ if ( ! class_exists( 'WPSEO_Pointers' ) ) { class WPSEO_Pointers { /** - * @var object Instance of this class + * @var object Instance of this class */ public static $instance; @@ -37,8 +37,7 @@ if ( ! class_exists( 'WPSEO_Pointers' ) ) { } if ( $options['tracking_popup_done'] === false && ! isset( $_GET['allow_tracking'] ) ) { add_action( 'admin_print_footer_scripts', array( $this, 'tracking_request' ) ); - } - elseif ( $options['ignore_tour'] === false ) { + } elseif ( $options['ignore_tour'] === false ) { add_action( 'admin_print_footer_scripts', array( $this, 'intro_tour' ) ); } } @@ -53,6 +52,7 @@ if ( ! class_exists( 'WPSEO_Pointers' ) ) { if ( ! ( self::$instance instanceof self ) ) { self::$instance = new self(); } + return self::$instance; } @@ -64,18 +64,24 @@ if ( ! class_exists( 'WPSEO_Pointers' ) ) { $id = '#wpadminbar'; $nonce = wp_create_nonce( 'wpseo_activate_tracking' ); - $content = '

' . __( 'Help improve WordPress SEO', 'wordpress-seo' ) . '

'; - $content .= '

' . __( 'You\'ve just installed WordPress SEO by Yoast. Please helps us improve it by allowing us to gather anonymous usage stats so we know which configurations, plugins and themes to test with.', 'wordpress-seo' ) . '

'; - $opt_arr = array( + $content = '

' . __( 'Help improve WordPress SEO', 'wordpress-seo' ) . '

'; + $content .= '

' . __( 'You’ve just installed WordPress SEO by Yoast. Please helps us improve it by allowing us to gather anonymous usage stats so we know which configurations, plugins and themes to test with.', 'wordpress-seo' ) . '

'; + $opt_arr = array( 'content' => $content, 'position' => array( 'edge' => 'top', 'align' => 'center' ) ); - $button2 = __( 'Allow tracking', 'wordpress-seo' ); + $button_array = array( + 'button1' => array( + 'text' => __( 'Do not allow tracking', 'wordpress-seo' ), + 'function' => 'wpseo_store_answer("no","' . $nonce . '")', + ), + 'button2' => array( + 'text' => __( 'Allow tracking', 'wordpress-seo' ), + 'function' => 'wpseo_store_answer("yes","' . $nonce . '")', + ), + ); - $function2 = 'wpseo_store_answer("yes","' . $nonce . '")'; - $function1 = 'wpseo_store_answer("no","' . $nonce . '")'; - - $this->print_scripts( $id, $opt_arr, __( 'Do not allow tracking', 'wordpress-seo' ), $button2, $function2, $function1 ); + $this->print_scripts( $id, $opt_arr, $button_array ); } /** @@ -84,91 +90,114 @@ if ( ! class_exists( 'WPSEO_Pointers' ) ) { function intro_tour() { global $pagenow, $current_user; + // @FIXME: Links to tabs only work with target="_blank" and thus open in a new window $adminpages = array( 'wpseo_dashboard' => array( - 'content' => '

' . __( 'Dashboard', 'wordpress-seo' ) . '

' . __( 'This is the WordPress SEO Dashboard, here you can restart this tour or revert the WP SEO settings to default.', 'wordpress-seo' ) . '

' - . '

' . __( 'More WordPress SEO', 'wordpress-seo' ) . '
' . sprintf( __( 'There\'s more to learn about WordPress & SEO than just using this plugin. Read our article %1$sthe definitive guide to WordPress SEO%2$s.', 'wordpress-seo' ), '', '' ) . '

' - . '

' . __( 'Webmaster Tools', 'wordpress-seo' ) . '
' . __( 'Underneath the General Settings, you can add the verification codes for the different Webmaster Tools programs, I highly encourage you to check out both Google and Bing\'s Webmaster Tools.', 'wordpress-seo' ) . '

' - . '

' . __( 'About This Tour', 'wordpress-seo' ) . '
' . __( 'Clicking Next below takes you to the next page of the tour. If you want to stop this tour, click "Close".', 'wordpress-seo' ) . '

' - . '

' . __( 'Like this plugin?', 'wordpress-seo' ) . '
' . sprintf( __( 'If you like this plugin, please %srate it 5 stars on WordPress.org%s and consider making a donation by clicking the button on the right!', 'wordpress-seo' ), '', '' ) . '

' . - '

' . __( 'Newsletter', 'wordpress-seo' ) . '
' . - __( 'If you would like to keep up to date regarding the WordPress SEO plugin and other plugins by Yoast, subscribe to the newsletter:', 'wordpress-seo' ) . '

' . - '
' . - '

' . - '
' . - '' . - '' . - '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_titles' ) . '";', + 'content' => '

' . __( 'Dashboard', 'wordpress-seo' ) . '

' . __( 'This is the WordPress SEO Dashboard, here you can restart this tour or revert the WP SEO settings to default.', 'wordpress-seo' ) . '

' + . '

' . __( 'More WordPress SEO', 'wordpress-seo' ) . '
' . sprintf( __( 'There’s more to learn about WordPress & SEO than just using this plugin. A great start is our article %1$sthe definitive guide to WordPress SEO%2$s.', 'wordpress-seo' ), '', '' ) . '

' + . '

' . __( 'Tracking', 'wordpress-seo' ) . '
' . __( 'To provide you with the best experience possible, we need your help. Please enable tracking to help us gather anonymous usage data.', 'wordpress-seo' ) . '

' + . '

' . __( 'Webmaster Tools', 'wordpress-seo' ) . '
' . __( 'You can also add the verification codes for the different Webmaster Tools programs here, we highly encourage you to check out both Google and Bing’s Webmaster Tools.', 'wordpress-seo' ) . '

' + . '

' . __( 'WordPress SEO Tour', 'wordpress-seo' ) . '
' . __( 'This tour will show you around in the plugin, to give you a general overview of the plugin.', 'wordpress-seo' ) . '

' + . '

' . __( 'Newsletter', 'wordpress-seo' ) . '
' . + __( 'If you would like to us to keep you up-to-date regarding WordPress SEO and other plugins by Yoast, subscribe to our newsletter:', 'wordpress-seo' ) . '

' . + '
' . + '

' . + '
' . + '' . + '' . + '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_titles' ) . '";', + 'position' => array( 'edge' => 'top', 'align' => 'center' ), ), 'wpseo_titles' => array( - 'content' => '

' . __( 'Title & Description settings', 'wordpress-seo' ) . '

' - . '

' . __( 'This is where you set the templates for your titles and descriptions of all the different types of pages on your blog, be it your homepage, posts & pages (under post types), category or tag archives (under taxonomy archives), or even custom post type archives and custom posts: all of that is done from here.', 'wordpress-seo' ) . '

' - . '

' . __( 'Templates', 'wordpress-seo' ) . '
' - . __( 'The templates are built using variables, the help tab for all the different variables available to you to use in these.', 'wordpress-seo' ) . '

' - . '

' . __( 'Sitewide settings', 'wordpress-seo' ) . '
' - . __( 'You can also set some settings for the entire site here to add specific meta tags or to remove some unneeded cruft.', 'wordpress-seo' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_social' ) . '";', + 'content' => '

' . __( 'Title & Metas settings', 'wordpress-seo' ) . '

' . '

' . __( 'This is where you set the titles and meta-information for all your post types, taxonomies, archives, special pages and for your homepage. The page is divided into different tabs. Make sure you check ’em all out!', 'wordpress-seo' ) . '

' + . '

' . __( 'Sitewide settings', 'wordpress-seo' ) . '
' . __( 'The first tab will show you site-wide settings. You can also set some settings for the entire site here to add specific meta tags or to remove some unneeded cruft.', 'wordpress-seo' ) . '

' + . '

' . __( 'Templates and settings', 'wordpress-seo' ) . '
' . sprintf( __( 'Now click on the ‘%1$sPost Types%2$s’-tab, as this will be our example.', 'wordpress-seo' ), '', '' ) . '
' . __( 'The templates are built using variables. You can find all these variables in the help tab (in the top-right corner of the page). The settings allow you to set specific behavior for the post types.', 'wordpress-seo' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_social' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_dashboard' ) . '";', ), 'wpseo_social' => array( - 'content' => '

' . __( 'Social settings', 'wordpress-seo' ) . '

' - . '

' . __( 'Facebook Open Graph', 'wordpress-seo' ) . '
' - . __( 'On this page you can enable the Open Graph functionality from this plugin, as well as assign a Facebook user or Application to be the admin of your site, so you can view the Facebook insights.', 'wordpress-seo' ) . '

' - . '

' . sprintf( __( 'Read more about %1$sFacebook Open Graph%2$s.', 'wordpress-seo' ), '', '' ) . '

' - . '

' . __( 'Twitter Cards', 'wordpress-seo' ) . '
' - . sprintf( __( 'This functionality is currently in beta, but it allows for %1$sTwitter Cards%2$s.', 'wordpress-seo' ), '', '' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_xml' ) . '";', + 'content' => '

' . __( 'Social settings', 'wordpress-seo' ) . '

' + . '

' . __( 'Facebook', 'wordpress-seo' ) . '
' . sprintf( __( 'On this tab you can enable the %1$sFacebook Open Graph%2$s functionality from this plugin, as well as assign a Facebook user or Application to be the admin of your site, so you can view the Facebook insights.', 'wordpress-seo' ), '', '' ) . '

' . __( 'The frontpage settings allow you to set meta-data for your homepage, whereas the default settings allow you to set a fallback for all posts/pages without images. ', 'wordpress-seo' ) . '

' + . '

' . __( 'Twitter', 'wordpress-seo' ) . '
' . sprintf( __( 'With %1$sTwitter Cards%2$s, you can attach rich photos, videos and media experience to tweets that drive traffic to your website. Simply check the box, sign up for the service, and users who Tweet links to your content will have a “Card” added to the tweet that’s visible to all of their followers.', 'wordpress-seo' ), '', '' ) . '

' + . '

' . __( 'Google+', 'wordpress-seo' ) . '
' . sprintf( __( 'This tab allows you to add specific post meta data for Google+. And if you have a Google+ page for your business, add that URL here and link it on your %1$sGoogle+%2$s page’s about page.', 'wordpress-seo' ), '', '' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_xml' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_titles' ) . '";', ), 'wpseo_xml' => array( - 'content' => '

' . __( 'XML Sitemaps', 'wordpress-seo' ) . '

' . __( 'This plugin adds an XML sitemap to your site. It\'s automatically updated when you publish a new post, page or custom post and Google and Bing will be automatically notified.', 'wordpress-seo' ) . '

' . __( 'Be sure to check whether post types or taxonomies are showing that search engines shouldn\'t be indexing, if so, check the box before them to hide them from the XML sitemaps.', 'wordpress-seo' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_permalinks' ) . '";', + 'content' => '

' . __( 'XML Sitemaps', 'wordpress-seo' ) . '

' + . '

' . __( 'What are XML sitemaps?', 'wordpress-seo' ) . '
' . __( 'A Sitemap is an XML file that lists the URLs for a site. It allows webmasters to include additional information about each URL: when it was last updated, how often it changes, and how important it is in relation to other URLs in the site. This allows search engines to crawl the site more intelligently.', 'wordpress-seo' ) . '

' + . '

' . __( 'What does the plugin do with XML Sitemaps?', 'wordpress-seo' ) . '
' . __( 'This plugin adds XML sitemaps to your site. The sitemaps are automatically updated when you publish a new post, page or custom post and Google and Bing will be automatically notified. You can also have the plugin automatically notify Yahoo! and Ask.com.', 'wordpress-seo' ) . '

' . __( 'If you want to exclude certain post types and/or taxonomies, you can also set that on this page.', 'wordpress-seo' ) . '

' . __( 'Is your webserver low on memory? Decrease the entries per sitemap (default: 1000) to reduce load.', 'wordpress-seo' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_permalinks' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_social' ) . '";', ), 'wpseo_permalinks' => array( - 'content' => '

' . __( 'Permalink Settings', 'wordpress-seo' ) . '

' . __( 'All of the options here are for advanced users only, if you don\'t know whether you should check any, don\'t touch them.', 'wordpress-seo' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_internal-links' ) . '";', + 'content' => '

' . __( 'Permalink Settings', 'wordpress-seo' ) . '

' . __( 'All of the options here are for advanced users only, if you don’t know whether you should check any, don’t touch them.', 'wordpress-seo' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_internal-links' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_xml' ) . '";', ), 'wpseo_internal-links' => array( - 'content' => '

' . __( 'Breadcrumbs Settings', 'wordpress-seo' ) . '

' . sprintf( __( 'If your theme supports my breadcrumbs, as all Genesis and WooThemes themes as well as a couple of other ones do, you can change the settings for those here. If you want to modify your theme to support them, %sfollow these instructions%s.', 'wordpress-seo' ), '', '' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_rss' ) . '";', + 'content' => '

' . __( 'Breadcrumbs Settings', 'wordpress-seo' ) . '

' . sprintf( __( 'If your theme supports my breadcrumbs, as all Genesis and WooThemes themes as well as a couple of other ones do, you can change the settings for those here. If you want to modify your theme to support them, %sfollow these instructions%s.', 'wordpress-seo' ), '', '' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_rss' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_permalinks' ) . '";', ), 'wpseo_rss' => array( - 'content' => '

' . __( 'RSS Settings', 'wordpress-seo' ) . '

' . __( 'This incredibly powerful function allows you to add content to the beginning and end of your posts in your RSS feed. This helps you gain links from people who steal your content!', 'wordpress-seo' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_import' ) . '";', + 'content' => '

' . __( 'RSS Settings', 'wordpress-seo' ) . '

' . __( 'This incredibly powerful function allows you to add content to the beginning and end of your posts in your RSS feed. This helps you gain links from people who steal your content!', 'wordpress-seo' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_import' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_internal-links' ) . '";', ), 'wpseo_import' => array( - 'content' => '

' . __( 'Import & Export', 'wordpress-seo' ) . '

' . __( 'Just switched over from another SEO plugin? Use the options here to switch your data over. If you were using some of my older plugins like Robots Meta & RSS Footer, you can import the settings here too.', 'wordpress-seo' ) . '

' . __( 'If you have multiple blogs and you\'re happy with how you\'ve configured this blog, you can export the settings and import them on another blog so you don\'t have to go through this process twice!', 'wordpress-seo' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . network_admin_url( 'admin.php?page=wpseo_files' ) . '";', // will auto-use admin_url if not on multi-site + 'content' => '

' . esc_html__( 'Import & Export', 'wordpress-seo' ) . '

' + . '

' . __( 'Import from other (SEO) plugins', 'wordpress-seo' ) . '
' . __( 'We can imagine that you switch from another SEO plugin to WordPress SEO. If you just did, you can use these options to transfer your SEO-data. If you were using one of my older plugins like Robots Meta & RSS Footer, you can import the settings here too.', 'wordpress-seo' ) . '

' + . '

' . __( 'Other imports', 'wordpress-seo' ) . '
' . sprintf( __( 'If you’re using one of our premium plugins, such as %1$sLocal SEO%2$s, you can also find specific import-options for that plugin here.', 'wordpress-seo' ), '', '' ) . '

' + . '

' . __( 'Export', 'wordpress-seo' ) . '
' . __( 'If you have multiple blogs and you’re happy with how you’ve configured this blog, you can export the settings and import them on another blog so you don’t have to go through this process twice!', 'wordpress-seo' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . network_admin_url( 'admin.php?page=wpseo_bulk-editor' ) . '";', // will auto-use admin_url if not on multi-site + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_rss' ) . '";', + ), + 'wpseo_bulk-editor' => array( + 'content' => '

' . __( 'Bulk Editor', 'wordpress-seo' ) . '

' . __( 'This page lets you view and edit the titles and meta descriptions of all posts and pages on your site. This allows you to edit the title or meta description of all your pages in one place, rather than having to edit each individual page.', 'wordpress-seo' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_files' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_import' ) . '";', ), 'wpseo_files' => array( - 'content' => '

' . __( 'File Editor', 'wordpress-seo' ) . '

' . __( 'Here you can edit the .htaccess and robots.txt files, two of the most powerful files in your WordPress install. Only touch these files if you know what you\'re doing!', 'wordpress-seo' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_bulk-title-editor' ) . '";', + 'content' => '

' . __( 'File Editor', 'wordpress-seo' ) . '

' . __( 'Here you can edit the .htaccess and robots.txt files, two of the most powerful files in your WordPress install, if your WordPress installation has write-access to the files. But please, only touch these files if you know what you’re doing!', 'wordpress-seo' ) . '

', + 'next' => __( 'Next', 'wordpress-seo' ), + 'next_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_licenses' ) . '";', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_bulk-editor' ) . '";', ), - 'wpseo_bulk-title-editor' => array( - 'content' => '

' . __( 'Bulk Title Editor', 'wordpress-seo' ) . '

' . __( 'This is where you can view and edit the SEO titles of every post and page on your site. If you have a lot of pages that need SEO titles, use this page to save yourself the hassle of editing every page one at a time!', 'wordpress-seo' ) . '

', - 'button2' => __( 'Next', 'wordpress-seo' ), - 'function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_bulk-description-editor' ) . '";', - ), - 'wpseo_bulk-description-editor' => array( - 'content' => '

' . __( 'Bulk Description Editor', 'wordpress-seo' ) . '

' . __( 'This page lets you view and edit the meta descriptions of all posts and pages on your site. Just like the Bulk Title Editor, this allows you to edit the meta description of all your pages in one place, rather than having to edit each individual page.', 'wordpress-seo' ) . '

' - . '

' . sprintf( __( 'The tour ends here, thank you for using my plugin and good luck with your SEO!

Best,
Joost de Valk - %1$sYoast.com%2$s', 'wordpress-seo' ), '', '' ) . '

' + 'wpseo_licenses' => array( + 'content' => '

' . __( 'Extensions and Licenses', 'wordpress-seo' ) . '

' + . '

' . __( 'Extensions', 'wordpress-seo' ) . '
' . sprintf( __( 'The powerful functions of WordPress SEO can be extended with %1$sYoast premium plugins%2$s. These premium plugins require the installation of WordPress SEO or WordPress SEO Premium and add specific functionality. You can read all about the Yoast Premium Plugins on %1$shttp://yoast.com/wordpress/plugins/%2$s.', 'wordpress-seo' ), '', '' ) . '

' + . '

' . __( 'Licenses', 'wordpress-seo' ) . '
' . __( 'Once you’ve purchased WordPress SEO Premium or any other premium Yoast plugin, you’ll have to enter a license key. You can do so on the Licenses-tab. Once you’ve activated your premium plugin, you can use all its powerful features.', 'wordpress-seo' ) . '

' + . '

' . __( 'Like this plugin?', 'wordpress-seo' ) . '
' . sprintf( __( 'So, we’ve come to the end of the tour. If you like the plugin, please %srate it 5 stars on WordPress.org%s!', 'wordpress-seo' ), '', '' ) . '

' + . '

' . sprintf( __( 'Thank you for using my plugin and good luck with your SEO!

Best,
Team Yoast - %1$sYoast.com%2$s', 'wordpress-seo' ), '', '' ) . '

', + 'prev' => __( 'Previous', 'wordpress-seo' ), + 'prev_function' => 'window.location="' . admin_url( 'admin.php?page=wpseo_files' ) . '";', ), ); - // Remove the last step and add tour end to import page if file editing is disallowed or if the site is a multisite and the current user isn't a superadmin - if ( wpseo_allow_system_file_edit() === false ) { + // Skip tour about wpseo_files page if file editing is disallowed or if the site is a multisite and the current user isn't a superadmin + if ( false === wpseo_allow_system_file_edit() ) { unset( $adminpages['wpseo_files'] ); - $adminpages['wpseo_import']['function'] = ''; - unset( $adminpages['wpseo_import']['button2'] ); - $adminpages['wpseo_import']['content'] .= '

' . sprintf( __( 'The tour ends here,thank you for using my plugin and good luck with your SEO!

Best,
Joost de Valk - %1$sYoast.com%2$s', 'wordpress-seo' ), '', '' ) . '

'; + $adminpages['wpseo_bulk-editor']['function'] = 'window.location="' . admin_url( 'admin.php?page=wpseo_licenses' ) . '";'; } $page = ''; @@ -176,57 +205,83 @@ if ( ! class_exists( 'WPSEO_Pointers' ) ) { $page = $_GET['page']; } - $function = ''; - $button2 = ''; - $opt_arr = array(); - $id = '#wpseo-title'; + $button_array = array( + 'button1' => array( + 'text' => __( 'Close', 'wordpress-seo' ), + 'function' => '', + ) + ); + $opt_arr = array(); + $id = '#wpseo-title'; if ( 'admin.php' != $pagenow || ! array_key_exists( $page, $adminpages ) ) { - $id = 'li.toplevel_page_wpseo_dashboard'; - $content = '

' . __( 'Congratulations!', 'wordpress-seo' ) . '

'; - $content .= '

' . __( 'You\'ve just installed WordPress SEO by Yoast! Click "Start Tour" to view a quick introduction of this plugins core functionality.', 'wordpress-seo' ) . '

'; - $opt_arr = array( + $id = 'li.toplevel_page_wpseo_dashboard'; + $content = '

' . __( 'Congratulations!', 'wordpress-seo' ) . '

'; + $content .= '

' . __( 'You’ve just installed WordPress SEO by Yoast! Click “Start Tour” to view a quick introduction of this plugin’s core functionality.', 'wordpress-seo' ) . '

'; + $opt_arr = array( 'content' => $content, - 'position' => array( 'edge' => 'top', 'align' => 'center' ) + 'position' => array( 'edge' => 'bottom', 'align' => 'center' ) ); - $button2 = __( 'Start Tour', 'wordpress-seo' ); - $function = 'document.location="' . admin_url( 'admin.php?page=wpseo_dashboard' ) . '";'; - } - else { + $button_array['button2']['text'] = __( 'Start Tour', 'wordpress-seo' ); + $button_array['button2']['function'] = 'document.location="' . admin_url( 'admin.php?page=wpseo_dashboard' ) . '";'; + } else { if ( '' != $page && in_array( $page, array_keys( $adminpages ) ) ) { - $align = ( is_rtl() ) ? 'right' : 'left'; + $align = ( is_rtl() ) ? 'left' : 'right'; $opt_arr = array( - 'content' => $adminpages[ $page ]['content'], - 'position' => array( 'edge' => 'top', 'align' => $align ), - 'pointerWidth' => 400, + 'content' => $adminpages[$page]['content'], + 'position' => ( isset ( $adminpages[$page]['position'] ) ) ? ( $adminpages[$page]['position'] ) : array( 'edge' => 'top', 'align' => $align ), + 'pointerWidth' => 450, ); - if ( isset( $adminpages[ $page ]['button2'] ) ) { - $button2 = $adminpages[ $page ]['button2']; + if ( isset( $adminpages[$page]['next'] ) && isset( $adminpages[$page]['next_function'] ) ) { + $button_array['button2'] = array( + 'text' => $adminpages[$page]['next'], + 'function' => $adminpages[$page]['next_function'], + ); } - if ( isset( $adminpages[ $page ]['function'] ) ) { - $function = $adminpages[ $page ]['function']; + if ( isset( $adminpages[$page]['prev'] ) && isset( $adminpages[$page]['prev_function'] ) ) { + $button_array['button3'] = array( + 'text' => $adminpages[$page]['prev'], + 'function' => $adminpages[$page]['prev_function'], + ); } } } - $this->print_scripts( $id, $opt_arr, __( 'Close', 'wordpress-seo' ), $button2, $function ); + $this->print_scripts( $id, $opt_arr, $button_array ); } /** * Prints the pointer script * - * @param string $selector The CSS selector the pointer is attached to. - * @param array $options The options for the pointer. - * @param string $button1 Text for button 1 - * @param string|bool $button2 Text for button 2 (or false to not show it, defaults to false) - * @param string $button2_function The JavaScript function to attach to button 2 - * @param string $button1_function The JavaScript function to attach to button 1 + * @param string $selector The CSS selector the pointer is attached to. + * @param array $options The options for the pointer. + * @param array $button_array The options for the buttons. */ - function print_scripts( $selector, $options, $button1, $button2 = false, $button2_function = '', $button1_function = '' ) { + function print_scripts( $selector, $options, $button_array ) { + $button_array_defaults = array( + 'button1' => array( + 'text' => false, + 'function' => '', + ), + 'button2' => array( + 'text' => false, + 'function' => '', + ), + 'button3' => array( + 'text' => false, + 'function' => '', + ), + ); + $button_array = wp_parse_args( $button_array, $button_array_defaults ); ?> '; add_action( 'admin_footer-' . $GLOBALS['hook_suffix'], 'wpseo_deliver_export_zip' ); - } - else { + } else { $content .= 'Error: ' . $url; } } @@ -391,8 +432,7 @@ if ( ! isset( $_FILES['settings_import_file'] ) || empty( $_FILES['settings_impo $content .= ''; $content .= ''; $content .= '
'; -} -elseif ( isset( $_FILES['settings_import_file'] ) ) { +} elseif ( isset( $_FILES['settings_import_file'] ) ) { check_admin_referer( 'wpseo-import-file' ); $file = wp_handle_upload( $_FILES['settings_import_file'] ); @@ -428,36 +468,30 @@ elseif ( isset( $_FILES['settings_import_file'] ) ) { $option_instance = WPSEO_Options::get_option_instance( $name ); if ( is_object( $option_instance ) && method_exists( $option_instance, 'import' ) ) { $optgroup = $option_instance->import( $optgroup, $old_wpseo_version, $options ); - } - elseif ( WP_DEBUG === true || ( defined( 'WPSEO_DEBUG' ) && WPSEO_DEBUG === true ) ) { + } elseif ( WP_DEBUG === true || ( defined( 'WPSEO_DEBUG' ) && WPSEO_DEBUG === true ) ) { $content .= '

' . sprintf( __( 'Setting "%s" is no longer used and has been discarded.', 'wordpress-seo' ), $name ) . '

'; } } $content .= '

' . __( 'Settings successfully imported.', 'wordpress-seo' ) . '

'; - } - else { + } else { $content .= '

' . __( 'Settings could not be imported:', 'wordpress-seo' ) . ' ' . __( 'No settings found in file.', 'wordpress-seo' ) . '

'; } unset( $options, $name, $optgroup ); - } - else { + } else { $content .= '

' . __( 'Settings could not be imported:', 'wordpress-seo' ) . ' ' . __( 'Unzipping failed - file settings.ini not found.', 'wordpress-seo' ) . '

'; } @unlink( $filename ); @unlink( $p_path ); - } - else { + } else { $content .= '

' . __( 'Settings could not be imported:', 'wordpress-seo' ) . ' ' . sprintf( __( 'Unzipping failed with error "%s".', 'wordpress-seo' ), $unzipped->get_error_message() ) . '

'; } unset( $zip, $unzipped ); @unlink( $file['file'] ); - } - else { + } else { if ( is_wp_error( $file ) ) { $content .= '

' . __( 'Settings could not be imported:', 'wordpress-seo' ) . ' ' . $file->get_error_message() . '

'; - } - else { + } else { $content .= '

' . __( 'Settings could not be imported:', 'wordpress-seo' ) . ' ' . __( 'Upload failed.', 'wordpress-seo' ) . '

'; } } diff --git a/wp-content/plugins/wordpress-seo/admin/pages/licenses.php b/wp-content/plugins/wordpress-seo/admin/pages/licenses.php index ae6dc35..a3c47d8 100644 --- a/wp-content/plugins/wordpress-seo/admin/pages/licenses.php +++ b/wp-content/plugins/wordpress-seo/admin/pages/licenses.php @@ -1,7 +1,7 @@
(object) array( + 'url' => 'https://yoast.com/wordpress/plugins/seo-premium/', + 'title' => __( 'WordPress SEO Premium', 'wordpress-seo' ), + 'desc' => __( 'The premium version of WordPress SEO with more features & support.', 'wordpress-seo' ), + 'installed' => false, + ), + 'video-seo' => (object) array( + 'url' => 'https://yoast.com/wordpress/plugins/video-seo/', + 'title' => __( 'Video SEO', 'wordpress-seo' ), + 'desc' => __( 'Optimize your videos to show them off in search results and get more clicks!', 'wordpress-seo' ), + 'installed' => false, + ), + 'news-seo' => (object) array( + 'url' => 'https://yoast.com/wordpress/plugins/news-seo/', + 'title' => __( 'News SEO', 'wordpress-seo' ), + 'desc' => __( 'Are you in Google News? Increase your traffic from Google News by optimizing for it!', 'wordpress-seo' ), + 'installed' => false, + ), + 'local-seo' => (object) array( + 'url' => 'https://yoast.com/wordpress/plugins/local-seo/', + 'title' => __( 'Local SEO', 'wordpress-seo' ), + 'desc' => __( 'Rank better locally and in Google Maps, without breaking a sweat!', 'wordpress-seo' ), + 'installed' => false, + ), + 'woocommerce-seo' => (object) array( + 'url' => 'https://yoast.com/wordpress/plugins/yoast-woocommerce-seo/', + 'title' => __( 'Yoast WooCommerce SEO', 'wordpress-seo' ), + 'desc' => __( 'Seamlessly integrate WooCommerce with WordPress SEO and get extra features!', 'wordpress-seo' ), + 'installed' => false, + ) + ); - if ( ! class_exists( 'WPSEO_Premium' ) ) { - $extensions['seo-premium'] = (object) array( - 'url' => 'https://yoast.com/wordpress/plugins/seo-premium/', - 'title' => __( 'WordPress SEO Premium', 'wordpress-seo' ), - 'desc' => __( 'The premium version of WordPress SEO with more features & support.', 'wordpress-seo' ), - ); + if ( class_exists( 'WPSEO_Premium' ) ) { + $extensions['seo-premium']->installed = true; } - if ( ! class_exists( 'wpseo_Video_Sitemap' ) ) { - $extensions['video-seo'] = (object) array( - 'url' => 'https://yoast.com/wordpress/plugins/video-seo/', - 'title' => __( 'Video SEO', 'wordpress-seo' ), - 'desc' => __( 'Optimize your videos to show them off in search results and get more clicks!', 'wordpress-seo' ), - ); + if ( class_exists( 'wpseo_Video_Sitemap' ) ) { + $extensions['video-seo']->installed = true; } - if ( ! class_exists( 'WPSEO_News' ) ) { - $extensions['news-seo'] = (object) array( - 'url' => 'https://yoast.com/wordpress/plugins/news-seo/', - 'title' => __( 'News SEO', 'wordpress-seo' ), - 'desc' => __( 'Are you in Google News? Increase your traffic from Google News by optimizing for it!', 'wordpress-seo' ), - ); + if ( class_exists( 'WPSEO_News' ) ) { + $extensions['news-seo']->installed = true; } - if ( ! defined( 'WPSEO_LOCAL_VERSION' ) ) { - $extensions['local-seo'] = (object) array( - 'url' => 'https://yoast.com/wordpress/plugins/local-seo/', - 'title' => __( 'Local SEO', 'wordpress-seo' ), - 'desc' => __( 'Rank better locally and in Google Maps, without breaking a sweat!', 'wordpress-seo' ), - ); + if ( defined( 'WPSEO_LOCAL_VERSION' ) ) { + $extensions['local-seo']->installed = true; } - if ( class_exists( 'Woocommerce' ) && ! class_exists( 'Yoast_WooCommerce_SEO' ) ) { - $extensions['woocommerce-seo'] = (object) array( - 'url' => 'https://yoast.com/wordpress/plugins/yoast-woocommerce-seo/', - 'title' => __( 'Yoast WooCommerce SEO', 'wordpress-seo' ), - 'desc' => __( 'Seamlessly integrate WooCommerce with WordPress SEO and get extra features!', 'wordpress-seo' ) - ); + if ( ! class_exists( 'Woocommerce' ) ) { + unset( $extensions['woocommerce-seo'] ); + } else { + if ( class_exists( 'Yoast_WooCommerce_SEO' ) ) { + $extensions['woocommerce-seo']->installed = true; + } } foreach ( $extensions as $id => $extension ) { $utm = '#utm_source=wordpress-seo-config&utm_medium=banner&utm_campaign=extension-page-banners'; - ?> -
- -

title ); ?>

-
-

desc ); ?>

-

- -

-
+ ?> +
+ +

title ); ?>

+
+ +

desc ); ?>

+ +

+ installed ) { ?> + + + + + + +

+
@@ -82,11 +105,11 @@ global $wpseo_admin_pages;
diff --git a/wp-content/plugins/wordpress-seo/admin/pages/metas.php b/wp-content/plugins/wordpress-seo/admin/pages/metas.php index 9f22df2..15f52a5 100644 --- a/wp-content/plugins/wordpress-seo/admin/pages/metas.php +++ b/wp-content/plugins/wordpress-seo/admin/pages/metas.php @@ -100,7 +100,6 @@ $wpseo_admin_pages->admin_header( true, WPSEO_Options::get_group_name( 'wpseo_ti echo $wpseo_admin_pages->textinput( 'metakey-' . $name, __( 'Meta keywords template', 'wordpress-seo' ) ); } echo $wpseo_admin_pages->checkbox( 'noindex-' . $name, 'noindex, follow', __( 'Meta Robots', 'wordpress-seo' ) ); - echo $wpseo_admin_pages->checkbox( 'noauthorship-' . $name, __( 'Don\'t show rel="author"', 'wordpress-seo' ), __( 'Authorship', 'wordpress-seo' ) ); echo $wpseo_admin_pages->checkbox( 'showdate-' . $name, __( 'Show date in snippet preview?', 'wordpress-seo' ), __( 'Date in Snippet Preview', 'wordpress-seo' ) ); echo $wpseo_admin_pages->checkbox( 'hideeditbox-' . $name, __( 'Hide', 'wordpress-seo' ), __( 'WordPress SEO Meta Box', 'wordpress-seo' ) ); @@ -141,7 +140,7 @@ $wpseo_admin_pages->admin_header( true, WPSEO_Options::get_group_name( 'wpseo_ti echo $wpseo_admin_pages->textinput( 'metakey-ptarchive-' . $name, __( 'Meta keywords', 'wordpress-seo' ) ); } if ( $options['breadcrumbs-enable'] === true ) { - echo $wpseo_admin_pages->textinput( 'bctitle-ptarchive-' . $name, __( 'Breadcrumbs Title', 'wordpress-seo' ) ); + echo $wpseo_admin_pages->textinput( 'bctitle-ptarchive-' . $name, __( 'Breadcrumbs title', 'wordpress-seo' ) ); } echo $wpseo_admin_pages->checkbox( 'noindex-ptarchive-' . $name, 'noindex, follow', __( 'Meta Robots', 'wordpress-seo' ) ); } @@ -207,4 +206,4 @@ $wpseo_admin_pages->admin_header( true, WPSEO_Options::get_group_name( 'wpseo_ti echo '

' . __( 'Variables', 'wordpress-seo' ) . '

'; echo '
'; echo '
'; - $wpseo_admin_pages->admin_footer(); \ No newline at end of file + $wpseo_admin_pages->admin_footer(); diff --git a/wp-content/plugins/wordpress-seo/admin/pages/network.php b/wp-content/plugins/wordpress-seo/admin/pages/network.php index 6b6f9a4..d16a910 100644 --- a/wp-content/plugins/wordpress-seo/admin/pages/network.php +++ b/wp-content/plugins/wordpress-seo/admin/pages/network.php @@ -108,10 +108,10 @@ if ( $use_dropdown === true ) { $content .= '

' . __( 'Choose the site whose settings you want to use as default for all sites that are added to your network. If you choose \'None\', the normal plugin defaults will be used.', 'wordpress-seo' ) . '

'; } else { - $content .= $wpseo_admin_pages->textinput( 'defaultblog', __( 'New sites in the network get the SEO settings from this site', 'wordpress-seo' ), 'wpseo_ms' ); + $content .= $wpseo_admin_pages->textinput( 'defaultblog', __( 'New sites in the network inherit their SEO settings from this site', 'wordpress-seo' ), 'wpseo_ms' ); $content .= '

' . sprintf( __( 'Enter the %sSite ID%s for the site whose settings you want to use as default for all sites that are added to your network. Leave empty for none (i.e. the normal plugin defaults will be used).', 'wordpress-seo' ), '', '' ) . '

'; } - $content .= '

' . __( 'Take note :', 'wordpress-seo' ) . ' ' . __( 'Privacy sensitive (FB admins and such), theme specific (title rewrite) and a few very site specific settings will not be imported to new blogs.', 'wordpress-seo' ) . '

'; + $content .= '

' . __( 'Take note:', 'wordpress-seo' ) . ' ' . __( 'Privacy sensitive (FB admins and such), theme specific (title rewrite) and a few very site specific settings will not be imported to new blogs.', 'wordpress-seo' ) . '

'; $content .= ''; diff --git a/wp-content/plugins/wordpress-seo/admin/pages/rss.php b/wp-content/plugins/wordpress-seo/admin/pages/rss.php index 70081ef..a80136e 100644 --- a/wp-content/plugins/wordpress-seo/admin/pages/rss.php +++ b/wp-content/plugins/wordpress-seo/admin/pages/rss.php @@ -25,7 +25,7 @@ $rows[] = array( ); $rows[] = array( 'id' => 'rssafter', - 'label' => __( 'Content to put after each post', 'wordpress-seo' ), + 'label' => __( 'Content to put after each post in the feed', 'wordpress-seo' ), 'desc' => __( '(HTML allowed)', 'wordpress-seo' ), 'content' => '', ); @@ -41,4 +41,4 @@ $rows[] = array( ); $wpseo_admin_pages->postbox( 'rssfootercontent', __( 'Content of your RSS Feed', 'wordpress-seo' ), $content . $wpseo_admin_pages->form_table( $rows ) ); -$wpseo_admin_pages->admin_footer(); \ No newline at end of file +$wpseo_admin_pages->admin_footer(); diff --git a/wp-content/plugins/wordpress-seo/admin/pages/social.php b/wp-content/plugins/wordpress-seo/admin/pages/social.php index 65ea38e..2242612 100644 --- a/wp-content/plugins/wordpress-seo/admin/pages/social.php +++ b/wp-content/plugins/wordpress-seo/admin/pages/social.php @@ -220,7 +220,7 @@ $wpseo_admin_pages->admin_header( true, WPSEO_Options::get_group_name( 'wpseo_so
'; - echo $wpseo_admin_pages->checkbox( 'googleplus', __( 'Add Google+ specific post meta data (excluding author metadata)', 'wordpress-seo' ) ); + echo $wpseo_admin_pages->checkbox( 'googleplus', __( 'Add Google+ specific post meta data', 'wordpress-seo' ) ); echo '

'; echo $wpseo_admin_pages->textinput( 'plus-publisher', __( 'Google Publisher Page', 'wordpress-seo' ) ); diff --git a/wp-content/plugins/wordpress-seo/admin/pages/xml-sitemaps.php b/wp-content/plugins/wordpress-seo/admin/pages/xml-sitemaps.php index 790666c..5a15206 100644 --- a/wp-content/plugins/wordpress-seo/admin/pages/xml-sitemaps.php +++ b/wp-content/plugins/wordpress-seo/admin/pages/xml-sitemaps.php @@ -24,8 +24,6 @@ $wpseo_admin_pages->admin_header( true, WPSEO_Options::get_group_name( 'wpseo_xm $options = get_option( 'wpseo_xml' ); -$base = $GLOBALS['wp_rewrite']->using_index_permalinks() ? 'index.php/' : ''; - $content = $wpseo_admin_pages->checkbox( 'enablexmlsitemap', __( 'Check this box to enable XML sitemap functionality.', 'wordpress-seo' ), false ); $content .= '
'; if ( wpseo_is_nginx() ) { @@ -37,7 +35,7 @@ rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 las } if ( $options['enablexmlsitemap'] === true ) { - $content .= '

' . sprintf( esc_html__( 'You can find your XML Sitemap here: %sXML Sitemap%s', 'wordpress-seo' ), '', '' ) . '

' . __( 'You do not need to generate the XML sitemap, nor will it take up time to generate after publishing a post.', 'wordpress-seo' ) . '

'; + $content .= '

' . sprintf( esc_html__( 'You can find your XML Sitemap here: %sXML Sitemap%s', 'wordpress-seo' ), '', '' ) . '

' . __( 'You do not need to generate the XML sitemap, nor will it take up time to generate after publishing a post.', 'wordpress-seo' ) . '

'; } else { $content .= '

' . __( 'Save your settings to activate XML Sitemaps.', 'wordpress-seo' ) . '

'; } @@ -52,7 +50,7 @@ $content .= $wpseo_admin_pages->checkbox( 'disable_author_noposts', __( 'Disable $roles = wpseo_get_roles(); if ( is_array( $roles ) && $roles !== array() ) { - $content .= '

' . __( 'Exclude userroles', 'wordpress-seo' ) . '
'; + $content .= '

' . __( 'Exclude user roles', 'wordpress-seo' ) . '
'; $content .= __( 'Please check the appropriate box below if there\'s a user role that you do NOT want to include in your sitemap:', 'wordpress-seo' ) . '

'; foreach ( $roles as $role_key => $role_name ) { $content .= $wpseo_admin_pages->checkbox( 'user_role-' . $role_key . '-not_in_sitemap', $role_name ); @@ -101,4 +99,4 @@ $wpseo_admin_pages->postbox( 'xmlsitemaps', __( 'XML Sitemap', 'wordpress-seo' ) do_action( 'wpseo_xmlsitemaps_config' ); -$wpseo_admin_pages->admin_footer(); \ No newline at end of file +$wpseo_admin_pages->admin_footer(); diff --git a/wp-content/plugins/wordpress-seo/codesniffer.xml b/wp-content/plugins/wordpress-seo/codesniffer.xml deleted file mode 100644 index d6e0798..0000000 --- a/wp-content/plugins/wordpress-seo/codesniffer.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - WordPress SEO rules for PHP_CodeSniffer - - tests/* - admin/license-manager/* - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/adminbar.css b/wp-content/plugins/wordpress-seo/css/adminbar.css index d441d0d..fa268c4 100644 --- a/wp-content/plugins/wordpress-seo/css/adminbar.css +++ b/wp-content/plugins/wordpress-seo/css/adminbar.css @@ -1,32 +1,37 @@ .wpseo-score-icon { - float: left; - margin: 10px 10px 0 4px !important; display: inline-block !important; + float: left; width: 12px !important; height: 12px !important; - -webkit-border-radius: 50% !important; + margin: 10px 10px 0 4px !important; border-radius: 50% !important; background-color: #999; } + .wpseo-score-icon.good { background-color: #7ad03a; } + .wpseo-score-icon.ok { background-color: #ffba00; } + .wpseo-score-icon.poor { background-color: #ee7c1b; } + .wpseo-score-icon.bad { background-color: #dd3d36; } + .wpseo-score-icon.na { background-color: #999; } + .wpseo-score-icon.noindex { background-color: #1e8cbe; } #wp-admin-bar-wpseo-menu:hover .wpseo-score-icon { background-color: #2ea2cc; -} \ No newline at end of file +} diff --git a/wp-content/plugins/wordpress-seo/css/adminbar.min.css b/wp-content/plugins/wordpress-seo/css/adminbar.min.css index 3602872..7a17970 100644 --- a/wp-content/plugins/wordpress-seo/css/adminbar.min.css +++ b/wp-content/plugins/wordpress-seo/css/adminbar.min.css @@ -1 +1 @@ -.wpseo-score-icon{float:left;margin:10px 10px 0 4px!important;display:inline-block!important;width:12px!important;height:12px!important;-webkit-border-radius:50%!important;border-radius:50%!important;background-color:#999}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ffba00}.wpseo-score-icon.poor{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dd3d36}.wpseo-score-icon.na{background-color:#999}.wpseo-score-icon.noindex{background-color:#1e8cbe}#wp-admin-bar-wpseo-menu:hover .wpseo-score-icon{background-color:#2ea2cc} \ No newline at end of file +.wpseo-score-icon{display:inline-block!important;float:left;width:12px!important;height:12px!important;margin:10px 10px 0 4px!important;border-radius:50%!important;background-color:#999}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ffba00}.wpseo-score-icon.poor{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dd3d36}.wpseo-score-icon.na{background-color:#999}.wpseo-score-icon.noindex{background-color:#1e8cbe}#wp-admin-bar-wpseo-menu:hover .wpseo-score-icon{background-color:#2ea2cc} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/edit-page.css b/wp-content/plugins/wordpress-seo/css/edit-page.css index ac5a63d..9431b19 100644 --- a/wp-content/plugins/wordpress-seo/css/edit-page.css +++ b/wp-content/plugins/wordpress-seo/css/edit-page.css @@ -2,36 +2,42 @@ display: inline-block; width: 12px; height: 12px; - -webkit-border-radius: 50%; + margin-left: 6px; border-radius: 50%; background: #888; line-height: 16px; - margin-left: 6px; } + .wpseo-score-icon.good { background-color: #7ad03a; } + .wpseo-score-icon.ok { background-color: #ffba00; } + .wpseo-score-icon.poor { background-color: #ee7c1b; } + .wpseo-score-icon.bad { background-color: #dd3d36; } + .wpseo-score-icon.na { background-color: #888; } + .wpseo-score-icon.noindex { background-color: #1e8cbe; } + th#wpseo-score { - width: 60px; + width: 61px; } @media screen and ( max-width: 782px ) { .column-wpseo-title, .column-wpseo-score, .column-wpseo-metadesc, .column-wpseo-focuskw { display: none; } -} \ No newline at end of file +} diff --git a/wp-content/plugins/wordpress-seo/css/edit-page.min.css b/wp-content/plugins/wordpress-seo/css/edit-page.min.css index f22448b..cd66cf4 100644 --- a/wp-content/plugins/wordpress-seo/css/edit-page.min.css +++ b/wp-content/plugins/wordpress-seo/css/edit-page.min.css @@ -1 +1 @@ -.wpseo-score-icon{display:inline-block;width:12px;height:12px;-webkit-border-radius:50%;border-radius:50%;background:#888;line-height:16px;margin-left:6px}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ffba00}.wpseo-score-icon.poor{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dd3d36}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}th#wpseo-score{width:60px}@media screen and (max-width:782px){.column-wpseo-focuskw,.column-wpseo-metadesc,.column-wpseo-score,.column-wpseo-title{display:none}} \ No newline at end of file +.wpseo-score-icon{display:inline-block;width:12px;height:12px;margin-left:6px;border-radius:50%;background:#888;line-height:16px}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ffba00}.wpseo-score-icon.poor{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dd3d36}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}th#wpseo-score{width:60px}@media screen and (max-width:782px){.column-wpseo-focuskw,.column-wpseo-metadesc,.column-wpseo-score,.column-wpseo-title{display:none}} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/jquery.qtip.css b/wp-content/plugins/wordpress-seo/css/jquery.qtip.css new file mode 100644 index 0000000..e3e361a --- /dev/null +++ b/wp-content/plugins/wordpress-seo/css/jquery.qtip.css @@ -0,0 +1,617 @@ +/* + * qTip2 - Pretty powerful tooltips - v2.2.1 + * http://qtip2.com + * + * Copyright (c) 2014 + * Released under the MIT licenses + * http://jquery.org/license + * + * Date: Sat Sep 6 2014 11:12 GMT+0100+0100 + * Plugins: tips modal viewport svg imagemap ie6 + * Styles: core basic css3 + */ +.qtip{ + position: absolute; + left: -28000px; + top: -28000px; + display: none; + + max-width: 280px; + min-width: 50px; + + font-size: 10.5px; + line-height: 12px; + + direction: ltr; + + box-shadow: none; + padding: 0; +} + +.qtip-content{ + position: relative; + padding: 5px 9px; + overflow: hidden; + + text-align: left; + word-wrap: break-word; +} + +.qtip-titlebar{ + position: relative; + padding: 5px 35px 5px 10px; + overflow: hidden; + + border-width: 0 0 1px; + font-weight: bold; +} + +.qtip-titlebar + .qtip-content{ border-top-width: 0 !important; } + +/* Default close button class */ +.qtip-close{ + position: absolute; + right: -9px; top: -9px; + z-index: 11; /* Overlap .qtip-tip */ + + cursor: pointer; + outline: medium none; + + border: 1px solid transparent; +} + +.qtip-titlebar .qtip-close{ + right: 4px; top: 50%; + margin-top: -9px; +} + +* html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */ + +.qtip-titlebar .ui-icon, +.qtip-icon .ui-icon{ + display: block; + text-indent: -1000em; + direction: ltr; +} + +.qtip-icon, .qtip-icon .ui-icon{ + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + text-decoration: none; +} + +.qtip-icon .ui-icon{ + width: 18px; + height: 14px; + + line-height: 14px; + text-align: center; + text-indent: 0; + font: normal bold 10px/13px Tahoma,sans-serif; + + color: inherit; + background: transparent none no-repeat -100em -100em; +} + +/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */ +.qtip-focus{} + +/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */ +.qtip-hover{} + +/* Default tooltip style */ +.qtip-default{ + border: 1px solid #F1D031; + + background-color: #FFFFA3; + color: #555; +} + +.qtip-default .qtip-titlebar{ + background-color: #FFEF93; +} + +.qtip-default .qtip-icon{ + border-color: #CCC; + background: #F1F1F1; + color: #777; +} + +.qtip-default .qtip-titlebar .qtip-close{ + border-color: #AAA; + color: #111; +} + + +/*! Light tooltip style */ +.qtip-light{ + background-color: white; + border-color: #E2E2E2; + color: #454545; +} + +.qtip-light .qtip-titlebar{ + background-color: #f1f1f1; +} + + +/*! Dark tooltip style */ +.qtip-dark{ + background-color: #505050; + border-color: #303030; + color: #f3f3f3; +} + +.qtip-dark .qtip-titlebar{ + background-color: #404040; +} + +.qtip-dark .qtip-icon{ + border-color: #444; +} + +.qtip-dark .qtip-titlebar .ui-state-hover{ + border-color: #303030; +} + + +/*! Cream tooltip style */ +.qtip-cream{ + background-color: #FBF7AA; + border-color: #F9E98E; + color: #A27D35; +} + +.qtip-cream .qtip-titlebar{ + background-color: #F0DE7D; +} + +.qtip-cream .qtip-close .qtip-icon{ + background-position: -82px 0; +} + + +/*! Red tooltip style */ +.qtip-red{ + background-color: #F78B83; + border-color: #D95252; + color: #912323; +} + +.qtip-red .qtip-titlebar{ + background-color: #F06D65; +} + +.qtip-red .qtip-close .qtip-icon{ + background-position: -102px 0; +} + +.qtip-red .qtip-icon{ + border-color: #D95252; +} + +.qtip-red .qtip-titlebar .ui-state-hover{ + border-color: #D95252; +} + + +/*! Green tooltip style */ +.qtip-green{ + background-color: #CAED9E; + border-color: #90D93F; + color: #3F6219; +} + +.qtip-green .qtip-titlebar{ + background-color: #B0DE78; +} + +.qtip-green .qtip-close .qtip-icon{ + background-position: -42px 0; +} + + +/*! Blue tooltip style */ +.qtip-blue{ + background-color: #E5F6FE; + border-color: #ADD9ED; + color: #5E99BD; +} + +.qtip-blue .qtip-titlebar{ + background-color: #D0E9F5; +} + +.qtip-blue .qtip-close .qtip-icon{ + background-position: -2px 0; +} + + +.qtip-shadow{ + -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); +} + +/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */ +.qtip-rounded, +.qtip-tipsy, +.qtip-bootstrap{ + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.qtip-rounded .qtip-titlebar{ + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +/* Youtube tooltip style */ +.qtip-youtube{ + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 3px #333; + -moz-box-shadow: 0 0 3px #333; + box-shadow: 0 0 3px #333; + + color: white; + border: 0 solid transparent; + + background: #4A4A4A; + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black)); + background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%); +} + +.qtip-youtube .qtip-titlebar{ + background-color: #4A4A4A; + background-color: rgba(0,0,0,0); +} + +.qtip-youtube .qtip-content{ + padding: .75em; + font: 12px arial,sans-serif; + + filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000); + -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"; +} + +.qtip-youtube .qtip-icon{ + border-color: #222; +} + +.qtip-youtube .qtip-titlebar .ui-state-hover{ + border-color: #303030; +} + + +/* jQuery TOOLS Tooltip style */ +.qtip-jtools{ + background: #232323; + background: rgba(0, 0, 0, 0.7); + background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323)); + background-image: -moz-linear-gradient(top, #717171, #232323); + background-image: -webkit-linear-gradient(top, #717171, #232323); + background-image: -ms-linear-gradient(top, #717171, #232323); + background-image: -o-linear-gradient(top, #717171, #232323); + + border: 2px solid #ddd; + border: 2px solid rgba(241,241,241,1); + + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 12px #333; + -moz-box-shadow: 0 0 12px #333; + box-shadow: 0 0 12px #333; +} + +/* IE Specific */ +.qtip-jtools .qtip-titlebar{ + background-color: transparent; + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"; +} +.qtip-jtools .qtip-content{ + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"; +} + +.qtip-jtools .qtip-titlebar, +.qtip-jtools .qtip-content{ + background: transparent; + color: white; + border: 0 dashed transparent; +} + +.qtip-jtools .qtip-icon{ + border-color: #555; +} + +.qtip-jtools .qtip-titlebar .ui-state-hover{ + border-color: #333; +} + + +/* Cluetip style */ +.qtip-cluetip{ + -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + + background-color: #D9D9C2; + color: #111; + border: 0 dashed transparent; +} + +.qtip-cluetip .qtip-titlebar{ + background-color: #87876A; + color: white; + border: 0 dashed transparent; +} + +.qtip-cluetip .qtip-icon{ + border-color: #808064; +} + +.qtip-cluetip .qtip-titlebar .ui-state-hover{ + border-color: #696952; + color: #696952; +} + + +/* Tipsy style */ +.qtip-tipsy{ + background: black; + background: rgba(0, 0, 0, .87); + + color: white; + border: 0 solid transparent; + + font-size: 11px; + font-family: 'Lucida Grande', sans-serif; + font-weight: bold; + line-height: 16px; + text-shadow: 0 1px black; +} + +.qtip-tipsy .qtip-titlebar{ + padding: 6px 35px 0 10px; + background-color: transparent; +} + +.qtip-tipsy .qtip-content{ + padding: 6px 10px; +} + +.qtip-tipsy .qtip-icon{ + border-color: #222; + text-shadow: none; +} + +.qtip-tipsy .qtip-titlebar .ui-state-hover{ + border-color: #303030; +} + + +/* Tipped style */ +.qtip-tipped{ + border: 3px solid #959FA9; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + + background-color: #F9F9F9; + color: #454545; + + font-weight: normal; + font-family: serif; +} + +.qtip-tipped .qtip-titlebar{ + border-bottom-width: 0; + + color: white; + background: #3A79B8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D)); + background-image: -webkit-linear-gradient(top, #3A79B8, #2E629D); + background-image: -moz-linear-gradient(top, #3A79B8, #2E629D); + background-image: -ms-linear-gradient(top, #3A79B8, #2E629D); + background-image: -o-linear-gradient(top, #3A79B8, #2E629D); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"; +} + +.qtip-tipped .qtip-icon{ + border: 2px solid #285589; + background: #285589; +} + +.qtip-tipped .qtip-icon .ui-icon{ + background-color: #FBFBFB; + color: #555; +} + + +/** + * Twitter Bootstrap style. + * + * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11. + * Does not work with IE 7. + */ +.qtip-bootstrap{ + /** Taken from Bootstrap body */ + font-size: 14px; + line-height: 20px; + color: #333333; + + /** Taken from Bootstrap .popover */ + padding: 1px; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.qtip-bootstrap .qtip-titlebar{ + /** Taken from Bootstrap .popover-title */ + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.qtip-bootstrap .qtip-titlebar .qtip-close{ + /** + * Overrides qTip2: + * .qtip-titlebar .qtip-close{ + * [...] + * right: 4px; + * top: 50%; + * [...] + * border-style: solid; + * } + */ + right: 11px; + top: 45%; + border-style: none; +} + +.qtip-bootstrap .qtip-content{ + /** Taken from Bootstrap .popover-content */ + padding: 9px 14px; +} + +.qtip-bootstrap .qtip-icon{ + /** + * Overrides qTip2: + * .qtip-default .qtip-icon { + * border-color: #CCC; + * background: #F1F1F1; + * color: #777; + * } + */ + background: transparent; +} + +.qtip-bootstrap .qtip-icon .ui-icon{ + /** + * Overrides qTip2: + * .qtip-icon .ui-icon{ + * width: 18px; + * height: 14px; + * } + */ + width: auto; + height: auto; + + /* Taken from Bootstrap .close */ + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.qtip-bootstrap .qtip-icon .ui-icon:hover{ + /* Taken from Bootstrap .close:hover */ + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + + +/* IE9 fix - removes all filters */ +.qtip:not(.ie9haxors) div.qtip-content, +.qtip:not(.ie9haxors) div.qtip-titlebar{ + filter: none; + -ms-filter: none; +} + + +.qtip .qtip-tip{ + margin: 0 auto; + overflow: hidden; + z-index: 10; + +} + +/* Opera bug #357 - Incorrect tip position +https://github.com/Craga89/qTip2/issues/367 */ +x:-o-prefocus, .qtip .qtip-tip{ + visibility: hidden; +} + +.qtip .qtip-tip, +.qtip .qtip-tip .qtip-vml, +.qtip .qtip-tip canvas{ + position: absolute; + + color: #123456; + background: transparent; + border: 0 dashed transparent; +} + +.qtip .qtip-tip canvas{ top: 0; left: 0; } + +.qtip .qtip-tip .qtip-vml{ + behavior: url(#default#VML); + display: inline-block; + visibility: visible; +} + + +#qtip-overlay{ + position: fixed; + left: 0; top: 0; + width: 100%; height: 100%; +} + +/* Applied to modals with show.modal.blur set to true */ +#qtip-overlay.blurs{ cursor: pointer; } + +/* Change opacity of overlay here */ +#qtip-overlay div{ + position: absolute; + left: 0; top: 0; + width: 100%; height: 100%; + + background-color: black; + + opacity: 0.7; + filter:alpha(opacity=70); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; +} + + +.qtipmodal-ie6fix{ + position: absolute !important; +} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/jquery.qtip.min.css b/wp-content/plugins/wordpress-seo/css/jquery.qtip.min.css new file mode 100644 index 0000000..27b9729 --- /dev/null +++ b/wp-content/plugins/wordpress-seo/css/jquery.qtip.min.css @@ -0,0 +1,3 @@ +/* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sat Sep 06 2014 23:12:07 */ + +.qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip-light{background-color:#fff;border-color:#E2E2E2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1}.qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.qtip-cream .qtip-titlebar{background-color:#F0DE7D}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0}.qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#F06D65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon,.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252}.qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.qtip-green .qtip-titlebar{background-color:#B0DE78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0}.qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.qtip-blue .qtip-titlebar{background-color:#D0E9F5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.qtip-bootstrap,.qtip-rounded,.qtip-tipsy{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border:0 solid transparent;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)}.qtip-youtube .qtip-titlebar{background-color:transparent}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.qtip-jtools .qtip-content,.qtip-jtools .qtip-titlebar{background:0 0;color:#fff;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:400;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:0 0}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;opacity:.7;filter:alpha(opacity=70);-ms-filter:"alpha(Opacity=70)"}.qtipmodal-ie6fix{position:absolute!important} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/metabox-classic.css b/wp-content/plugins/wordpress-seo/css/metabox-classic.css index 1c1937c..1dfbc73 100644 --- a/wp-content/plugins/wordpress-seo/css/metabox-classic.css +++ b/wp-content/plugins/wordpress-seo/css/metabox-classic.css @@ -3,11 +3,11 @@ */ ul.wpseo-metabox-tabs li.active { - background-color: #EFF8FF; + background-color: #eff8ff; } ul.wpseo-metabox-tabs li.active, div.wpseo-tab-content { - border-color: #D1E5EE; + border-color: #d1e5ee; } .wpseo-metabox-tabs .active a { @@ -15,7 +15,7 @@ ul.wpseo-metabox-tabs li.active, div.wpseo-tab-content { } #wpseotab .ui-widget-content .ui-state-hover { - border: 1px solid #D1E5EE; - background: #EFF8FF; + border: 1px solid #d1e5ee; color: #333; -} \ No newline at end of file + background: #eff8ff; +} diff --git a/wp-content/plugins/wordpress-seo/css/metabox-classic.min.css b/wp-content/plugins/wordpress-seo/css/metabox-classic.min.css index 4792d74..bfc15df 100644 --- a/wp-content/plugins/wordpress-seo/css/metabox-classic.min.css +++ b/wp-content/plugins/wordpress-seo/css/metabox-classic.min.css @@ -1 +1 @@ -ul.wpseo-metabox-tabs li.active{background-color:#eff8ff}ul.wpseo-metabox-tabs li.active,div.wpseo-tab-content{border-color:#d1e5ee}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #d1e5ee;background:#eff8ff;color:#333} \ No newline at end of file +ul.wpseo-metabox-tabs li.active{background-color:#eff8ff}div.wpseo-tab-content,ul.wpseo-metabox-tabs li.active{border-color:#d1e5ee}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #d1e5ee;color:#333;background:#eff8ff} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/metabox-fresh.css b/wp-content/plugins/wordpress-seo/css/metabox-fresh.css index 5c834fa..6f16608 100644 --- a/wp-content/plugins/wordpress-seo/css/metabox-fresh.css +++ b/wp-content/plugins/wordpress-seo/css/metabox-fresh.css @@ -3,12 +3,12 @@ */ ul.wpseo-metabox-tabs li.active { - background-color: #F1F1F1; + background-color: #f1f1f1; } ul.wpseo-metabox-tabs li.active, div.wpseo-tab-content { - border-color: #DFDFDF; - background-color: #FFF; + border-color: #dfdfdf; + background-color: #fff; } .wpseo-metabox-tabs .active a { @@ -16,7 +16,7 @@ ul.wpseo-metabox-tabs li.active, div.wpseo-tab-content { } #wpseotab .ui-widget-content .ui-state-hover { - border: 1px solid #DFDFDF; - background: #F1F1F1; + border: 1px solid #dfdfdf; color: #333; -} \ No newline at end of file + background: #f1f1f1; +} diff --git a/wp-content/plugins/wordpress-seo/css/metabox-fresh.min.css b/wp-content/plugins/wordpress-seo/css/metabox-fresh.min.css index 2cea060..31ebcff 100644 --- a/wp-content/plugins/wordpress-seo/css/metabox-fresh.min.css +++ b/wp-content/plugins/wordpress-seo/css/metabox-fresh.min.css @@ -1 +1 @@ -div.wpseo-tab-content,ul.wpseo-metabox-tabs li.active{border-color:#DFDFDF;background-color:#FFF}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #DFDFDF;background:#F1F1F1;color:#333} \ No newline at end of file +div.wpseo-tab-content,ul.wpseo-metabox-tabs li.active{border-color:#dfdfdf;background-color:#fff}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #dfdfdf;color:#333;background:#f1f1f1} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/metabox-tabs.css b/wp-content/plugins/wordpress-seo/css/metabox-tabs.css index cf4056d..634d78d 100644 --- a/wp-content/plugins/wordpress-seo/css/metabox-tabs.css +++ b/wp-content/plugins/wordpress-seo/css/metabox-tabs.css @@ -17,8 +17,8 @@ ul.wpseo-metabox-tabs { } ul.wpseo-metabox-tabs li.active { - border-style: solid solid none; border-width: 1px 1px 0; + border-style: solid solid none; background-color: #fdfdfd; } @@ -57,8 +57,8 @@ ul.wpseo-metabox-tabs li { } .inside .wpseotab .form-table th { - font-size: 13px; width: 140px !important; + font-size: 13px; } .good, .warn, .wrong { @@ -78,22 +78,22 @@ ul.wpseo-metabox-tabs li { } #current_seo_title span { - background-color: lightyellow; padding: 2px 5px; + background-color: lightyellow; } #wpseosnippet { + width: auto; + max-width: 520px; margin: 0 0 10px; padding: 0 5px; font-family: Arial, Helvetica, sans-serif; font-style: normal; - width: auto; - max-width: 520px; } #wpseosnippet td { - padding: 0; margin: 0; + padding: 0; } #wpseosnippet cite.url { @@ -106,20 +106,20 @@ ul.wpseo-metabox-tabs li { } #wpseosnippet .title { + display: block; + overflow: hidden; + width: 512px; color: #1e0fbe; font-size: 18px !important; line-height: 1.2; - text-overflow: ellipsis; - overflow: hidden; white-space: nowrap; - display: block; - width: 512px; + text-overflow: ellipsis; } #wpseosnippet .desc { + font-size: small; line-height: 1.4; word-wrap: break-word; - font-size: small; } #wpseosnippet .desc .autogen { @@ -132,9 +132,9 @@ ul.wpseo-metabox-tabs li { #wpseosnippet .desc p { color: #545454; + font-size: small; line-height: 1.4; word-wrap: break-word; - font-size: small; } #wpseosnippet .url { @@ -148,7 +148,7 @@ ul.wpseo-metabox-tabs li { } #wpseosnippet .util { - color: #4272DB; + color: #4272db; } #wpseosnippet p { @@ -168,8 +168,8 @@ ul.wpseo-metabox-tabs li { } #focuskwresults li { - list-style-type: disc; margin: 0 0 0 20px; + list-style-type: disc; } .wpseo_hidden { @@ -179,9 +179,9 @@ ul.wpseo-metabox-tabs li { /* Linkdex analysis block */ table.wpseoanalysis th { - text-align: left; - font-size: 14px; padding: 15px 0 5px 0; + font-size: 14px; + text-align: left; } table.wpseoanalysis th.first { @@ -189,9 +189,9 @@ table.wpseoanalysis th.first { } table.wpseoanalysis td { + margin: 5px 0; font-size: 13px; line-height: 16px; - margin: 5px 0; } table.wpseoanalysis td.score { @@ -201,10 +201,10 @@ table.wpseoanalysis td.score { } .wpseo_msg { - border: 1px solid #E6DB55; - background-color: lightYellow; margin: 5px 0 10px 0; padding: 0 5px; + border: 1px solid #e6db55; + background-color: lightYellow; } /* @@ -220,9 +220,9 @@ table.wpseoanalysis td.score { /* Component containers ----------------------------------*/ #wpseotab .ui-widget-content { - border: 1px solid #dddddd; - background: #f1f1f1; + border: 1px solid #ddd; color: #333; + background: #f1f1f1; } #wpseotab .ui-widget-content a { @@ -251,11 +251,11 @@ table.wpseoanalysis td.score { * http://docs.jquery.com/UI/Menu#theming */ .ui-menu { - list-style: none; - padding: 2px; - margin: 0; display: block; float: left; + margin: 0; + padding: 2px; + list-style: none; } .ui-menu .ui-menu { @@ -263,34 +263,33 @@ table.wpseoanalysis td.score { } .ui-menu .ui-menu-item { - margin: 0; - padding: 0; - zoom: 1; float: left; clear: left; + zoom: 1; width: 100%; + margin: 0; + padding: 0; } .ui-menu .ui-menu-item a { - text-decoration: none; display: block; - padding: .2em .4em; - line-height: 1.5; zoom: 1; + padding: 0.2em 0.4em; + line-height: 1.5; + text-decoration: none; } .ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active { - color: #000; margin: -1px; + color: #000; } .wpseo-score-icon { display: inline-block; - margin: 3px 10px 0 3px; width: 12px; height: 12px; - -webkit-border-radius: 50%; + margin: 3px 10px 0 3px; border-radius: 50%; background: #888; vertical-align: top; @@ -326,4 +325,9 @@ table.wpseoanalysis td.score { img.yoast_help { cursor: pointer; -} \ No newline at end of file +} + +.yoast-qtip { + font-size: 14px !important; + line-height: 18px !important; +} diff --git a/wp-content/plugins/wordpress-seo/css/metabox-tabs.min.css b/wp-content/plugins/wordpress-seo/css/metabox-tabs.min.css index 3f4285d..ec3a076 100644 --- a/wp-content/plugins/wordpress-seo/css/metabox-tabs.min.css +++ b/wp-content/plugins/wordpress-seo/css/metabox-tabs.min.css @@ -1 +1 @@ -ul.wpseo-metabox-tabs{display:none;margin-top:12px;margin-bottom:3px}.wpseo-metabox-tabs-div ul{list-style:none}.wpseo-metabox-tabs li{display:inline}ul.wpseo-metabox-tabs li.active{border-style:solid solid none;border-width:1px 1px 0;background-color:#fdfdfd}ul.wpseo-metabox-tabs li{padding:5px}.wpseo-metabox-tabs a{text-decoration:none}.wpseo-metabox-tabs-div div.wpseo-tabs-panel{overflow:auto;padding:.5em .9em;border:1px solid}.wpseo-heading{padding-left:10px}.wpseotab{display:none}.wpseotab.active{display:block;overflow:auto;padding:.5em .9em;border:1px solid #ddd;background-color:#fdfdfd}#wpseo_meta .postbox .inside .wpseotab{font-size:13px !important}.inside .wpseotab .form-table th{font-size:13px;width:140px !important}.good,.warn,.wrong{font-weight:bold}.good{color:green}.warn{color:maroon}.wrong{color:red}#current_seo_title span{background-color:lightyellow;padding:2px 5px}#wpseosnippet{margin:0 0 10px;padding:0 5px;font-family:Arial,Helvetica,sans-serif;font-style:normal;width:auto;max-width:520px}#wpseosnippet td{padding:0;margin:0}#wpseosnippet cite.url{font-weight:normal;font-style:normal}#wpseosnippet a{text-decoration:none}#wpseosnippet .title{color:#1e0fbe;font-size:18px !important;line-height:1.2;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:block;width:512px}#wpseosnippet .desc{line-height:1.4;word-wrap:break-word;font-size:small}#wpseosnippet .desc .autogen{color:#777}#wpseosnippet .date{color:gray}#wpseosnippet .desc p{color:#545454;line-height:1.4;word-wrap:break-word;font-size:small}#wpseosnippet .url{color:#006621;font-size:13px;line-height:16px}#wpseosnippet .meta{color:#767676}#wpseosnippet .util{color:#4272db}#wpseosnippet p{margin:0 !important}#wpseosnippet a:hover{text-decoration:underline}#focuskwresults ul{margin:0}#focuskwresults p,#focuskwresults li{font-size:13px}#focuskwresults li{list-style-type:disc;margin:0 0 0 20px}.wpseo_hidden{display:none}table.wpseoanalysis th{text-align:left;font-size:14px;padding:15px 0 5px 0}table.wpseoanalysis th.first{padding-top:0}table.wpseoanalysis td{font-size:13px;line-height:16px;margin:5px 0}table.wpseoanalysis td.score{width:20px;height:18px;padding-left:10px}.wpseo_msg{border:1px solid #e6db55;background-color:lightYellow;margin:5px 0 10px 0;padding:0 5px}#wpseotab .ui-widget-content{border:1px solid #ddd;background:#f1f1f1;color:#333}#wpseotab .ui-widget-content a{color:#333}#wpseotab .ui-autocomplete{position:absolute;cursor:default}* html #wpseotab .ui-autocomplete{width:1px}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left}.ui-menu .ui-menu{margin-top:-3px}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{color:#000;margin:-1px}.wpseo-score-icon{display:inline-block;margin:3px 10px 0 3px;width:12px;height:12px;-webkit-border-radius:50%;border-radius:50%;background:#888;vertical-align:top}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ffba00}.wpseo-score-icon.poor{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dd3d36}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}.wpseo-score-title{font-weight:600}img.yoast_help{cursor:pointer} \ No newline at end of file +ul.wpseo-metabox-tabs{display:none;margin-top:12px;margin-bottom:3px}.wpseo-metabox-tabs-div ul{list-style:none}.wpseo-metabox-tabs li{display:inline}ul.wpseo-metabox-tabs li.active{border-width:1px 1px 0;border-style:solid solid none;background-color:#fdfdfd}ul.wpseo-metabox-tabs li{padding:5px}.wpseo-metabox-tabs a{text-decoration:none}.wpseo-metabox-tabs-div div.wpseo-tabs-panel{overflow:auto;padding:.5em .9em;border:1px solid}.wpseo-heading{padding-left:10px}.wpseotab{display:none}.wpseotab.active{display:block;overflow:auto;padding:.5em .9em;border:1px solid #ddd;background-color:#fdfdfd}#wpseo_meta .postbox .inside .wpseotab{font-size:13px!important}.inside .wpseotab .form-table th{width:140px!important;font-size:13px}.good,.warn,.wrong{font-weight:700}.good{color:green}.warn{color:maroon}.wrong{color:red}#current_seo_title span{padding:2px 5px;background-color:#ffffe0}#wpseosnippet{width:auto;max-width:520px;margin:0 0 10px;padding:0 5px;font-family:Arial,Helvetica,sans-serif;font-style:normal}#wpseosnippet td{margin:0;padding:0}#wpseosnippet cite.url{font-weight:400;font-style:normal}#wpseosnippet a{text-decoration:none}#wpseosnippet .title{display:block;overflow:hidden;width:512px;color:#1e0fbe;font-size:18px!important;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}#wpseosnippet .desc{font-size:small;line-height:1.4;word-wrap:break-word}#wpseosnippet .desc .autogen{color:#777}#wpseosnippet .date{color:gray}#wpseosnippet .desc p{color:#545454;font-size:small;line-height:1.4;word-wrap:break-word}#wpseosnippet .url{color:#006621;font-size:13px;line-height:16px}#wpseosnippet .meta{color:#767676}#wpseosnippet .util{color:#4272db}#wpseosnippet p{margin:0!important}#wpseosnippet a:hover{text-decoration:underline}#focuskwresults ul{margin:0}#focuskwresults li,#focuskwresults p{font-size:13px}#focuskwresults li{margin:0 0 0 20px;list-style-type:disc}.wpseo_hidden{display:none}table.wpseoanalysis th{padding:15px 0 5px;font-size:14px;text-align:left}table.wpseoanalysis th.first{padding-top:0}table.wpseoanalysis td{margin:5px 0;font-size:13px;line-height:16px}table.wpseoanalysis td.score{width:20px;height:18px;padding-left:10px}.wpseo_msg{margin:5px 0 10px;padding:0 5px;border:1px solid #e6db55;background-color:#ffffe0}#wpseotab .ui-widget-content{border:1px solid #ddd;color:#333;background:#f1f1f1}#wpseotab .ui-widget-content a{color:#333}#wpseotab .ui-autocomplete{position:absolute;cursor:default}* html #wpseotab .ui-autocomplete{width:1px}.ui-menu{display:block;float:left;margin:0;padding:2px;list-style:none}.ui-menu .ui-menu{margin-top:-3px}.ui-menu .ui-menu-item{float:left;clear:left;zoom:1;width:100%;margin:0;padding:0}.ui-menu .ui-menu-item a{display:block;zoom:1;padding:.2em .4em;line-height:1.5;text-decoration:none}.ui-menu .ui-menu-item a.ui-state-active,.ui-menu .ui-menu-item a.ui-state-hover{margin:-1px;color:#000}.wpseo-score-icon{display:inline-block;width:12px;height:12px;margin:3px 10px 0 3px;border-radius:50%;background:#888;vertical-align:top}.wpseo-score-icon.good{background-color:#7ad03a}.wpseo-score-icon.ok{background-color:#ffba00}.wpseo-score-icon.poor{background-color:#ee7c1b}.wpseo-score-icon.bad{background-color:#dd3d36}.wpseo-score-icon.na{background-color:#888}.wpseo-score-icon.noindex{background-color:#1e8cbe}.wpseo-score-title{font-weight:600}img.yoast_help{cursor:pointer}.yoast-qtip{font-size:14px!important;line-height:18px!important} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/taxonomy-meta.css b/wp-content/plugins/wordpress-seo/css/taxonomy-meta.css index 20f2574..51289f7 100644 --- a/wp-content/plugins/wordpress-seo/css/taxonomy-meta.css +++ b/wp-content/plugins/wordpress-seo/css/taxonomy-meta.css @@ -2,4 +2,4 @@ .wpseo-taxonomy-form th, .wpseo-taxonomy-form td { vertical-align: top; -} \ No newline at end of file +} diff --git a/wp-content/plugins/wordpress-seo/css/taxonomy-meta.min.css b/wp-content/plugins/wordpress-seo/css/taxonomy-meta.min.css index 337efb7..6fd0c5c 100644 --- a/wp-content/plugins/wordpress-seo/css/taxonomy-meta.min.css +++ b/wp-content/plugins/wordpress-seo/css/taxonomy-meta.min.css @@ -1 +1 @@ -.wpseo-taxonomy-form tr,.wpseo-taxonomy-form th,.wpseo-taxonomy-form td{vertical-align:top} \ No newline at end of file +.wpseo-taxonomy-form td,.wpseo-taxonomy-form th,.wpseo-taxonomy-form tr{vertical-align:top} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/wpseo-rtl.css b/wp-content/plugins/wordpress-seo/css/wpseo-rtl.css index 5c8c94c..06dd1b6 100644 --- a/wp-content/plugins/wordpress-seo/css/wpseo-rtl.css +++ b/wp-content/plugins/wordpress-seo/css/wpseo-rtl.css @@ -16,7 +16,7 @@ div.yoastbox ul { } .postbox { - margin: 10px 0 0 10px; + margin: 10px 0 0 10px; } label { @@ -51,8 +51,8 @@ pre { } .wpseo-heading { - padding-left: 0; padding-right: 10px; + padding-left: 0; } .wpseo_yahoo_kw { @@ -64,6 +64,6 @@ table.wpseoanalysis th { } table.wpseoanalysis td.score { - padding-left: 0; padding-right: 10px; + padding-left: 0; } diff --git a/wp-content/plugins/wordpress-seo/css/wpseo-rtl.min.css b/wp-content/plugins/wordpress-seo/css/wpseo-rtl.min.css index 5a7534d..9b6405c 100644 --- a/wp-content/plugins/wordpress-seo/css/wpseo-rtl.min.css +++ b/wp-content/plugins/wordpress-seo/css/wpseo-rtl.min.css @@ -1 +1 @@ -p.desc{padding:0 22px 8px 0}p.desc.label{padding:2px 180px 10px 0}div.yoastbox ul{margin-right:20px;margin-left:auto}.postbox{margin:10px 0 0 10px}label{float:right;margin-right:6px;margin-left:auto}input.checkbox,input.textinput,select.select,textarea.textinput{float:right;margin:12px 0 0 3px}label.radio{margin-left:auto}table.yoast_help td,table.yoast_help th{text-align:right}.button.fixit{float:left}pre{direction:ltr}#pointer-primary{margin:0 0 0 5px}.wpseo-heading{padding-left:0;padding-right:10px}.wpseo_yahoo_kw{margin:3px 0 3px 8px}table.wpseoanalysis th{text-align:right}table.wpseoanalysis td.score{padding-left:0;padding-right:10px} \ No newline at end of file +p.desc{padding:0 22px 8px 0}p.desc.label{padding:2px 180px 10px 0}div.yoastbox ul{margin-right:20px;margin-left:auto}.postbox{margin:10px 0 0 10px}label{float:right;margin-right:6px;margin-left:auto}input.checkbox,input.textinput,select.select,textarea.textinput{float:right;margin:12px 0 0 3px}label.radio{margin-left:auto}table.yoast_help td,table.yoast_help th{text-align:right}.button.fixit{float:left}pre{direction:ltr}#pointer-primary{margin:0 0 0 5px}.wpseo-heading{padding-right:10px;padding-left:0}.wpseo_yahoo_kw{margin:3px 0 3px 8px}table.wpseoanalysis th{text-align:right}table.wpseoanalysis td.score{padding-right:10px;padding-left:0} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.css b/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.css index 629f99e..7fd9687 100644 --- a/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.css +++ b/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.css @@ -4,19 +4,19 @@ h4 { } p.desc { - padding: 0 0 8px 25px; margin: 6px 0 10px 0; + padding: 0 0 8px 25px; border-bottom: 1px solid #ddd; } p.desc.label { - padding: 2px 0 10px 180px; margin-bottom: 20px; + padding: 2px 0 10px 180px; } tr.yst_row { - padding: 5px 0 0 0; margin: 5px 0 0 0; + padding: 5px 0 0 0; } tr.yst_row.even { @@ -69,8 +69,8 @@ textarea.import { label.textinput, label.select, label.checkbox { width: 180px; - background-color: transparent; margin: 10px 0 5px 0; + background-color: transparent; } label.radio { @@ -81,11 +81,12 @@ label.radio { display: table; width: 100%; } + .wpseo_content_cell { display: table-cell; height: 500px; - padding: 0; margin: 0; + padding: 0; vertical-align: top; } @@ -94,11 +95,11 @@ label.radio { } .wpseo_content_wrapper div.wpseo-warning { - border: 2px solid red; - padding-left: 10px; - padding-right: 10px; - background-color: #DEDEDE; margin: 2em 0 0 0; + padding-right: 10px; + padding-left: 10px; + border: 2px solid red; + background-color: #dedede; } .wpseo_content_wrapper div.wpseo-warning h4 { @@ -116,8 +117,8 @@ label.radio { @media (max-width: 1020px) { #wpseo_content_top { - padding-left: 0; margin-left: 0; + padding-left: 0; } } @@ -132,24 +133,20 @@ label.radio { } div.yoastbox ul li { - list-style: square; - line-height: 16px; font-size: 11px; + line-height: 16px; + list-style: square; } -div.yoastbox a, div.yoastbox a.rsswidget { +div.yoastbox a { font-family: sans-serif; font-size: 12px; } -div.yoastbox a:hover, div.yoastbox a.rsswidget:hover { +div.yoastbox a:hover { text-decoration: underline; } -div.yoastbox ul li.yoast { - list-style-image: url(../images/yoast-16x16.png); -} - .text { width: 250px; } @@ -169,13 +166,13 @@ table.yoast_help, table.yoast_help th, table.yoast_help td { } table.yoast_help th, table.yoast_help td { - vertical-align: text-top; - text-align: left; padding: 5px 10px; + text-align: left; + vertical-align: text-top; } table.yoast_help tr:nth-child(2n) { - background-color: #FBFBFE; + background-color: #fbfbfe; } table.yoast_help tr:hover { @@ -183,15 +180,15 @@ table.yoast_help tr:hover { } .correct { - background-color: green; - color: white; padding: 5px; + color: white; + background-color: green; } .wrong { - background-color: red; - color: white; padding: 5px; + color: white; + background-color: red; } .wrong code { @@ -200,14 +197,14 @@ table.yoast_help tr:hover { } .button.fixit { - margin: 0 5px; float: right; + margin: 0 5px; } .button.checkit { - padding: 5px 8px; - margin: 0 5px; float: right; + margin: 0 5px; + padding: 5px 8px; } .fb-buttons .button-primary, @@ -220,7 +217,7 @@ table.yoast_help tr:hover { } .button#submit { - color: #FFF !important; + color: #fff !important; } .postbox#donate { @@ -230,6 +227,7 @@ table.yoast_help tr:hover { .wpseotab { display: none; /*max-width: 600px !important;*/ + ; } .wpseotab.active { @@ -237,10 +235,10 @@ table.yoast_help tr:hover { } #sidebar .yoastbox { - border: 1px solid #CCC; - border-radius: 5px 25px; margin: 0 0 10px 0; padding: 10px 15px; + border: 1px solid #ccc; + border-radius: 5px 25px; } #sidebar .yoastbox h2 { @@ -266,17 +264,13 @@ h2 code { #wpseo-conf { /*max-width: 600px;*/ + ; } #pointer-primary { margin: 0 5px 0 0; } -/* Add our icon to the Admin pages */ -#icon-wpseo_dashboard.icon32 { - background: url(../images/wordpress-SEO-32x32.png) 0 0; -} - #wpseo-debug-info { clear: both; } @@ -292,20 +286,20 @@ h2 code { #wpseo-debug-info .wpseo-debug { display: inline-block; padding-left: 20px; - color: #CC0000; + color: #c00; } input.wpseo-new-title, textarea.wpseo-new-metadesc { - max-width: 100%; width: 100%; + max-width: 100%; } .wpseotab .extension { + float: left; box-sizing: border-box; width: 300px; height: 230px; margin: 10px 20px 10px 0; - float: left; border: 1px solid #ccc; } @@ -328,6 +322,12 @@ input.wpseo-new-title, textarea.wpseo-new-metadesc { text-decoration: none; } +.wpseotab .extension button.installed { + border-color: #00a000; + background-color: #00a000; + cursor: default; +} + .wpseotab .seo-premium h3 { background-image: url(../images/Premium_130x100.png); } @@ -336,10 +336,6 @@ input.wpseo-new-title, textarea.wpseo-new-metadesc { background-image: url(../images/Video_130x100.png); } -.wpseotab .video-manuals h3 { - background-image: url(../images/Manual_130x100.png); -} - .wpseotab .local-seo h3 { background-image: url(../images/Local_130x100.png); } @@ -359,26 +355,25 @@ div#separator { } div#separator input.radio { - opacity: 0; + display: none; float: left; width: 0 !important; min-width: 0 !important; - display: none; + opacity: 0; } div#separator input.radio + label { float: left; + width: 30px !important; margin: 3px 3px 0 0; padding: 5px 8px; - width: 30px !important; - line-height: 25px; - text-align: center; - cursor: pointer; border: 1px solid #ccc; - /* Don't change: these mimic Google's font and font size for titles */ font-family: Arial,Helvetica,sans-serif !important; font-size: 18px !important; + line-height: 25px; + text-align: center; + cursor: pointer; } div#separator input.radio:checked + label { diff --git a/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.min.css b/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.min.css index 5293359..7bbd05e 100644 --- a/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.min.css +++ b/wp-content/plugins/wordpress-seo/css/yst_plugin_tools.min.css @@ -1 +1 @@ -h4{clear:both;margin:2em 0 0 0}p.desc{padding:0 0 8px 25px;margin:6px 0 10px 0;border-bottom:1px solid #ddd}p.desc.label{padding:2px 0 10px 180px;margin-bottom:20px}tr.yst_row{padding:5px 0 0 0;margin:5px 0 0 0}tr.yst_row.even{background-color:#f6f6f6}div.yoastbox ul{margin-left:20px}.postbox{margin:10px 10px 0 0}label{float:left;margin-left:6px}label.radio{float:none}input.textinput,textarea,select{width:400px}input.textinput,textarea.textinput,select.select,input.checkbox{float:left;margin:12px 3px 0 0;padding:5px}select.select{padding:3px}input.checkbox.double{margin-top:2px}.textinput.metadesc{height:50px}textarea.import{width:500px;height:100px}label.textinput,label.select,label.checkbox{width:180px;background-color:transparent;margin:10px 0 5px 0}label.radio{margin-right:20px}.wpseo_content_wrapper{display:table;width:100%}.wpseo_content_cell{display:table-cell;height:500px;padding:0;margin:0;vertical-align:top}#wpseo_content_top{min-width:800px}.wpseo_content_wrapper div.wpseo-warning{border:2px solid red;padding-left:10px;padding-right:10px;background-color:#dedede;margin:2em 0 0 0}.wpseo_content_wrapper div.wpseo-warning h4{margin:1em 0 0 0}.wpseo_content_wrapper div.wpseo-warning p.error-message{font-weight:normal}#sidebar-container{width:261px;padding:0 0 0 20px}@media(max-width:1020px){#wpseo_content_top{padding-left:0;margin-left:0}}.wpseo-admin-page .form-table tr,.wpseo-admin-page .form-table th,.wpseo-admin-page .form-table td{vertical-align:top}.postbox form{line-height:150%}div.yoastbox ul li{list-style:square;line-height:16px;font-size:11px}div.yoastbox a,div.yoastbox a.rsswidget{font-family:sans-serif;font-size:12px}div.yoastbox a:hover,div.yoastbox a.rsswidget:hover{text-decoration:underline}div.yoastbox ul li.yoast{list-style-image:url(../images/yoast-16x16.png)}.text{width:250px}div.yoastbox .button:hover,div.yoastbox .button-primary:hover{text-decoration:none}table.yoast_help,table.yoast_help th,table.yoast_help td{border:1px solid #ddd;border-collapse:collapse;font-size:12px}table.yoast_help th,table.yoast_help td{vertical-align:text-top;text-align:left;padding:5px 10px}table.yoast_help tr:nth-child(2n){background-color:#fbfbfe}table.yoast_help tr:hover{background-color:#ddd}.correct{background-color:green;color:white;padding:5px}.wrong{background-color:red;color:white;padding:5px}.wrong code{padding:3px 8px;color:#000}.button.fixit{margin:0 5px;float:right}.button.checkit{padding:5px 8px;margin:0 5px;float:right}.fb-buttons .button-primary,.fb-buttons .button{margin-right:8px}.button{color:#000 !important}.button#submit{color:#FFF !important}.postbox#donate{border:2px green}.wpseotab{display:none}.wpseotab.active{display:block}#sidebar .yoastbox{border:1px solid #CCC;border-radius:5px 25px;margin:0 0 10px 0;padding:10px 15px}#sidebar .yoastbox h2{font-size:16px}#sidebar .promo{color:#000}#donate.yoastbox,#sitereview.yoastbox{border-color:green;background-color:#cfc}h2{margin-bottom:20px}h2 code{font-size:23px}#pointer-primary{margin:0 5px 0 0}#icon-wpseo_dashboard.icon32{background:url(../images/wordpress-SEO-32x32.png) 0 0}#wpseo-debug-info{clear:both}#wpseo-debug-info .hndle{cursor:auto}#wpseo-debug-info h3 span:last-child{padding-left:16px}#wpseo-debug-info .wpseo-debug{display:inline-block;padding-left:20px;color:#c00}input.wpseo-new-title,textarea.wpseo-new-metadesc{max-width:100%;width:100%}.wpseotab .extension{box-sizing:border-box;width:300px;height:230px;margin:10px 20px 10px 0;float:left;border:1px solid #ccc}.wpseotab .extension p{margin:0;padding:10px}.wpseotab .extension h3{box-sizing:border-box;height:110px;margin:0;padding:20px 10px 0 120px;border-bottom:1px solid #ccc;background:#fff no-repeat left 10px;background-size:130px 100px}.wpseotab .extension a{text-decoration:none}.wpseotab .seo-premium h3{background-image:url(../images/Premium_130x100.png)}.wpseotab .video-seo h3{background-image:url(../images/Video_130x100.png)}.wpseotab .video-manuals h3{background-image:url(../images/Manual_130x100.png)}.wpseotab .local-seo h3{background-image:url(../images/Local_130x100.png)}.wpseotab .woocommerce-seo h3{background-image:url(../images/Woo_130x100.png)}.wpseotab .news-seo h3{background-image:url(../images/News_SEO.png);background-size:115px 100px}div#separator{clear:right;margin:0 0 0 25px}div#separator input.radio{opacity:0;float:left;width:0 !important;min-width:0 !important;display:none}div#separator input.radio+label{float:left;margin:3px 3px 0 0;padding:5px 8px;width:30px !important;line-height:25px;text-align:center;cursor:pointer;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif !important;font-size:18px !important}div#separator input.radio:checked+label{border:1px solid green;background-color:#fff;box-shadow:1px 1px 1px green} \ No newline at end of file +h4{clear:both;margin:2em 0 0}p.desc{margin:6px 0 10px;padding:0 0 8px 25px;border-bottom:1px solid #ddd}p.desc.label{margin-bottom:20px;padding:2px 0 10px 180px}tr.yst_row{margin:5px 0 0;padding:5px 0 0}tr.yst_row.even{background-color:#f6f6f6}div.yoastbox ul{margin-left:20px}.postbox{margin:10px 10px 0 0}label{float:left;margin-left:6px}label.radio{float:none}input.textinput,select,textarea{width:400px}input.checkbox,input.textinput,select.select,textarea.textinput{float:left;margin:12px 3px 0 0;padding:5px}select.select{padding:3px}input.checkbox.double{margin-top:2px}.textinput.metadesc{height:50px}textarea.import{width:500px;height:100px}label.checkbox,label.select,label.textinput{width:180px;margin:10px 0 5px;background-color:transparent}label.radio{margin-right:20px}.wpseo_content_wrapper{display:table;width:100%}.wpseo_content_cell{display:table-cell;height:500px;margin:0;padding:0;vertical-align:top}#wpseo_content_top{min-width:800px}.wpseo_content_wrapper div.wpseo-warning{margin:2em 0 0;padding-right:10px;padding-left:10px;border:2px solid red;background-color:#dedede}.wpseo_content_wrapper div.wpseo-warning h4{margin:1em 0 0}.wpseo_content_wrapper div.wpseo-warning p.error-message{font-weight:400}#sidebar-container{width:261px;padding:0 0 0 20px}@media (max-width:1020px){#wpseo_content_top{margin-left:0;padding-left:0}}.wpseo-admin-page .form-table td,.wpseo-admin-page .form-table th,.wpseo-admin-page .form-table tr{vertical-align:top}.postbox form{line-height:150%}div.yoastbox ul li{font-size:11px;line-height:16px;list-style:square}div.yoastbox a{font-family:sans-serif;font-size:12px}div.yoastbox a:hover{text-decoration:underline}.text{width:250px}div.yoastbox .button-primary:hover,div.yoastbox .button:hover{text-decoration:none}table.yoast_help,table.yoast_help td,table.yoast_help th{border:1px solid #ddd;border-collapse:collapse;font-size:12px}table.yoast_help td,table.yoast_help th{padding:5px 10px;text-align:left;vertical-align:text-top}table.yoast_help tr:nth-child(2n){background-color:#fbfbfe}table.yoast_help tr:hover{background-color:#ddd}.correct{padding:5px;color:#fff;background-color:green}.wrong{padding:5px;color:#fff;background-color:red}.wrong code{padding:3px 8px;color:#000}.button.fixit{float:right;margin:0 5px}.button.checkit{float:right;margin:0 5px;padding:5px 8px}.fb-buttons .button,.fb-buttons .button-primary{margin-right:8px}.button{color:#000!important}.button#submit{color:#fff!important}.postbox#donate{border:2px green}.wpseotab{display:none}.wpseotab.active{display:block}#sidebar .yoastbox{margin:0 0 10px;padding:10px 15px;border:1px solid #ccc;border-radius:5px 25px}#sidebar .yoastbox h2{font-size:16px}#sidebar .promo{color:#000}#donate.yoastbox,#sitereview.yoastbox{border-color:green;background-color:#cfc}h2{margin-bottom:20px}h2 code{font-size:23px}#pointer-primary{margin:0 5px 0 0}#wpseo-debug-info{clear:both}#wpseo-debug-info .hndle{cursor:auto}#wpseo-debug-info h3 span:last-child{padding-left:16px}#wpseo-debug-info .wpseo-debug{display:inline-block;padding-left:20px;color:#c00}input.wpseo-new-title,textarea.wpseo-new-metadesc{width:100%;max-width:100%}.wpseotab .extension{float:left;box-sizing:border-box;width:300px;height:230px;margin:10px 20px 10px 0;border:1px solid #ccc}.wpseotab .extension p{margin:0;padding:10px}.wpseotab .extension h3{box-sizing:border-box;height:110px;margin:0;padding:20px 10px 0 120px;border-bottom:1px solid #ccc;background:#fff no-repeat left 10px;background-size:130px 100px}.wpseotab .extension a{text-decoration:none}.wpseotab .extension button.installed{border-color:#00a000;background-color:#00a000;cursor:default}.wpseotab .seo-premium h3{background-image:url(../images/Premium_130x100.png)}.wpseotab .video-seo h3{background-image:url(../images/Video_130x100.png)}.wpseotab .local-seo h3{background-image:url(../images/Local_130x100.png)}.wpseotab .woocommerce-seo h3{background-image:url(../images/Woo_130x100.png)}.wpseotab .news-seo h3{background-image:url(../images/News_SEO.png);background-size:115px 100px}div#separator{clear:right;margin:0 0 0 25px}div#separator input.radio{display:none;float:left;width:0!important;min-width:0!important;opacity:0}div#separator input.radio+label{float:left;width:30px!important;margin:3px 3px 0 0;padding:5px 8px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:25px;text-align:center;cursor:pointer}div#separator input.radio:checked+label{border:1px solid green;background-color:#fff;box-shadow:1px 1px 1px green} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/frontend/class-frontend.php b/wp-content/plugins/wordpress-seo/frontend/class-frontend.php index 635f37e..90c9df2 100644 --- a/wp-content/plugins/wordpress-seo/frontend/class-frontend.php +++ b/wp-content/plugins/wordpress-seo/frontend/class-frontend.php @@ -48,9 +48,9 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { add_action( 'wpseo_head', array( $this, 'metakeywords' ), 11 ); add_action( 'wpseo_head', array( $this, 'canonical' ), 20 ); add_action( 'wpseo_head', array( $this, 'adjacent_rel_links' ), 21 ); - add_action( 'wpseo_head', array( $this, 'author' ), 22 ); - add_action( 'wpseo_head', array( $this, 'publisher' ), 23 ); + add_action( 'wpseo_head', array( $this, 'publisher' ), 22 ); add_action( 'wpseo_head', array( $this, 'webmaster_tools_authentication' ), 90 ); + add_action( 'wpseo_head', array( $this, 'internal_search_json_ld' ), 90 ); // Remove actions that we will handle through our wpseo_head call, and probably change the output of remove_action( 'wp_head', 'rel_canonical' ); @@ -105,6 +105,7 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { } if ( $this->options['cleanreplytocom'] === true ) { add_filter( 'comment_reply_link', array( $this, 'remove_reply_to_com' ) ); + add_action( 'template_redirect', array( $this, 'replytocom_redirect' ), 1 ); } add_filter( 'the_content_feed', array( $this, 'embed_rssfooter' ) ); add_filter( 'the_excerpt_rss', array( $this, 'embed_rssfooter_excerpt' ) ); @@ -117,10 +118,6 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { if ( $this->options['title_test'] > 0 ) { add_filter( 'wpseo_title', array( $this, 'title_test_helper' ) ); } - if ( isset( $_GET['replytocom'] ) ) { - remove_action( 'wp_head', 'wp_no_robots' ); - add_action( 'template_redirect', array( $this, 'replytocom_redirect' ), 1 ); - } } /** @@ -549,6 +546,44 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { } } + /** + * Outputs JSON+LD code to allow recognition of the internal search engine + * + * @since 1.5.7 + * + * @link https://developers.google.com/webmasters/richsnippets/sitelinkssearch + */ + public function internal_search_json_ld() { + if ( ! is_front_page() ) { + return; + } + + /** + * Filter: 'disable_wpseo_json_ld_search' - Allow disabling of the json+ld output + * + * @api bool $display_search Whether or not to display json+ld search on the frontend + */ + if ( apply_filters( 'disable_wpseo_json_ld_search', false ) === true ) { + return; + } + + $home_url = trailingslashit( home_url() ); + + /** + * Filter: 'wpseo_json_ld_search_url' - Allows filtering of the search URL for WP SEO + * + * @api string $search_url The search URL for this site with a `{search_term}` variable. + */ + $search_url = apply_filters( 'wpseo_json_ld_search_url', $home_url . '?s={search_term}' ); + + /** + * Filter: 'wpseo_json_ld_search_output' - Allows filtering of the entire output of the function + * + * @api string $output The output of the function. + */ + echo apply_filters( 'wpseo_json_ld_search_output', '' . "\n" ); + } + /** * Main wrapper function attached to wp_head. This combines all the output on the frontend of the WP SEO plugin. */ @@ -819,8 +854,7 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { $canonical = add_query_arg( 'paged', get_query_var( 'paged' ), $canonical ); } else { if ( is_front_page() ) { - $base = $wp_rewrite->using_index_permalinks() ? 'index.php/' : '/'; - $canonical = home_url( $base ); + $canonical = wpseo_xml_sitemaps_base_url( '' ); } $canonical = user_trailingslashit( trailingslashit( $canonical ) . trailingslashit( $wp_rewrite->pagination_base ) . get_query_var( 'paged' ) ); } @@ -840,7 +874,7 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { if ( is_string( $canonical ) && $canonical !== '' ) { // Force canonical links to be absolute, relative is NOT an option. if ( wpseo_is_url_relative( $canonical ) === true ) { - $canonical = home_url( $canonical ); + $canonical = $this->base_url( $canonical ); } if ( $echo !== false ) { @@ -853,6 +887,27 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { } } + /** + * Parse the home URL setting to find the base URL for relative URLs. + * + * @param string $path + * + * @return string + */ + private function base_url( $path = null ) { + $url = get_option( 'home' ); + + $parts = parse_url( $url ); + + $base_url = trailingslashit( $parts['scheme'] . '://' . $parts['host'] ); + + if ( ! is_null( $path ) ) { + $base_url .= ltrim( $path, '/' ); + } + + return $base_url; + } + /** * Adds 'prev' and 'next' links to archives. * @@ -888,8 +943,7 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { // Make sure to use index.php when needed, done after paged == 2 check so the prev links to homepage will not have index.php erroneously. if ( is_front_page() ) { - $base = $GLOBALS['wp_rewrite']->using_index_permalinks() ? 'index.php/' : '/'; - $url = home_url( $base ); + $url = wpseo_xml_sitemaps_base_url( '' ); } if ( $paged > 2 ) { @@ -978,49 +1032,7 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { if ( $this->options['plus-publisher'] !== '' ) { echo '' . "\n"; - return true; - } - return false; - } - - /** - * Outputs the rel=author - * @return boolean Boolean indiciting whether the autor link was printed - */ - public function author() { - global $post; - - $gplus = false; - - if ( is_singular() ) { - if ( is_object( $post ) ) { - $have_author = WPSEO_Meta::get_value( 'authorship' ); - - switch ( $have_author ) { - case 'always': - $gplus = get_the_author_meta( 'googleplus', $post->post_author ); - break; - - case '-': - // Defer to post_type default - if ( ! isset( $this->options[ 'noauthorship-' . $post->post_type ] ) || $this->options[ 'noauthorship-' . $post->post_type ] === false ) { - $gplus = get_the_author_meta( 'googleplus', $post->post_author ); - } - break; - } - } - } - - /** - * Allow changing the rel=author link being put out by WPSEO - * - * @api string $gplus The rel=author link for the current URL. - */ - $gplus = apply_filters( 'wpseo_author_link', $gplus ); - - if ( is_string( $gplus ) && $gplus !== '' ) { - echo '' . "\n"; return true; } @@ -1324,10 +1336,6 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { */ function replytocom_redirect() { - if ( $this->options['cleanreplytocom'] !== true ) { - return false; - } - if ( isset( $_GET['replytocom'] ) && is_singular() ) { global $post; $url = get_permalink( $post->ID ); @@ -1501,7 +1509,7 @@ if ( ! class_exists( 'WPSEO_Frontend' ) ) { $author_link = ''; if ( is_object( $post ) ) { - $author_link = '' . get_the_author() . ''; + $author_link = '' . get_the_author() . ''; } $post_link = '' . get_the_title() . ''; diff --git a/wp-content/plugins/wordpress-seo/frontend/class-opengraph.php b/wp-content/plugins/wordpress-seo/frontend/class-opengraph.php index 8e837e3..e468023 100644 --- a/wp-content/plugins/wordpress-seo/frontend/class-opengraph.php +++ b/wp-content/plugins/wordpress-seo/frontend/class-opengraph.php @@ -11,7 +11,6 @@ if ( ! defined( 'WPSEO_VERSION' ) ) { exit(); } - if ( ! class_exists( 'WPSEO_OpenGraph' ) ) { /** * Adds the OpenGraph output @@ -458,6 +457,8 @@ if ( ! class_exists( 'WPSEO_OpenGraph' ) ) { */ $thumb = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), apply_filters( 'wpseo_opengraph_image_size', 'original' ) ); $this->image_output( $thumb[0] ); + + return; } /** @@ -481,8 +482,6 @@ if ( ! class_exists( 'WPSEO_OpenGraph' ) ) { if ( count( $this->shown_images ) == 0 && $this->options['og_default_image'] !== '' ) { $this->image_output( $this->options['og_default_image'] ); } - - // @TODO add G+ image stuff } /** @@ -517,7 +516,13 @@ if ( ! class_exists( 'WPSEO_OpenGraph' ) ) { } if ( is_category() || is_tag() || is_tax() ) { - $ogdesc = trim( strip_tags( term_description() ) ); + + $ogdesc = $this->metadesc( false ); + + if ( '' == $ogdesc ) { + $ogdesc = trim( strip_tags( term_description() ) ); + } + if ( '' == $ogdesc ) { global $wp_query; $term = $wp_query->get_queried_object(); diff --git a/wp-content/plugins/wordpress-seo/frontend/class-twitter.php b/wp-content/plugins/wordpress-seo/frontend/class-twitter.php index 77e5f44..902795a 100644 --- a/wp-content/plugins/wordpress-seo/frontend/class-twitter.php +++ b/wp-content/plugins/wordpress-seo/frontend/class-twitter.php @@ -88,6 +88,8 @@ if ( ! class_exists( 'WPSEO_Twitter' ) ) { wp_reset_query(); $this->type(); + $this->twitter_description(); + $this->twitter_title(); $this->site_twitter(); $this->site_domain(); $this->author_twitter(); @@ -101,8 +103,6 @@ if ( ! class_exists( 'WPSEO_Twitter' ) ) { if ( 'summary' === $this->options['twitter_card_type'] ) { $this->image(); } - $this->twitter_description(); - $this->twitter_title(); $this->twitter_url(); } @@ -194,12 +194,17 @@ if ( ! class_exists( 'WPSEO_Twitter' ) ) { * Only used when OpenGraph is inactive. */ public function twitter_title() { + $title = WPSEO_Meta::get_value( 'twitter-title' ); + if ( ! is_string( $title ) || '' === $title ) { + $title = $this->title( '' ); + } + /** * Filter: 'wpseo_twitter_title' - Allow changing the Twitter title as output in the Twitter card by WP SEO * * @api string $twitter The title string */ - $title = apply_filters( 'wpseo_twitter_title', $this->title( '' ) ); + $title = apply_filters( 'wpseo_twitter_title', $title ); if ( is_string( $title ) && $title !== '' ) { $this->output_metatag( 'title', $title ); } @@ -211,11 +216,18 @@ if ( ! class_exists( 'WPSEO_Twitter' ) ) { * Only used when OpenGraph is inactive. */ public function twitter_description() { - $meta_desc = trim( $this->metadesc( false ) ); + $meta_desc = WPSEO_Meta::get_value( 'twitter-description' ); if ( ! is_string( $meta_desc ) || '' === $meta_desc ) { $meta_desc = false; } + if ( ! $meta_desc ) { + $meta_desc = trim( $this->metadesc( false ) ); + if ( ! is_string( $meta_desc ) || '' === $meta_desc ) { + $meta_desc = false; + } + } + if ( ! $meta_desc ) { $meta_desc = strip_tags( get_the_excerpt() ); } @@ -299,7 +311,14 @@ if ( ! class_exists( 'WPSEO_Twitter' ) ) { $this->image_output( $twitter_img ); return; } - elseif ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail( $post->ID ) ) { + + $open_graph_image = WPSEO_Meta::get_value( 'opengraph-image' ); + if ( $open_graph_image !== '' ) { + $this->image_output( $open_graph_image ); + return; + } + + if ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail( $post->ID ) ) { /** * Filter: 'wpseo_twitter_image_size' - Allow changing the Twitter Card image size * @@ -310,7 +329,11 @@ if ( ! class_exists( 'WPSEO_Twitter' ) ) { if ( $featured_img ) { $this->image_output( $featured_img[0] ); } - } elseif ( preg_match_all( '`]+>`', $post->post_content, $matches ) ) { + + return; + } + + if ( preg_match_all( '`]+>`', $post->post_content, $matches ) ) { foreach ( $matches[0] as $img ) { if ( preg_match( '`src=(["\'])(.*?)\1`', $img, $match ) ) { $this->image_output( $match[2] ); diff --git a/wp-content/plugins/wordpress-seo/images/Manual_130x100.png b/wp-content/plugins/wordpress-seo/images/Manual_130x100.png deleted file mode 100644 index 7179ff4..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/Manual_130x100.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/banner-post-connector.png b/wp-content/plugins/wordpress-seo/images/banner-post-connector.png deleted file mode 100644 index abe225d..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/banner-post-connector.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/banner-video-seo-manual.png b/wp-content/plugins/wordpress-seo/images/banner-video-seo-manual.png deleted file mode 100644 index fa67d3b..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/banner-video-seo-manual.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/post-connector.png b/wp-content/plugins/wordpress-seo/images/post-connector.png deleted file mode 100644 index fac7aee..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/post-connector.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/question-mark.png b/wp-content/plugins/wordpress-seo/images/question-mark.png index fdb970e..7ee7206 100644 Binary files a/wp-content/plugins/wordpress-seo/images/question-mark.png and b/wp-content/plugins/wordpress-seo/images/question-mark.png differ diff --git a/wp-content/plugins/wordpress-seo/images/waiting.gif b/wp-content/plugins/wordpress-seo/images/waiting.gif index 6bcaed0..9afccd7 100644 Binary files a/wp-content/plugins/wordpress-seo/images/waiting.gif and b/wp-content/plugins/wordpress-seo/images/waiting.gif differ diff --git a/wp-content/plugins/wordpress-seo/images/wordpress-SEO-32x32.png b/wp-content/plugins/wordpress-seo/images/wordpress-SEO-32x32.png deleted file mode 100644 index b39789a..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/wordpress-SEO-32x32.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/yoast-16x16.png b/wp-content/plugins/wordpress-seo/images/yoast-16x16.png deleted file mode 100644 index e28fc48..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/yoast-16x16.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/yoast-icon-grey.png b/wp-content/plugins/wordpress-seo/images/yoast-icon-grey.png deleted file mode 100644 index abec1df..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/yoast-icon-grey.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/yoast-icon.png b/wp-content/plugins/wordpress-seo/images/yoast-icon.png deleted file mode 100644 index 800893f..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/yoast-icon.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/images/yoast-logo-rss.png b/wp-content/plugins/wordpress-seo/images/yoast-logo-rss.png deleted file mode 100644 index c6022ae..0000000 Binary files a/wp-content/plugins/wordpress-seo/images/yoast-logo-rss.png and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/inc/class-sitemap-walker.php b/wp-content/plugins/wordpress-seo/inc/class-sitemap-walker.php deleted file mode 100644 index 5acf15c..0000000 --- a/wp-content/plugins/wordpress-seo/inc/class-sitemap-walker.php +++ /dev/null @@ -1,87 +0,0 @@ -cat_ID : $object->slug; - - $query_args = array( - 'post_type' => $args['post_type'], - 'post_status' => 'publish', - 'posts_per_page' => -1, - - "{$tax_name}" => $term_id, - - 'meta_query' => array( - 'relation' => 'OR', - // include if this key doesn't exists - array( - 'key' => WPSEO_Meta::$meta_prefix . 'meta-robots-noindex', - 'value' => '', // This is ignored, but is necessary... - 'compare' => 'NOT EXISTS', - ), - // OR if key does exists include if it is not 1 - array( - 'key' => WPSEO_Meta::$meta_prefix . 'meta-robots-noindex', - 'value' => '1', - 'compare' => '!=', - ), - // OR this key overrides it - array( - 'key' => WPSEO_Meta::$meta_prefix . 'sitemap-html-include', - 'value' => 'always', - 'compare' => '=', - ), - ), - ); - - $posts = get_posts( $query_args ); - - if ( is_array( $posts ) && $posts !== array() ) { - $output .= '
    '; - foreach ( $posts as $post ) { - $category = get_the_terms( $post->ID, $tax_name ); - - if ( $category ) { - // reset array to get the first element - $category = reset( $category ); - - // Only display a post link once, even if it's in multiple taxonomies - if ( $category->term_id == $object->term_id && ! in_array( $post->ID, $this->processed_post_ids ) ) { - $this->processed_post_ids[] = $post->ID; - $output .= '
  • ' . get_the_title( $post->ID ) . '
  • '; - } - } - } - $output .= '
'; - } - parent::end_el( $output, $object, $depth, $args ); - } - - } /* End of class */ -} /* End of class-exists wrapper */ \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php b/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php index c2003dc..60473ec 100644 --- a/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php +++ b/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php @@ -305,6 +305,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { $caching = apply_filters( 'wpseo_enable_xml_sitemap_transient_caching', true ); if ( $caching ) { + do_action('wpseo_sitemap_stylesheet_cache_' . $type, $this ); $this->sitemap = get_transient( 'wpseo_sitemap_cache_' . $type . '_' . $this->n ); } @@ -365,18 +366,16 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { global $wpdb; $this->sitemap = '' . "\n"; - $base = $GLOBALS['wp_rewrite']->using_index_permalinks() ? 'index.php/' : ''; - // reference post type specific sitemaps $post_types = get_post_types( array( 'public' => true ) ); if ( is_array( $post_types ) && $post_types !== array() ) { foreach ( $post_types as $post_type ) { - if ( isset( $this->options[ 'post_types-' . $post_type . '-not_in_sitemap' ] ) && $this->options[ 'post_types-' . $post_type . '-not_in_sitemap' ] === true ) { - unset( $post_types[ $post_type ] ); + if ( isset( $this->options['post_types-' . $post_type . '-not_in_sitemap'] ) && $this->options['post_types-' . $post_type . '-not_in_sitemap'] === true ) { + unset( $post_types[$post_type] ); } else { if ( apply_filters( 'wpseo_sitemap_exclude_post_type', false, $post_type ) ) { - unset( $post_types[ $post_type ] ); + unset( $post_types[$post_type] ); } } } @@ -387,15 +386,15 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { $post_type_counts = array(); foreach ( $result as $obj ) { - $post_type_counts[ $obj->post_type ] = $obj->count; + $post_type_counts[$obj->post_type] = $obj->count; } unset( $result ); foreach ( $post_types as $post_type ) { $count = false; - if ( isset( $post_type_counts[ $post_type ] ) ) { - $count = $post_type_counts[ $post_type ]; + if ( isset( $post_type_counts[$post_type] ) ) { + $count = $post_type_counts[$post_type]; } else { continue; } @@ -410,12 +409,12 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { if ( ! isset( $all_dates ) ) { $all_dates = $wpdb->get_col( $wpdb->prepare( "SELECT post_modified_gmt FROM (SELECT @rownum:=@rownum+1 rownum, $wpdb->posts.post_modified_gmt FROM (SELECT @rownum:=0) r, $wpdb->posts WHERE post_status IN ('publish','inherit') AND post_type = %s ORDER BY post_modified_gmt ASC) x WHERE rownum %%%d=0", $post_type, $this->max_entries ) ); } - $datetime = new DateTime( $all_dates[ $i ], new DateTimeZone( $this->get_timezone_string() ) ); + $datetime = new DateTime( $all_dates[$i], new DateTimeZone( $this->get_timezone_string() ) ); $date = $datetime->format( 'c' ); } $this->sitemap .= '' . "\n"; - $this->sitemap .= '' . home_url( $base . $post_type . '-sitemap' . $count . '.xml' ) . '' . "\n"; + $this->sitemap .= '' . wpseo_xml_sitemaps_base_url( $post_type . '-sitemap' . $count . '.xml' ) . '' . "\n"; $this->sitemap .= '' . htmlspecialchars( $date ) . '' . "\n"; $this->sitemap .= '' . "\n"; } @@ -431,17 +430,17 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { if ( is_array( $taxonomies ) && $taxonomies !== array() ) { foreach ( $taxonomy_names as $tax ) { if ( in_array( $tax, array( 'link_category', 'nav_menu', 'post_format' ) ) ) { - unset( $taxonomy_names[ $tax ], $taxonomies[ $tax ] ); + unset( $taxonomy_names[$tax], $taxonomies[$tax] ); continue; } if ( apply_filters( 'wpseo_sitemap_exclude_taxonomy', false, $tax ) ) { - unset( $taxonomy_names[ $tax ], $taxonomies[ $tax ] ); + unset( $taxonomy_names[$tax], $taxonomies[$tax] ); continue; } - if ( isset( $this->options[ 'taxonomies-' . $tax . '-not_in_sitemap' ] ) && $this->options[ 'taxonomies-' . $tax . '-not_in_sitemap' ] === true ) { - unset( $taxonomy_names[ $tax ], $taxonomies[ $tax ] ); + if ( isset( $this->options['taxonomies-' . $tax . '-not_in_sitemap'] ) && $this->options['taxonomies-' . $tax . '-not_in_sitemap'] === true ) { + unset( $taxonomy_names[$tax], $taxonomies[$tax] ); continue; } } @@ -452,14 +451,14 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { $all_taxonomy_terms = $wpdb->get_results( $query ); $all_taxonomies = array(); foreach ( $all_taxonomy_terms as $obj ) { - $all_taxonomies[ $obj->taxonomy ][] = $obj->term_id; + $all_taxonomies[$obj->taxonomy][] = $obj->term_id; } unset( $all_taxonomy_terms ); foreach ( $taxonomies as $tax_name => $tax ) { $steps = $this->max_entries; - $count = ( isset ( $all_taxonomies[ $tax_name ] ) ) ? count( $all_taxonomies[ $tax_name ] ) : 1; + $count = ( isset ( $all_taxonomies[$tax_name] ) ) ? count( $all_taxonomies[$tax_name] ) : 1; $n = ( $count > $this->max_entries ) ? (int) ceil( $count / $this->max_entries ) : 1; for ( $i = 0; $i < $n; $i ++ ) { @@ -472,7 +471,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { if ( ( empty( $count ) || $count == $n ) ) { $date = $this->get_last_modified( $tax->object_type ); } else { - $terms = array_splice( $all_taxonomies[ $tax_name ], 0, $steps ); + $terms = array_splice( $all_taxonomies[$tax_name], 0, $steps ); if ( ! $terms ) { continue; } @@ -501,7 +500,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { } $this->sitemap .= '' . "\n"; - $this->sitemap .= '' . home_url( $base . $tax_name . '-sitemap' . $count . '.xml' ) . '' . "\n"; + $this->sitemap .= '' . wpseo_xml_sitemaps_base_url( $tax_name . '-sitemap' . $count . '.xml' ) . '' . "\n"; $this->sitemap .= '' . htmlspecialchars( $date ) . '' . "\n"; $this->sitemap .= '' . "\n"; } @@ -522,41 +521,37 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { // must use custom raw query because WP User Query does not support ordering by usermeta // Retrieve the newest updated profile timestamp overall + + $date_query = " + SELECT mt1.meta_value FROM $wpdb->users + INNER JOIN $wpdb->usermeta ON ($wpdb->users.ID = $wpdb->usermeta.user_id) + INNER JOIN $wpdb->usermeta AS mt1 ON ($wpdb->users.ID = mt1.user_id) WHERE 1=1 + AND ( ($wpdb->usermeta.meta_key = %s AND CAST($wpdb->usermeta.meta_value AS CHAR) != '0') + AND mt1.meta_key = '_yoast_wpseo_profile_updated' ) ORDER BY mt1.meta_value + "; + if ( empty( $count ) || $count == $n ) { $date = $wpdb->get_var( $wpdb->prepare( - " - SELECT mt1.meta_value FROM $wpdb->users - INNER JOIN $wpdb->usermeta ON ($wpdb->users.ID = $wpdb->usermeta.user_id) - INNER JOIN $wpdb->usermeta AS mt1 ON ($wpdb->users.ID = mt1.user_id) WHERE 1=1 - AND ( ($wpdb->usermeta.meta_key = %s AND CAST($wpdb->usermeta.meta_value AS CHAR) != '0') - AND mt1.meta_key = '_yoast_wpseo_profile_updated' ) ORDER BY mt1.meta_value DESC LIMIT 1 - ", + $date_query . ' ASC LIMIT 1', $wpdb->get_blog_prefix() . 'user_level' ) ); - $date = new DateTime( date( 'y-m-d H:i:s', $date ), new DateTimeZone( $this->get_timezone_string() ) ); // Retrieve the newest updated profile timestamp by an offset } else { $date = $wpdb->get_var( $wpdb->prepare( - " - SELECT mt1.meta_value FROM $wpdb->users - INNER JOIN $wpdb->usermeta ON ($wpdb->users.ID = $wpdb->usermeta.user_id) - INNER JOIN $wpdb->usermeta AS mt1 ON ($wpdb->users.ID = mt1.user_id) WHERE 1=1 - AND ( ($wpdb->usermeta.meta_key = %s AND CAST($wpdb->usermeta.meta_value AS CHAR) != '0') - AND mt1.meta_key = '_yoast_wpseo_profile_updated' ) ORDER BY mt1.meta_value ASC LIMIT 1 OFFSET %d - ", + $date_query . ' DESC LIMIT 1 OFFSET %d', $wpdb->get_blog_prefix() . 'user_level', $this->max_entries * ( $i + 1 ) - 1 ) ); - $date = new DateTime( date( 'y-m-d H:i:s', $date ), new DateTimeZone( $this->get_timezone_string() ) ); } + $date = new DateTime( date( 'y-m-d H:i:s', $date ), new DateTimeZone( $this->get_timezone_string() ) ); $this->sitemap .= '' . "\n"; - $this->sitemap .= '' . home_url( $base . 'author-sitemap' . $count . '.xml' ) . '' . "\n"; + $this->sitemap .= '' . wpseo_xml_sitemaps_base_url( 'author-sitemap' . $count . '.xml' ) . '' . "\n"; $this->sitemap .= '' . htmlspecialchars( $date->format( 'c' ) ) . '' . "\n"; $this->sitemap .= '' . "\n"; } @@ -610,7 +605,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { global $wpdb; if ( - ( isset( $this->options[ 'post_types-' . $post_type . '-not_in_sitemap' ] ) && $this->options[ 'post_types-' . $post_type . '-not_in_sitemap' ] === true ) + ( isset( $this->options['post_types-' . $post_type . '-not_in_sitemap'] ) && $this->options['post_types-' . $post_type . '-not_in_sitemap'] === true ) || in_array( $post_type, array( 'revision', 'nav_menu_item' ) ) || apply_filters( 'wpseo_sitemap_exclude_post_type', false, $post_type ) ) { @@ -731,20 +726,12 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { if ( count( $post_ids ) > 0 ) { update_meta_cache( 'post', $post_ids ); - $child_query = "SELECT ID, post_title, post_parent FROM $wpdb->posts WHERE post_status = 'inherit' AND post_type = 'attachment' AND post_parent IN (" . implode( $post_ids, ',' ) . ')'; - $wpdb->query( $child_query ); - $attachments = $wpdb->get_results( $child_query ); - $attachment_ids = wp_list_pluck( $attachments, 'ID' ); + $imploded_post_ids = implode( $post_ids, ',' ); - $thumbnail_query = "SELECT meta_value FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id IN (" . implode( $post_ids, ',' ) . ')'; - $wpdb->query( $thumbnail_query ); - $thumbnails = $wpdb->get_results( $thumbnail_query ); - $thumbnail_ids = wp_list_pluck( $thumbnails, 'meta_value' ); + $attachments = $this->get_attachments( $imploded_post_ids ); + $thumbnails = $this->get_thumbnails( $imploded_post_ids ); - $attachment_ids = array_merge( $thumbnail_ids, $attachment_ids ); - - _prime_post_caches( $attachment_ids ); - update_meta_cache( 'post', $attachment_ids ); + $this->do_attachment_ids_caching( $attachments, $thumbnails ); } $offset = $offset + $steps; @@ -767,7 +754,16 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { $url = array(); - $url['mod'] = ( isset( $p->post_modified_gmt ) && $p->post_modified_gmt != '0000-00-00 00:00:00' && $p->post_modified_gmt > $p->post_date_gmt ) ? $p->post_modified_gmt : ( ( '0000-00-00 00:00:00' != $p->post_date_gmt ) ? $p->post_date_gmt : $p->post_date ); + if ( isset( $p->post_modified_gmt ) && $p->post_modified_gmt != '0000-00-00 00:00:00' && $p->post_modified_gmt > $p->post_date_gmt ) { + $url['mod'] = $p->post_modified_gmt; + } else { + if ( '0000-00-00 00:00:00' != $p->post_date_gmt ) { + $url['mod'] = $p->post_date_gmt; + } else { + $url['mod'] = $p->post_date; + } + } + $url['loc'] = get_permalink( $p ); /** @@ -803,30 +799,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { } } - $pri = WPSEO_Meta::get_value( 'sitemap-prio', $p->ID ); - if ( is_numeric( $pri ) ) { - $url['pri'] = (float) $pri; - } else { - if ( $p->post_parent == 0 && $p->post_type == 'page' ) { - $url['pri'] = 0.8; - } else { - $url['pri'] = 0.6; - } - } - - if ( isset( $front_id ) && $p->ID == $front_id ) { - $url['pri'] = 1.0; - } - - /** - * Filter: 'wpseo_xml_post_type_archive_priority' - Allow changing the priority of the URL WordPress SEO uses in the XML sitemap. - * - * @api float $priority The priority for this URL, ranging from 0 to 1 - * - * @param string $post_type The post type this archive is for - * @param object $p The post object - */ - $url['pri'] = apply_filters( 'wpseo_xml_sitemap_post_priority', $url['pri'], $p->post_type, $p ); + $url['pri'] = $this->calculate_priority( $p ); $url['images'] = array(); @@ -844,8 +817,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { // The URL is relative, we'll have to make it absolute $src = $this->home_url . $src; } - } - elseif ( strpos( $src, 'http' ) !== 0 ) { + } elseif ( strpos( $src, 'http' ) !== 0 ) { // Protocol relative url, we add the scheme as the standard requires a protocol $src = $scheme . ':' . $src; @@ -859,7 +831,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { continue; } - if ( isset( $url['images'][ $src ] ) ) { + if ( isset( $url['images'][$src] ) ) { continue; } @@ -884,29 +856,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { if ( strpos( $p->post_content, '[gallery' ) !== false ) { if ( is_array( $attachments ) && $attachments !== array() ) { - - foreach ( $attachments as $attachment ) { - if ( $attachment->post_parent !== $p->ID ) { - continue; - } - - $src = $this->image_url( $attachment->ID ); - $image = array( - 'src' => apply_filters( 'wpseo_xml_sitemap_img_src', $src, $p ) - ); - - $alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ); - if ( $alt !== '' ) { - $image['alt'] = $alt; - } - unset( $alt ); - - $image['title'] = $attachment->post_title; - - $image = apply_filters( 'wpseo_xml_sitemap_img', $image, $p ); - - $url['images'][] = $image; - } + $url['images'] = $this->parse_attachments( $attachments, $p ); } unset( $attachment, $src, $image, $alt ); } @@ -955,7 +905,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { */ function build_tax_map( $taxonomy ) { if ( - ( isset( $this->options[ 'taxonomies-' . $taxonomy->name . '-not_in_sitemap' ] ) && $this->options[ 'taxonomies-' . $taxonomy->name . '-not_in_sitemap' ] === true ) + ( isset( $this->options['taxonomies-' . $taxonomy->name . '-not_in_sitemap'] ) && $this->options['taxonomies-' . $taxonomy->name . '-not_in_sitemap'] === true ) || in_array( $taxonomy, array( 'link_category', 'nav_menu', 'post_format' ) ) || apply_filters( 'wpseo_sitemap_exclude_taxonomy', false, $taxonomy->name ) ) { @@ -1266,8 +1216,7 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { * Make a request for the sitemap index so as to cache it before the arrival of the search engines. */ function hit_sitemap_index() { - $base = $GLOBALS['wp_rewrite']->using_index_permalinks() ? 'index.php/' : ''; - $url = home_url( $base . 'sitemap_index.xml' ); + $url = wpseo_xml_sitemaps_base_url( 'sitemap_index.xml' ); wp_remote_get( $url ); } @@ -1311,18 +1260,18 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { $query = "SELECT post_type, MAX(post_modified_gmt) AS date FROM $wpdb->posts WHERE post_status IN ('publish','inherit') AND post_type IN ('" . implode( "','", get_post_types( array( 'public' => true ) ) ) . "') GROUP BY post_type ORDER BY post_modified_gmt DESC"; $results = $wpdb->get_results( $query ); foreach ( $results as $obj ) { - $this->post_type_dates[ $obj->post_type ] = $obj->date; + $this->post_type_dates[$obj->post_type] = $obj->date; } unset( $results ); } - if ( count( $post_types ) === 1 && isset( $this->post_type_dates[ $post_types[0] ] ) ) { - $result = $this->post_type_dates[ $post_types[0] ]; + if ( count( $post_types ) === 1 && isset( $this->post_type_dates[$post_types[0]] ) ) { + $result = $this->post_type_dates[$post_types[0]]; } else { $result = null; foreach ( $post_types as $post_type ) { - if ( isset( $this->post_type_dates[ $post_type ] ) && strtotime( $this->post_type_dates[ $post_type ] ) > $result ) { - $result = $this->post_type_dates[ $post_type ]; + if ( isset( $this->post_type_dates[$post_type] ) && strtotime( $this->post_type_dates[$post_type] ) > $result ) { + $result = $this->post_type_dates[$post_type]; } } } @@ -1430,6 +1379,134 @@ if ( ! class_exists( 'WPSEO_Sitemaps' ) ) { return $url; } + + /** + * Getting the attachments from database + * + * @param $post_ids + * + * @return mixed + */ + private function get_attachments( $post_ids ) { + global $wpdb; + $child_query = "SELECT ID, post_title, post_parent FROM $wpdb->posts WHERE post_status = 'inherit' AND post_type = 'attachment' AND post_parent IN (" . $post_ids . ')'; + $wpdb->query( $child_query ); + $attachments = $wpdb->get_results( $child_query ); + + return $attachments; + } + + /** + * Getting thumbnails + * + * @param array $post_ids + * + * @return mixed + */ + private function get_thumbnails( $post_ids ) { + global $wpdb; + + $thumbnail_query = "SELECT meta_value FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id IN (" . $post_ids . ')'; + $wpdb->query( $thumbnail_query ); + $thumbnails = $wpdb->get_results( $thumbnail_query ); + + return $thumbnails; + } + + /** + * Parsing attachment_ids and do the caching + * + * Function will pluck ID from attachments and meta_value from thumbnails and marge them into one array. This + * array will be used to do the caching + * + * @param array $attachments + * @param array $thumbnails + */ + private function do_attachment_ids_caching( $attachments, $thumbnails ) { + $attachment_ids = wp_list_pluck( $attachments, 'ID' ); + $thumbnail_ids = wp_list_pluck( $thumbnails, 'meta_value' ); + + $attachment_ids = array_unique( array_merge( $thumbnail_ids, $attachment_ids ) ); + + _prime_post_caches( $attachment_ids ); + update_meta_cache( 'post', $attachment_ids ); + } + + /** + * Parses the given attachments + * + * @param array $attachments + * @param stdobject $post + * + * @return array + */ + private function parse_attachments( $attachments, $post ) { + + $return = array(); + + foreach ( $attachments as $attachment ) { + if ( $attachment->post_parent !== $post->ID ) { + continue; + } + + $src = $this->image_url( $attachment->ID ); + $image = array( + 'src' => apply_filters( 'wpseo_xml_sitemap_img_src', $src, $post ) + ); + + $alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ); + if ( $alt !== '' ) { + $image['alt'] = $alt; + } + unset( $alt ); + + $image['title'] = $attachment->post_title; + + $image = apply_filters( 'wpseo_xml_sitemap_img', $image, $post ); + + $return[] = $image; + } + + return $return; + } + + /** + * Calculate the priority of the post + * + * @param stdobject $post + * + * @return float|mixed + */ + private function calculate_priority( $post ) { + $front_id = get_option( 'page_on_front' ); + $pri = WPSEO_Meta::get_value( 'sitemap-prio', $post->ID ); + if ( is_numeric( $pri ) ) { + $return = (float) $pri; + } else { + if ( $post->post_parent == 0 && $post->post_type == 'page' ) { + $return = 0.8; + } else { + $return = 0.6; + } + } + + if ( isset( $front_id ) && $post->ID == $front_id ) { + $return = 1.0; + } + + /** + * Filter: 'wpseo_xml_post_type_archive_priority' - Allow changing the priority of the URL WordPress SEO uses in the XML sitemap. + * + * @api float $priority The priority for this URL, ranging from 0 to 1 + * + * @param string $post_type The post type this archive is for + * @param object $p The post object + */ + $return = apply_filters( 'wpseo_xml_sitemap_post_priority', $return, $post->post_type, $post ); + + return $return; + } + } /* End of class */ } /* End of class-exists wrapper */ diff --git a/wp-content/plugins/wordpress-seo/inc/class-wpseo-meta.php b/wp-content/plugins/wordpress-seo/inc/class-wpseo-meta.php index f20437c..0c60818 100644 --- a/wp-content/plugins/wordpress-seo/inc/class-wpseo-meta.php +++ b/wp-content/plugins/wordpress-seo/inc/class-wpseo-meta.php @@ -34,7 +34,7 @@ if ( ! class_exists( 'WPSEO_Meta' ) ) { * for get_post_meta(), get_post_custom() and the likes. That would have been the preferred solution. * * @internal all WP native get_meta() results get cached internally, so no need to cache locally. - * @internal use $key when the key is the WPSEO internal name (without prefix), $meta_key when it + * @internal use $key when the key is the WPSEO internal name (without prefix), $meta_key when it * includes the prefix */ class WPSEO_Meta { @@ -219,28 +219,6 @@ if ( ! class_exists( 'WPSEO_Meta' ) ) { '0.1' => '0.1 - ', // translation added later ), ), - 'sitemap-html-include' => array( - 'type' => 'select', - 'title' => '', // translation added later - 'default_value' => '-', - 'description' => '', // translation added later - 'options' => array( - '-' => '', // translation added later - 'always' => '', // translation added later - 'never' => '', // translation added later - ), - ), - 'authorship' => array( - 'type' => 'select', - 'title' => '', // translation added later - 'default_value' => '-', - 'description' => '', // translation added later - 'options' => array( - '-' => '', // translation added later - 'always' => '', // translation added later - 'never' => '', // translation added later - ), - ), 'canonical' => array( 'type' => 'text', 'title' => '', // translation added later @@ -254,45 +232,7 @@ if ( ! class_exists( 'WPSEO_Meta' ) ) { 'description' => '', // translation added later ), ), - 'social' => array( - 'opengraph-title' => array( - 'type' => 'text', - 'title' => '', // translation added later - 'default_value' => '', - 'description' => '', // translation added later - ), - 'opengraph-description' => array( - 'type' => 'textarea', - 'title' => '', // translation added later - 'default_value' => '', - 'description' => '', // translation added later - ), - 'opengraph-image' => array( - 'type' => 'upload', - 'title' => '', // translation added later - 'default_value' => '', - 'description' => '', // translation added later - ), - 'google-plus-title' => array( - 'type' => 'text', - 'title' => '', // translation added later - 'default_value' => '', - 'description' => '', // translation added later - ), - 'google-plus-description' => array( - 'type' => 'textarea', - 'title' => '', // translation added later - 'default_value' => '', - 'description' => '', // translation added later - ), - 'google-plus-image' => array( - 'type' => 'upload', - 'title' => '', // translation added later - 'default_value' => '', - 'description' => '', // translation added later - ), - - ), + 'social' => array(), /* Fields we should validate & save, but not show on any form */ 'non_form' => array( @@ -329,6 +269,33 @@ if ( ! class_exists( 'WPSEO_Meta' ) ) { * @return void */ public static function init() { + + $options = WPSEO_Options::get_all(); + + foreach ( + array( + 'opengraph' => 'opengraph', + 'twitter' => 'twitter', + 'googleplus' => 'google-plus', + ) as $option => $network ) { + if ( true === $options[$option] ) { + foreach ( + array( + 'title' => 'text', + 'description' => 'textarea', + 'image' => 'upload', + ) as $box => $type + ) { + self::$meta_fields['social'][$network.'-'.$box] = array( + 'type' => $type, + 'title' => '', // translation added later + 'default_value' => '', + 'description' => '', // translation added later + ); + } + } + } + /** * Allow add-on plugins to register their meta fields for management by this class * add_filter() calls must be made before plugins_loaded prio 14 @@ -469,9 +436,6 @@ if ( ! class_exists( 'WPSEO_Meta' ) ) { ); } - /* Adjust the authorship 'default for post type' text string based on the post type */ - $field_defs['authorship']['options']['-'] = sprintf( $field_defs['authorship']['options']['-'], ( ( isset( $options[ 'noauthorship-' . $post_type ] ) && $options[ 'noauthorship-' . $post_type ] === true ) ? __( 'don\'t show', 'wordpress-seo' ) : __( 'show', 'wordpress-seo' ) ) ); - break; } @@ -1033,6 +997,20 @@ if ( ! class_exists( 'WPSEO_Meta' ) ) { } return $merged; } + + /** + * Get a value from $_POST for a given key + * Returns the $_POST value if exists, returns an empty string if key does not exist + * + * @static + * + * @param string $key key of the value to get from $_POST + * @return string returns $_POST value, which will be a string the majority of the time + * Will return empty string if key does not exists in $_POST + */ + public static function get_post_value( $key ) { + return ( array_key_exists( $key, $_POST ) ) ? $_POST[ $key ] : ''; + } } /* End of class */ diff --git a/wp-content/plugins/wordpress-seo/inc/class-wpseo-options.php b/wp-content/plugins/wordpress-seo/inc/class-wpseo-options.php index eaac362..46ec5d4 100644 --- a/wp-content/plugins/wordpress-seo/inc/class-wpseo-options.php +++ b/wp-content/plugins/wordpress-seo/inc/class-wpseo-options.php @@ -574,8 +574,15 @@ if ( ! class_exists( 'WPSEO_Option' ) ) { protected function retain_variable_keys( $dirty, $clean ) { if ( ( is_array( $this->variable_array_key_patterns ) && $this->variable_array_key_patterns !== array() ) && ( is_array( $dirty ) && $dirty !== array() ) ) { foreach ( $dirty as $key => $value ) { + + // do nothing if already in filtered options + if ( isset( $clean[ $key ] ) ) { + continue; + } + foreach ( $this->variable_array_key_patterns as $pattern ) { - if ( strpos( $key, $pattern ) === 0 && ! isset( $clean[ $key ] ) ) { + + if ( strpos( $key, $pattern ) === 0 ) { $clean[ $key ] = $value; break; } @@ -1413,7 +1420,6 @@ if ( ! class_exists( 'WPSEO_Option_Titles' ) ) { * - 'metadesc-' . $pt->name => ''; // text field * - 'metakey-' . $pt->name => ''; // text field * - 'noindex-' . $pt->name => false; - * - 'noauthorship-' . $pt->name => false; * - 'showdate-' . $pt->name => false; * - 'hideeditbox-' . $pt->name => false; * @@ -1439,7 +1445,6 @@ if ( ! class_exists( 'WPSEO_Option_Titles' ) ) { 'metadesc-', 'metakey-', 'noindex-', - 'noauthorship-', 'showdate-', 'hideeditbox-', 'bctitle-ptarchive-', @@ -1539,7 +1544,7 @@ if ( ! class_exists( 'WPSEO_Option_Titles' ) ) { public function translate_defaults() { $this->defaults['title-author-wpseo'] = sprintf( __( '%s, Author at %s', 'wordpress-seo' ), '%%name%%', '%%sitename%%' ) . ' %%page%% '; $this->defaults['title-search-wpseo'] = sprintf( __( 'You searched for %s', 'wordpress-seo' ), '%%searchphrase%%' ) . ' %%page%% %%sep%% %%sitename%%'; - $this->defaults['title-404-wpseo'] = __( 'Page Not Found', 'wordpress-seo' ) . ' %%sep%% %%sitename%%'; + $this->defaults['title-404-wpseo'] = __( 'Page not found', 'wordpress-seo' ) . ' %%sep%% %%sitename%%'; } @@ -1564,12 +1569,6 @@ if ( ! class_exists( 'WPSEO_Option_Titles' ) ) { $this->defaults[ 'metadesc-' . $pt ] = ''; // text area $this->defaults[ 'metakey-' . $pt ] = ''; // text field $this->defaults[ 'noindex-' . $pt ] = false; - if ( 'post' == $pt ) { - $this->defaults[ 'noauthorship-' . $pt ] = false; - } else { - $this->defaults[ 'noauthorship-' . $pt ] = true; - } - $this->defaults[ 'showdate-' . $pt ] = false; $this->defaults[ 'hideeditbox-' . $pt ] = false; } @@ -1704,7 +1703,6 @@ if ( ! class_exists( 'WPSEO_Option_Titles' ) ) { 'noindex-ptarchive-' . $pt->name 'noindex-tax-' . $tax->name */ case 'noindex-': - case 'noauthorship-': /* 'noauthorship-' . $pt->name */ case 'showdate-': /* 'showdate-'. $pt->name */ /* Covers: 'hideeditbox-'. $pt->name @@ -1883,7 +1881,6 @@ if ( ! class_exists( 'WPSEO_Option_Titles' ) ) { /* boolean fields */ case 'noindex-': - case 'noauthorship-': case 'showdate-': case 'hideeditbox-': default: @@ -1925,8 +1922,14 @@ if ( ! class_exists( 'WPSEO_Option_Titles' ) ) { $patterns = apply_filters( 'wpseo_option_titles_variable_array_key_patterns', $patterns ); foreach ( $dirty as $key => $value ) { + + // do nothing if already in filtered option array + if ( isset( $clean[ $key ] ) ) { + continue; + } + foreach ( $patterns as $pattern ) { - if ( strpos( $key, $pattern ) === 0 && ! isset( $clean[ $key ] ) ) { + if ( strpos( $key, $pattern ) === 0 ) { $clean[ $key ] = $value; break; } diff --git a/wp-content/plugins/wordpress-seo/inc/class-wpseo-replace-vars.php b/wp-content/plugins/wordpress-seo/inc/class-wpseo-replace-vars.php index 00096f4..a1427f4 100644 --- a/wp-content/plugins/wordpress-seo/inc/class-wpseo-replace-vars.php +++ b/wp-content/plugins/wordpress-seo/inc/class-wpseo-replace-vars.php @@ -141,7 +141,7 @@ if ( ! class_exists( 'WPSEO_Replace_Vars' ) ) { // Let's see if we can bail super early. if ( strpos( $string, '%%' ) === false ) { - return trim( preg_replace( '`\s+`', ' ', $string ) ); + return wpseo_standardize_whitespace( $string ); } $args = (array) $args; @@ -197,7 +197,7 @@ if ( ! class_exists( 'WPSEO_Replace_Vars' ) ) { } // Remove superfluous whitespace - $string = preg_replace( '`\s+`', ' ', $string ); + $string = wpseo_standardize_whitespace( $string ); return trim( $string ); } @@ -238,7 +238,7 @@ if ( ! class_exists( 'WPSEO_Replace_Vars' ) ) { $replacement = $this->$method_name(); } // Deal with externally defined variable names elseif ( isset( self::$external_replacements[ $var ] ) && ! is_null( self::$external_replacements[ $var ] ) ) { - $replacement = call_user_func( self::$external_replacements[ $var ], $var ); + $replacement = call_user_func( self::$external_replacements[ $var ], $var, $this->args ); } // Replacement retrievals can return null if no replacement can be determined, root those outs diff --git a/wp-content/plugins/wordpress-seo/inc/wpseo-functions.php b/wp-content/plugins/wordpress-seo/inc/wpseo-functions.php index 9740a9b..a275d8a 100644 --- a/wp-content/plugins/wordpress-seo/inc/wpseo-functions.php +++ b/wp-content/plugins/wordpress-seo/inc/wpseo-functions.php @@ -239,11 +239,33 @@ function wpseo_xml_redirect_sitemap() { // must be 'sitemap.xml' and must be 404 if ( home_url( '/sitemap.xml' ) == $current_url && $wp_query->is_404 ) { - wp_redirect( home_url( '/sitemap_index.xml' ) ); + wp_redirect( home_url( '/sitemap_index.xml' ), 301 ); exit; } } +/** + * Create base URL for the sitemaps and applies filters + * + * @since 1.5.7 + * + * @param string $page page to append to the base URL + * + * @return string base URL (incl page) for the sitemaps + */ +function wpseo_xml_sitemaps_base_url( $page ) { + $base = $GLOBALS['wp_rewrite']->using_index_permalinks() ? 'index.php/' : '/'; + + /** + * Filter: 'wpseo_sitemaps_base_url' - Allow developer to change the base URL of the sitemaps + * + * @api string $base The string that should be added to home_url() to make the full base URL. + */ + $base = apply_filters( 'wpseo_sitemaps_base_url', $base ); + + return home_url( $base . $page ); +} + /** * Initialize sitemaps. Add sitemap & XSL rewrite rules and query vars */ @@ -280,9 +302,8 @@ function wpseo_ping_search_engines( $sitemapurl = null ) { } $options = get_option( 'wpseo_xml' ); - $base = $GLOBALS['wp_rewrite']->using_index_permalinks() ? 'index.php/' : ''; if ( $sitemapurl == null ) { - $sitemapurl = urlencode( home_url( $base . 'sitemap_index.xml' ) ); + $sitemapurl = urlencode( wpseo_xml_sitemaps_base_url( 'sitemap_index.xml' ) ); } // Always ping Google and Bing, optionally ping Ask and Yahoo! @@ -600,6 +621,19 @@ function wpseo_is_url_relative( $url ) { return ( strpos( $url, 'http' ) !== 0 && strpos( $url, '//' ) !== 0 ); } +/** + * Standardize whitespace in a string + * + * Replace line breaks, carriage returns, tabs with a space, then remove double spaces. + * + * @param string $string + * + * @return string + */ +function wpseo_standardize_whitespace( $string ) { + return trim( str_replace( ' ', ' ', str_replace( array( "\t", "\n", "\r", "\f" ), ' ', $string ) ) ); +} + /** * Emulate PHP native ctype_digit() function for when the ctype extension would be disabled *sigh* * Only emulates the behaviour for when the input is a string, does not handle integer input as ascii value diff --git a/wp-content/plugins/wordpress-seo/inc/wpseo-non-ajax-functions.php b/wp-content/plugins/wordpress-seo/inc/wpseo-non-ajax-functions.php index 5dd218d..f8e4c3d 100644 --- a/wp-content/plugins/wordpress-seo/inc/wpseo-non-ajax-functions.php +++ b/wp-content/plugins/wordpress-seo/inc/wpseo-non-ajax-functions.php @@ -364,42 +364,77 @@ function wpseo_admin_bar_menu() { 'parent' => 'wpseo-analysis', 'id' => 'wpseo-inlinks-ose', 'title' => __( 'Check Inlinks (OSE)', 'wordpress-seo' ), - 'href' => 'http://www.opensiteexplorer.org/' . str_replace( '/', '%252F', preg_replace( '`^http[s]?://`', '', $url ) ) . '/a!links', + 'href' => '//moz.com/researchtools/ose/links?site=' . urlencode( $url ), 'meta' => array( 'target' => '_blank' ) ) ); $wp_admin_bar->add_menu( array( 'parent' => 'wpseo-analysis', 'id' => 'wpseo-kwdensity', 'title' => __( 'Check Keyword Density', 'wordpress-seo' ), - 'href' => 'http://www.zippy.co.uk/keyworddensity/index.php?url=' . urlencode( $url ) . '&keyword=' . urlencode( $focuskw ), + 'href' => '//www.zippy.co.uk/keyworddensity/index.php?url=' . urlencode( $url ) . '&keyword=' . urlencode( $focuskw ), 'meta' => array( 'target' => '_blank' ) ) ); $wp_admin_bar->add_menu( array( 'parent' => 'wpseo-analysis', 'id' => 'wpseo-cache', 'title' => __( 'Check Google Cache', 'wordpress-seo' ), - 'href' => 'http://webcache.googleusercontent.com/search?strip=1&q=cache:' . urlencode( $url ), + 'href' => '//webcache.googleusercontent.com/search?strip=1&q=cache:' . urlencode( $url ), 'meta' => array( 'target' => '_blank' ) ) ); $wp_admin_bar->add_menu( array( 'parent' => 'wpseo-analysis', 'id' => 'wpseo-header', 'title' => __( 'Check Headers', 'wordpress-seo' ), - 'href' => 'http://quixapp.com/headers/?r=' . urlencode( $url ), + 'href' => '//quixapp.com/headers/?r=' . urlencode( $url ), 'meta' => array( 'target' => '_blank' ) ) ); $wp_admin_bar->add_menu( array( 'parent' => 'wpseo-analysis', 'id' => 'wpseo-richsnippets', 'title' => __( 'Check Rich Snippets', 'wordpress-seo' ), - 'href' => 'http://www.google.com/webmasters/tools/richsnippets?q=' . urlencode( $url ), + 'href' => '//www.google.com/webmasters/tools/richsnippets?q=' . urlencode( $url ), 'meta' => array( 'target' => '_blank' ) ) ); $wp_admin_bar->add_menu( array( 'parent' => 'wpseo-analysis', 'id' => 'wpseo-facebookdebug', 'title' => __( 'Facebook Debugger', 'wordpress-seo' ), - 'href' => 'https://developers.facebook.com/tools/debug/og/object?q=' . urlencode( $url ), + 'href' => '//developers.facebook.com/tools/debug/og/object?q=' . urlencode( $url ), + 'meta' => array( 'target' => '_blank' ) + ) ); + $wp_admin_bar->add_menu( array( + 'parent' => 'wpseo-analysis', + 'id' => 'wpseo-pinterestvalidator', + 'title' => __( 'Pinterest Rich Pins Validator', 'wordpress-seo' ), + 'href' => '//developers.pinterest.com/rich_pins/validator/?link=' . urlencode( $url ), + 'meta' => array( 'target' => '_blank' ) + ) ); + $wp_admin_bar->add_menu( array( + 'parent' => 'wpseo-analysis', + 'id' => 'wpseo-htmlvalidation', + 'title' => __( 'HTML Validator', 'wordpress-seo' ), + 'href' => '//validator.w3.org/check?uri=' . urlencode( $url ), + 'meta' => array( 'target' => '_blank' ) + ) ); + $wp_admin_bar->add_menu( array( + 'parent' => 'wpseo-analysis', + 'id' => 'wpseo-cssvalidation', + 'title' => __( 'CSS Validator', 'wordpress-seo' ), + 'href' => '//jigsaw.w3.org/css-validator/validator?uri=' . urlencode( $url ), + 'meta' => array( 'target' => '_blank' ) + ) ); + $wp_admin_bar->add_menu( array( + 'parent' => 'wpseo-analysis', + 'id' => 'wpseo-pagespeed', + 'title' => __( 'Google Page Speed Test', 'wordpress-seo' ), + 'href' => '//developers.google.com/speed/pagespeed/insights/?url=' . urlencode( $url ), + 'meta' => array( 'target' => '_blank' ) + ) ); + $wp_admin_bar->add_menu( array( + 'parent' => 'wpseo-analysis', + 'id' => 'wpseo-modernie', + 'title' => __( 'Modern IE Site Scan', 'wordpress-seo' ), + 'href' => '//www.modern.ie/en-us/report#' . urlencode( $url ), 'meta' => array( 'target' => '_blank' ) ) ); } @@ -464,7 +499,7 @@ function wpseo_admin_bar_menu() { $wp_admin_bar->add_menu( array( 'parent' => 'wpseo-settings', 'id' => 'wpseo-import', - 'title' => __( 'Import & Export', 'wordpress-seo' ), + 'title' => esc_html__( 'Import & Export', 'wordpress-seo' ), 'href' => admin_url( 'admin.php?page=wpseo_import' ), ) ); $wp_admin_bar->add_menu( array( diff --git a/wp-content/plugins/wordpress-seo/js/jquery.qtip.js b/wp-content/plugins/wordpress-seo/js/jquery.qtip.js new file mode 100644 index 0000000..3bda3b1 --- /dev/null +++ b/wp-content/plugins/wordpress-seo/js/jquery.qtip.js @@ -0,0 +1,3451 @@ +/* + * qTip2 - Pretty powerful tooltips - v2.2.1 + * http://qtip2.com + * + * Copyright (c) 2014 + * Released under the MIT licenses + * http://jquery.org/license + * + * Date: Sat Sep 6 2014 11:12 GMT+0100+0100 + * Plugins: tips modal viewport svg imagemap ie6 + * Styles: core basic css3 + */ +/*global window: false, jQuery: false, console: false, define: false */ + +/* Cache window, document, undefined */ +(function( window, document, undefined ) { + +// Uses AMD or browser globals to create a jQuery plugin. + (function( factory ) { + "use strict"; + if(typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else if(jQuery && !jQuery.fn.qtip) { + factory(jQuery); + } + } + (function($) { + "use strict"; // Enable ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ + ;// Munge the primitives - Paul Irish tip + var TRUE = true, + FALSE = false, + NULL = null, + +// Common variables + X = 'x', Y = 'y', + WIDTH = 'width', + HEIGHT = 'height', + +// Positioning sides + TOP = 'top', + LEFT = 'left', + BOTTOM = 'bottom', + RIGHT = 'right', + CENTER = 'center', + +// Position adjustment types + FLIP = 'flip', + FLIPINVERT = 'flipinvert', + SHIFT = 'shift', + +// Shortcut vars + QTIP, PROTOTYPE, CORNER, CHECKS, + PLUGINS = {}, + NAMESPACE = 'qtip', + ATTR_HAS = 'data-hasqtip', + ATTR_ID = 'data-qtip-id', + WIDGET = ['ui-widget', 'ui-tooltip'], + SELECTOR = '.'+NAMESPACE, + INACTIVE_EVENTS = 'click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' '), + + CLASS_FIXED = NAMESPACE+'-fixed', + CLASS_DEFAULT = NAMESPACE + '-default', + CLASS_FOCUS = NAMESPACE + '-focus', + CLASS_HOVER = NAMESPACE + '-hover', + CLASS_DISABLED = NAMESPACE+'-disabled', + + replaceSuffix = '_replacedByqTip', + oldtitle = 'oldtitle', + trackingBound, + +// Browser detection + BROWSER = { + /* + * IE version detection + * + * Adapted from: http://ajaxian.com/archives/attack-of-the-ie-conditional-comment + * Credit to James Padolsey for the original implemntation! + */ + ie: (function(){ + for ( + var v = 4, i = document.createElement("div"); + (i.innerHTML = "") && i.getElementsByTagName("i")[0]; + v+=1 + ) {} + return v > 4 ? v : NaN; + }()), + + /* + * iOS version detection + */ + iOS: parseFloat( + ('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1]) + .replace('undefined', '3_2').replace('_', '.').replace('_', '') + ) || FALSE + }; + ;function QTip(target, options, id, attr) { + // Elements and ID + this.id = id; + this.target = target; + this.tooltip = NULL; + this.elements = { target: target }; + + // Internal constructs + this._id = NAMESPACE + '-' + id; + this.timers = { img: {} }; + this.options = options; + this.plugins = {}; + + // Cache object + this.cache = { + event: {}, + target: $(), + disabled: FALSE, + attr: attr, + onTooltip: FALSE, + lastClass: '' + }; + + // Set the initial flags + this.rendered = this.destroyed = this.disabled = this.waiting = + this.hiddenDuringWait = this.positioning = this.triggering = FALSE; + } + PROTOTYPE = QTip.prototype; + + PROTOTYPE._when = function(deferreds) { + return $.when.apply($, deferreds); + }; + + PROTOTYPE.render = function(show) { + if(this.rendered || this.destroyed) { return this; } // If tooltip has already been rendered, exit + + var self = this, + options = this.options, + cache = this.cache, + elements = this.elements, + text = options.content.text, + title = options.content.title, + button = options.content.button, + posOptions = options.position, + namespace = '.'+this._id+' ', + deferreds = [], + tooltip; + + // Add ARIA attributes to target + $.attr(this.target[0], 'aria-describedby', this._id); + + // Create public position object that tracks current position corners + cache.posClass = this._createPosClass( + (this.position = { my: posOptions.my, at: posOptions.at }).my + ); + + // Create tooltip element + this.tooltip = elements.tooltip = tooltip = $('
', { + 'id': this._id, + 'class': [ NAMESPACE, CLASS_DEFAULT, options.style.classes, cache.posClass ].join(' '), + 'width': options.style.width || '', + 'height': options.style.height || '', + 'tracking': posOptions.target === 'mouse' && posOptions.adjust.mouse, + + /* ARIA specific attributes */ + 'role': 'alert', + 'aria-live': 'polite', + 'aria-atomic': FALSE, + 'aria-describedby': this._id + '-content', + 'aria-hidden': TRUE + }) + .toggleClass(CLASS_DISABLED, this.disabled) + .attr(ATTR_ID, this.id) + .data(NAMESPACE, this) + .appendTo(posOptions.container) + .append( + // Create content element + elements.content = $('
', { + 'class': NAMESPACE + '-content', + 'id': this._id + '-content', + 'aria-atomic': TRUE + }) + ); + + // Set rendered flag and prevent redundant reposition calls for now + this.rendered = -1; + this.positioning = TRUE; + + // Create title... + if(title) { + this._createTitle(); + + // Update title only if its not a callback (called in toggle if so) + if(!$.isFunction(title)) { + deferreds.push( this._updateTitle(title, FALSE) ); + } + } + + // Create button + if(button) { this._createButton(); } + + // Set proper rendered flag and update content if not a callback function (called in toggle) + if(!$.isFunction(text)) { + deferreds.push( this._updateContent(text, FALSE) ); + } + this.rendered = TRUE; + + // Setup widget classes + this._setWidget(); + + // Initialize 'render' plugins + $.each(PLUGINS, function(name) { + var instance; + if(this.initialize === 'render' && (instance = this(self))) { + self.plugins[name] = instance; + } + }); + + // Unassign initial events and assign proper events + this._unassignEvents(); + this._assignEvents(); + + // When deferreds have completed + this._when(deferreds).then(function() { + // tooltiprender event + self._trigger('render'); + + // Reset flags + self.positioning = FALSE; + + // Show tooltip if not hidden during wait period + if(!self.hiddenDuringWait && (options.show.ready || show)) { + self.toggle(TRUE, cache.event, FALSE); + } + self.hiddenDuringWait = FALSE; + }); + + // Expose API + QTIP.api[this.id] = this; + + return this; + }; + + PROTOTYPE.destroy = function(immediate) { + // Set flag the signify destroy is taking place to plugins + // and ensure it only gets destroyed once! + if(this.destroyed) { return this.target; } + + function process() { + if(this.destroyed) { return; } + this.destroyed = TRUE; + + var target = this.target, + title = target.attr(oldtitle), + timer; + + // Destroy tooltip if rendered + if(this.rendered) { + this.tooltip.stop(1,0).find('*').remove().end().remove(); + } + + // Destroy all plugins + $.each(this.plugins, function(name) { + this.destroy && this.destroy(); + }); + + // Clear timers + for(timer in this.timers) { + clearTimeout(this.timers[timer]); + } + + // Remove api object and ARIA attributes + target.removeData(NAMESPACE) + .removeAttr(ATTR_ID) + .removeAttr(ATTR_HAS) + .removeAttr('aria-describedby'); + + // Reset old title attribute if removed + if(this.options.suppress && title) { + target.attr('title', title).removeAttr(oldtitle); + } + + // Remove qTip events associated with this API + this._unassignEvents(); + + // Remove ID from used id objects, and delete object references + // for better garbage collection and leak protection + this.options = this.elements = this.cache = this.timers = + this.plugins = this.mouse = NULL; + + // Delete epoxsed API object + delete QTIP.api[this.id]; + } + + // If an immediate destory is needed + if((immediate !== TRUE || this.triggering === 'hide') && this.rendered) { + this.tooltip.one('tooltiphidden', $.proxy(process, this)); + !this.triggering && this.hide(); + } + + // If we're not in the process of hiding... process + else { process.call(this); } + + return this.target; + }; + ;function invalidOpt(a) { + return a === NULL || $.type(a) !== 'object'; + } + + function invalidContent(c) { + return !( $.isFunction(c) || (c && c.attr) || c.length || ($.type(c) === 'object' && (c.jquery || c.then) )); + } + +// Option object sanitizer + function sanitizeOptions(opts) { + var content, text, ajax, once; + + if(invalidOpt(opts)) { return FALSE; } + + if(invalidOpt(opts.metadata)) { + opts.metadata = { type: opts.metadata }; + } + + if('content' in opts) { + content = opts.content; + + if(invalidOpt(content) || content.jquery || content.done) { + content = opts.content = { + text: (text = invalidContent(content) ? FALSE : content) + }; + } + else { text = content.text; } + + // DEPRECATED - Old content.ajax plugin functionality + // Converts it into the proper Deferred syntax + if('ajax' in content) { + ajax = content.ajax; + once = ajax && ajax.once !== FALSE; + delete content.ajax; + + content.text = function(event, api) { + var loading = text || $(this).attr(api.options.content.attr) || 'Loading...', + + deferred = $.ajax( + $.extend({}, ajax, { context: api }) + ) + .then(ajax.success, NULL, ajax.error) + .then(function(content) { + if(content && once) { api.set('content.text', content); } + return content; + }, + function(xhr, status, error) { + if(api.destroyed || xhr.status === 0) { return; } + api.set('content.text', status + ': ' + error); + }); + + return !once ? (api.set('content.text', loading), deferred) : loading; + }; + } + + if('title' in content) { + if($.isPlainObject(content.title)) { + content.button = content.title.button; + content.title = content.title.text; + } + + if(invalidContent(content.title || FALSE)) { + content.title = FALSE; + } + } + } + + if('position' in opts && invalidOpt(opts.position)) { + opts.position = { my: opts.position, at: opts.position }; + } + + if('show' in opts && invalidOpt(opts.show)) { + opts.show = opts.show.jquery ? { target: opts.show } : + opts.show === TRUE ? { ready: TRUE } : { event: opts.show }; + } + + if('hide' in opts && invalidOpt(opts.hide)) { + opts.hide = opts.hide.jquery ? { target: opts.hide } : { event: opts.hide }; + } + + if('style' in opts && invalidOpt(opts.style)) { + opts.style = { classes: opts.style }; + } + + // Sanitize plugin options + $.each(PLUGINS, function() { + this.sanitize && this.sanitize(opts); + }); + + return opts; + } + +// Setup builtin .set() option checks + CHECKS = PROTOTYPE.checks = { + builtin: { + // Core checks + '^id$': function(obj, o, v, prev) { + var id = v === TRUE ? QTIP.nextid : v, + new_id = NAMESPACE + '-' + id; + + if(id !== FALSE && id.length > 0 && !$('#'+new_id).length) { + this._id = new_id; + + if(this.rendered) { + this.tooltip[0].id = this._id; + this.elements.content[0].id = this._id + '-content'; + this.elements.title[0].id = this._id + '-title'; + } + } + else { obj[o] = prev; } + }, + '^prerender': function(obj, o, v) { + v && !this.rendered && this.render(this.options.show.ready); + }, + + // Content checks + '^content.text$': function(obj, o, v) { + this._updateContent(v); + }, + '^content.attr$': function(obj, o, v, prev) { + if(this.options.content.text === this.target.attr(prev)) { + this._updateContent( this.target.attr(v) ); + } + }, + '^content.title$': function(obj, o, v) { + // Remove title if content is null + if(!v) { return this._removeTitle(); } + + // If title isn't already created, create it now and update + v && !this.elements.title && this._createTitle(); + this._updateTitle(v); + }, + '^content.button$': function(obj, o, v) { + this._updateButton(v); + }, + '^content.title.(text|button)$': function(obj, o, v) { + this.set('content.'+o, v); // Backwards title.text/button compat + }, + + // Position checks + '^position.(my|at)$': function(obj, o, v){ + 'string' === typeof v && (this.position[o] = obj[o] = new CORNER(v, o === 'at')); + }, + '^position.container$': function(obj, o, v){ + this.rendered && this.tooltip.appendTo(v); + }, + + // Show checks + '^show.ready$': function(obj, o, v) { + v && (!this.rendered && this.render(TRUE) || this.toggle(TRUE)); + }, + + // Style checks + '^style.classes$': function(obj, o, v, p) { + this.rendered && this.tooltip.removeClass(p).addClass(v); + }, + '^style.(width|height)': function(obj, o, v) { + this.rendered && this.tooltip.css(o, v); + }, + '^style.widget|content.title': function() { + this.rendered && this._setWidget(); + }, + '^style.def': function(obj, o, v) { + this.rendered && this.tooltip.toggleClass(CLASS_DEFAULT, !!v); + }, + + // Events check + '^events.(render|show|move|hide|focus|blur)$': function(obj, o, v) { + this.rendered && this.tooltip[($.isFunction(v) ? '' : 'un') + 'bind']('tooltip'+o, v); + }, + + // Properties which require event reassignment + '^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)': function() { + if(!this.rendered) { return; } + + // Set tracking flag + var posOptions = this.options.position; + this.tooltip.attr('tracking', posOptions.target === 'mouse' && posOptions.adjust.mouse); + + // Reassign events + this._unassignEvents(); + this._assignEvents(); + } + } + }; + +// Dot notation converter + function convertNotation(options, notation) { + var i = 0, obj, option = options, + + // Split notation into array + levels = notation.split('.'); + + // Loop through + while( option = option[ levels[i++] ] ) { + if(i < levels.length) { obj = option; } + } + + return [obj || options, levels.pop()]; + } + + PROTOTYPE.get = function(notation) { + if(this.destroyed) { return this; } + + var o = convertNotation(this.options, notation.toLowerCase()), + result = o[0][ o[1] ]; + + return result.precedance ? result.string() : result; + }; + + function setCallback(notation, args) { + var category, rule, match; + + for(category in this.checks) { + for(rule in this.checks[category]) { + if(match = (new RegExp(rule, 'i')).exec(notation)) { + args.push(match); + + if(category === 'builtin' || this.plugins[category]) { + this.checks[category][rule].apply( + this.plugins[category] || this, args + ); + } + } + } + } + } + + var rmove = /^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i, + rrender = /^prerender|show\.ready/i; + + PROTOTYPE.set = function(option, value) { + if(this.destroyed) { return this; } + + var rendered = this.rendered, + reposition = FALSE, + options = this.options, + checks = this.checks, + name; + + // Convert singular option/value pair into object form + if('string' === typeof option) { + name = option; option = {}; option[name] = value; + } + else { option = $.extend({}, option); } + + // Set all of the defined options to their new values + $.each(option, function(notation, value) { + if(rendered && rrender.test(notation)) { + delete option[notation]; return; + } + + // Set new obj value + var obj = convertNotation(options, notation.toLowerCase()), previous; + previous = obj[0][ obj[1] ]; + obj[0][ obj[1] ] = value && value.nodeType ? $(value) : value; + + // Also check if we need to reposition + reposition = rmove.test(notation) || reposition; + + // Set the new params for the callback + option[notation] = [obj[0], obj[1], value, previous]; + }); + + // Re-sanitize options + sanitizeOptions(options); + + /* + * Execute any valid callbacks for the set options + * Also set positioning flag so we don't get loads of redundant repositioning calls. + */ + this.positioning = TRUE; + $.each(option, $.proxy(setCallback, this)); + this.positioning = FALSE; + + // Update position if needed + if(this.rendered && this.tooltip[0].offsetWidth > 0 && reposition) { + this.reposition( options.position.target === 'mouse' ? NULL : this.cache.event ); + } + + return this; + }; + ;PROTOTYPE._update = function(content, element, reposition) { + var self = this, + cache = this.cache; + + // Make sure tooltip is rendered and content is defined. If not return + if(!this.rendered || !content) { return FALSE; } + + // Use function to parse content + if($.isFunction(content)) { + content = content.call(this.elements.target, cache.event, this) || ''; + } + + // Handle deferred content + if($.isFunction(content.then)) { + cache.waiting = TRUE; + return content.then(function(c) { + cache.waiting = FALSE; + return self._update(c, element); + }, NULL, function(e) { + return self._update(e, element); + }); + } + + // If content is null... return false + if(content === FALSE || (!content && content !== '')) { return FALSE; } + + // Append new content if its a DOM array and show it if hidden + if(content.jquery && content.length > 0) { + element.empty().append( + content.css({ display: 'block', visibility: 'visible' }) + ); + } + + // Content is a regular string, insert the new content + else { element.html(content); } + + // Wait for content to be loaded, and reposition + return this._waitForContent(element).then(function(images) { + if(self.rendered && self.tooltip[0].offsetWidth > 0) { + self.reposition(cache.event, !images.length); + } + }); + }; + + PROTOTYPE._waitForContent = function(element) { + var cache = this.cache; + + // Set flag + cache.waiting = TRUE; + + // If imagesLoaded is included, ensure images have loaded and return promise + return ( $.fn.imagesLoaded ? element.imagesLoaded() : $.Deferred().resolve([]) ) + .done(function() { cache.waiting = FALSE; }) + .promise(); + }; + + PROTOTYPE._updateContent = function(content, reposition) { + this._update(content, this.elements.content, reposition); + }; + + PROTOTYPE._updateTitle = function(content, reposition) { + if(this._update(content, this.elements.title, reposition) === FALSE) { + this._removeTitle(FALSE); + } + }; + + PROTOTYPE._createTitle = function() + { + var elements = this.elements, + id = this._id+'-title'; + + // Destroy previous title element, if present + if(elements.titlebar) { this._removeTitle(); } + + // Create title bar and title elements + elements.titlebar = $('
', { + 'class': NAMESPACE + '-titlebar ' + (this.options.style.widget ? createWidgetClass('header') : '') + }) + .append( + elements.title = $('
', { + 'id': id, + 'class': NAMESPACE + '-title', + 'aria-atomic': TRUE + }) + ) + .insertBefore(elements.content) + + // Button-specific events + .delegate('.qtip-close', 'mousedown keydown mouseup keyup mouseout', function(event) { + $(this).toggleClass('ui-state-active ui-state-focus', event.type.substr(-4) === 'down'); + }) + .delegate('.qtip-close', 'mouseover mouseout', function(event){ + $(this).toggleClass('ui-state-hover', event.type === 'mouseover'); + }); + + // Create button if enabled + if(this.options.content.button) { this._createButton(); } + }; + + PROTOTYPE._removeTitle = function(reposition) + { + var elements = this.elements; + + if(elements.title) { + elements.titlebar.remove(); + elements.titlebar = elements.title = elements.button = NULL; + + // Reposition if enabled + if(reposition !== FALSE) { this.reposition(); } + } + }; + ;PROTOTYPE._createPosClass = function(my) { + return NAMESPACE + '-pos-' + (my || this.options.position.my).abbrev(); + }; + + PROTOTYPE.reposition = function(event, effect) { + if(!this.rendered || this.positioning || this.destroyed) { return this; } + + // Set positioning flag + this.positioning = TRUE; + + var cache = this.cache, + tooltip = this.tooltip, + posOptions = this.options.position, + target = posOptions.target, + my = posOptions.my, + at = posOptions.at, + viewport = posOptions.viewport, + container = posOptions.container, + adjust = posOptions.adjust, + method = adjust.method.split(' '), + tooltipWidth = tooltip.outerWidth(FALSE), + tooltipHeight = tooltip.outerHeight(FALSE), + targetWidth = 0, + targetHeight = 0, + type = tooltip.css('position'), + position = { left: 0, top: 0 }, + visible = tooltip[0].offsetWidth > 0, + isScroll = event && event.type === 'scroll', + win = $(window), + doc = container[0].ownerDocument, + mouse = this.mouse, + pluginCalculations, offset, adjusted, newClass; + + // Check if absolute position was passed + if($.isArray(target) && target.length === 2) { + // Force left top and set position + at = { x: LEFT, y: TOP }; + position = { left: target[0], top: target[1] }; + } + + // Check if mouse was the target + else if(target === 'mouse') { + // Force left top to allow flipping + at = { x: LEFT, y: TOP }; + + // Use the mouse origin that caused the show event, if distance hiding is enabled + if((!adjust.mouse || this.options.hide.distance) && cache.origin && cache.origin.pageX) { + event = cache.origin; + } + + // Use cached event for resize/scroll events + else if(!event || (event && (event.type === 'resize' || event.type === 'scroll'))) { + event = cache.event; + } + + // Otherwise, use the cached mouse coordinates if available + else if(mouse && mouse.pageX) { + event = mouse; + } + + // Calculate body and container offset and take them into account below + if(type !== 'static') { position = container.offset(); } + if(doc.body.offsetWidth !== (window.innerWidth || doc.documentElement.clientWidth)) { + offset = $(document.body).offset(); + } + + // Use event coordinates for position + position = { + left: event.pageX - position.left + (offset && offset.left || 0), + top: event.pageY - position.top + (offset && offset.top || 0) + }; + + // Scroll events are a pain, some browsers + if(adjust.mouse && isScroll && mouse) { + position.left -= (mouse.scrollX || 0) - win.scrollLeft(); + position.top -= (mouse.scrollY || 0) - win.scrollTop(); + } + } + + // Target wasn't mouse or absolute... + else { + // Check if event targetting is being used + if(target === 'event') { + if(event && event.target && event.type !== 'scroll' && event.type !== 'resize') { + cache.target = $(event.target); + } + else if(!event.target) { + cache.target = this.elements.target; + } + } + else if(target !== 'event'){ + cache.target = $(target.jquery ? target : this.elements.target); + } + target = cache.target; + + // Parse the target into a jQuery object and make sure there's an element present + target = $(target).eq(0); + if(target.length === 0) { return this; } + + // Check if window or document is the target + else if(target[0] === document || target[0] === window) { + targetWidth = BROWSER.iOS ? window.innerWidth : target.width(); + targetHeight = BROWSER.iOS ? window.innerHeight : target.height(); + + if(target[0] === window) { + position = { + top: (viewport || target).scrollTop(), + left: (viewport || target).scrollLeft() + }; + } + } + + // Check if the target is an element + else if(PLUGINS.imagemap && target.is('area')) { + pluginCalculations = PLUGINS.imagemap(this, target, at, PLUGINS.viewport ? method : FALSE); + } + + // Check if the target is an SVG element + else if(PLUGINS.svg && target && target[0].ownerSVGElement) { + pluginCalculations = PLUGINS.svg(this, target, at, PLUGINS.viewport ? method : FALSE); + } + + // Otherwise use regular jQuery methods + else { + targetWidth = target.outerWidth(FALSE); + targetHeight = target.outerHeight(FALSE); + position = target.offset(); + } + + // Parse returned plugin values into proper variables + if(pluginCalculations) { + targetWidth = pluginCalculations.width; + targetHeight = pluginCalculations.height; + offset = pluginCalculations.offset; + position = pluginCalculations.position; + } + + // Adjust position to take into account offset parents + position = this.reposition.offset(target, position, container); + + // Adjust for position.fixed tooltips (and also iOS scroll bug in v3.2-4.0 & v4.3-4.3.2) + if((BROWSER.iOS > 3.1 && BROWSER.iOS < 4.1) || + (BROWSER.iOS >= 4.3 && BROWSER.iOS < 4.33) || + (!BROWSER.iOS && type === 'fixed') + ){ + position.left -= win.scrollLeft(); + position.top -= win.scrollTop(); + } + + // Adjust position relative to target + if(!pluginCalculations || (pluginCalculations && pluginCalculations.adjustable !== FALSE)) { + position.left += at.x === RIGHT ? targetWidth : at.x === CENTER ? targetWidth / 2 : 0; + position.top += at.y === BOTTOM ? targetHeight : at.y === CENTER ? targetHeight / 2 : 0; + } + } + + // Adjust position relative to tooltip + position.left += adjust.x + (my.x === RIGHT ? -tooltipWidth : my.x === CENTER ? -tooltipWidth / 2 : 0); + position.top += adjust.y + (my.y === BOTTOM ? -tooltipHeight : my.y === CENTER ? -tooltipHeight / 2 : 0); + + // Use viewport adjustment plugin if enabled + if(PLUGINS.viewport) { + adjusted = position.adjusted = PLUGINS.viewport( + this, position, posOptions, targetWidth, targetHeight, tooltipWidth, tooltipHeight + ); + + // Apply offsets supplied by positioning plugin (if used) + if(offset && adjusted.left) { position.left += offset.left; } + if(offset && adjusted.top) { position.top += offset.top; } + + // Apply any new 'my' position + if(adjusted.my) { this.position.my = adjusted.my; } + } + + // Viewport adjustment is disabled, set values to zero + else { position.adjusted = { left: 0, top: 0 }; } + + // Set tooltip position class if it's changed + if(cache.posClass !== (newClass = this._createPosClass(this.position.my))) { + tooltip.removeClass(cache.posClass).addClass( (cache.posClass = newClass) ); + } + + // tooltipmove event + if(!this._trigger('move', [position, viewport.elem || viewport], event)) { return this; } + delete position.adjusted; + + // If effect is disabled, target it mouse, no animation is defined or positioning gives NaN out, set CSS directly + if(effect === FALSE || !visible || isNaN(position.left) || isNaN(position.top) || target === 'mouse' || !$.isFunction(posOptions.effect)) { + tooltip.css(position); + } + + // Use custom function if provided + else if($.isFunction(posOptions.effect)) { + posOptions.effect.call(tooltip, this, $.extend({}, position)); + tooltip.queue(function(next) { + // Reset attributes to avoid cross-browser rendering bugs + $(this).css({ opacity: '', height: '' }); + if(BROWSER.ie) { this.style.removeAttribute('filter'); } + + next(); + }); + } + + // Set positioning flag + this.positioning = FALSE; + + return this; + }; + +// Custom (more correct for qTip!) offset calculator + PROTOTYPE.reposition.offset = function(elem, pos, container) { + if(!container[0]) { return pos; } + + var ownerDocument = $(elem[0].ownerDocument), + quirks = !!BROWSER.ie && document.compatMode !== 'CSS1Compat', + parent = container[0], + scrolled, position, parentOffset, overflow; + + function scroll(e, i) { + pos.left += i * e.scrollLeft(); + pos.top += i * e.scrollTop(); + } + + // Compensate for non-static containers offset + do { + if((position = $.css(parent, 'position')) !== 'static') { + if(position === 'fixed') { + parentOffset = parent.getBoundingClientRect(); + scroll(ownerDocument, -1); + } + else { + parentOffset = $(parent).position(); + parentOffset.left += (parseFloat($.css(parent, 'borderLeftWidth')) || 0); + parentOffset.top += (parseFloat($.css(parent, 'borderTopWidth')) || 0); + } + + pos.left -= parentOffset.left + (parseFloat($.css(parent, 'marginLeft')) || 0); + pos.top -= parentOffset.top + (parseFloat($.css(parent, 'marginTop')) || 0); + + // If this is the first parent element with an overflow of "scroll" or "auto", store it + if(!scrolled && (overflow = $.css(parent, 'overflow')) !== 'hidden' && overflow !== 'visible') { scrolled = $(parent); } + } + } + while((parent = parent.offsetParent)); + + // Compensate for containers scroll if it also has an offsetParent (or in IE quirks mode) + if(scrolled && (scrolled[0] !== ownerDocument[0] || quirks)) { + scroll(scrolled, 1); + } + + return pos; + }; + +// Corner class + var C = (CORNER = PROTOTYPE.reposition.Corner = function(corner, forceY) { + corner = ('' + corner).replace(/([A-Z])/, ' $1').replace(/middle/gi, CENTER).toLowerCase(); + this.x = (corner.match(/left|right/i) || corner.match(/center/) || ['inherit'])[0].toLowerCase(); + this.y = (corner.match(/top|bottom|center/i) || ['inherit'])[0].toLowerCase(); + this.forceY = !!forceY; + + var f = corner.charAt(0); + this.precedance = (f === 't' || f === 'b' ? Y : X); + }).prototype; + + C.invert = function(z, center) { + this[z] = this[z] === LEFT ? RIGHT : this[z] === RIGHT ? LEFT : center || this[z]; + }; + + C.string = function(join) { + var x = this.x, y = this.y; + + var result = x !== y ? + (x === 'center' || y !== 'center' && (this.precedance === Y || this.forceY) ? + [y,x] : [x,y] + ) : + [x]; + + return join !== false ? result.join(' ') : result; + }; + + C.abbrev = function() { + var result = this.string(false); + return result[0].charAt(0) + (result[1] && result[1].charAt(0) || ''); + }; + + C.clone = function() { + return new CORNER( this.string(), this.forceY ); + }; + + ; + PROTOTYPE.toggle = function(state, event) { + var cache = this.cache, + options = this.options, + tooltip = this.tooltip; + + // Try to prevent flickering when tooltip overlaps show element + if(event) { + if((/over|enter/).test(event.type) && cache.event && (/out|leave/).test(cache.event.type) && + options.show.target.add(event.target).length === options.show.target.length && + tooltip.has(event.relatedTarget).length) { + return this; + } + + // Cache event + cache.event = $.event.fix(event); + } + + // If we're currently waiting and we've just hidden... stop it + this.waiting && !state && (this.hiddenDuringWait = TRUE); + + // Render the tooltip if showing and it isn't already + if(!this.rendered) { return state ? this.render(1) : this; } + else if(this.destroyed || this.disabled) { return this; } + + var type = state ? 'show' : 'hide', + opts = this.options[type], + otherOpts = this.options[ !state ? 'show' : 'hide' ], + posOptions = this.options.position, + contentOptions = this.options.content, + width = this.tooltip.css('width'), + visible = this.tooltip.is(':visible'), + animate = state || opts.target.length === 1, + sameTarget = !event || opts.target.length < 2 || cache.target[0] === event.target, + identicalState, allow, showEvent, delay, after; + + // Detect state if valid one isn't provided + if((typeof state).search('boolean|number')) { state = !visible; } + + // Check if the tooltip is in an identical state to the new would-be state + identicalState = !tooltip.is(':animated') && visible === state && sameTarget; + + // Fire tooltip(show/hide) event and check if destroyed + allow = !identicalState ? !!this._trigger(type, [90]) : NULL; + + // Check to make sure the tooltip wasn't destroyed in the callback + if(this.destroyed) { return this; } + + // If the user didn't stop the method prematurely and we're showing the tooltip, focus it + if(allow !== FALSE && state) { this.focus(event); } + + // If the state hasn't changed or the user stopped it, return early + if(!allow || identicalState) { return this; } + + // Set ARIA hidden attribute + $.attr(tooltip[0], 'aria-hidden', !!!state); + + // Execute state specific properties + if(state) { + // Store show origin coordinates + this.mouse && (cache.origin = $.event.fix(this.mouse)); + + // Update tooltip content & title if it's a dynamic function + if($.isFunction(contentOptions.text)) { this._updateContent(contentOptions.text, FALSE); } + if($.isFunction(contentOptions.title)) { this._updateTitle(contentOptions.title, FALSE); } + + // Cache mousemove events for positioning purposes (if not already tracking) + if(!trackingBound && posOptions.target === 'mouse' && posOptions.adjust.mouse) { + $(document).bind('mousemove.'+NAMESPACE, this._storeMouse); + trackingBound = TRUE; + } + + // Update the tooltip position (set width first to prevent viewport/max-width issues) + if(!width) { tooltip.css('width', tooltip.outerWidth(FALSE)); } + this.reposition(event, arguments[2]); + if(!width) { tooltip.css('width', ''); } + + // Hide other tooltips if tooltip is solo + if(!!opts.solo) { + (typeof opts.solo === 'string' ? $(opts.solo) : $(SELECTOR, opts.solo)) + .not(tooltip).not(opts.target).qtip('hide', $.Event('tooltipsolo')); + } + } + else { + // Clear show timer if we're hiding + clearTimeout(this.timers.show); + + // Remove cached origin on hide + delete cache.origin; + + // Remove mouse tracking event if not needed (all tracking qTips are hidden) + if(trackingBound && !$(SELECTOR+'[tracking="true"]:visible', opts.solo).not(tooltip).length) { + $(document).unbind('mousemove.'+NAMESPACE); + trackingBound = FALSE; + } + + // Blur the tooltip + this.blur(event); + } + + // Define post-animation, state specific properties + after = $.proxy(function() { + if(state) { + // Prevent antialias from disappearing in IE by removing filter + if(BROWSER.ie) { tooltip[0].style.removeAttribute('filter'); } + + // Remove overflow setting to prevent tip bugs + tooltip.css('overflow', ''); + + // Autofocus elements if enabled + if('string' === typeof opts.autofocus) { + $(this.options.show.autofocus, tooltip).focus(); + } + + // If set, hide tooltip when inactive for delay period + this.options.show.target.trigger('qtip-'+this.id+'-inactive'); + } + else { + // Reset CSS states + tooltip.css({ + display: '', + visibility: '', + opacity: '', + left: '', + top: '' + }); + } + + // tooltipvisible/tooltiphidden events + this._trigger(state ? 'visible' : 'hidden'); + }, this); + + // If no effect type is supplied, use a simple toggle + if(opts.effect === FALSE || animate === FALSE) { + tooltip[ type ](); + after(); + } + + // Use custom function if provided + else if($.isFunction(opts.effect)) { + tooltip.stop(1, 1); + opts.effect.call(tooltip, this); + tooltip.queue('fx', function(n) { + after(); n(); + }); + } + + // Use basic fade function by default + else { tooltip.fadeTo(90, state ? 1 : 0, after); } + + // If inactive hide method is set, active it + if(state) { opts.target.trigger('qtip-'+this.id+'-inactive'); } + + return this; + }; + + PROTOTYPE.show = function(event) { return this.toggle(TRUE, event); }; + + PROTOTYPE.hide = function(event) { return this.toggle(FALSE, event); }; + ;PROTOTYPE.focus = function(event) { + if(!this.rendered || this.destroyed) { return this; } + + var qtips = $(SELECTOR), + tooltip = this.tooltip, + curIndex = parseInt(tooltip[0].style.zIndex, 10), + newIndex = QTIP.zindex + qtips.length, + focusedElem; + + // Only update the z-index if it has changed and tooltip is not already focused + if(!tooltip.hasClass(CLASS_FOCUS)) { + // tooltipfocus event + if(this._trigger('focus', [newIndex], event)) { + // Only update z-index's if they've changed + if(curIndex !== newIndex) { + // Reduce our z-index's and keep them properly ordered + qtips.each(function() { + if(this.style.zIndex > curIndex) { + this.style.zIndex = this.style.zIndex - 1; + } + }); + + // Fire blur event for focused tooltip + qtips.filter('.' + CLASS_FOCUS).qtip('blur', event); + } + + // Set the new z-index + tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex; + } + } + + return this; + }; + + PROTOTYPE.blur = function(event) { + if(!this.rendered || this.destroyed) { return this; } + + // Set focused status to FALSE + this.tooltip.removeClass(CLASS_FOCUS); + + // tooltipblur event + this._trigger('blur', [ this.tooltip.css('zIndex') ], event); + + return this; + }; + ;PROTOTYPE.disable = function(state) { + if(this.destroyed) { return this; } + + // If 'toggle' is passed, toggle the current state + if(state === 'toggle') { + state = !(this.rendered ? this.tooltip.hasClass(CLASS_DISABLED) : this.disabled); + } + + // Disable if no state passed + else if('boolean' !== typeof state) { + state = TRUE; + } + + if(this.rendered) { + this.tooltip.toggleClass(CLASS_DISABLED, state) + .attr('aria-disabled', state); + } + + this.disabled = !!state; + + return this; + }; + + PROTOTYPE.enable = function() { return this.disable(FALSE); }; + ;PROTOTYPE._createButton = function() + { + var self = this, + elements = this.elements, + tooltip = elements.tooltip, + button = this.options.content.button, + isString = typeof button === 'string', + close = isString ? button : 'Close tooltip'; + + if(elements.button) { elements.button.remove(); } + + // Use custom button if one was supplied by user, else use default + if(button.jquery) { + elements.button = button; + } + else { + elements.button = $('', { + 'class': 'qtip-close ' + (this.options.style.widget ? '' : NAMESPACE+'-icon'), + 'title': close, + 'aria-label': close + }) + .prepend( + $('', { + 'class': 'ui-icon ui-icon-close', + 'html': '×' + }) + ); + } + + // Create button and setup attributes + elements.button.appendTo(elements.titlebar || tooltip) + .attr('role', 'button') + .click(function(event) { + if(!tooltip.hasClass(CLASS_DISABLED)) { self.hide(event); } + return FALSE; + }); + }; + + PROTOTYPE._updateButton = function(button) + { + // Make sure tooltip is rendered and if not, return + if(!this.rendered) { return FALSE; } + + var elem = this.elements.button; + if(button) { this._createButton(); } + else { elem.remove(); } + }; + ;// Widget class creator + function createWidgetClass(cls) { + return WIDGET.concat('').join(cls ? '-'+cls+' ' : ' '); + } + +// Widget class setter method + PROTOTYPE._setWidget = function() + { + var on = this.options.style.widget, + elements = this.elements, + tooltip = elements.tooltip, + disabled = tooltip.hasClass(CLASS_DISABLED); + + tooltip.removeClass(CLASS_DISABLED); + CLASS_DISABLED = on ? 'ui-state-disabled' : 'qtip-disabled'; + tooltip.toggleClass(CLASS_DISABLED, disabled); + + tooltip.toggleClass('ui-helper-reset '+createWidgetClass(), on).toggleClass(CLASS_DEFAULT, this.options.style.def && !on); + + if(elements.content) { + elements.content.toggleClass( createWidgetClass('content'), on); + } + if(elements.titlebar) { + elements.titlebar.toggleClass( createWidgetClass('header'), on); + } + if(elements.button) { + elements.button.toggleClass(NAMESPACE+'-icon', !on); + } + }; + ;function delay(callback, duration) { + // If tooltip has displayed, start hide timer + if(duration > 0) { + return setTimeout( + $.proxy(callback, this), duration + ); + } + else{ callback.call(this); } + } + + function showMethod(event) { + if(this.tooltip.hasClass(CLASS_DISABLED)) { return; } + + // Clear hide timers + clearTimeout(this.timers.show); + clearTimeout(this.timers.hide); + + // Start show timer + this.timers.show = delay.call(this, + function() { this.toggle(TRUE, event); }, + this.options.show.delay + ); + } + + function hideMethod(event) { + if(this.tooltip.hasClass(CLASS_DISABLED) || this.destroyed) { return; } + + // Check if new target was actually the tooltip element + var relatedTarget = $(event.relatedTarget), + ontoTooltip = relatedTarget.closest(SELECTOR)[0] === this.tooltip[0], + ontoTarget = relatedTarget[0] === this.options.show.target[0]; + + // Clear timers and stop animation queue + clearTimeout(this.timers.show); + clearTimeout(this.timers.hide); + + // Prevent hiding if tooltip is fixed and event target is the tooltip. + // Or if mouse positioning is enabled and cursor momentarily overlaps + if(this !== relatedTarget[0] && + (this.options.position.target === 'mouse' && ontoTooltip) || + (this.options.hide.fixed && ( + (/mouse(out|leave|move)/).test(event.type) && (ontoTooltip || ontoTarget)) + )) + { + try { + event.preventDefault(); + event.stopImmediatePropagation(); + } catch(e) {} + + return; + } + + // If tooltip has displayed, start hide timer + this.timers.hide = delay.call(this, + function() { this.toggle(FALSE, event); }, + this.options.hide.delay, + this + ); + } + + function inactiveMethod(event) { + if(this.tooltip.hasClass(CLASS_DISABLED) || !this.options.hide.inactive) { return; } + + // Clear timer + clearTimeout(this.timers.inactive); + + this.timers.inactive = delay.call(this, + function(){ this.hide(event); }, + this.options.hide.inactive + ); + } + + function repositionMethod(event) { + if(this.rendered && this.tooltip[0].offsetWidth > 0) { this.reposition(event); } + } + +// Store mouse coordinates + PROTOTYPE._storeMouse = function(event) { + (this.mouse = $.event.fix(event)).type = 'mousemove'; + return this; + }; + +// Bind events + PROTOTYPE._bind = function(targets, events, method, suffix, context) { + if(!targets || !method || !events.length) { return; } + var ns = '.' + this._id + (suffix ? '-'+suffix : ''); + $(targets).bind( + (events.split ? events : events.join(ns + ' ')) + ns, + $.proxy(method, context || this) + ); + return this; + }; + PROTOTYPE._unbind = function(targets, suffix) { + targets && $(targets).unbind('.' + this._id + (suffix ? '-'+suffix : '')); + return this; + }; + +// Global delegation helper + function delegate(selector, events, method) { + $(document.body).delegate(selector, + (events.split ? events : events.join('.'+NAMESPACE + ' ')) + '.'+NAMESPACE, + function() { + var api = QTIP.api[ $.attr(this, ATTR_ID) ]; + api && !api.disabled && method.apply(api, arguments); + } + ); + } +// Event trigger + PROTOTYPE._trigger = function(type, args, event) { + var callback = $.Event('tooltip'+type); + callback.originalEvent = (event && $.extend({}, event)) || this.cache.event || NULL; + + this.triggering = type; + this.tooltip.trigger(callback, [this].concat(args || [])); + this.triggering = FALSE; + + return !callback.isDefaultPrevented(); + }; + + PROTOTYPE._bindEvents = function(showEvents, hideEvents, showTargets, hideTargets, showMethod, hideMethod) { + // Get tasrgets that lye within both + var similarTargets = showTargets.filter( hideTargets ).add( hideTargets.filter(showTargets) ), + toggleEvents = []; + + // If hide and show targets are the same... + if(similarTargets.length) { + + // Filter identical show/hide events + $.each(hideEvents, function(i, type) { + var showIndex = $.inArray(type, showEvents); + + // Both events are identical, remove from both hide and show events + // and append to toggleEvents + showIndex > -1 && toggleEvents.push( showEvents.splice( showIndex, 1 )[0] ); + }); + + // Toggle events are special case of identical show/hide events, which happen in sequence + if(toggleEvents.length) { + // Bind toggle events to the similar targets + this._bind(similarTargets, toggleEvents, function(event) { + var state = this.rendered ? this.tooltip[0].offsetWidth > 0 : false; + (state ? hideMethod : showMethod).call(this, event); + }); + + // Remove the similar targets from the regular show/hide bindings + showTargets = showTargets.not(similarTargets); + hideTargets = hideTargets.not(similarTargets); + } + } + + // Apply show/hide/toggle events + this._bind(showTargets, showEvents, showMethod); + this._bind(hideTargets, hideEvents, hideMethod); + }; + + PROTOTYPE._assignInitialEvents = function(event) { + var options = this.options, + showTarget = options.show.target, + hideTarget = options.hide.target, + showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [], + hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : []; + + // Catch remove/removeqtip events on target element to destroy redundant tooltips + this._bind(this.elements.target, ['remove', 'removeqtip'], function(event) { + this.destroy(true); + }, 'destroy'); + + /* + * Make sure hoverIntent functions properly by using mouseleave as a hide event if + * mouseenter/mouseout is used for show.event, even if it isn't in the users options. + */ + if(/mouse(over|enter)/i.test(options.show.event) && !/mouse(out|leave)/i.test(options.hide.event)) { + hideEvents.push('mouseleave'); + } + + /* + * Also make sure initial mouse targetting works correctly by caching mousemove coords + * on show targets before the tooltip has rendered. Also set onTarget when triggered to + * keep mouse tracking working. + */ + this._bind(showTarget, 'mousemove', function(event) { + this._storeMouse(event); + this.cache.onTarget = TRUE; + }); + + // Define hoverIntent function + function hoverIntent(event) { + // Only continue if tooltip isn't disabled + if(this.disabled || this.destroyed) { return FALSE; } + + // Cache the event data + this.cache.event = event && $.event.fix(event); + this.cache.target = event && $(event.target); + + // Start the event sequence + clearTimeout(this.timers.show); + this.timers.show = delay.call(this, + function() { this.render(typeof event === 'object' || options.show.ready); }, + options.prerender ? 0 : options.show.delay + ); + } + + // Filter and bind events + this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, hoverIntent, function() { + if(!this.timers) { return FALSE; } + clearTimeout(this.timers.show); + }); + + // Prerendering is enabled, create tooltip now + if(options.show.ready || options.prerender) { hoverIntent.call(this, event); } + }; + +// Event assignment method + PROTOTYPE._assignEvents = function() { + var self = this, + options = this.options, + posOptions = options.position, + + tooltip = this.tooltip, + showTarget = options.show.target, + hideTarget = options.hide.target, + containerTarget = posOptions.container, + viewportTarget = posOptions.viewport, + documentTarget = $(document), + bodyTarget = $(document.body), + windowTarget = $(window), + + showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [], + hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : []; + + + // Assign passed event callbacks + $.each(options.events, function(name, callback) { + self._bind(tooltip, name === 'toggle' ? ['tooltipshow','tooltiphide'] : ['tooltip'+name], callback, null, tooltip); + }); + + // Hide tooltips when leaving current window/frame (but not select/option elements) + if(/mouse(out|leave)/i.test(options.hide.event) && options.hide.leave === 'window') { + this._bind(documentTarget, ['mouseout', 'blur'], function(event) { + if(!/select|option/.test(event.target.nodeName) && !event.relatedTarget) { + this.hide(event); + } + }); + } + + // Enable hide.fixed by adding appropriate class + if(options.hide.fixed) { + hideTarget = hideTarget.add( tooltip.addClass(CLASS_FIXED) ); + } + + /* + * Make sure hoverIntent functions properly by using mouseleave to clear show timer if + * mouseenter/mouseout is used for show.event, even if it isn't in the users options. + */ + else if(/mouse(over|enter)/i.test(options.show.event)) { + this._bind(hideTarget, 'mouseleave', function() { + clearTimeout(this.timers.show); + }); + } + + // Hide tooltip on document mousedown if unfocus events are enabled + if(('' + options.hide.event).indexOf('unfocus') > -1) { + this._bind(containerTarget.closest('html'), ['mousedown', 'touchstart'], function(event) { + var elem = $(event.target), + enabled = this.rendered && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0, + isAncestor = elem.parents(SELECTOR).filter(this.tooltip[0]).length > 0; + + if(elem[0] !== this.target[0] && elem[0] !== this.tooltip[0] && !isAncestor && + !this.target.has(elem[0]).length && enabled + ) { + this.hide(event); + } + }); + } + + // Check if the tooltip hides when inactive + if('number' === typeof options.hide.inactive) { + // Bind inactive method to show target(s) as a custom event + this._bind(showTarget, 'qtip-'+this.id+'-inactive', inactiveMethod, 'inactive'); + + // Define events which reset the 'inactive' event handler + this._bind(hideTarget.add(tooltip), QTIP.inactiveEvents, inactiveMethod); + } + + // Filter and bind events + this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, showMethod, hideMethod); + + // Mouse movement bindings + this._bind(showTarget.add(tooltip), 'mousemove', function(event) { + // Check if the tooltip hides when mouse is moved a certain distance + if('number' === typeof options.hide.distance) { + var origin = this.cache.origin || {}, + limit = this.options.hide.distance, + abs = Math.abs; + + // Check if the movement has gone beyond the limit, and hide it if so + if(abs(event.pageX - origin.pageX) >= limit || abs(event.pageY - origin.pageY) >= limit) { + this.hide(event); + } + } + + // Cache mousemove coords on show targets + this._storeMouse(event); + }); + + // Mouse positioning events + if(posOptions.target === 'mouse') { + // If mouse adjustment is on... + if(posOptions.adjust.mouse) { + // Apply a mouseleave event so we don't get problems with overlapping + if(options.hide.event) { + // Track if we're on the target or not + this._bind(showTarget, ['mouseenter', 'mouseleave'], function(event) { + if(!this.cache) {return FALSE; } + this.cache.onTarget = event.type === 'mouseenter'; + }); + } + + // Update tooltip position on mousemove + this._bind(documentTarget, 'mousemove', function(event) { + // Update the tooltip position only if the tooltip is visible and adjustment is enabled + if(this.rendered && this.cache.onTarget && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0) { + this.reposition(event); + } + }); + } + } + + // Adjust positions of the tooltip on window resize if enabled + if(posOptions.adjust.resize || viewportTarget.length) { + this._bind( $.event.special.resize ? viewportTarget : windowTarget, 'resize', repositionMethod ); + } + + // Adjust tooltip position on scroll of the window or viewport element if present + if(posOptions.adjust.scroll) { + this._bind( windowTarget.add(posOptions.container), 'scroll', repositionMethod ); + } + }; + +// Un-assignment method + PROTOTYPE._unassignEvents = function() { + var options = this.options, + showTargets = options.show.target, + hideTargets = options.hide.target, + targets = $.grep([ + this.elements.target[0], + this.rendered && this.tooltip[0], + options.position.container[0], + options.position.viewport[0], + options.position.container.closest('html')[0], // unfocus + window, + document + ], function(i) { + return typeof i === 'object'; + }); + + // Add show and hide targets if they're valid + if(showTargets && showTargets.toArray) { + targets = targets.concat(showTargets.toArray()); + } + if(hideTargets && hideTargets.toArray) { + targets = targets.concat(hideTargets.toArray()); + } + + // Unbind the events + this._unbind(targets) + ._unbind(targets, 'destroy') + ._unbind(targets, 'inactive'); + }; + +// Apply common event handlers using delegate (avoids excessive .bind calls!) + $(function() { + delegate(SELECTOR, ['mouseenter', 'mouseleave'], function(event) { + var state = event.type === 'mouseenter', + tooltip = $(event.currentTarget), + target = $(event.relatedTarget || event.target), + options = this.options; + + // On mouseenter... + if(state) { + // Focus the tooltip on mouseenter (z-index stacking) + this.focus(event); + + // Clear hide timer on tooltip hover to prevent it from closing + tooltip.hasClass(CLASS_FIXED) && !tooltip.hasClass(CLASS_DISABLED) && clearTimeout(this.timers.hide); + } + + // On mouseleave... + else { + // When mouse tracking is enabled, hide when we leave the tooltip and not onto the show target (if a hide event is set) + if(options.position.target === 'mouse' && options.position.adjust.mouse && + options.hide.event && options.show.target && !target.closest(options.show.target[0]).length) { + this.hide(event); + } + } + + // Add hover class + tooltip.toggleClass(CLASS_HOVER, state); + }); + + // Define events which reset the 'inactive' event handler + delegate('['+ATTR_ID+']', INACTIVE_EVENTS, inactiveMethod); + }); + ;// Initialization method + function init(elem, id, opts) { + var obj, posOptions, attr, config, title, + + // Setup element references + docBody = $(document.body), + + // Use document body instead of document element if needed + newTarget = elem[0] === document ? docBody : elem, + + // Grab metadata from element if plugin is present + metadata = (elem.metadata) ? elem.metadata(opts.metadata) : NULL, + + // If metadata type if HTML5, grab 'name' from the object instead, or use the regular data object otherwise + metadata5 = opts.metadata.type === 'html5' && metadata ? metadata[opts.metadata.name] : NULL, + + // Grab data from metadata.name (or data-qtipopts as fallback) using .data() method, + html5 = elem.data(opts.metadata.name || 'qtipopts'); + + // If we don't get an object returned attempt to parse it manualyl without parseJSON + try { html5 = typeof html5 === 'string' ? $.parseJSON(html5) : html5; } catch(e) {} + + // Merge in and sanitize metadata + config = $.extend(TRUE, {}, QTIP.defaults, opts, + typeof html5 === 'object' ? sanitizeOptions(html5) : NULL, + sanitizeOptions(metadata5 || metadata)); + + // Re-grab our positioning options now we've merged our metadata and set id to passed value + posOptions = config.position; + config.id = id; + + // Setup missing content if none is detected + if('boolean' === typeof config.content.text) { + attr = elem.attr(config.content.attr); + + // Grab from supplied attribute if available + if(config.content.attr !== FALSE && attr) { config.content.text = attr; } + + // No valid content was found, abort render + else { return FALSE; } + } + + // Setup target options + if(!posOptions.container.length) { posOptions.container = docBody; } + if(posOptions.target === FALSE) { posOptions.target = newTarget; } + if(config.show.target === FALSE) { config.show.target = newTarget; } + if(config.show.solo === TRUE) { config.show.solo = posOptions.container.closest('body'); } + if(config.hide.target === FALSE) { config.hide.target = newTarget; } + if(config.position.viewport === TRUE) { config.position.viewport = posOptions.container; } + + // Ensure we only use a single container + posOptions.container = posOptions.container.eq(0); + + // Convert position corner values into x and y strings + posOptions.at = new CORNER(posOptions.at, TRUE); + posOptions.my = new CORNER(posOptions.my); + + // Destroy previous tooltip if overwrite is enabled, or skip element if not + if(elem.data(NAMESPACE)) { + if(config.overwrite) { + elem.qtip('destroy', true); + } + else if(config.overwrite === FALSE) { + return FALSE; + } + } + + // Add has-qtip attribute + elem.attr(ATTR_HAS, id); + + // Remove title attribute and store it if present + if(config.suppress && (title = elem.attr('title'))) { + // Final attr call fixes event delegatiom and IE default tooltip showing problem + elem.removeAttr('title').attr(oldtitle, title).attr('title', ''); + } + + // Initialize the tooltip and add API reference + obj = new QTip(elem, config, id, !!attr); + elem.data(NAMESPACE, obj); + + return obj; + } + +// jQuery $.fn extension method + QTIP = $.fn.qtip = function(options, notation, newValue) + { + var command = ('' + options).toLowerCase(), // Parse command + returned = NULL, + args = $.makeArray(arguments).slice(1), + event = args[args.length - 1], + opts = this[0] ? $.data(this[0], NAMESPACE) : NULL; + + // Check for API request + if((!arguments.length && opts) || command === 'api') { + return opts; + } + + // Execute API command if present + else if('string' === typeof options) { + this.each(function() { + var api = $.data(this, NAMESPACE); + if(!api) { return TRUE; } + + // Cache the event if possible + if(event && event.timeStamp) { api.cache.event = event; } + + // Check for specific API commands + if(notation && (command === 'option' || command === 'options')) { + if(newValue !== undefined || $.isPlainObject(notation)) { + api.set(notation, newValue); + } + else { + returned = api.get(notation); + return FALSE; + } + } + + // Execute API command + else if(api[command]) { + api[command].apply(api, args); + } + }); + + return returned !== NULL ? returned : this; + } + + // No API commands. validate provided options and setup qTips + else if('object' === typeof options || !arguments.length) { + // Sanitize options first + opts = sanitizeOptions($.extend(TRUE, {}, options)); + + return this.each(function(i) { + var api, id; + + // Find next available ID, or use custom ID if provided + id = $.isArray(opts.id) ? opts.id[i] : opts.id; + id = !id || id === FALSE || id.length < 1 || QTIP.api[id] ? QTIP.nextid++ : id; + + // Initialize the qTip and re-grab newly sanitized options + api = init($(this), id, opts); + if(api === FALSE) { return TRUE; } + else { QTIP.api[id] = api; } + + // Initialize plugins + $.each(PLUGINS, function() { + if(this.initialize === 'initialize') { this(api); } + }); + + // Assign initial pre-render events + api._assignInitialEvents(event); + }); + } + }; + +// Expose class + $.qtip = QTip; + +// Populated in render method + QTIP.api = {}; + ;$.each({ + /* Allow other plugins to successfully retrieve the title of an element with a qTip applied */ + attr: function(attr, val) { + if(this.length) { + var self = this[0], + title = 'title', + api = $.data(self, 'qtip'); + + if(attr === title && api && 'object' === typeof api && api.options.suppress) { + if(arguments.length < 2) { + return $.attr(self, oldtitle); + } + + // If qTip is rendered and title was originally used as content, update it + if(api && api.options.content.attr === title && api.cache.attr) { + api.set('content.text', val); + } + + // Use the regular attr method to set, then cache the result + return this.attr(oldtitle, val); + } + } + + return $.fn['attr'+replaceSuffix].apply(this, arguments); + }, + + /* Allow clone to correctly retrieve cached title attributes */ + clone: function(keepData) { + var titles = $([]), title = 'title', + + // Clone our element using the real clone method + elems = $.fn['clone'+replaceSuffix].apply(this, arguments); + + // Grab all elements with an oldtitle set, and change it to regular title attribute, if keepData is false + if(!keepData) { + elems.filter('['+oldtitle+']').attr('title', function() { + return $.attr(this, oldtitle); + }) + .removeAttr(oldtitle); + } + + return elems; + } + }, function(name, func) { + if(!func || $.fn[name+replaceSuffix]) { return TRUE; } + + var old = $.fn[name+replaceSuffix] = $.fn[name]; + $.fn[name] = function() { + return func.apply(this, arguments) || old.apply(this, arguments); + }; + }); + + /* Fire off 'removeqtip' handler in $.cleanData if jQuery UI not present (it already does similar). + * This snippet is taken directly from jQuery UI source code found here: + * http://code.jquery.com/ui/jquery-ui-git.js + */ + if(!$.ui) { + $['cleanData'+replaceSuffix] = $.cleanData; + $.cleanData = function( elems ) { + for(var i = 0, elem; (elem = $( elems[i] )).length; i++) { + if(elem.attr(ATTR_HAS)) { + try { elem.triggerHandler('removeqtip'); } + catch( e ) {} + } + } + $['cleanData'+replaceSuffix].apply(this, arguments); + }; + } + ;// qTip version + QTIP.version = '2.2.1'; + +// Base ID for all qTips + QTIP.nextid = 0; + +// Inactive events array + QTIP.inactiveEvents = INACTIVE_EVENTS; + +// Base z-index for all qTips + QTIP.zindex = 15000; + +// Define configuration defaults + QTIP.defaults = { + prerender: FALSE, + id: FALSE, + overwrite: TRUE, + suppress: TRUE, + content: { + text: TRUE, + attr: 'title', + title: FALSE, + button: FALSE + }, + position: { + my: 'top left', + at: 'bottom right', + target: FALSE, + container: FALSE, + viewport: FALSE, + adjust: { + x: 0, y: 0, + mouse: TRUE, + scroll: TRUE, + resize: TRUE, + method: 'flipinvert flipinvert' + }, + effect: function(api, pos, viewport) { + $(this).animate(pos, { + duration: 200, + queue: FALSE + }); + } + }, + show: { + target: FALSE, + event: 'mouseenter', + effect: TRUE, + delay: 90, + solo: FALSE, + ready: FALSE, + autofocus: FALSE + }, + hide: { + target: FALSE, + event: 'mouseleave', + effect: TRUE, + delay: 0, + fixed: FALSE, + inactive: FALSE, + leave: 'window', + distance: FALSE + }, + style: { + classes: '', + widget: FALSE, + width: FALSE, + height: FALSE, + def: TRUE + }, + events: { + render: NULL, + move: NULL, + show: NULL, + hide: NULL, + toggle: NULL, + visible: NULL, + hidden: NULL, + focus: NULL, + blur: NULL + } + }; + ;var TIP, + +// .bind()/.on() namespace + TIPNS = '.qtip-tip', + +// Common CSS strings + MARGIN = 'margin', + BORDER = 'border', + COLOR = 'color', + BG_COLOR = 'background-color', + TRANSPARENT = 'transparent', + IMPORTANT = ' !important', + +// Check if the browser supports elements + HASCANVAS = !!document.createElement('canvas').getContext, + +// Invalid colour values used in parseColours() + INVALID = /rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i; + +// Camel-case method, taken from jQuery source +// http://code.jquery.com/jquery-1.8.0.js + function camel(s) { return s.charAt(0).toUpperCase() + s.slice(1); } + + /* + * Modified from Modernizr's testPropsAll() + * http://modernizr.com/downloads/modernizr-latest.js + */ + var cssProps = {}, cssPrefixes = ["Webkit", "O", "Moz", "ms"]; + function vendorCss(elem, prop) { + var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), + props = (prop + ' ' + cssPrefixes.join(ucProp + ' ') + ucProp).split(' '), + cur, val, i = 0; + + // If the property has already been mapped... + if(cssProps[prop]) { return elem.css(cssProps[prop]); } + + while((cur = props[i++])) { + if((val = elem.css(cur)) !== undefined) { + return cssProps[prop] = cur, val; + } + } + } + +// Parse a given elements CSS property into an int + function intCss(elem, prop) { + return Math.ceil(parseFloat(vendorCss(elem, prop))); + } + + +// VML creation (for IE only) + if(!HASCANVAS) { + var createVML = function(tag, props, style) { + return ''; + }; + } + +// Canvas only definitions + else { + var PIXEL_RATIO = window.devicePixelRatio || 1, + BACKING_STORE_RATIO = (function() { + var context = document.createElement('canvas').getContext('2d'); + return context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || + context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || 1; + }()), + SCALE = PIXEL_RATIO / BACKING_STORE_RATIO; + } + + + function Tip(qtip, options) { + this._ns = 'tip'; + this.options = options; + this.offset = options.offset; + this.size = [ options.width, options.height ]; + + // Initialize + this.init( (this.qtip = qtip) ); + } + + $.extend(Tip.prototype, { + init: function(qtip) { + var context, tip; + + // Create tip element and prepend to the tooltip + tip = this.element = qtip.elements.tip = $('
', { 'class': NAMESPACE+'-tip' }).prependTo(qtip.tooltip); + + // Create tip drawing element(s) + if(HASCANVAS) { + // save() as soon as we create the canvas element so FF2 doesn't bork on our first restore()! + context = $('').appendTo(this.element)[0].getContext('2d'); + + // Setup constant parameters + context.lineJoin = 'miter'; + context.miterLimit = 100000; + context.save(); + } + else { + context = createVML('shape', 'coordorigin="0,0"', 'position:absolute;'); + this.element.html(context + context); + + // Prevent mousing down on the tip since it causes problems with .live() handling in IE due to VML + qtip._bind( $('*', tip).add(tip), ['click', 'mousedown'], function(event) { event.stopPropagation(); }, this._ns); + } + + // Bind update events + qtip._bind(qtip.tooltip, 'tooltipmove', this.reposition, this._ns, this); + + // Create it + this.create(); + }, + + _swapDimensions: function() { + this.size[0] = this.options.height; + this.size[1] = this.options.width; + }, + _resetDimensions: function() { + this.size[0] = this.options.width; + this.size[1] = this.options.height; + }, + + _useTitle: function(corner) { + var titlebar = this.qtip.elements.titlebar; + return titlebar && ( + corner.y === TOP || (corner.y === CENTER && this.element.position().top + (this.size[1] / 2) + this.options.offset < titlebar.outerHeight(TRUE)) + ); + }, + + _parseCorner: function(corner) { + var my = this.qtip.options.position.my; + + // Detect corner and mimic properties + if(corner === FALSE || my === FALSE) { + corner = FALSE; + } + else if(corner === TRUE) { + corner = new CORNER( my.string() ); + } + else if(!corner.string) { + corner = new CORNER(corner); + corner.fixed = TRUE; + } + + return corner; + }, + + _parseWidth: function(corner, side, use) { + var elements = this.qtip.elements, + prop = BORDER + camel(side) + 'Width'; + + return (use ? intCss(use, prop) : ( + intCss(elements.content, prop) || + intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) || + intCss(elements.tooltip, prop) + )) || 0; + }, + + _parseRadius: function(corner) { + var elements = this.qtip.elements, + prop = BORDER + camel(corner.y) + camel(corner.x) + 'Radius'; + + return BROWSER.ie < 9 ? 0 : + intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) || + intCss(elements.tooltip, prop) || 0; + }, + + _invalidColour: function(elem, prop, compare) { + var val = elem.css(prop); + return !val || (compare && val === elem.css(compare)) || INVALID.test(val) ? FALSE : val; + }, + + _parseColours: function(corner) { + var elements = this.qtip.elements, + tip = this.element.css('cssText', ''), + borderSide = BORDER + camel(corner[ corner.precedance ]) + camel(COLOR), + colorElem = this._useTitle(corner) && elements.titlebar || elements.content, + css = this._invalidColour, color = []; + + // Attempt to detect the background colour from various elements, left-to-right precedance + color[0] = css(tip, BG_COLOR) || css(colorElem, BG_COLOR) || css(elements.content, BG_COLOR) || + css(elements.tooltip, BG_COLOR) || tip.css(BG_COLOR); + + // Attempt to detect the correct border side colour from various elements, left-to-right precedance + color[1] = css(tip, borderSide, COLOR) || css(colorElem, borderSide, COLOR) || + css(elements.content, borderSide, COLOR) || css(elements.tooltip, borderSide, COLOR) || elements.tooltip.css(borderSide); + + // Reset background and border colours + $('*', tip).add(tip).css('cssText', BG_COLOR+':'+TRANSPARENT+IMPORTANT+';'+BORDER+':0'+IMPORTANT+';'); + + return color; + }, + + _calculateSize: function(corner) { + var y = corner.precedance === Y, + width = this.options['width'], + height = this.options['height'], + isCenter = corner.abbrev() === 'c', + base = (y ? width: height) * (isCenter ? 0.5 : 1), + pow = Math.pow, + round = Math.round, + bigHyp, ratio, result, + + smallHyp = Math.sqrt( pow(base, 2) + pow(height, 2) ), + hyp = [ (this.border / base) * smallHyp, (this.border / height) * smallHyp ]; + + hyp[2] = Math.sqrt( pow(hyp[0], 2) - pow(this.border, 2) ); + hyp[3] = Math.sqrt( pow(hyp[1], 2) - pow(this.border, 2) ); + + bigHyp = smallHyp + hyp[2] + hyp[3] + (isCenter ? 0 : hyp[0]); + ratio = bigHyp / smallHyp; + + result = [ round(ratio * width), round(ratio * height) ]; + return y ? result : result.reverse(); + }, + + // Tip coordinates calculator + _calculateTip: function(corner, size, scale) { + scale = scale || 1; + size = size || this.size; + + var width = size[0] * scale, + height = size[1] * scale, + width2 = Math.ceil(width / 2), height2 = Math.ceil(height / 2), + + // Define tip coordinates in terms of height and width values + tips = { + br: [0,0, width,height, width,0], + bl: [0,0, width,0, 0,height], + tr: [0,height, width,0, width,height], + tl: [0,0, 0,height, width,height], + tc: [0,height, width2,0, width,height], + bc: [0,0, width,0, width2,height], + rc: [0,0, width,height2, 0,height], + lc: [width,0, width,height, 0,height2] + }; + + // Set common side shapes + tips.lt = tips.br; tips.rt = tips.bl; + tips.lb = tips.tr; tips.rb = tips.tl; + + return tips[ corner.abbrev() ]; + }, + + // Tip coordinates drawer (canvas) + _drawCoords: function(context, coords) { + context.beginPath(); + context.moveTo(coords[0], coords[1]); + context.lineTo(coords[2], coords[3]); + context.lineTo(coords[4], coords[5]); + context.closePath(); + }, + + create: function() { + // Determine tip corner + var c = this.corner = (HASCANVAS || BROWSER.ie) && this._parseCorner(this.options.corner); + + // If we have a tip corner... + if( (this.enabled = !!this.corner && this.corner.abbrev() !== 'c') ) { + // Cache it + this.qtip.cache.corner = c.clone(); + + // Create it + this.update(); + } + + // Toggle tip element + this.element.toggle(this.enabled); + + return this.corner; + }, + + update: function(corner, position) { + if(!this.enabled) { return this; } + + var elements = this.qtip.elements, + tip = this.element, + inner = tip.children(), + options = this.options, + curSize = this.size, + mimic = options.mimic, + round = Math.round, + color, precedance, context, + coords, bigCoords, translate, newSize, border, BACKING_STORE_RATIO; + + // Re-determine tip if not already set + if(!corner) { corner = this.qtip.cache.corner || this.corner; } + + // Use corner property if we detect an invalid mimic value + if(mimic === FALSE) { mimic = corner; } + + // Otherwise inherit mimic properties from the corner object as necessary + else { + mimic = new CORNER(mimic); + mimic.precedance = corner.precedance; + + if(mimic.x === 'inherit') { mimic.x = corner.x; } + else if(mimic.y === 'inherit') { mimic.y = corner.y; } + else if(mimic.x === mimic.y) { + mimic[ corner.precedance ] = corner[ corner.precedance ]; + } + } + precedance = mimic.precedance; + + // Ensure the tip width.height are relative to the tip position + if(corner.precedance === X) { this._swapDimensions(); } + else { this._resetDimensions(); } + + // Update our colours + color = this.color = this._parseColours(corner); + + // Detect border width, taking into account colours + if(color[1] !== TRANSPARENT) { + // Grab border width + border = this.border = this._parseWidth(corner, corner[corner.precedance]); + + // If border width isn't zero, use border color as fill if it's not invalid (1.0 style tips) + if(options.border && border < 1 && !INVALID.test(color[1])) { color[0] = color[1]; } + + // Set border width (use detected border width if options.border is true) + this.border = border = options.border !== TRUE ? options.border : border; + } + + // Border colour was invalid, set border to zero + else { this.border = border = 0; } + + // Determine tip size + newSize = this.size = this._calculateSize(corner); + tip.css({ + width: newSize[0], + height: newSize[1], + lineHeight: newSize[1]+'px' + }); + + // Calculate tip translation + if(corner.precedance === Y) { + translate = [ + round(mimic.x === LEFT ? border : mimic.x === RIGHT ? newSize[0] - curSize[0] - border : (newSize[0] - curSize[0]) / 2), + round(mimic.y === TOP ? newSize[1] - curSize[1] : 0) + ]; + } + else { + translate = [ + round(mimic.x === LEFT ? newSize[0] - curSize[0] : 0), + round(mimic.y === TOP ? border : mimic.y === BOTTOM ? newSize[1] - curSize[1] - border : (newSize[1] - curSize[1]) / 2) + ]; + } + + // Canvas drawing implementation + if(HASCANVAS) { + // Grab canvas context and clear/save it + context = inner[0].getContext('2d'); + context.restore(); context.save(); + context.clearRect(0,0,6000,6000); + + // Calculate coordinates + coords = this._calculateTip(mimic, curSize, SCALE); + bigCoords = this._calculateTip(mimic, this.size, SCALE); + + // Set the canvas size using calculated size + inner.attr(WIDTH, newSize[0] * SCALE).attr(HEIGHT, newSize[1] * SCALE); + inner.css(WIDTH, newSize[0]).css(HEIGHT, newSize[1]); + + // Draw the outer-stroke tip + this._drawCoords(context, bigCoords); + context.fillStyle = color[1]; + context.fill(); + + // Draw the actual tip + context.translate(translate[0] * SCALE, translate[1] * SCALE); + this._drawCoords(context, coords); + context.fillStyle = color[0]; + context.fill(); + } + + // VML (IE Proprietary implementation) + else { + // Calculate coordinates + coords = this._calculateTip(mimic); + + // Setup coordinates string + coords = 'm' + coords[0] + ',' + coords[1] + ' l' + coords[2] + + ',' + coords[3] + ' ' + coords[4] + ',' + coords[5] + ' xe'; + + // Setup VML-specific offset for pixel-perfection + translate[2] = border && /^(r|b)/i.test(corner.string()) ? + BROWSER.ie === 8 ? 2 : 1 : 0; + + // Set initial CSS + inner.css({ + coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border), + antialias: ''+(mimic.string().indexOf(CENTER) > -1), + left: translate[0] - (translate[2] * Number(precedance === X)), + top: translate[1] - (translate[2] * Number(precedance === Y)), + width: newSize[0] + border, + height: newSize[1] + border + }) + .each(function(i) { + var $this = $(this); + + // Set shape specific attributes + $this[ $this.prop ? 'prop' : 'attr' ]({ + coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border), + path: coords, + fillcolor: color[0], + filled: !!i, + stroked: !i + }) + .toggle(!!(border || i)); + + // Check if border is enabled and add stroke element + !i && $this.html( createVML( + 'stroke', 'weight="'+(border*2)+'px" color="'+color[1]+'" miterlimit="1000" joinstyle="miter"' + ) ); + }); + } + + // Opera bug #357 - Incorrect tip position + // https://github.com/Craga89/qTip2/issues/367 + window.opera && setTimeout(function() { + elements.tip.css({ + display: 'inline-block', + visibility: 'visible' + }); + }, 1); + + // Position if needed + if(position !== FALSE) { this.calculate(corner, newSize); } + }, + + calculate: function(corner, size) { + if(!this.enabled) { return FALSE; } + + var self = this, + elements = this.qtip.elements, + tip = this.element, + userOffset = this.options.offset, + isWidget = elements.tooltip.hasClass('ui-widget'), + position = { }, + precedance, corners; + + // Inherit corner if not provided + corner = corner || this.corner; + precedance = corner.precedance; + + // Determine which tip dimension to use for adjustment + size = size || this._calculateSize(corner); + + // Setup corners and offset array + corners = [ corner.x, corner.y ]; + if(precedance === X) { corners.reverse(); } + + // Calculate tip position + $.each(corners, function(i, side) { + var b, bc, br; + + if(side === CENTER) { + b = precedance === Y ? LEFT : TOP; + position[ b ] = '50%'; + position[MARGIN+'-' + b] = -Math.round(size[ precedance === Y ? 0 : 1 ] / 2) + userOffset; + } + else { + b = self._parseWidth(corner, side, elements.tooltip); + bc = self._parseWidth(corner, side, elements.content); + br = self._parseRadius(corner); + + position[ side ] = Math.max(-self.border, i ? bc : (userOffset + (br > b ? br : -b))); + } + }); + + // Adjust for tip size + position[ corner[precedance] ] -= size[ precedance === X ? 0 : 1 ]; + + // Set and return new position + tip.css({ margin: '', top: '', bottom: '', left: '', right: '' }).css(position); + return position; + }, + + reposition: function(event, api, pos, viewport) { + if(!this.enabled) { return; } + + var cache = api.cache, + newCorner = this.corner.clone(), + adjust = pos.adjusted, + method = api.options.position.adjust.method.split(' '), + horizontal = method[0], + vertical = method[1] || method[0], + shift = { left: FALSE, top: FALSE, x: 0, y: 0 }, + offset, css = {}, props; + + function shiftflip(direction, precedance, popposite, side, opposite) { + // Horizontal - Shift or flip method + if(direction === SHIFT && newCorner.precedance === precedance && adjust[side] && newCorner[popposite] !== CENTER) { + newCorner.precedance = newCorner.precedance === X ? Y : X; + } + else if(direction !== SHIFT && adjust[side]){ + newCorner[precedance] = newCorner[precedance] === CENTER ? + (adjust[side] > 0 ? side : opposite) : (newCorner[precedance] === side ? opposite : side); + } + } + + function shiftonly(xy, side, opposite) { + if(newCorner[xy] === CENTER) { + css[MARGIN+'-'+side] = shift[xy] = offset[MARGIN+'-'+side] - adjust[side]; + } + else { + props = offset[opposite] !== undefined ? + [ adjust[side], -offset[side] ] : [ -adjust[side], offset[side] ]; + + if( (shift[xy] = Math.max(props[0], props[1])) > props[0] ) { + pos[side] -= adjust[side]; + shift[side] = FALSE; + } + + css[ offset[opposite] !== undefined ? opposite : side ] = shift[xy]; + } + } + + // If our tip position isn't fixed e.g. doesn't adjust with viewport... + if(this.corner.fixed !== TRUE) { + // Perform shift/flip adjustments + shiftflip(horizontal, X, Y, LEFT, RIGHT); + shiftflip(vertical, Y, X, TOP, BOTTOM); + + // Update and redraw the tip if needed (check cached details of last drawn tip) + if(newCorner.string() !== cache.corner.string() || cache.cornerTop !== adjust.top || cache.cornerLeft !== adjust.left) { + this.update(newCorner, FALSE); + } + } + + // Setup tip offset properties + offset = this.calculate(newCorner); + + // Readjust offset object to make it left/top + if(offset.right !== undefined) { offset.left = -offset.right; } + if(offset.bottom !== undefined) { offset.top = -offset.bottom; } + offset.user = this.offset; + + // Perform shift adjustments + if(shift.left = (horizontal === SHIFT && !!adjust.left)) { shiftonly(X, LEFT, RIGHT); } + if(shift.top = (vertical === SHIFT && !!adjust.top)) { shiftonly(Y, TOP, BOTTOM); } + + /* + * If the tip is adjusted in both dimensions, or in a + * direction that would cause it to be anywhere but the + * outer border, hide it! + */ + this.element.css(css).toggle( + !((shift.x && shift.y) || (newCorner.x === CENTER && shift.y) || (newCorner.y === CENTER && shift.x)) + ); + + // Adjust position to accomodate tip dimensions + pos.left -= offset.left.charAt ? offset.user : + horizontal !== SHIFT || shift.top || !shift.left && !shift.top ? offset.left + this.border : 0; + pos.top -= offset.top.charAt ? offset.user : + vertical !== SHIFT || shift.left || !shift.left && !shift.top ? offset.top + this.border : 0; + + // Cache details + cache.cornerLeft = adjust.left; cache.cornerTop = adjust.top; + cache.corner = newCorner.clone(); + }, + + destroy: function() { + // Unbind events + this.qtip._unbind(this.qtip.tooltip, this._ns); + + // Remove the tip element(s) + if(this.qtip.elements.tip) { + this.qtip.elements.tip.find('*') + .remove().end().remove(); + } + } + }); + + TIP = PLUGINS.tip = function(api) { + return new Tip(api, api.options.style.tip); + }; + +// Initialize tip on render + TIP.initialize = 'render'; + +// Setup plugin sanitization options + TIP.sanitize = function(options) { + if(options.style && 'tip' in options.style) { + var opts = options.style.tip; + if(typeof opts !== 'object') { opts = options.style.tip = { corner: opts }; } + if(!(/string|boolean/i).test(typeof opts.corner)) { opts.corner = TRUE; } + } + }; + +// Add new option checks for the plugin + CHECKS.tip = { + '^position.my|style.tip.(corner|mimic|border)$': function() { + // Make sure a tip can be drawn + this.create(); + + // Reposition the tooltip + this.qtip.reposition(); + }, + '^style.tip.(height|width)$': function(obj) { + // Re-set dimensions and redraw the tip + this.size = [ obj.width, obj.height ]; + this.update(); + + // Reposition the tooltip + this.qtip.reposition(); + }, + '^content.title|style.(classes|widget)$': function() { + this.update(); + } + }; + +// Extend original qTip defaults + $.extend(TRUE, QTIP.defaults, { + style: { + tip: { + corner: TRUE, + mimic: FALSE, + width: 6, + height: 6, + border: TRUE, + offset: 0 + } + } + }); + ;var MODAL, OVERLAY, + MODALCLASS = 'qtip-modal', + MODALSELECTOR = '.'+MODALCLASS; + + OVERLAY = function() + { + var self = this, + focusableElems = {}, + current, onLast, + prevState, elem; + + // Modified code from jQuery UI 1.10.0 source + // http://code.jquery.com/ui/1.10.0/jquery-ui.js + function focusable(element) { + // Use the defined focusable checker when possible + if($.expr[':'].focusable) { return $.expr[':'].focusable; } + + var isTabIndexNotNaN = !isNaN($.attr(element, 'tabindex')), + nodeName = element.nodeName && element.nodeName.toLowerCase(), + map, mapName, img; + + if('area' === nodeName) { + map = element.parentNode; + mapName = map.name; + if(!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') { + return false; + } + img = $('img[usemap=#' + mapName + ']')[0]; + return !!img && img.is(':visible'); + } + return (/input|select|textarea|button|object/.test( nodeName ) ? + !element.disabled : + 'a' === nodeName ? + element.href || isTabIndexNotNaN : + isTabIndexNotNaN + ); + } + + // Focus inputs using cached focusable elements (see update()) + function focusInputs(blurElems) { + // Blurring body element in IE causes window.open windows to unfocus! + if(focusableElems.length < 1 && blurElems.length) { blurElems.not('body').blur(); } + + // Focus the inputs + else { focusableElems.first().focus(); } + } + + // Steal focus from elements outside tooltip + function stealFocus(event) { + if(!elem.is(':visible')) { return; } + + var target = $(event.target), + tooltip = current.tooltip, + container = target.closest(SELECTOR), + targetOnTop; + + // Determine if input container target is above this + targetOnTop = container.length < 1 ? FALSE : + (parseInt(container[0].style.zIndex, 10) > parseInt(tooltip[0].style.zIndex, 10)); + + // If we're showing a modal, but focus has landed on an input below + // this modal, divert focus to the first visible input in this modal + // or if we can't find one... the tooltip itself + if(!targetOnTop && target.closest(SELECTOR)[0] !== tooltip[0]) { + focusInputs(target); + } + + // Detect when we leave the last focusable element... + onLast = event.target === focusableElems[focusableElems.length - 1]; + } + + $.extend(self, { + init: function() { + // Create document overlay + elem = self.elem = $('
', { + id: 'qtip-overlay', + html: '
', + mousedown: function() { return FALSE; } + }) + .hide(); + + // Make sure we can't focus anything outside the tooltip + $(document.body).bind('focusin'+MODALSELECTOR, stealFocus); + + // Apply keyboard "Escape key" close handler + $(document).bind('keydown'+MODALSELECTOR, function(event) { + if(current && current.options.show.modal.escape && event.keyCode === 27) { + current.hide(event); + } + }); + + // Apply click handler for blur option + elem.bind('click'+MODALSELECTOR, function(event) { + if(current && current.options.show.modal.blur) { + current.hide(event); + } + }); + + return self; + }, + + update: function(api) { + // Update current API reference + current = api; + + // Update focusable elements if enabled + if(api.options.show.modal.stealfocus !== FALSE) { + focusableElems = api.tooltip.find('*').filter(function() { + return focusable(this); + }); + } + else { focusableElems = []; } + }, + + toggle: function(api, state, duration) { + var docBody = $(document.body), + tooltip = api.tooltip, + options = api.options.show.modal, + effect = options.effect, + type = state ? 'show': 'hide', + visible = elem.is(':visible'), + visibleModals = $(MODALSELECTOR).filter(':visible:not(:animated)').not(tooltip), + zindex; + + // Set active tooltip API reference + self.update(api); + + // If the modal can steal the focus... + // Blur the current item and focus anything in the modal we an + if(state && options.stealfocus !== FALSE) { + focusInputs( $(':focus') ); + } + + // Toggle backdrop cursor style on show + elem.toggleClass('blurs', options.blur); + + // Append to body on show + if(state) { + elem.appendTo(document.body); + } + + // Prevent modal from conflicting with show.solo, and don't hide backdrop is other modals are visible + if((elem.is(':animated') && visible === state && prevState !== FALSE) || (!state && visibleModals.length)) { + return self; + } + + // Stop all animations + elem.stop(TRUE, FALSE); + + // Use custom function if provided + if($.isFunction(effect)) { + effect.call(elem, state); + } + + // If no effect type is supplied, use a simple toggle + else if(effect === FALSE) { + elem[ type ](); + } + + // Use basic fade function + else { + elem.fadeTo( parseInt(duration, 10) || 90, state ? 1 : 0, function() { + if(!state) { elem.hide(); } + }); + } + + // Reset position and detach from body on hide + if(!state) { + elem.queue(function(next) { + elem.css({ left: '', top: '' }); + if(!$(MODALSELECTOR).length) { elem.detach(); } + next(); + }); + } + + // Cache the state + prevState = state; + + // If the tooltip is destroyed, set reference to null + if(current.destroyed) { current = NULL; } + + return self; + } + }); + + self.init(); + }; + OVERLAY = new OVERLAY(); + + function Modal(api, options) { + this.options = options; + this._ns = '-modal'; + + this.init( (this.qtip = api) ); + } + + $.extend(Modal.prototype, { + init: function(qtip) { + var tooltip = qtip.tooltip; + + // If modal is disabled... return + if(!this.options.on) { return this; } + + // Set overlay reference + qtip.elements.overlay = OVERLAY.elem; + + // Add unique attribute so we can grab modal tooltips easily via a SELECTOR, and set z-index + tooltip.addClass(MODALCLASS).css('z-index', QTIP.modal_zindex + $(MODALSELECTOR).length); + + // Apply our show/hide/focus modal events + qtip._bind(tooltip, ['tooltipshow', 'tooltiphide'], function(event, api, duration) { + var oEvent = event.originalEvent; + + // Make sure mouseout doesn't trigger a hide when showing the modal and mousing onto backdrop + if(event.target === tooltip[0]) { + if(oEvent && event.type === 'tooltiphide' && /mouse(leave|enter)/.test(oEvent.type) && $(oEvent.relatedTarget).closest(OVERLAY.elem[0]).length) { + try { event.preventDefault(); } catch(e) {} + } + else if(!oEvent || (oEvent && oEvent.type !== 'tooltipsolo')) { + this.toggle(event, event.type === 'tooltipshow', duration); + } + } + }, this._ns, this); + + // Adjust modal z-index on tooltip focus + qtip._bind(tooltip, 'tooltipfocus', function(event, api) { + // If focus was cancelled before it reached us, don't do anything + if(event.isDefaultPrevented() || event.target !== tooltip[0]) { return; } + + var qtips = $(MODALSELECTOR), + + // Keep the modal's lower than other, regular qtips + newIndex = QTIP.modal_zindex + qtips.length, + curIndex = parseInt(tooltip[0].style.zIndex, 10); + + // Set overlay z-index + OVERLAY.elem[0].style.zIndex = newIndex - 1; + + // Reduce modal z-index's and keep them properly ordered + qtips.each(function() { + if(this.style.zIndex > curIndex) { + this.style.zIndex -= 1; + } + }); + + // Fire blur event for focused tooltip + qtips.filter('.' + CLASS_FOCUS).qtip('blur', event.originalEvent); + + // Set the new z-index + tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex; + + // Set current + OVERLAY.update(api); + + // Prevent default handling + try { event.preventDefault(); } catch(e) {} + }, this._ns, this); + + // Focus any other visible modals when this one hides + qtip._bind(tooltip, 'tooltiphide', function(event) { + if(event.target === tooltip[0]) { + $(MODALSELECTOR).filter(':visible').not(tooltip).last().qtip('focus', event); + } + }, this._ns, this); + }, + + toggle: function(event, state, duration) { + // Make sure default event hasn't been prevented + if(event && event.isDefaultPrevented()) { return this; } + + // Toggle it + OVERLAY.toggle(this.qtip, !!state, duration); + }, + + destroy: function() { + // Remove modal class + this.qtip.tooltip.removeClass(MODALCLASS); + + // Remove bound events + this.qtip._unbind(this.qtip.tooltip, this._ns); + + // Delete element reference + OVERLAY.toggle(this.qtip, FALSE); + delete this.qtip.elements.overlay; + } + }); + + + MODAL = PLUGINS.modal = function(api) { + return new Modal(api, api.options.show.modal); + }; + +// Setup sanitiztion rules + MODAL.sanitize = function(opts) { + if(opts.show) { + if(typeof opts.show.modal !== 'object') { opts.show.modal = { on: !!opts.show.modal }; } + else if(typeof opts.show.modal.on === 'undefined') { opts.show.modal.on = TRUE; } + } + }; + +// Base z-index for all modal tooltips (use qTip core z-index as a base) + QTIP.modal_zindex = QTIP.zindex - 200; + +// Plugin needs to be initialized on render + MODAL.initialize = 'render'; + +// Setup option set checks + CHECKS.modal = { + '^show.modal.(on|blur)$': function() { + // Initialise + this.destroy(); + this.init(); + + // Show the modal if not visible already and tooltip is visible + this.qtip.elems.overlay.toggle( + this.qtip.tooltip[0].offsetWidth > 0 + ); + } + }; + +// Extend original api defaults + $.extend(TRUE, QTIP.defaults, { + show: { + modal: { + on: FALSE, + effect: TRUE, + blur: TRUE, + stealfocus: TRUE, + escape: TRUE + } + } + }); + ;PLUGINS.viewport = function(api, position, posOptions, targetWidth, targetHeight, elemWidth, elemHeight) + { + var target = posOptions.target, + tooltip = api.elements.tooltip, + my = posOptions.my, + at = posOptions.at, + adjust = posOptions.adjust, + method = adjust.method.split(' '), + methodX = method[0], + methodY = method[1] || method[0], + viewport = posOptions.viewport, + container = posOptions.container, + cache = api.cache, + adjusted = { left: 0, top: 0 }, + fixed, newMy, containerOffset, containerStatic, + viewportWidth, viewportHeight, viewportScroll, viewportOffset; + + // If viewport is not a jQuery element, or it's the window/document, or no adjustment method is used... return + if(!viewport.jquery || target[0] === window || target[0] === document.body || adjust.method === 'none') { + return adjusted; + } + + // Cach container details + containerOffset = container.offset() || adjusted; + containerStatic = container.css('position') === 'static'; + + // Cache our viewport details + fixed = tooltip.css('position') === 'fixed'; + viewportWidth = viewport[0] === window ? viewport.width() : viewport.outerWidth(FALSE); + viewportHeight = viewport[0] === window ? viewport.height() : viewport.outerHeight(FALSE); + viewportScroll = { left: fixed ? 0 : viewport.scrollLeft(), top: fixed ? 0 : viewport.scrollTop() }; + viewportOffset = viewport.offset() || adjusted; + + // Generic calculation method + function calculate(side, otherSide, type, adjust, side1, side2, lengthName, targetLength, elemLength) { + var initialPos = position[side1], + mySide = my[side], + atSide = at[side], + isShift = type === SHIFT, + myLength = mySide === side1 ? elemLength : mySide === side2 ? -elemLength : -elemLength / 2, + atLength = atSide === side1 ? targetLength : atSide === side2 ? -targetLength : -targetLength / 2, + sideOffset = viewportScroll[side1] + viewportOffset[side1] - (containerStatic ? 0 : containerOffset[side1]), + overflow1 = sideOffset - initialPos, + overflow2 = initialPos + elemLength - (lengthName === WIDTH ? viewportWidth : viewportHeight) - sideOffset, + offset = myLength - (my.precedance === side || mySide === my[otherSide] ? atLength : 0) - (atSide === CENTER ? targetLength / 2 : 0); + + // shift + if(isShift) { + offset = (mySide === side1 ? 1 : -1) * myLength; + + // Adjust position but keep it within viewport dimensions + position[side1] += overflow1 > 0 ? overflow1 : overflow2 > 0 ? -overflow2 : 0; + position[side1] = Math.max( + -containerOffset[side1] + viewportOffset[side1], + initialPos - offset, + Math.min( + Math.max( + -containerOffset[side1] + viewportOffset[side1] + (lengthName === WIDTH ? viewportWidth : viewportHeight), + initialPos + offset + ), + position[side1], + + // Make sure we don't adjust complete off the element when using 'center' + mySide === 'center' ? initialPos - myLength : 1E9 + ) + ); + + } + + // flip/flipinvert + else { + // Update adjustment amount depending on if using flipinvert or flip + adjust *= (type === FLIPINVERT ? 2 : 0); + + // Check for overflow on the left/top + if(overflow1 > 0 && (mySide !== side1 || overflow2 > 0)) { + position[side1] -= offset + adjust; + newMy.invert(side, side1); + } + + // Check for overflow on the bottom/right + else if(overflow2 > 0 && (mySide !== side2 || overflow1 > 0) ) { + position[side1] -= (mySide === CENTER ? -offset : offset) + adjust; + newMy.invert(side, side2); + } + + // Make sure we haven't made things worse with the adjustment and reset if so + if(position[side1] < viewportScroll && -position[side1] > overflow2) { + position[side1] = initialPos; newMy = my.clone(); + } + } + + return position[side1] - initialPos; + } + + // Set newMy if using flip or flipinvert methods + if(methodX !== 'shift' || methodY !== 'shift') { newMy = my.clone(); } + + // Adjust position based onviewport and adjustment options + adjusted = { + left: methodX !== 'none' ? calculate( X, Y, methodX, adjust.x, LEFT, RIGHT, WIDTH, targetWidth, elemWidth ) : 0, + top: methodY !== 'none' ? calculate( Y, X, methodY, adjust.y, TOP, BOTTOM, HEIGHT, targetHeight, elemHeight ) : 0, + my: newMy + }; + + return adjusted; + }; + ;PLUGINS.polys = { + // POLY area coordinate calculator + // Special thanks to Ed Cradock for helping out with this. + // Uses a binary search algorithm to find suitable coordinates. + polygon: function(baseCoords, corner) { + var result = { + width: 0, height: 0, + position: { + top: 1e10, right: 0, + bottom: 0, left: 1e10 + }, + adjustable: FALSE + }, + i = 0, next, + coords = [], + compareX = 1, compareY = 1, + realX = 0, realY = 0, + newWidth, newHeight; + + // First pass, sanitize coords and determine outer edges + i = baseCoords.length; while(i--) { + next = [ parseInt(baseCoords[--i], 10), parseInt(baseCoords[i+1], 10) ]; + + if(next[0] > result.position.right){ result.position.right = next[0]; } + if(next[0] < result.position.left){ result.position.left = next[0]; } + if(next[1] > result.position.bottom){ result.position.bottom = next[1]; } + if(next[1] < result.position.top){ result.position.top = next[1]; } + + coords.push(next); + } + + // Calculate height and width from outer edges + newWidth = result.width = Math.abs(result.position.right - result.position.left); + newHeight = result.height = Math.abs(result.position.bottom - result.position.top); + + // If it's the center corner... + if(corner.abbrev() === 'c') { + result.position = { + left: result.position.left + (result.width / 2), + top: result.position.top + (result.height / 2) + }; + } + else { + // Second pass, use a binary search algorithm to locate most suitable coordinate + while(newWidth > 0 && newHeight > 0 && compareX > 0 && compareY > 0) + { + newWidth = Math.floor(newWidth / 2); + newHeight = Math.floor(newHeight / 2); + + if(corner.x === LEFT){ compareX = newWidth; } + else if(corner.x === RIGHT){ compareX = result.width - newWidth; } + else{ compareX += Math.floor(newWidth / 2); } + + if(corner.y === TOP){ compareY = newHeight; } + else if(corner.y === BOTTOM){ compareY = result.height - newHeight; } + else{ compareY += Math.floor(newHeight / 2); } + + i = coords.length; while(i--) + { + if(coords.length < 2){ break; } + + realX = coords[i][0] - result.position.left; + realY = coords[i][1] - result.position.top; + + if((corner.x === LEFT && realX >= compareX) || + (corner.x === RIGHT && realX <= compareX) || + (corner.x === CENTER && (realX < compareX || realX > (result.width - compareX))) || + (corner.y === TOP && realY >= compareY) || + (corner.y === BOTTOM && realY <= compareY) || + (corner.y === CENTER && (realY < compareY || realY > (result.height - compareY)))) { + coords.splice(i, 1); + } + } + } + result.position = { left: coords[0][0], top: coords[0][1] }; + } + + return result; + }, + + rect: function(ax, ay, bx, by) { + return { + width: Math.abs(bx - ax), + height: Math.abs(by - ay), + position: { + left: Math.min(ax, bx), + top: Math.min(ay, by) + } + }; + }, + + _angles: { + tc: 3 / 2, tr: 7 / 4, tl: 5 / 4, + bc: 1 / 2, br: 1 / 4, bl: 3 / 4, + rc: 2, lc: 1, c: 0 + }, + ellipse: function(cx, cy, rx, ry, corner) { + var c = PLUGINS.polys._angles[ corner.abbrev() ], + rxc = c === 0 ? 0 : rx * Math.cos( c * Math.PI ), + rys = ry * Math.sin( c * Math.PI ); + + return { + width: (rx * 2) - Math.abs(rxc), + height: (ry * 2) - Math.abs(rys), + position: { + left: cx + rxc, + top: cy + rys + }, + adjustable: FALSE + }; + }, + circle: function(cx, cy, r, corner) { + return PLUGINS.polys.ellipse(cx, cy, r, r, corner); + } + }; + ;PLUGINS.svg = function(api, svg, corner) + { + var doc = $(document), + elem = svg[0], + root = $(elem.ownerSVGElement), + ownerDocument = elem.ownerDocument, + strokeWidth2 = (parseInt(svg.css('stroke-width'), 10) || 0) / 2, + frameOffset, mtx, transformed, viewBox, + len, next, i, points, + result, position, dimensions; + + // Ascend the parentNode chain until we find an element with getBBox() + while(!elem.getBBox) { elem = elem.parentNode; } + if(!elem.getBBox || !elem.parentNode) { return FALSE; } + + // Determine which shape calculation to use + switch(elem.nodeName) { + case 'ellipse': + case 'circle': + result = PLUGINS.polys.ellipse( + elem.cx.baseVal.value, + elem.cy.baseVal.value, + (elem.rx || elem.r).baseVal.value + strokeWidth2, + (elem.ry || elem.r).baseVal.value + strokeWidth2, + corner + ); + break; + + case 'line': + case 'polygon': + case 'polyline': + // Determine points object (line has none, so mimic using array) + points = elem.points || [ + { x: elem.x1.baseVal.value, y: elem.y1.baseVal.value }, + { x: elem.x2.baseVal.value, y: elem.y2.baseVal.value } + ]; + + for(result = [], i = -1, len = points.numberOfItems || points.length; ++i < len;) { + next = points.getItem ? points.getItem(i) : points[i]; + result.push.apply(result, [next.x, next.y]); + } + + result = PLUGINS.polys.polygon(result, corner); + break; + + // Unknown shape or rectangle? Use bounding box + default: + result = elem.getBBox(); + result = { + width: result.width, + height: result.height, + position: { + left: result.x, + top: result.y + } + }; + break; + } + + // Shortcut assignments + position = result.position; + root = root[0]; + + // Convert position into a pixel value + if(root.createSVGPoint) { + mtx = elem.getScreenCTM(); + points = root.createSVGPoint(); + + points.x = position.left; + points.y = position.top; + transformed = points.matrixTransform( mtx ); + position.left = transformed.x; + position.top = transformed.y; + } + + // Check the element is not in a child document, and if so, adjust for frame elements offset + if(ownerDocument !== document && api.position.target !== 'mouse') { + frameOffset = $((ownerDocument.defaultView || ownerDocument.parentWindow).frameElement).offset(); + if(frameOffset) { + position.left += frameOffset.left; + position.top += frameOffset.top; + } + } + + // Adjust by scroll offset of owner document + ownerDocument = $(ownerDocument); + position.left += ownerDocument.scrollLeft(); + position.top += ownerDocument.scrollTop(); + + return result; + }; + ;PLUGINS.imagemap = function(api, area, corner, adjustMethod) + { + if(!area.jquery) { area = $(area); } + + var shape = (area.attr('shape') || 'rect').toLowerCase().replace('poly', 'polygon'), + image = $('img[usemap="#'+area.parent('map').attr('name')+'"]'), + coordsString = $.trim(area.attr('coords')), + coordsArray = coordsString.replace(/,$/, '').split(','), + imageOffset, coords, i, next, result, len; + + // If we can't find the image using the map... + if(!image.length) { return FALSE; } + + // Pass coordinates string if polygon + if(shape === 'polygon') { + result = PLUGINS.polys.polygon(coordsArray, corner); + } + + // Otherwise parse the coordinates and pass them as arguments + else if(PLUGINS.polys[shape]) { + for(i = -1, len = coordsArray.length, coords = []; ++i < len;) { + coords.push( parseInt(coordsArray[i], 10) ); + } + + result = PLUGINS.polys[shape].apply( + this, coords.concat(corner) + ); + } + + // If no shapre calculation method was found, return false + else { return FALSE; } + + // Make sure we account for padding and borders on the image + imageOffset = image.offset(); + imageOffset.left += Math.ceil((image.outerWidth(FALSE) - image.width()) / 2); + imageOffset.top += Math.ceil((image.outerHeight(FALSE) - image.height()) / 2); + + // Add image position to offset coordinates + result.position.left += imageOffset.left; + result.position.top += imageOffset.top; + + return result; + }; + ;var IE6, + + /* + * BGIFrame adaption (http://plugins.jquery.com/project/bgiframe) + * Special thanks to Brandon Aaron + */ + BGIFRAME = ''; + + function Ie6(api, qtip) { + this._ns = 'ie6'; + this.init( (this.qtip = api) ); + } + + $.extend(Ie6.prototype, { + _scroll : function() { + var overlay = this.qtip.elements.overlay; + overlay && (overlay[0].style.top = $(window).scrollTop() + 'px'); + }, + + init: function(qtip) { + var tooltip = qtip.tooltip, + scroll; + + // Create the BGIFrame element if needed + if($('select, object').length < 1) { + this.bgiframe = qtip.elements.bgiframe = $(BGIFRAME).appendTo(tooltip); + + // Update BGIFrame on tooltip move + qtip._bind(tooltip, 'tooltipmove', this.adjustBGIFrame, this._ns, this); + } + + // redraw() container for width/height calculations + this.redrawContainer = $('
', { id: NAMESPACE+'-rcontainer' }) + .appendTo(document.body); + + // Fixup modal plugin if present too + if( qtip.elements.overlay && qtip.elements.overlay.addClass('qtipmodal-ie6fix') ) { + qtip._bind(window, ['scroll', 'resize'], this._scroll, this._ns, this); + qtip._bind(tooltip, ['tooltipshow'], this._scroll, this._ns, this); + } + + // Set dimensions + this.redraw(); + }, + + adjustBGIFrame: function() { + var tooltip = this.qtip.tooltip, + dimensions = { + height: tooltip.outerHeight(FALSE), + width: tooltip.outerWidth(FALSE) + }, + plugin = this.qtip.plugins.tip, + tip = this.qtip.elements.tip, + tipAdjust, offset; + + // Adjust border offset + offset = parseInt(tooltip.css('borderLeftWidth'), 10) || 0; + offset = { left: -offset, top: -offset }; + + // Adjust for tips plugin + if(plugin && tip) { + tipAdjust = (plugin.corner.precedance === 'x') ? [WIDTH, LEFT] : [HEIGHT, TOP]; + offset[ tipAdjust[1] ] -= tip[ tipAdjust[0] ](); + } + + // Update bgiframe + this.bgiframe.css(offset).css(dimensions); + }, + + // Max/min width simulator function + redraw: function() { + if(this.qtip.rendered < 1 || this.drawing) { return this; } + + var tooltip = this.qtip.tooltip, + style = this.qtip.options.style, + container = this.qtip.options.position.container, + perc, width, max, min; + + // Set drawing flag + this.qtip.drawing = 1; + + // If tooltip has a set height/width, just set it... like a boss! + if(style.height) { tooltip.css(HEIGHT, style.height); } + if(style.width) { tooltip.css(WIDTH, style.width); } + + // Simulate max/min width if not set width present... + else { + // Reset width and add fluid class + tooltip.css(WIDTH, '').appendTo(this.redrawContainer); + + // Grab our tooltip width (add 1 if odd so we don't get wrapping problems.. huzzah!) + width = tooltip.width(); + if(width % 2 < 1) { width += 1; } + + // Grab our max/min properties + max = tooltip.css('maxWidth') || ''; + min = tooltip.css('minWidth') || ''; + + // Parse into proper pixel values + perc = (max + min).indexOf('%') > -1 ? container.width() / 100 : 0; + max = ((max.indexOf('%') > -1 ? perc : 1) * parseInt(max, 10)) || width; + min = ((min.indexOf('%') > -1 ? perc : 1) * parseInt(min, 10)) || 0; + + // Determine new dimension size based on max/min/current values + width = max + min ? Math.min(Math.max(width, min), max) : width; + + // Set the newly calculated width and remvoe fluid class + tooltip.css(WIDTH, Math.round(width)).appendTo(container); + } + + // Set drawing flag + this.drawing = 0; + + return this; + }, + + destroy: function() { + // Remove iframe + this.bgiframe && this.bgiframe.remove(); + + // Remove bound events + this.qtip._unbind([window, this.qtip.tooltip], this._ns); + } + }); + + IE6 = PLUGINS.ie6 = function(api) { + // Proceed only if the browser is IE6 + return BROWSER.ie === 6 ? new Ie6(api) : FALSE; + }; + + IE6.initialize = 'render'; + + CHECKS.ie6 = { + '^content|style$': function() { + this.redraw(); + } + }; + ;})); +}( window, document )); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/js/jquery.qtip.min.js b/wp-content/plugins/wordpress-seo/js/jquery.qtip.min.js index ba01a21..4e63354 100644 --- a/wp-content/plugins/wordpress-seo/js/jquery.qtip.min.js +++ b/wp-content/plugins/wordpress-seo/js/jquery.qtip.min.js @@ -1,21 +1,4 @@ -/* - * jquery.qtip. The jQuery tooltip plugin - * - * Copyright (c) 2009 Craig Thompson - * http://craigsworks.com - * - * Licensed under MIT - * http://www.opensource.org/licenses/mit-license.php - * - * Launch : February 2009 - * Version : 1.0.0-rc3 - * Released: Tuesday 12th May, 2009 - 00:00 - * Debug: jquery.qtip.debug.js - */ -(function(f){f.fn.qtip=function(B,u){var y,t,A,s,x,w,v,z;if(typeof B=="string"){if(typeof f(this).data("qtip")!=="object"){f.fn.qtip.log.error.call(self,1,f.fn.qtip.constants.NO_TOOLTIP_PRESENT,false)}if(B=="api"){return f(this).data("qtip").interfaces[f(this).data("qtip").current]}else{if(B=="interfaces"){return f(this).data("qtip").interfaces}}}else{if(!B){B={}}if(typeof B.content!=="object"||(B.content.jquery&&B.content.length>0)){B.content={text:B.content}}if(typeof B.content.title!=="object"){B.content.title={text:B.content.title}}if(typeof B.position!=="object"){B.position={corner:B.position}}if(typeof B.position.corner!=="object"){B.position.corner={target:B.position.corner,tooltip:B.position.corner}}if(typeof B.show!=="object"){B.show={when:B.show}}if(typeof B.show.when!=="object"){B.show.when={event:B.show.when}}if(typeof B.show.effect!=="object"){B.show.effect={type:B.show.effect}}if(typeof B.hide!=="object"){B.hide={when:B.hide}}if(typeof B.hide.when!=="object"){B.hide.when={event:B.hide.when}}if(typeof B.hide.effect!=="object"){B.hide.effect={type:B.hide.effect}}if(typeof B.style!=="object"){B.style={name:B.style}}B.style=c(B.style);s=f.extend(true,{},f.fn.qtip.defaults,B);s.style=a.call({options:s},s.style);s.user=f.extend(true,{},B)}return f(this).each(function(){if(typeof B=="string"){w=B.toLowerCase();A=f(this).qtip("interfaces");if(typeof A=="object"){if(u===true&&w=="destroy"){while(A.length>0){A[A.length-1].destroy()}}else{if(u!==true){A=[f(this).qtip("api")]}for(y=0;y0))}if(typeof s.options.show.solo=="object"){z=f(s.options.show.solo)}else{if(s.options.show.solo===true){z=f("div.qtip").not(s.elements.tooltip)}}if(z){z.each(function(){if(f(this).qtip("api").status.rendered===true){f(this).qtip("api").hide()}})}if(typeof s.options.show.effect.type=="function"){s.options.show.effect.type.call(s.elements.tooltip,s.options.show.effect.length);s.elements.tooltip.queue(function(){w();f(this).dequeue()})}else{switch(s.options.show.effect.type.toLowerCase()){case"fade":s.elements.tooltip.fadeIn(s.options.show.effect.length,w);break;case"slide":s.elements.tooltip.slideDown(s.options.show.effect.length,function(){w();if(s.options.position.type!=="static"){s.updatePosition(y,true)}});break;case"grow":s.elements.tooltip.show(s.options.show.effect.length,w);break;default:s.elements.tooltip.show(null,w);break}s.elements.tooltip.addClass(s.options.style.classes.active)}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_SHOWN,"show")},hide:function(y){var x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"hide")}else{if(s.elements.tooltip.css("display")==="none"){return s}}clearTimeout(s.timers.show);s.elements.tooltip.stop(true,false);x=s.beforeHide.call(s,y);if(x===false){return s}function w(){s.onHide.call(s,y)}s.cache.toggle=0;if(typeof s.options.hide.effect.type=="function"){s.options.hide.effect.type.call(s.elements.tooltip,s.options.hide.effect.length);s.elements.tooltip.queue(function(){w();f(this).dequeue()})}else{switch(s.options.hide.effect.type.toLowerCase()){case"fade":s.elements.tooltip.fadeOut(s.options.hide.effect.length,w);break;case"slide":s.elements.tooltip.slideUp(s.options.hide.effect.length,w);break;case"grow":s.elements.tooltip.hide(s.options.hide.effect.length,w);break;default:s.elements.tooltip.hide(null,w);break}s.elements.tooltip.removeClass(s.options.style.classes.active)}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_HIDDEN,"hide")},updatePosition:function(w,x){var C,G,L,J,H,E,y,I,B,D,K,A,F,z;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updatePosition")}else{if(s.options.position.type=="static"){return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.CANNOT_POSITION_STATIC,"updatePosition")}}G={position:{left:0,top:0},dimensions:{height:0,width:0},corner:s.options.position.corner.target};L={position:s.getPosition(),dimensions:s.getDimensions(),corner:s.options.position.corner.tooltip};if(s.options.position.target!=="mouse"){if(s.options.position.target.get(0).nodeName.toLowerCase()=="area"){J=s.options.position.target.attr("coords").split(",");for(C=0;CG.dimensions.width){G.dimensions.width=J[C]}if(J[C]G.dimensions.height){G.dimensions.height=J[C]}if(J[C]0){if(L.corner.search(/Left/)!==-1){y.left-=s.options.style.border.radius}else{if(L.corner.search(/Right/)!==-1){y.left+=s.options.style.border.radius}}if(L.corner.search(/Top/)!==-1){y.top-=s.options.style.border.radius}else{if(L.corner.search(/Bottom/)!==-1){y.top+=s.options.style.border.radius}}}if(I){if(L.corner.search(/top/)!==-1){y.top-=I}else{if(L.corner.search(/bottom/)!==-1){y.top+=I}}if(L.corner.search(/left/)!==-1){y.left-=I}else{if(L.corner.search(/right/)!==-1){y.left+=I}}if(L.corner.search(/leftMiddle|rightMiddle/)!==-1){y.top-=1}}if(s.options.position.adjust.screen===true){y=o.call(s,y,G,L)}if(s.options.position.target==="mouse"&&s.options.position.adjust.mouse===true){if(s.options.position.adjust.screen===true&&s.elements.tip){K=s.elements.tip.attr("rel")}else{K=s.options.position.corner.tooltip}y.left+=(K.search(/right/i)!==-1)?-6:6;y.top+=(K.search(/bottom/i)!==-1)?-6:6}if(!s.elements.bgiframe&&f.browser.msie&&parseInt(f.browser.version.charAt(0))==6){f("select, object").each(function(){A=f(this).offset();A.bottom=A.top+f(this).height();A.right=A.left+f(this).width();if(y.top+L.dimensions.height>=A.top&&y.left+L.dimensions.width>=A.left){k.call(s)}})}y.left+=s.options.position.adjust.x;y.top+=s.options.position.adjust.y;F=s.getPosition();if(y.left!=F.left||y.top!=F.top){z=s.beforePositionUpdate.call(s,w);if(z===false){return s}s.cache.position=y;if(x===true){s.status.animated=true;s.elements.tooltip.animate(y,200,"swing",function(){s.status.animated=false})}else{s.elements.tooltip.css(y)}s.onPositionUpdate.call(s,w);if(typeof w!=="undefined"&&w.type&&w.type!=="mousemove"){f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_POSITION_UPDATED,"updatePosition")}}return s},updateWidth:function(w){var x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updateWidth")}else{if(w&&typeof w!=="number"){return f.fn.qtip.log.error.call(s,2,"newWidth must be of type number","updateWidth")}}x=s.elements.contentWrapper.siblings().add(s.elements.tip).add(s.elements.button);if(!w){if(typeof s.options.style.width.value=="number"){w=s.options.style.width.value}else{s.elements.tooltip.css({width:"auto"});x.hide();if(f.browser.msie){s.elements.wrapper.add(s.elements.contentWrapper.children()).css({zoom:"normal"})}w=s.getDimensions().width+1;if(!s.options.style.width.value){if(w>s.options.style.width.max){w=s.options.style.width.max}if(w").get(0).getContext){z=s.elements.tooltip.find(".qtip-tip canvas:first");x=z.get(0).getContext("2d");x.clearRect(0,0,300,300);y=z.parent("div[rel]:first").attr("rel");B=b(y,s.options.style.tip.size.width,s.options.style.tip.size.height);h.call(s,z,B,s.options.style.tip.color||s.options.style.border.color)}else{if(f.browser.msie){z=s.elements.tooltip.find('.qtip-tip [nodeName="shape"]');z.attr("fillcolor",s.options.style.tip.color||s.options.style.border.color)}}}if(s.options.style.border.radius>0){s.elements.tooltip.find(".qtip-betweenCorners").css({backgroundColor:s.options.style.border.color});if(f("").get(0).getContext){A=g(s.options.style.border.radius);s.elements.tooltip.find(".qtip-wrapper canvas").each(function(){x=f(this).get(0).getContext("2d");x.clearRect(0,0,300,300);y=f(this).parent("div[rel]:first").attr("rel");r.call(s,f(this),A[y],s.options.style.border.radius,s.options.style.border.color)})}else{if(f.browser.msie){s.elements.tooltip.find('.qtip-wrapper [nodeName="arc"]').each(function(){f(this).attr("fillcolor",s.options.style.border.color)})}}}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_STYLE_UPDATED,"updateStyle")},updateContent:function(A,y){var z,x,w;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updateContent")}else{if(!A){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.NO_CONTENT_PROVIDED,"updateContent")}}z=s.beforeContentUpdate.call(s,A);if(typeof z=="string"){A=z}else{if(z===false){return}}if(f.browser.msie){s.elements.contentWrapper.children().css({zoom:"normal"})}if(A.jquery&&A.length>0){A.clone(true).appendTo(s.elements.content).show()}else{s.elements.content.html(A)}x=s.elements.content.find("img[complete=false]");if(x.length>0){w=0;x.each(function(C){f('').load(function(){if(++w==x.length){B()}})})}else{B()}function B(){s.updateWidth();if(y!==false){if(s.options.position.type!=="static"){s.updatePosition(s.elements.tooltip.is(":visible"),true)}if(s.options.style.tip.corner!==false){n.call(s)}}}s.onContentUpdate.call(s);return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_CONTENT_UPDATED,"loadContent")},loadContent:function(w,z,A){var y;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"loadContent")}y=s.beforeContentLoad.call(s);if(y===false){return s}if(A=="post"){f.post(w,z,x)}else{f.get(w,z,x)}function x(B){s.onContentLoad.call(s);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_CONTENT_LOADED,"loadContent");s.updateContent(B)}return s},updateTitle:function(w){if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updateTitle")}else{if(!w){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.NO_CONTENT_PROVIDED,"updateTitle")}}returned=s.beforeTitleUpdate.call(s);if(returned===false){return s}if(s.elements.button){s.elements.button=s.elements.button.clone(true)}s.elements.title.html(w);if(s.elements.button){s.elements.title.prepend(s.elements.button)}s.onTitleUpdate.call(s);return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_TITLE_UPDATED,"updateTitle")},focus:function(A){var y,x,w,z;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"focus")}else{if(s.options.position.type=="static"){return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.CANNOT_FOCUS_STATIC,"focus")}}y=parseInt(s.elements.tooltip.css("z-index"));x=6000+f("div.qtip[qtip]").length-1;if(!s.status.focused&&y!==x){z=s.beforeFocus.call(s,A);if(z===false){return s}f("div.qtip[qtip]").not(s.elements.tooltip).each(function(){if(f(this).qtip("api").status.rendered===true){w=parseInt(f(this).css("z-index"));if(typeof w=="number"&&w>-1){f(this).css({zIndex:parseInt(f(this).css("z-index"))-1})}f(this).qtip("api").status.focused=false}});s.elements.tooltip.css({zIndex:x});s.status.focused=true;s.onFocus.call(s,A);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_FOCUSED,"focus")}return s},disable:function(w){if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"disable")}if(w){if(!s.status.disabled){s.status.disabled=true;f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_DISABLED,"disable")}else{f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.TOOLTIP_ALREADY_DISABLED,"disable")}}else{if(s.status.disabled){s.status.disabled=false;f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_ENABLED,"disable")}else{f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.TOOLTIP_ALREADY_ENABLED,"disable")}}return s},destroy:function(){var w,x,y;x=s.beforeDestroy.call(s);if(x===false){return s}if(s.status.rendered){s.options.show.when.target.unbind("mousemove.qtip",s.updatePosition);s.options.show.when.target.unbind("mouseout.qtip",s.hide);s.options.show.when.target.unbind(s.options.show.when.event+".qtip");s.options.hide.when.target.unbind(s.options.hide.when.event+".qtip");s.elements.tooltip.unbind(s.options.hide.when.event+".qtip");s.elements.tooltip.unbind("mouseover.qtip",s.focus);s.elements.tooltip.remove()}else{s.options.show.when.target.unbind(s.options.show.when.event+".qtip-create")}if(typeof s.elements.target.data("qtip")=="object"){y=s.elements.target.data("qtip").interfaces;if(typeof y=="object"&&y.length>0){for(w=0;w0){s.elements.target.data("qtip").current=y.length-1}else{s.elements.target.removeData("qtip")}s.onDestroy.call(s);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_DESTROYED,"destroy");return s.elements.target},getPosition:function(){var w,x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"getPosition")}w=(s.elements.tooltip.css("display")!=="none")?false:true;if(w){s.elements.tooltip.css({visiblity:"hidden"}).show()}x=s.elements.tooltip.offset();if(w){s.elements.tooltip.css({visiblity:"visible"}).hide()}return x},getDimensions:function(){var w,x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"getDimensions")}w=(!s.elements.tooltip.is(":visible"))?true:false;if(w){s.elements.tooltip.css({visiblity:"hidden"}).show()}x={height:s.elements.tooltip.outerHeight(),width:s.elements.tooltip.outerWidth()};if(w){s.elements.tooltip.css({visiblity:"visible"}).hide()}return x}})}function p(){var s,w,u,t,v,y,x;s=this;s.beforeRender.call(s);s.status.rendered=true;s.elements.tooltip='';s.elements.tooltip=f(s.elements.tooltip);s.elements.tooltip.appendTo(s.options.position.container);s.elements.tooltip.data("qtip",{current:0,interfaces:[s]});s.elements.wrapper=s.elements.tooltip.children("div:first");s.elements.contentWrapper=s.elements.wrapper.children("div:first").css({background:s.options.style.background});s.elements.content=s.elements.contentWrapper.children("div:first").css(q(s.options.style));if(f.browser.msie){s.elements.wrapper.add(s.elements.content).css({zoom:1})}if(s.options.hide.when.event=="unfocus"){s.elements.tooltip.attr("unfocus",true)}if(typeof s.options.style.width.value=="number"){s.updateWidth()}if(f("").get(0).getContext||f.browser.msie){if(s.options.style.border.radius>0){m.call(s)}else{s.elements.contentWrapper.css({border:s.options.style.border.width+"px solid "+s.options.style.border.color})}if(s.options.style.tip.corner!==false){e.call(s)}}else{s.elements.contentWrapper.css({border:s.options.style.border.width+"px solid "+s.options.style.border.color});s.options.style.border.radius=0;s.options.style.tip.corner=false;f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.CANVAS_VML_NOT_SUPPORTED,"render")}if((typeof s.options.content.text=="string"&&s.options.content.text.length>0)||(s.options.content.text.jquery&&s.options.content.text.length>0)){u=s.options.content.text}else{if(typeof s.elements.target.attr("title")=="string"&&s.elements.target.attr("title").length>0){u=s.elements.target.attr("title").replace("\\n","
");s.elements.target.attr("title","")}else{if(typeof s.elements.target.attr("alt")=="string"&&s.elements.target.attr("alt").length>0){u=s.elements.target.attr("alt").replace("\\n","
");s.elements.target.attr("alt","")}else{u=" ";f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.NO_VALID_CONTENT,"render")}}}if(s.options.content.title.text!==false){j.call(s)}s.updateContent(u);l.call(s);if(s.options.show.ready===true){s.show()}if(s.options.content.url!==false){t=s.options.content.url;v=s.options.content.data;y=s.options.content.method||"get";s.loadContent(t,v,y)}s.onRender.call(s);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_RENDERED,"render")}function m(){var F,z,t,B,x,E,u,G,D,y,w,C,A,s,v;F=this;F.elements.wrapper.find(".qtip-borderBottom, .qtip-borderTop").remove();t=F.options.style.border.width;B=F.options.style.border.radius;x=F.options.style.border.color||F.options.style.tip.color;E=g(B);u={};for(z in E){u[z]='
';if(f("").get(0).getContext){u[z]+=''}else{if(f.browser.msie){G=B*2+3;u[z]+=''}}u[z]+="
"}D=F.getDimensions().width-(Math.max(t,B)*2);y='
';w='
'+u.topLeft+u.topRight+y;F.elements.wrapper.prepend(w);C='
'+u.bottomLeft+u.bottomRight+y;F.elements.wrapper.append(C);if(f("").get(0).getContext){F.elements.wrapper.find("canvas").each(function(){A=E[f(this).parent("[rel]:first").attr("rel")];r.call(F,f(this),A,B,x)})}else{if(f.browser.msie){F.elements.tooltip.append('')}}s=Math.max(B,(B+(t-B)));v=Math.max(t-B,0);F.elements.contentWrapper.css({border:"0px solid "+x,borderWidth:v+"px "+s+"px"})}function r(u,w,s,t){var v=u.get(0).getContext("2d");v.fillStyle=t;v.beginPath();v.arc(w[0],w[1],s,0,Math.PI*2,false);v.fill()}function e(v){var t,s,x,u,w;t=this;if(t.elements.tip!==null){t.elements.tip.remove()}s=t.options.style.tip.color||t.options.style.border.color;if(t.options.style.tip.corner===false){return}else{if(!v){v=t.options.style.tip.corner}}x=b(v,t.options.style.tip.size.width,t.options.style.tip.size.height);t.elements.tip='
';if(f("").get(0).getContext){t.elements.tip+=''}else{if(f.browser.msie){u=t.options.style.tip.size.width+","+t.options.style.tip.size.height;w="m"+x[0][0]+","+x[0][1];w+=" l"+x[1][0]+","+x[1][1];w+=" "+x[2][0]+","+x[2][1];w+=" xe";t.elements.tip+='';t.elements.tip+='';t.elements.contentWrapper.css("position","relative")}}t.elements.tooltip.prepend(t.elements.tip+"
");t.elements.tip=t.elements.tooltip.find("."+t.options.style.classes.tip).eq(0);if(f("").get(0).getContext){h.call(t,t.elements.tip.find("canvas:first"),x,s)}if(v.search(/top/)!==-1&&f.browser.msie&&parseInt(f.browser.version.charAt(0))===6){t.elements.tip.css({marginTop:-4})}n.call(t,v)}function h(t,v,s){var u=t.get(0).getContext("2d");u.fillStyle=s;u.beginPath();u.moveTo(v[0][0],v[0][1]);u.lineTo(v[1][0],v[1][1]);u.lineTo(v[2][0],v[2][1]);u.fill()}function n(u){var t,w,s,x,v;t=this;if(t.options.style.tip.corner===false||!t.elements.tip){return}if(!u){u=t.elements.tip.attr("rel")}w=positionAdjust=(f.browser.msie)?1:0;t.elements.tip.css(u.match(/left|right|top|bottom/)[0],0);if(u.search(/top|bottom/)!==-1){if(f.browser.msie){if(parseInt(f.browser.version.charAt(0))===6){positionAdjust=(u.search(/top/)!==-1)?-3:1}else{positionAdjust=(u.search(/top/)!==-1)?1:2}}if(u.search(/Middle/)!==-1){t.elements.tip.css({left:"50%",marginLeft:-(t.options.style.tip.size.width/2)})}else{if(u.search(/Left/)!==-1){t.elements.tip.css({left:t.options.style.border.radius-w})}else{if(u.search(/Right/)!==-1){t.elements.tip.css({right:t.options.style.border.radius+w})}}}if(u.search(/top/)!==-1){t.elements.tip.css({top:-positionAdjust})}else{t.elements.tip.css({bottom:positionAdjust})}}else{if(u.search(/left|right/)!==-1){if(f.browser.msie){positionAdjust=(parseInt(f.browser.version.charAt(0))===6)?1:((u.search(/left/)!==-1)?1:2)}if(u.search(/Middle/)!==-1){t.elements.tip.css({top:"50%",marginTop:-(t.options.style.tip.size.height/2)})}else{if(u.search(/Top/)!==-1){t.elements.tip.css({top:t.options.style.border.radius-w})}else{if(u.search(/Bottom/)!==-1){t.elements.tip.css({bottom:t.options.style.border.radius+w})}}}if(u.search(/left/)!==-1){t.elements.tip.css({left:-positionAdjust})}else{t.elements.tip.css({right:positionAdjust})}}}s="padding-"+u.match(/left|right|top|bottom/)[0];x=t.options.style.tip.size[(s.search(/left|right/)!==-1)?"width":"height"];t.elements.tooltip.css("padding",0);t.elements.tooltip.css(s,x);if(f.browser.msie&&parseInt(f.browser.version.charAt(0))==6){v=parseInt(t.elements.tip.css("margin-top"))||0;v+=parseInt(t.elements.content.css("margin-top"))||0;t.elements.tip.css({marginTop:v})}}function j(){var s=this;if(s.elements.title!==null){s.elements.title.remove()}s.elements.title=f('
').css(q(s.options.style.title,true)).css({zoom:(f.browser.msie)?1:0}).prependTo(s.elements.contentWrapper);if(s.options.content.title.text){s.updateTitle.call(s,s.options.content.title.text)}if(s.options.content.title.button!==false&&typeof s.options.content.title.button=="string"){s.elements.button=f('').css(q(s.options.style.button,true)).html(s.options.content.title.button).prependTo(s.elements.title).click(function(t){if(!s.status.disabled){s.hide(t)}})}}function l(){var t,v,u,s;t=this;v=t.options.show.when.target;u=t.options.hide.when.target;if(t.options.hide.fixed){u=u.add(t.elements.tooltip)}if(t.options.hide.when.event=="inactive"){s=["click","dblclick","mousedown","mouseup","mousemove","mouseout","mouseenter","mouseleave","mouseover"];function y(z){if(t.status.disabled===true){return}clearTimeout(t.timers.inactive);t.timers.inactive=setTimeout(function(){f(s).each(function(){u.unbind(this+".qtip-inactive");t.elements.content.unbind(this+".qtip-inactive")});t.hide(z)},t.options.hide.delay)}}else{if(t.options.hide.fixed===true){t.elements.tooltip.bind("mouseover.qtip",function(){if(t.status.disabled===true){return}clearTimeout(t.timers.hide)})}}function x(z){if(t.status.disabled===true){return}if(t.options.hide.when.event=="inactive"){f(s).each(function(){u.bind(this+".qtip-inactive",y);t.elements.content.bind(this+".qtip-inactive",y)});y()}clearTimeout(t.timers.show);clearTimeout(t.timers.hide);t.timers.show=setTimeout(function(){t.show(z)},t.options.show.delay)}function w(z){if(t.status.disabled===true){return}if(t.options.hide.fixed===true&&t.options.hide.when.event.search(/mouse(out|leave)/i)!==-1&&f(z.relatedTarget).parents("div.qtip[qtip]").length>0){z.stopPropagation();z.preventDefault();clearTimeout(t.timers.hide);return false}clearTimeout(t.timers.show);clearTimeout(t.timers.hide);t.elements.tooltip.stop(true,true);t.timers.hide=setTimeout(function(){t.hide(z)},t.options.hide.delay)}if((t.options.show.when.target.add(t.options.hide.when.target).length===1&&t.options.show.when.event==t.options.hide.when.event&&t.options.hide.when.event!=="inactive")||t.options.hide.when.event=="unfocus"){t.cache.toggle=0;v.bind(t.options.show.when.event+".qtip",function(z){if(t.cache.toggle==0){x(z)}else{w(z)}})}else{v.bind(t.options.show.when.event+".qtip",x);if(t.options.hide.when.event!=="inactive"){u.bind(t.options.hide.when.event+".qtip",w)}}if(t.options.position.type.search(/(fixed|absolute)/)!==-1){t.elements.tooltip.bind("mouseover.qtip",t.focus)}if(t.options.position.target==="mouse"&&t.options.position.type!=="static"){v.bind("mousemove.qtip",function(z){t.cache.mouse={x:z.pageX,y:z.pageY};if(t.status.disabled===false&&t.options.position.adjust.mouse===true&&t.options.position.type!=="static"&&t.elements.tooltip.css("display")!=="none"){t.updatePosition(z)}})}}function o(u,v,A){var z,s,x,y,t,w;z=this;if(A.corner=="center"){return v.position}s=f.extend({},u);y={x:false,y:false};t={left:(s.left=f.fn.qtip.cache.screen.width+f.fn.qtip.cache.screen.scroll.left),top:(s.top=f.fn.qtip.cache.screen.height+f.fn.qtip.cache.screen.scroll.top)};x={left:(t.left&&(A.corner.search(/right/i)!=-1||(A.corner.search(/right/i)==-1&&!t.right))),right:(t.right&&(A.corner.search(/left/i)!=-1||(A.corner.search(/left/i)==-1&&!t.left))),top:(t.top&&A.corner.search(/top/i)==-1),bottom:(t.bottom&&A.corner.search(/bottom/i)==-1)};if(x.left){if(z.options.position.target!=="mouse"){s.left=v.position.left+v.dimensions.width}else{s.left=z.cache.mouse.x}y.x="Left"}else{if(x.right){if(z.options.position.target!=="mouse"){s.left=v.position.left-A.dimensions.width}else{s.left=z.cache.mouse.x-A.dimensions.width}y.x="Right"}}if(x.top){if(z.options.position.target!=="mouse"){s.top=v.position.top+v.dimensions.height}else{s.top=z.cache.mouse.y}y.y="top"}else{if(x.bottom){if(z.options.position.target!=="mouse"){s.top=v.position.top-A.dimensions.height}else{s.top=z.cache.mouse.y-A.dimensions.height}y.y="bottom"}}if(s.left<0){s.left=u.left;y.x=false}if(s.top<0){s.top=u.top;y.y=false}if(z.options.style.tip.corner!==false){s.corner=new String(A.corner);if(y.x!==false){s.corner=s.corner.replace(/Left|Right|Middle/,y.x)}if(y.y!==false){s.corner=s.corner.replace(/top|bottom/,y.y)}if(s.corner!==z.elements.tip.attr("rel")){e.call(z,s.corner)}}return s}function q(u,t){var v,s;v=f.extend(true,{},u);for(s in v){if(t===true&&s.search(/(tip|classes)/i)!==-1){delete v[s]}else{if(!t&&s.search(/(width|border|tip|title|classes|user)/i)!==-1){delete v[s]}}}return v}function c(s){if(typeof s.tip!=="object"){s.tip={corner:s.tip}}if(typeof s.tip.size!=="object"){s.tip.size={width:s.tip.size,height:s.tip.size}}if(typeof s.border!=="object"){s.border={width:s.border}}if(typeof s.width!=="object"){s.width={value:s.width}}if(typeof s.width.max=="string"){s.width.max=parseInt(s.width.max.replace(/([0-9]+)/i,"$1"))}if(typeof s.width.min=="string"){s.width.min=parseInt(s.width.min.replace(/([0-9]+)/i,"$1"))}if(typeof s.tip.size.x=="number"){s.tip.size.width=s.tip.size.x;delete s.tip.size.x}if(typeof s.tip.size.y=="number"){s.tip.size.height=s.tip.size.y;delete s.tip.size.y}return s}function a(){var s,t,u,x,v,w;s=this;u=[true,{}];for(t=0;t0){v.tip.size.width+=1}if(v.tip.size.height%2>0){v.tip.size.height+=1}if(v.tip.corner===true){v.tip.corner=(s.options.position.corner.tooltip==="center")?false:s.options.position.corner.tooltip}return v}function b(v,u,t){var s={bottomRight:[[0,0],[u,t],[u,0]],bottomLeft:[[0,0],[u,0],[0,t]],topRight:[[0,t],[u,0],[u,t]],topLeft:[[0,0],[0,t],[u,t]],topMiddle:[[0,t],[u/2,0],[u,t]],bottomMiddle:[[0,0],[u,0],[u/2,t]],rightMiddle:[[0,0],[u,t/2],[0,t]],leftMiddle:[[u,0],[u,t],[0,t/2]]};s.leftTop=s.bottomRight;s.rightTop=s.bottomLeft;s.leftBottom=s.topRight;s.rightBottom=s.topLeft;return s[v]}function g(s){var t;if(f("").get(0).getContext){t={topLeft:[s,s],topRight:[0,s],bottomLeft:[s,0],bottomRight:[0,0]}}else{if(f.browser.msie){t={topLeft:[-90,90,0],topRight:[-90,90,-s],bottomLeft:[90,270,0],bottomRight:[90,270,-s]}}}return t}function k(){var s,t,u;s=this;u=s.getDimensions();t='';d.extend(x.prototype,{_scroll:function(){var b=this.qtip.elements.overlay;b&&(b[0].style.top=d(a).scrollTop()+"px")},init:function(c){var e=c.tooltip;d("select, object").length<1&&(this.bgiframe=c.elements.bgiframe=d(Bb).appendTo(e),c._bind(e,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=d("
",{id:S+"-rcontainer"}).appendTo(b.body),c.elements.overlay&&c.elements.overlay.addClass("qtipmodal-ie6fix")&&(c._bind(a,["scroll","resize"],this._scroll,this._ns,this),c._bind(e,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var a,b,c=this.qtip.tooltip,d={height:c.outerHeight(E),width:c.outerWidth(E)},e=this.qtip.plugins.tip,f=this.qtip.elements.tip;b=parseInt(c.css("borderLeftWidth"),10)||0,b={left:-b,top:-b},e&&f&&(a="x"===e.corner.precedance?[I,L]:[J,K],b[a[1]]-=f[a[0]]()),this.bgiframe.css(b).css(d)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var a,b,c,d,e=this.qtip.tooltip,f=this.qtip.options.style,g=this.qtip.options.position.container;return this.qtip.drawing=1,f.height&&e.css(J,f.height),f.width?e.css(I,f.width):(e.css(I,"").appendTo(this.redrawContainer),b=e.width(),1>b%2&&(b+=1),c=e.css("maxWidth")||"",d=e.css("minWidth")||"",a=(c+d).indexOf("%")>-1?g.width()/100:0,c=(c.indexOf("%")>-1?a:1)*parseInt(c,10)||b,d=(d.indexOf("%")>-1?a:1)*parseInt(d,10)||0,b=c+d?Math.min(Math.max(b,d),c):b,e.css(I,Math.round(b)).appendTo(g)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([a,this.qtip.tooltip],this._ns)}}),Ab=R.ie6=function(a){return 6===db.ie?new x(a):E},Ab.initialize="render",B.ie6={"^content|style$":function(){this.redraw()}}})}(window,document); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/js/wp-seo-admin-global.min.js b/wp-content/plugins/wordpress-seo/js/wp-seo-admin-global.min.js index a244fbf..c15ad19 100644 --- a/wp-content/plugins/wordpress-seo/js/wp-seo-admin-global.min.js +++ b/wp-content/plugins/wordpress-seo/js/wp-seo-admin-global.min.js @@ -1 +1 @@ -function wpseo_setIgnore(c,a,b){jQuery.post(ajaxurl,{action:"wpseo_set_ignore",option:c,_wpnonce:b},function(d){if(d){jQuery("#"+a).hide();jQuery("#hidden_ignore_"+c).val("ignore")}})}; \ No newline at end of file +function wpseo_setIgnore(a,b,c){jQuery.post(ajaxurl,{action:"wpseo_set_ignore",option:a,_wpnonce:c},function(c){c&&(jQuery("#"+b).hide(),jQuery("#hidden_ignore_"+a).val("ignore"))})} \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/js/wp-seo-admin-media.min.js b/wp-content/plugins/wordpress-seo/js/wp-seo-admin-media.min.js index 683cf60..90c3620 100644 --- a/wp-content/plugins/wordpress-seo/js/wp-seo-admin-media.min.js +++ b/wp-content/plugins/wordpress-seo/js/wp-seo-admin-media.min.js @@ -1 +1 @@ -jQuery(document).ready(function(a){var b;a(".wpseo_image_upload_button").click(function(c){wpseo_target_id=a(this).attr("id").replace(/_button$/,"");c.preventDefault();if(b){b.open();return}b=wp.media.frames.file_frame=wp.media({title:wpseoMediaL10n.choose_image,button:{text:wpseoMediaL10n.choose_image},multiple:false});b.on("select",function(){var d=b.state().get("selection").first().toJSON();a("#"+wpseo_target_id).val(d.url)});b.open()})}); \ No newline at end of file +jQuery(document).ready(function(a){var b;a(".wpseo_image_upload_button").click(function(c){return wpseo_target_id=a(this).attr("id").replace(/_button$/,""),c.preventDefault(),b?void b.open():(b=wp.media.frames.file_frame=wp.media({title:wpseoMediaL10n.choose_image,button:{text:wpseoMediaL10n.choose_image},multiple:!1}),b.on("select",function(){var c=b.state().get("selection").first().toJSON();a("#"+wpseo_target_id).val(c.url)}),void b.open())})}); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/js/wp-seo-admin.min.js b/wp-content/plugins/wordpress-seo/js/wp-seo-admin.min.js index 354bb41..6bc1d1a 100644 --- a/wp-content/plugins/wordpress-seo/js/wp-seo-admin.min.js +++ b/wp-content/plugins/wordpress-seo/js/wp-seo-admin.min.js @@ -1 +1 @@ -jQuery(document).ready(function(){jQuery(".screen-meta-toggle a").click(function(){jQuery("#sidebar-container").toggle()});jQuery("#enablexmlsitemap").change(function(){jQuery("#sitemapinfo").toggle(jQuery(this).is(":checked"))}).change();jQuery("#disable_author_sitemap").change(function(){jQuery("#xml_user_block").toggle(!jQuery(this).is(":checked"))}).change();jQuery("#cleanpermalinks").change(function(){jQuery("#cleanpermalinksdiv").toggle(jQuery(this).is(":checked"))}).change();jQuery("#wpseo-tabs").find("a").click(function(){jQuery("#wpseo-tabs").find("a").removeClass("nav-tab-active");jQuery(".wpseotab").removeClass("active");var b=jQuery(this).attr("id").replace("-tab","");jQuery("#"+b).addClass("active");jQuery(this).addClass("nav-tab-active")});var a=window.location.hash.replace("#top#","");if(a==""||a=="#_=_"){a=jQuery(".wpseotab").attr("id")}jQuery("#"+a).addClass("active");jQuery("#"+a+"-tab").addClass("nav-tab-active")});function setWPOption(c,d,a,b){jQuery.post(ajaxurl,{action:"wpseo_set_option",option:c,newval:d,_wpnonce:b},function(e){if(e){jQuery("#"+a).hide()}})}function wpseo_killBlockingFiles(a){jQuery.post(ajaxurl,{action:"wpseo_kill_blocking_files",_ajax_nonce:a},function(b){if(b=="success"){jQuery("#blocking_files").hide()}else{jQuery("#block_files").html(b)}})}function copy_home_meta(){jQuery("#og_frontpage_desc").val(jQuery("#meta_description").val())}; \ No newline at end of file +function setWPOption(a,b,c,d){jQuery.post(ajaxurl,{action:"wpseo_set_option",option:a,newval:b,_wpnonce:d},function(a){a&&jQuery("#"+c).hide()})}function wpseo_killBlockingFiles(a){jQuery.post(ajaxurl,{action:"wpseo_kill_blocking_files",_ajax_nonce:a},function(a){"success"==a?jQuery("#blocking_files").hide():jQuery("#block_files").html(a)})}function copy_home_meta(){jQuery("#og_frontpage_desc").val(jQuery("#meta_description").val())}jQuery(document).ready(function(){jQuery(".screen-meta-toggle a").click(function(){jQuery("#sidebar-container").toggle()}),jQuery("#enablexmlsitemap").change(function(){jQuery("#sitemapinfo").toggle(jQuery(this).is(":checked"))}).change(),jQuery("#disable_author_sitemap").change(function(){jQuery("#xml_user_block").toggle(!jQuery(this).is(":checked"))}).change(),jQuery("#cleanpermalinks").change(function(){jQuery("#cleanpermalinksdiv").toggle(jQuery(this).is(":checked"))}).change(),jQuery("#wpseo-tabs").find("a").click(function(){jQuery("#wpseo-tabs").find("a").removeClass("nav-tab-active"),jQuery(".wpseotab").removeClass("active");var a=jQuery(this).attr("id").replace("-tab","");jQuery("#"+a).addClass("active"),jQuery(this).addClass("nav-tab-active")});var a=window.location.hash.replace("#top#","");(""==a||"#_=_"==a)&&(a=jQuery(".wpseotab").attr("id")),jQuery("#"+a).addClass("active"),jQuery("#"+a+"-tab").addClass("nav-tab-active")}); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.js b/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.js index 7286da8..2b53a72 100644 --- a/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.js +++ b/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.js @@ -1,201 +1,164 @@ -jQuery(document).ready( function() { +var bulk_editor = function (current_table) { - var existing_title_id = "#wpseo-existing-title-"; - var new_title_id = "#wpseo-new-title-"; - var new_title_class = ".wpseo-new-title"; + var new_class = current_table.find('[class^=wpseo-new]').first().attr('class'); + var new_id = '#' + new_class + '-'; + var existing_id = new_id.replace('new', 'existing'); + var column_value = current_table.find('th[id^=col_existing_yoast]').first().text().replace('Existing ', ''); - var existing_metadesc_id = "#wpseo-existing-metadesc-"; - var new_metadesc_id = "#wpseo-new-metadesc-"; - var new_metadesc_class = ".wpseo-new-metadesc"; + var save_method = new_class.replace('-new-', '_save_'); + var save_all_method = 'wpseo_save_all_' + current_table.attr('class').split('wpseo_bulk_')[1]; - var current_element = null; + var bulk_type = save_method.replace('wpseo_save_', ''); - var handle_response = function( response, status ) { - if (status != "success") { return; } + var options = { + new_class : '.' + new_class, + new_id : new_id, + existing_id: existing_id + }; - var resp = response; + var instance = { - if (typeof resp == "string") { - resp = JSON.parse( resp ); - } + submit_new: function (id, element) { - if ( resp instanceof Array ) { - jQuery.each( resp, function() { - handle_response( this, status ); - }); - } - else { - if ( resp.status == 'success' ) { - if ( jQuery(current_element).closest( '.wpseo_bulk_titles' ).length ) { - jQuery( existing_title_id + resp.post_id ).html( resp.new_title.replace(/\\(?!\\)/g, '') ); - jQuery( new_title_id + resp.post_id ).val( '' ).focus(); - } - else if ( jQuery(current_element).closest( '.wpseo_bulk_descriptions').length ) { - jQuery( existing_metadesc_id + resp.post_id ).html( resp.new_metadesc.replace(/\\(?!\\)/g, '') ); - jQuery( new_metadesc_id + resp.post_id ).val( '' ).focus(); - } + var new_target = options.new_id + id; + var existing_target = options.existing_id + id; + + if (jQuery(options.new_id + id).prop('type') == 'select-one') { + var new_value = jQuery(new_target).find(':selected').text(); + } else { + var new_value = jQuery(new_target).val(); + } + + var current_value = jQuery(existing_target).html(); + + if (new_value == current_value) { + jQuery(new_target).val('').focus(); } else { - alert( "Failure"); + + if (( new_value == '' ) && !confirm("Are you sure you want to remove the existing " + column_value + "?")) { + jQuery(new_target).focus(); + jQuery(new_target).val('').focus(); + return; + } + + var data = { + action : save_method, + _ajax_nonce : wpseo_bulk_editor_nonce, + wpseo_post_id : id, + new_value : new_value, + existing_value: current_value + }; + + jQuery.post(ajaxurl, data, instance.handle_response); } - } - }; - var handle_responses = function( responses ) { - var resps = jQuery.parseJSON( responses ); - jQuery.each( resps, function() { - handle_response( this ); - }); - }; + }, - var submit_new = function( id , element) { - - current_element = element; - - if ( jQuery(current_element).closest( '.wpseo_bulk_titles' ).length == 1 ) { - submit_new_title( id ); - } - else if ( jQuery(current_element).closest( '.wpseo_bulk_descriptions').length == 1 ) { - submit_new_metadesc( id ); - } - }; - - var submit_new_title = function( id ) { - var data = { - 'action': 'wpseo_save_title', - '_ajax_nonce' : wpseo_bulk_editor_nonce, - 'wpseo_post_id': id, - 'new_title' : jQuery( new_title_id + id ).val(), - 'existing_title' : jQuery( existing_title_id + id ).html() - }; - - if ( data.new_title == data.existing_title ) { - jQuery( new_title_id + id ).val('').focus(); - } - else { - if ( ( data.new_title == '' ) && !confirm( "Are you sure you want to remove the existing Yoast SEO Title?" ) ) { - jQuery( new_title_id + id ).focus(); - return; - } - jQuery.post( ajaxurl, data, handle_response ); - } - }; - - var submit_new_metadesc = function( id ) { - var data = { - 'action': 'wpseo_save_desc', - '_ajax_nonce' : wpseo_bulk_editor_nonce, - 'wpseo_post_id': id, - 'new_metadesc' : jQuery( new_metadesc_id + id ).val(), - 'existing_metadesc' : jQuery( existing_metadesc_id + id ).html() - }; - - if ( data.new_metadesc == data.existing_metadesc ) { - jQuery( new_metadesc_id + id ).val('').focus(); - } - else { - if ( data.new_metadesc == '' && !confirm( "Are you sure you want to remove the existing Yoast SEO Description?" ) ) { - jQuery( data.new_metadesc + id ).focus(); - return; - } - jQuery.post( ajaxurl, data, handle_response ); - } - }; - - jQuery.each( jQuery( new_title_class + ', ' + new_metadesc_class ), function() { - jQuery(this).keypress( function(event) { - if ( event.which == 13 ) { - event.preventDefault(); - var id = jQuery(this).data('id'); - submit_new( id ); - } - }); - }); - - jQuery.each( jQuery('.wpseo-save'), function() { - jQuery(this).click( function() { - var id = jQuery(this).data('id'); - submit_new( id, this ); - }); - }); - - jQuery.each( jQuery('.wpseo-save-all'), function() { - var save_all_titles = function(e) { - e.preventDefault(); - - current_element = this; + submit_all: function (event) { + event.preventDefault(); var data = { - 'action': 'wpseo_save_all_titles', - '_ajax_nonce' : wpseo_bulk_editor_nonce + 'action' : save_all_method, + '_ajax_nonce': wpseo_bulk_editor_nonce }; data.send = false; - data.titles = {}; - data.existing_titles = {}; + data.items = {}; + data.existing_items = {}; - jQuery.each( jQuery( new_title_class ), function() { + jQuery(options.new_class).each(function () { var id = jQuery(this).data('id'); var value = jQuery(this).val(); - var existing_title = jQuery( existing_title_id + id ).html(); + var existing_value = jQuery(options.existing_id + id).html(); - if ( value != '' ) { - if ( value == existing_title ) { - jQuery( new_title_id + id ).val('').focus(); + if (value != '') { + if (value == existing_value) { + jQuery(options.new_id + id).val('').focus(); } else { data.send = true; - data.titles[ id ] = value; - data.existing_titles[ id ] = existing_title; + data.items[id] = value; + data.existing_items[id] = existing_value; } } }); - if ( data.send ) { - jQuery.post( ajaxurl, data, handle_response ); + if (data.send) { + jQuery.post(ajaxurl, data, instance.handle_responses); } - }; + }, - var save_all_metadescs = function(e) { - e.preventDefault(); + handle_response: function (response, status) { + if (status != "success") { + return; + } - current_element = this; - var data = { - 'action': 'wpseo_save_all_descs', - '_ajax_nonce' : wpseo_bulk_editor_nonce - }; + var resp = response; + if (typeof resp == "string") { + resp = JSON.parse(resp); + } - data.send = false; - data.metadescs = {}; - data.existing_metadescs = {}; + if (resp instanceof Array) { + jQuery.each(resp, function () { + instance.handle_response(this, status); + }); + } + else { + if (resp.status == 'success') { + var new_value = resp['new_' + bulk_type]; - jQuery.each( jQuery( new_metadesc_class ), function() { - var id = jQuery(this).data('id'); - var value = jQuery(this).val(); - var existing_metadesc = jQuery( existing_metadesc_id + id ).html(); - - if ( value != '' ) { - if ( value == existing_metadesc ) { - jQuery( new_metadesc_id + id ).val('').focus(); - } - else { - data.send = true; - data.metadescs[ id ] = value; - data.existing_metadescs[ id ] = existing_metadesc; - } + jQuery(options.existing_id + resp.post_id).html(new_value.replace(/\\(?!\\)/g, '')); + jQuery(options.new_id + resp.post_id).val('').focus(); } + else { + alert("Failure"); + } + } + }, + + handle_responses: function (responses, status) { + var resps = jQuery.parseJSON(responses); + jQuery.each(resps, function () { + instance.handle_response(this, status); + }); + }, + + set_events: function () { + current_table.find('.wpseo-save').click(function () { + var id = jQuery(this).data('id'); + instance.submit_new(id, this); }); - if ( data.send ) { - jQuery.post( ajaxurl, data, handle_response ); - } - }; + current_table.find('.wpseo-save-all').click(instance.submit_all); - if ( jQuery(this).closest( '.wpseo_bulk_titles' ).length ) { - jQuery(this).on( 'click', save_all_titles ); + current_table.find(options.new_class).keypress( + function (event) { + if (event.which == 13) { + event.preventDefault(); + var id = jQuery(this).data('id'); + instance.submit_new(id, this); + } + + } + ); } - else if ( jQuery(this).closest( '.wpseo_bulk_descriptions').length ) { - jQuery(this).on( 'click', save_all_metadescs ); + } + + return instance; + +} + +jQuery(document).ready(function () { + var parent_tables = jQuery('table[class*="wpseo_bulk"]'); + parent_tables.each( + function (number, parent_table) { + var current_table = jQuery(parent_table); + var bulk_edit = bulk_editor(current_table); + + bulk_edit.set_events(); + } - }); -}); + ); + +}); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.min.js b/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.min.js index 312d687..8fee82b 100644 --- a/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.min.js +++ b/wp-content/plugins/wordpress-seo/js/wp-seo-bulk-editor.min.js @@ -1 +1 @@ -jQuery(document).ready(function(){var g="#wpseo-existing-title-";var j="#wpseo-new-title-";var i=".wpseo-new-title";var k="#wpseo-existing-metadesc-";var l="#wpseo-new-metadesc-";var f=".wpseo-new-metadesc";var e=null;var c=function(n,m){if(m!="success"){return}var o=n;if(typeof o=="string"){o=JSON.parse(o)}if(o instanceof Array){jQuery.each(o,function(){c(this,m)})}else{if(o.status=="success"){if(jQuery(e).closest(".wpseo_bulk_titles").length){jQuery(g+o.post_id).html(o.new_title.replace(/\\(?!\\)/g,""));jQuery(j+o.post_id).val("").focus()}else{if(jQuery(e).closest(".wpseo_bulk_descriptions").length){jQuery(k+o.post_id).html(o.new_metadesc.replace(/\\(?!\\)/g,""));jQuery(l+o.post_id).val("").focus()}}}else{alert("Failure")}}};var b=function(n){var m=jQuery.parseJSON(n);jQuery.each(m,function(){c(this)})};var h=function(n,m){e=m;if(jQuery(e).closest(".wpseo_bulk_titles").length==1){d(n)}else{if(jQuery(e).closest(".wpseo_bulk_descriptions").length==1){a(n)}}};var d=function(n){var m={action:"wpseo_save_title",_ajax_nonce:wpseo_bulk_editor_nonce,wpseo_post_id:n,new_title:jQuery(j+n).val(),existing_title:jQuery(g+n).html()};if(m.new_title==m.existing_title){jQuery(j+n).val("").focus()}else{if((m.new_title=="")&&!confirm("Are you sure you want to remove the existing Yoast SEO Title?")){jQuery(j+n).focus();return}jQuery.post(ajaxurl,m,c)}};var a=function(n){var m={action:"wpseo_save_desc",_ajax_nonce:wpseo_bulk_editor_nonce,wpseo_post_id:n,new_metadesc:jQuery(l+n).val(),existing_metadesc:jQuery(k+n).html()};if(m.new_metadesc==m.existing_metadesc){jQuery(l+n).val("").focus()}else{if(m.new_metadesc==""&&!confirm("Are you sure you want to remove the existing Yoast SEO Description?")){jQuery(m.new_metadesc+n).focus();return}jQuery.post(ajaxurl,m,c)}};jQuery.each(jQuery(i+", "+f),function(){jQuery(this).keypress(function(m){if(m.which==13){m.preventDefault();var n=jQuery(this).data("id");h(n)}})});jQuery.each(jQuery(".wpseo-save"),function(){jQuery(this).click(function(){var m=jQuery(this).data("id");h(m,this)})});jQuery.each(jQuery(".wpseo-save-all"),function(){var m=function(p){p.preventDefault();e=this;var o={action:"wpseo_save_all_titles",_ajax_nonce:wpseo_bulk_editor_nonce};o.send=false;o.titles={};o.existing_titles={};jQuery.each(jQuery(i),function(){var s=jQuery(this).data("id");var r=jQuery(this).val();var q=jQuery(g+s).html();if(r!=""){if(r==q){jQuery(j+s).val("").focus()}else{o.send=true;o.titles[s]=r;o.existing_titles[s]=q}}});if(o.send){jQuery.post(ajaxurl,o,c)}};var n=function(p){p.preventDefault();e=this;var o={action:"wpseo_save_all_descs",_ajax_nonce:wpseo_bulk_editor_nonce};o.send=false;o.metadescs={};o.existing_metadescs={};jQuery.each(jQuery(f),function(){var s=jQuery(this).data("id");var r=jQuery(this).val();var q=jQuery(k+s).html();if(r!=""){if(r==q){jQuery(l+s).val("").focus()}else{o.send=true;o.metadescs[s]=r;o.existing_metadescs[s]=q}}});if(o.send){jQuery.post(ajaxurl,o,c)}};if(jQuery(this).closest(".wpseo_bulk_titles").length){jQuery(this).on("click",m)}else{if(jQuery(this).closest(".wpseo_bulk_descriptions").length){jQuery(this).on("click",n)}}})}); \ No newline at end of file +var bulk_editor=function(a){var b=a.find("[class^=wpseo-new]").first().attr("class"),c="#"+b+"-",d=c.replace("new","existing"),e=a.find("th[id^=col_existing_yoast]").first().text().replace("Existing ",""),f=b.replace("-new-","_save_"),g="wpseo_save_all_"+a.attr("class").split("wpseo_bulk_")[1],h=f.replace("wpseo_save_",""),i={new_class:"."+b,new_id:c,existing_id:d},j={submit_new:function(a){var b=i.new_id+a,c=i.existing_id+a;if("select-one"==jQuery(i.new_id+a).prop("type"))var d=jQuery(b).find(":selected").text();else var d=jQuery(b).val();var g=jQuery(c).html();if(d==g)jQuery(b).val("").focus();else{if(""==d&&!confirm("Are you sure you want to remove the existing "+e+"?"))return jQuery(b).focus(),void jQuery(b).val("").focus();var h={action:f,_ajax_nonce:wpseo_bulk_editor_nonce,wpseo_post_id:a,new_value:d,existing_value:g};jQuery.post(ajaxurl,h,j.handle_response)}},submit_all:function(a){a.preventDefault();var b={action:g,_ajax_nonce:wpseo_bulk_editor_nonce};b.send=!1,b.items={},b.existing_items={},jQuery(i.new_class).each(function(){var a=jQuery(this).data("id"),c=jQuery(this).val(),d=jQuery(i.existing_id+a).html();""!=c&&(c==d?jQuery(i.new_id+a).val("").focus():(b.send=!0,b.items[a]=c,b.existing_items[a]=d))}),b.send&&jQuery.post(ajaxurl,b,j.handle_responses)},handle_response:function(a,b){if("success"==b){var c=a;if("string"==typeof c&&(c=JSON.parse(c)),c instanceof Array)jQuery.each(c,function(){j.handle_response(this,b)});else if("success"==c.status){var d=c["new_"+h];jQuery(i.existing_id+c.post_id).html(d.replace(/\\(?!\\)/g,"")),jQuery(i.new_id+c.post_id).val("").focus()}else alert("Failure")}},handle_responses:function(a,b){var c=jQuery.parseJSON(a);jQuery.each(c,function(){j.handle_response(this,b)})},set_events:function(){a.find(".wpseo-save").click(function(){var a=jQuery(this).data("id");j.submit_new(a,this)}),a.find(".wpseo-save-all").click(j.submit_all),a.find(i.new_class).keypress(function(a){if(13==a.which){a.preventDefault();var b=jQuery(this).data("id");j.submit_new(b,this)}})}};return j};jQuery(document).ready(function(){var a=jQuery('table[class*="wpseo_bulk"]');a.each(function(a,b){var c=jQuery(b),d=bulk_editor(c);d.set_events()})}); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.js b/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.js index 4a21809..0445d80 100644 --- a/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.js +++ b/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.js @@ -218,6 +218,8 @@ function yst_updateTitle(force) { var placeholder_title = divHtml.html(title).text(); titleElm.attr('placeholder', placeholder_title); + title = yst_clean(title); + // and now the snippet preview title title = yst_boldKeywords(title, false); @@ -466,30 +468,36 @@ jQuery(document).ready(function () { }); - jQuery(".yoast_help").qtip({ - position: { - corner: { - target : 'topMiddle', - tooltip: 'bottomLeft' + + jQuery(".yoast_help").qtip( + { + content: { + attr: 'alt' + }, + position: { + my: 'bottom left', + at: 'top center' + }, + style : { + tip: { + corner: true + }, + classes : 'yoast-qtip qtip-rounded qtip-blue' + }, + show : { + when: { + event: 'mouseover' + } + }, + hide : { + fixed: true, + when : { + event: 'mouseout' + } } - }, - show : { - when: { - event: 'mouseover' - } - }, - hide : { - fixed: true, - when : { - event: 'mouseout' - } - }, - style : { - tip : 'bottomLeft', - name: 'blue' + } - }); + ); yst_updateSnippet(); - }); diff --git a/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.min.js b/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.min.js index c63232d..d8a0a67 100644 --- a/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.min.js +++ b/wp-content/plugins/wordpress-seo/js/wp-seo-metabox.min.js @@ -1 +1 @@ -function yst_clean(b){if(b==""||b==undefined){return""}try{b=jQuery("
").html(b).text();b=b.replace(/<\/?[^>]+>/gi,"");b=b.replace(/\[(.+?)\](.+?\[\/\\1\])?/g,"")}catch(a){}return b}function ptest(c,b){c=yst_clean(c);c=c.toLowerCase();var a=c.match(b);if(a!=null){return'Yes ('+a.length+")"}else{return'No'}}function removeLowerCaseDiacritics(d){var a=[{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}];var c;if(!c){c=a}for(var b=0;b";f+="
    ";if(jQuery("#title").length){f+="
  • "+wpseoMetaboxL10n.article_header_text+ptest(jQuery("#title").val(),b)+"
  • "}f+="
  • "+wpseoMetaboxL10n.page_title_text+ptest(jQuery("#wpseosnippet_title").text(),b)+"
  • ";f+="
  • "+wpseoMetaboxL10n.page_url_text+ptest(a,h)+"
  • ";if(jQuery("#content").length){f+="
  • "+wpseoMetaboxL10n.content_text+ptest(jQuery("#content").val(),b)+"
  • "}f+="
  • "+wpseoMetaboxL10n.meta_description_text+ptest(j,b)+"
  • ";f+="
";d.html(f)}else{d.html("")}}function yst_replaceVariables(d,e){if(typeof d==="undefined"){return""}if(jQuery("#title").length){d=d.replace(/%%title%%/g,jQuery("#title").val())}d=d.replace(/%%sitedesc%%/g,wpseoMetaboxL10n.sitedesc);d=d.replace(/%%sitename%%/g,wpseoMetaboxL10n.sitename);d=d.replace(/%%sep%%/g,wpseoMetaboxL10n.sep);d=d.replace(/%%date%%/g,wpseoMetaboxL10n.date);d=d.replace(/%%id%%/g,wpseoMetaboxL10n.id);d=d.replace(/%%page%%/g,wpseoMetaboxL10n.page);d=d.replace(/%%currenttime%%/g,wpseoMetaboxL10n.currenttime);d=d.replace(/%%currentdate%%/g,wpseoMetaboxL10n.currentdate);d=d.replace(/%%currentday%%/g,wpseoMetaboxL10n.currentday);d=d.replace(/%%currentmonth%%/g,wpseoMetaboxL10n.currentmonth);d=d.replace(/%%currentyear%%/g,wpseoMetaboxL10n.currentyear);d=d.replace(/%%focuskw%%/g,jQuery("#yoast_wpseo_focuskw").val());var a="";if(jQuery("#excerpt").length){a=yst_clean(jQuery("#excerpt").val());d=d.replace(/%%excerpt_only%%/g,a)}if(""==a&&jQuery("#content").length){a=jQuery("#content").val().replace(/(<([^>]+)>)/ig,"").substring(0,wpseoMetaboxL10n.wpseo_meta_desc_length-1)}d=d.replace(/%%excerpt%%/g,a);if(jQuery("#parent_id").length&&jQuery("#parent_id option:selected").text()!=wpseoMetaboxL10n.no_parent_text){d=d.replace(/%%parent_title%%/g,jQuery("#parent_id option:selected").text())}var b=yst_escapeFocusKw(wpseoMetaboxL10n.sep);var c=new RegExp(b+" "+b,"g");d=d.replace(c,wpseoMetaboxL10n.sep);if(d.indexOf("%%")!=-1&&d.match(/%%[a-z0-9_-]+%%/i)!=null){regex=/%%[a-z0-9_-]+%%/gi;matches=d.match(regex);for(i=0;i");var a=jQuery("#wpseosnippet_title");if(c.val()){f=c.val()}else{f=wpseoMetaboxL10n.wpseo_title_template;f=e.html(f).text()}if(f==""){a.html("");b.hide();return}f=yst_clean(f);f=jQuery.trim(f);f=e.text(f).html();if(d){c.val(f)}f=yst_replaceVariables(f,function(j){var g=e.html(j).text();c.attr("placeholder",g);j=yst_boldKeywords(j,false);jQuery("#wpseosnippet_title").html(j);var h=document.getElementById("wpseosnippet_title");if(h!=null){if(h.scrollWidth>h.clientWidth){b.show()}else{b.hide()}}yst_testFocusKw()})}function yst_updateDesc(){var e=jQuery.trim(yst_clean(jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc").val()));var d=jQuery("
");var c=jQuery("#wpseosnippet");if(e==""&&wpseoMetaboxL10n.wpseo_metadesc_template!=""){e=wpseoMetaboxL10n.wpseo_metadesc_template}if(e!=""){e=yst_replaceVariables(e,function(g){g=d.text(g).html();g=yst_clean(g);var f=-1;f=wpseoMetaboxL10n.wpseo_meta_desc_length-g.length;if(f<0){f=''+f+""}else{f=''+f+""}jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc-length").html(f);g=yst_trimDesc(g);g=yst_boldKeywords(g,false);c.find(".desc span.autogen").html("");c.find(".desc span.content").html(g);yst_testFocusKw()})}else{c.find(".desc span.content").html("");yst_testFocusKw();if(jQuery("#content").length){e=jQuery("#content").val();e=yst_clean(e)}var b=yst_escapeFocusKw(jQuery.trim(jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").val()));if(b!=""){var a=new RegExp(b,"gim");if(e.search(a)!=-1&&e.length>wpseoMetaboxL10n.wpseo_meta_desc_length){e=e.substr(e.search(a),wpseoMetaboxL10n.wpseo_meta_desc_length)}else{e=e.substr(0,wpseoMetaboxL10n.wpseo_meta_desc_length)}}else{e=e.substr(0,wpseoMetaboxL10n.wpseo_meta_desc_length)}e=yst_boldKeywords(e,false);e=yst_trimDesc(e);c.find(".desc span.autogen").html(e)}}function yst_trimDesc(b){if(b.length>wpseoMetaboxL10n.wpseo_meta_desc_length){var a;if(b.length>wpseoMetaboxL10n.wpseo_meta_desc_length){a=b.lastIndexOf(" ",(wpseoMetaboxL10n.wpseo_meta_desc_length-3))}else{a=wpseoMetaboxL10n.wpseo_meta_desc_length}b=b.substring(0,a).concat(" ...")}return b}function yst_updateURL(){if(jQuery("#editable-post-name-full").length){var b=jQuery("#editable-post-name-full").text();var a=wpseoMetaboxL10n.wpseo_permalink_template.replace("%postname%",b).replace("http://","")}a=yst_boldKeywords(a,true);jQuery("#wpseosnippet").find(".url").html(a);yst_testFocusKw()}function yst_boldKeywords(g,b){var a=yst_escapeFocusKw(jQuery.trim(jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").val()));var e;if(a==""){return g}if(a.search(" ")!=-1){e=a.split(" ")}else{e=new Array(a)}for(var d=0;d$2$3")}}return g}function yst_updateSnippet(){yst_updateURL();yst_updateTitle();yst_updateDesc()}function yst_escapeFocusKw(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var delay=(function(){var a=0;return function(c,b){clearTimeout(a);a=setTimeout(c,b)}})();jQuery(document).ready(function(){replacedVars=new Array();if(jQuery(".wpseo-metabox-tabs-div").length>0){var a=window.location.hash;if(a==""||a.search("wpseo")==-1){a="general"}else{a=a.replace("#wpseo_","")}jQuery("."+a).addClass("active");var f=jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc");var e=jQuery.trim(yst_clean(f.val()));e=jQuery("
").html(e).text();f.val(e);jQuery("a.wpseo_tablink").click(function(){jQuery(".wpseo-metabox-tabs li").removeClass("active");jQuery(".wpseotab").removeClass("active");var h=jQuery(this).attr("href").replace("#wpseo_","");jQuery("."+h).addClass("active");jQuery(this).parent().addClass("active");if(jQuery(this).hasClass("scroll")){var g=jQuery(this).attr("href").replace("wpseo_","");jQuery("html, body").animate({scrollTop:jQuery(g).offset().top},500)}})}jQuery(".wpseo-heading").hide();jQuery(".wpseo-metabox-tabs").show();var b={},c;jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").autocomplete({minLength:3,formatResult:function(g){return jQuery("
").html(g).html()},source:function(j,g){var h=j.term;if(h in b){g(b[h]);return}j._ajax_nonce=wpseoMetaboxL10n.wpseo_keyword_suggest_nonce;j.action="wpseo_get_suggest";c=jQuery.getJSON(ajaxurl,j,function(l,k,m){b[h]=l;if(m===c){g(l)}return})}});jQuery("#"+wpseoMetaboxL10n.field_prefix+"title").keyup(function(){yst_updateTitle()});jQuery("#title").keyup(function(){yst_updateTitle();yst_updateDesc()});jQuery("#parent_id").change(function(){yst_updateTitle();yst_updateDesc()});jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc").keyup(function(){yst_updateDesc()});jQuery("#excerpt").keyup(function(){yst_updateDesc()});jQuery("#content").focusout(function(){yst_updateDesc()});var d=false;jQuery(document).on("change","#"+wpseoMetaboxL10n.field_prefix+"focuskw",function(){var g=jQuery("#focuskwhelp");if(jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").val().search(",")!=-1){g.click();d=true}else{if(d){g.qtip("hide");d=false}}yst_updateSnippet()});jQuery(".yoast_help").qtip({position:{corner:{target:"topMiddle",tooltip:"bottomLeft"}},show:{when:{event:"mouseover"}},hide:{fixed:true,when:{event:"mouseout"}},style:{tip:"bottomLeft",name:"blue"}});yst_updateSnippet()}); \ No newline at end of file +function yst_clean(a){if(""==a||void 0==a)return"";try{a=jQuery("
").html(a).text(),a=a.replace(/<\/?[^>]+>/gi,""),a=a.replace(/\[(.+?)\](.+?\[\/\\1\])?/g,"")}catch(b){}return a}function ptest(a,b){a=yst_clean(a),a=a.toLowerCase();var c=a.match(b);return null!=c?'Yes ('+c.length+")":'No'}function removeLowerCaseDiacritics(a){var b,c=[{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}];b||(b=c);for(var d=0;d";i+="
    ",jQuery("#title").length&&(i+="
  • "+wpseoMetaboxL10n.article_header_text+ptest(jQuery("#title").val(),d)+"
  • "),i+="
  • "+wpseoMetaboxL10n.page_title_text+ptest(jQuery("#wpseosnippet_title").text(),d)+"
  • ",i+="
  • "+wpseoMetaboxL10n.page_url_text+ptest(c,f)+"
  • ",jQuery("#content").length&&(i+="
  • "+wpseoMetaboxL10n.content_text+ptest(jQuery("#content").val(),d)+"
  • "),i+="
  • "+wpseoMetaboxL10n.meta_description_text+ptest(h,d)+"
  • ",i+="
",g.html(i)}else g.html("")}function yst_replaceVariables(a,b){if("undefined"==typeof a)return"";jQuery("#title").length&&(a=a.replace(/%%title%%/g,jQuery("#title").val())),a=a.replace(/%%sitedesc%%/g,wpseoMetaboxL10n.sitedesc),a=a.replace(/%%sitename%%/g,wpseoMetaboxL10n.sitename),a=a.replace(/%%sep%%/g,wpseoMetaboxL10n.sep),a=a.replace(/%%date%%/g,wpseoMetaboxL10n.date),a=a.replace(/%%id%%/g,wpseoMetaboxL10n.id),a=a.replace(/%%page%%/g,wpseoMetaboxL10n.page),a=a.replace(/%%currenttime%%/g,wpseoMetaboxL10n.currenttime),a=a.replace(/%%currentdate%%/g,wpseoMetaboxL10n.currentdate),a=a.replace(/%%currentday%%/g,wpseoMetaboxL10n.currentday),a=a.replace(/%%currentmonth%%/g,wpseoMetaboxL10n.currentmonth),a=a.replace(/%%currentyear%%/g,wpseoMetaboxL10n.currentyear),a=a.replace(/%%focuskw%%/g,jQuery("#yoast_wpseo_focuskw").val());var c="";jQuery("#excerpt").length&&(c=yst_clean(jQuery("#excerpt").val()),a=a.replace(/%%excerpt_only%%/g,c)),""==c&&jQuery("#content").length&&(c=jQuery("#content").val().replace(/(<([^>]+)>)/gi,"").substring(0,wpseoMetaboxL10n.wpseo_meta_desc_length-1)),a=a.replace(/%%excerpt%%/g,c),jQuery("#parent_id").length&&jQuery("#parent_id option:selected").text()!=wpseoMetaboxL10n.no_parent_text&&(a=a.replace(/%%parent_title%%/g,jQuery("#parent_id option:selected").text()));var d=yst_escapeFocusKw(wpseoMetaboxL10n.sep),e=new RegExp(d+" "+d,"g");if(a=a.replace(e,wpseoMetaboxL10n.sep),-1!=a.indexOf("%%")&&null!=a.match(/%%[a-z0-9_-]+%%/i))for(regex=/%%[a-z0-9_-]+%%/gi,matches=a.match(regex),i=0;i"),f=jQuery("#wpseosnippet_title");return c.val()?b=c.val():(b=wpseoMetaboxL10n.wpseo_title_template,b=e.html(b).text()),""==b?(f.html(""),void d.hide()):(b=yst_clean(b),b=jQuery.trim(b),b=e.text(b).html(),a&&c.val(b),void(b=yst_replaceVariables(b,function(a){var b=e.html(a).text();c.attr("placeholder",b),a=yst_clean(a),a=yst_boldKeywords(a,!1),jQuery("#wpseosnippet_title").html(a);var f=document.getElementById("wpseosnippet_title");null!=f&&(f.scrollWidth>f.clientWidth?d.show():d.hide()),yst_testFocusKw()})))}function yst_updateDesc(){var a=jQuery.trim(yst_clean(jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc").val())),b=jQuery("
"),c=jQuery("#wpseosnippet");if(""==a&&""!=wpseoMetaboxL10n.wpseo_metadesc_template&&(a=wpseoMetaboxL10n.wpseo_metadesc_template),""!=a)a=yst_replaceVariables(a,function(a){a=b.text(a).html(),a=yst_clean(a);var d=-1;d=wpseoMetaboxL10n.wpseo_meta_desc_length-a.length,d=0>d?''+d+"":''+d+"",jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc-length").html(d),a=yst_trimDesc(a),a=yst_boldKeywords(a,!1),c.find(".desc span.autogen").html(""),c.find(".desc span.content").html(a),yst_testFocusKw()});else{c.find(".desc span.content").html(""),yst_testFocusKw(),jQuery("#content").length&&(a=jQuery("#content").val(),a=yst_clean(a));var d=yst_escapeFocusKw(jQuery.trim(jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").val()));if(""!=d){var e=new RegExp(d,"gim");a=-1!=a.search(e)&&a.length>wpseoMetaboxL10n.wpseo_meta_desc_length?a.substr(a.search(e),wpseoMetaboxL10n.wpseo_meta_desc_length):a.substr(0,wpseoMetaboxL10n.wpseo_meta_desc_length)}else a=a.substr(0,wpseoMetaboxL10n.wpseo_meta_desc_length);a=yst_boldKeywords(a,!1),a=yst_trimDesc(a),c.find(".desc span.autogen").html(a)}}function yst_trimDesc(a){if(a.length>wpseoMetaboxL10n.wpseo_meta_desc_length){var b;b=a.length>wpseoMetaboxL10n.wpseo_meta_desc_length?a.lastIndexOf(" ",wpseoMetaboxL10n.wpseo_meta_desc_length-3):wpseoMetaboxL10n.wpseo_meta_desc_length,a=a.substring(0,b).concat(" ...")}return a}function yst_updateURL(){if(jQuery("#editable-post-name-full").length)var a=jQuery("#editable-post-name-full").text(),b=wpseoMetaboxL10n.wpseo_permalink_template.replace("%postname%",a).replace("http://","");b=yst_boldKeywords(b,!0),jQuery("#wpseosnippet").find(".url").html(b),yst_testFocusKw()}function yst_boldKeywords(a,b){var c,d=yst_escapeFocusKw(jQuery.trim(jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").val()));if(""==d)return a;c=-1!=d.search(" ")?d.split(" "):new Array(d);for(var e=0;e$2$3"))}return a}function yst_updateSnippet(){yst_updateURL(),yst_updateTitle(),yst_updateDesc()}function yst_escapeFocusKw(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var delay=function(){var a=0;return function(b,c){clearTimeout(a),a=setTimeout(b,c)}}();jQuery(document).ready(function(){if(replacedVars=new Array,jQuery(".wpseo-metabox-tabs-div").length>0){var a=window.location.hash;a=""==a||-1==a.search("wpseo")?"general":a.replace("#wpseo_",""),jQuery("."+a).addClass("active");var b=jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc"),c=jQuery.trim(yst_clean(b.val()));c=jQuery("
").html(c).text(),b.val(c),jQuery("a.wpseo_tablink").click(function(){jQuery(".wpseo-metabox-tabs li").removeClass("active"),jQuery(".wpseotab").removeClass("active");var a=jQuery(this).attr("href").replace("#wpseo_","");if(jQuery("."+a).addClass("active"),jQuery(this).parent().addClass("active"),jQuery(this).hasClass("scroll")){var b=jQuery(this).attr("href").replace("wpseo_","");jQuery("html, body").animate({scrollTop:jQuery(b).offset().top},500)}})}jQuery(".wpseo-heading").hide(),jQuery(".wpseo-metabox-tabs").show();var d,e={};jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").autocomplete({minLength:3,formatResult:function(a){return jQuery("
").html(a).html()},source:function(a,b){var c=a.term;return c in e?void b(e[c]):(a._ajax_nonce=wpseoMetaboxL10n.wpseo_keyword_suggest_nonce,a.action="wpseo_get_suggest",void(d=jQuery.getJSON(ajaxurl,a,function(a,f,g){e[c]=a,g===d&&b(a)})))}}),jQuery("#"+wpseoMetaboxL10n.field_prefix+"title").keyup(function(){yst_updateTitle()}),jQuery("#title").keyup(function(){yst_updateTitle(),yst_updateDesc()}),jQuery("#parent_id").change(function(){yst_updateTitle(),yst_updateDesc()}),jQuery("#"+wpseoMetaboxL10n.field_prefix+"metadesc").keyup(function(){yst_updateDesc()}),jQuery("#excerpt").keyup(function(){yst_updateDesc()}),jQuery("#content").focusout(function(){yst_updateDesc()});var f=!1;jQuery(document).on("change","#"+wpseoMetaboxL10n.field_prefix+"focuskw",function(){var a=jQuery("#focuskwhelp");-1!=jQuery("#"+wpseoMetaboxL10n.field_prefix+"focuskw").val().search(",")?(a.click(),f=!0):f&&(a.qtip("hide"),f=!1),yst_updateSnippet()}),jQuery(".yoast_help").qtip({content:{attr:"alt"},position:{my:"bottom left",at:"top center"},style:{tip:{corner:!0},classes:"yoast-qtip qtip-rounded qtip-blue"},show:{when:{event:"mouseover"}},hide:{fixed:!0,when:{event:"mouseout"}}}),yst_updateSnippet()}); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ar.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ar.mo index dac8c7b..672e8b6 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ar.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ar.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bg.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bg.mo deleted file mode 100644 index b80c5c7..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bg.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bs.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bs.mo deleted file mode 100644 index 12ab816..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bs.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bs_BA.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bs_BA.mo index 131984f..12ab816 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bs_BA.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-bs_BA.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-cs_CZ.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-cs_CZ.mo index 616aa4a..4088860 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-cs_CZ.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-cs_CZ.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-da_DK.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-da_DK.mo deleted file mode 100644 index 7fd847b..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-da_DK.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-de_DE.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-de_DE.mo index 8ef251b..cee6f06 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-de_DE.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-de_DE.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-el_GR.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-el_GR.mo deleted file mode 100644 index e110e5a..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-el_GR.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-es_ES.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-es_ES.mo index e83ea1c..bfe8fcf 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-es_ES.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-es_ES.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-es_VE.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-es_VE.mo deleted file mode 100644 index e35ece2..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-es_VE.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fa_IR.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fa_IR.mo index da9707f..8c8e34d 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fa_IR.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fa_IR.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fi.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fi.mo deleted file mode 100644 index 567a1dd..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fi.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fr_FR.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fr_FR.mo index 391bdab..bb0e55d 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fr_FR.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-fr_FR.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-he_IL.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-he_IL.mo index e671116..d68b2b6 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-he_IL.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-he_IL.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hi_IN.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hi_IN.mo deleted file mode 100644 index f84b7fd..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hi_IN.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hr.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hr.mo index 674e32a..885bb36 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hr.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hr.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hu.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hu.mo deleted file mode 100644 index 5a83ec0..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hu.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hu_HU.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hu_HU.mo index 5a83ec0..6f5d3e4 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hu_HU.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-hu_HU.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-id_ID.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-id_ID.mo index ddcd767..d4a7c41 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-id_ID.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-id_ID.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-it_IT.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-it_IT.mo index fd6935e..0d960b2 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-it_IT.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-it_IT.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ja.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ja.mo index eda044d..d858493 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ja.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ja.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ko_KR.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ko_KR.mo deleted file mode 100644 index da0db66..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ko_KR.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ms_MY.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ms_MY.mo deleted file mode 100644 index 83d41aa..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ms_MY.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nb_NO.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nb_NO.mo index 9ddf378..de9bcee 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nb_NO.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nb_NO.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nl_NL.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nl_NL.mo index ede6368..091d516 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nl_NL.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-nl_NL.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pl_PL.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pl_PL.mo index c90acd9..44ee75d 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pl_PL.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pl_PL.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_BR.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_BR.mo index bf65b4b..7ab9b94 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_BR.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_BR.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_PT.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_PT.mo index 918ca3b..75338c9 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_PT.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-pt_PT.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ro_RO.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ro_RO.mo deleted file mode 100644 index 09762d3..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ro_RO.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ru_RU.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ru_RU.mo index 0f1bdc8..e89596a 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ru_RU.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-ru_RU.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sk_SK.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sk_SK.mo index 65b6bde..86bd3c2 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sk_SK.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sk_SK.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sl_SI.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sl_SI.mo deleted file mode 100644 index 698642a..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sl_SI.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sv_SE.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sv_SE.mo index 4516851..31f19c8 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sv_SE.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-sv_SE.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-tr_TK.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-tr_TK.mo deleted file mode 100644 index bbade31..0000000 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-tr_TK.mo and /dev/null differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-tr_TR.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-tr_TR.mo index fce1a5e..a7db032 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-tr_TR.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-tr_TR.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-zh_CN.mo b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-zh_CN.mo index f86191e..2b26749 100644 Binary files a/wp-content/plugins/wordpress-seo/languages/wordpress-seo-zh_CN.mo and b/wp-content/plugins/wordpress-seo/languages/wordpress-seo-zh_CN.mo differ diff --git a/wp-content/plugins/wordpress-seo/languages/wordpress-seo.pot b/wp-content/plugins/wordpress-seo/languages/wordpress-seo.pot index f480722..d49ad16 100644 --- a/wp-content/plugins/wordpress-seo/languages/wordpress-seo.pot +++ b/wp-content/plugins/wordpress-seo/languages/wordpress-seo.pot @@ -1,215 +1,227 @@ -# Copyright (C) 2014 Joost de Valk +# Copyright (C) 2014 Team Yoast # This file is distributed under the GPL v3. msgid "" msgstr "" -"Project-Id-Version: WordPress SEO 1.5.5\n" -"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/wordpress-seo\n" -"POT-Creation-Date: 2014-08-12 10:42:29+00:00\n" +"Project-Id-Version: WordPress SEO 1.6.3\n" +"Report-Msgid-Bugs-To: https://github.com/yoast/wordpress-seo/issues\n" +"POT-Creation-Date: 2014-11-16 19:18:56+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n" -"Last-Translator: Remkus de Vries \n" +"Last-Translator: Yoast Translate Team \n" "Language-Team: Yoast Translate \n" -"X-Generator: grunt-wp-i18n 0.4.4\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-Basepath: .\n" -"X-Poedit-Language: English\n" -"X-Poedit-Country: UNITED STATES\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2; " -"_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__; esc_html__;esc_attr_e; " -"esc_html_e;esc_attr_x:1,2c; esc_html_x:1,2c;\n" -"X-Poedit-Bookmarks: \n" +"X-Generator: grunt-wp-i18n 0.4.9\n" +"X-Poedit-KeywordsList: " +"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_" +"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Country: United States\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-Basepath: ../\n" "X-Poedit-SearchPath-0: .\n" +"X-Poedit-Bookmarks: \n" "X-Textdomain-Support: yes\n" #: admin/ajax.php:69 msgid "Some files could not be removed. Please remove them via FTP." msgstr "" -#: admin/ajax.php:173 +#: admin/ajax.php:177 msgid "Post doesn't exist." msgstr "" -#: admin/ajax.php:182 +#: admin/ajax.php:186 msgid "Post has an invalid Post Type: %s." msgstr "" -#: admin/ajax.php:190 +#: admin/ajax.php:194 msgid "You can't edit %s." msgstr "" -#: admin/ajax.php:198 +#: admin/ajax.php:202 msgid "You can't edit %s that aren't yours." msgstr "" -#: admin/class-admin.php:88 admin/class-admin.php:207 admin/class-admin.php:267 -#: admin/class-admin.php:273 admin/class-admin.php:280 +#: admin/ajax.php:210 +msgid "You have used HTML in your value which is not allowed." +msgstr "" + +#: admin/class-admin.php:95 admin/class-admin.php:214 admin/class-admin.php:276 +#: admin/class-admin.php:282 admin/class-admin.php:289 msgid "Yoast WordPress SEO:" msgstr "" -#: admin/class-admin.php:88 +#: admin/class-admin.php:95 msgid "General Settings" msgstr "" -#: admin/class-admin.php:88 admin/class-admin.php:267 -#: admin/class-metabox.php:833 inc/wpseo-non-ajax-functions.php:320 +#: admin/class-admin.php:95 admin/class-admin.php:276 +#: admin/class-metabox.php:790 inc/wpseo-non-ajax-functions.php:323 msgid "SEO" msgstr "" -#: admin/class-admin.php:105 inc/wpseo-non-ajax-functions.php:438 +#: admin/class-admin.php:112 inc/wpseo-non-ajax-functions.php:466 msgid "Titles & Metas" msgstr "" -#: admin/class-admin.php:114 admin/class-opengraph-admin.php:58 -#: admin/class-opengraph-admin.php:69 inc/wpseo-non-ajax-functions.php:444 +#: admin/class-admin.php:121 admin/class-opengraph-admin.php:59 +#: admin/class-opengraph-admin.php:70 inc/wpseo-non-ajax-functions.php:472 msgid "Social" msgstr "" -#: admin/class-admin.php:123 admin/class-pointers.php:126 -#: inc/wpseo-non-ajax-functions.php:450 +#: admin/class-admin.php:130 admin/class-pointers.php:133 +#: inc/wpseo-non-ajax-functions.php:478 msgid "XML Sitemaps" msgstr "" -#: admin/class-admin.php:132 inc/wpseo-non-ajax-functions.php:456 +#: admin/class-admin.php:139 inc/wpseo-non-ajax-functions.php:484 msgid "Permalinks" msgstr "" -#: admin/class-admin.php:141 inc/wpseo-non-ajax-functions.php:462 +#: admin/class-admin.php:148 inc/wpseo-non-ajax-functions.php:490 msgid "Internal Links" msgstr "" -#: admin/class-admin.php:150 inc/wpseo-non-ajax-functions.php:468 +#: admin/class-admin.php:157 inc/wpseo-non-ajax-functions.php:496 msgid "RSS" msgstr "" -#: admin/class-admin.php:159 inc/wpseo-non-ajax-functions.php:474 +#: admin/class-admin.php:166 admin/class-pointers.php:163 +#: inc/wpseo-non-ajax-functions.php:502 msgid "Import & Export" msgstr "" -#: admin/class-admin.php:168 inc/wpseo-non-ajax-functions.php:480 +#: admin/class-admin.php:175 admin/class-pointers.php:173 +#: inc/wpseo-non-ajax-functions.php:508 msgid "Bulk Editor" msgstr "" -#: admin/class-admin.php:181 admin/class-admin.php:273 -#: inc/wpseo-non-ajax-functions.php:489 +#: admin/class-admin.php:188 admin/class-admin.php:282 +#: inc/wpseo-non-ajax-functions.php:517 msgid "Edit Files" msgstr "" -#: admin/class-admin.php:192 admin/class-admin.php:280 -#: admin/pages/licenses.php:21 inc/wpseo-non-ajax-functions.php:497 +#: admin/class-admin.php:199 admin/class-admin.php:289 +#: admin/class-pointers.php:188 admin/pages/licenses.php:21 +#: inc/wpseo-non-ajax-functions.php:525 msgid "Extensions" msgstr "" -#: admin/class-admin.php:220 admin/class-pointers.php:89 +#: admin/class-admin.php:227 admin/class-pointers.php:96 msgid "Dashboard" msgstr "" -#: admin/class-admin.php:231 +#: admin/class-admin.php:238 msgid "For more information:" msgstr "" -#: admin/class-admin.php:232 +#: admin/class-admin.php:239 msgid "Title optimization" msgstr "" -#: admin/class-admin.php:233 +#: admin/class-admin.php:240 msgid "Why Google won't display the right page title" msgstr "" -#: admin/class-admin.php:239 +#: admin/class-admin.php:246 msgid "Template explanation" msgstr "" -#: admin/class-admin.php:240 +#: admin/class-admin.php:247 msgid "" "The title & metas settings for WordPress SEO are made up of variables " "that are replaced by specific values from the page when the page is " "displayed. The tabs on the left explain the available variables." msgstr "" -#: admin/class-admin.php:248 admin/class-admin.php:249 +#: admin/class-admin.php:255 admin/class-admin.php:256 msgid "Basic Variables" msgstr "" -#: admin/class-admin.php:256 admin/class-admin.php:257 +#: admin/class-admin.php:263 admin/class-admin.php:264 msgid "Advanced Variables" msgstr "" -#: admin/class-admin.php:267 admin/pages/network.php:120 +#: admin/class-admin.php:276 admin/pages/network.php:120 msgid "MultiSite Settings" msgstr "" -#: admin/class-admin.php:358 inc/wpseo-functions.php:544 +#: admin/class-admin.php:367 msgid "Posts" msgstr "" -#: admin/class-admin.php:389 +#: admin/class-admin.php:398 msgid "Huge SEO Issue: You're blocking access to robots." msgstr "" -#: admin/class-admin.php:389 +#: admin/class-admin.php:398 msgid "" "You must %sgo to your Reading Settings%s and uncheck the box for Search " "Engine Visibility." msgstr "" -#: admin/class-admin.php:389 admin/class-admin.php:413 +#: admin/class-admin.php:398 admin/class-admin.php:422 msgid "I know, don't bug me." msgstr "" -#: admin/class-admin.php:413 +#: admin/class-admin.php:422 msgid "SEO Issue:" msgstr "" -#: admin/class-admin.php:413 +#: admin/class-admin.php:422 msgid "" "Your theme contains a meta description, which blocks WordPress SEO from " "working properly. Please visit the %sSEO Dashboard%s to fix this." msgstr "" -#: admin/class-admin.php:428 +#: admin/class-admin.php:437 msgid "Settings" msgstr "" -#: admin/class-admin.php:440 +#: admin/class-admin.php:449 msgid "Premium Support" msgstr "" -#: admin/class-admin.php:444 +#: admin/class-admin.php:453 msgid "FAQ" msgstr "" -#: admin/class-admin.php:485 admin/pages/social.php:174 +#: admin/class-admin.php:495 admin/class-pointers.php:126 +#: admin/pages/social.php:174 msgid "Google+" msgstr "" -#: admin/class-admin.php:487 +#: admin/class-admin.php:497 msgid "Twitter username (without @)" msgstr "" -#: admin/class-admin.php:489 +#: admin/class-admin.php:499 msgid "Facebook profile URL" msgstr "" -#: admin/class-admin.php:509 +#: admin/class-admin.php:519 msgid "WordPress SEO settings" msgstr "" -#: admin/class-admin.php:513 +#: admin/class-admin.php:523 msgid "Title to use for Author page" msgstr "" -#: admin/class-admin.php:521 +#: admin/class-admin.php:531 msgid "Meta description to use for Author page" msgstr "" -#: admin/class-admin.php:530 +#: admin/class-admin.php:540 msgid "Meta keywords to use for Author page" msgstr "" -#: admin/class-admin.php:582 +#: admin/class-admin.php:549 +msgid "Exclude user from Author-sitemap" +msgstr "" + +#: admin/class-admin.php:600 #. translators: this should be an array of stopwords for your language, #. separated by comma's. msgid "" @@ -228,77 +240,71 @@ msgid "" "wouldn't,you,you'd,you'll,you're,you've,your,yours,yourself,yourselves" msgstr "" -#: admin/class-bulk-description-editor-list-table.php:45 -#: admin/class-bulk-title-editor-list-table.php:45 -msgid "WP Page Title" -msgstr "" - -#: admin/class-bulk-description-editor-list-table.php:46 -#: admin/class-bulk-title-editor-list-table.php:46 -msgid "Post Type" -msgstr "" - -#: admin/class-bulk-description-editor-list-table.php:47 -#: admin/class-bulk-title-editor-list-table.php:47 -msgid "Post Status" -msgstr "" - -#: admin/class-bulk-description-editor-list-table.php:48 -#: admin/class-bulk-title-editor-list-table.php:48 -msgid "Publication date" -msgstr "" - -#: admin/class-bulk-description-editor-list-table.php:49 -#: admin/class-bulk-title-editor-list-table.php:49 -msgid "Page URL/Slug" -msgstr "" - -#: admin/class-bulk-description-editor-list-table.php:50 +#: admin/class-bulk-description-editor-list-table.php:51 msgid "Existing Yoast Meta Description" msgstr "" -#: admin/class-bulk-description-editor-list-table.php:51 +#: admin/class-bulk-description-editor-list-table.php:52 msgid "New Yoast Meta Description" msgstr "" -#: admin/class-bulk-description-editor-list-table.php:52 -#: admin/class-bulk-title-editor-list-table.php:52 -msgid "Action" -msgstr "" - -#: admin/class-bulk-editor-list-table.php:320 +#: admin/class-bulk-editor-list-table.php:330 msgid "Filter" msgstr "" -#: admin/class-bulk-editor-list-table.php:520 +#: admin/class-bulk-editor-list-table.php:655 msgid "Edit this item" msgstr "" -#: admin/class-bulk-editor-list-table.php:520 +#: admin/class-bulk-editor-list-table.php:655 msgid "Edit" msgstr "" -#: admin/class-bulk-editor-list-table.php:526 +#: admin/class-bulk-editor-list-table.php:661 msgid "Preview “%s”" msgstr "" -#: admin/class-bulk-editor-list-table.php:526 +#: admin/class-bulk-editor-list-table.php:661 msgid "Preview" msgstr "" -#: admin/class-bulk-editor-list-table.php:529 +#: admin/class-bulk-editor-list-table.php:664 msgid "View “%s”" msgstr "" -#: admin/class-bulk-editor-list-table.php:529 +#: admin/class-bulk-editor-list-table.php:664 msgid "View" msgstr "" -#: admin/class-bulk-title-editor-list-table.php:50 +#: admin/class-bulk-editor-list-table.php:829 +msgid "WP Page Title" +msgstr "" + +#: admin/class-bulk-editor-list-table.php:830 +msgid "Post Type" +msgstr "" + +#: admin/class-bulk-editor-list-table.php:831 +msgid "Post Status" +msgstr "" + +#: admin/class-bulk-editor-list-table.php:832 +msgid "Publication date" +msgstr "" + +#: admin/class-bulk-editor-list-table.php:833 +msgid "Page URL/Slug" +msgstr "" + +#: admin/class-bulk-editor-list-table.php:838 +msgid "Action" +msgstr "" + +#: admin/class-bulk-title-editor-list-table.php:52 msgid "Existing Yoast SEO Title" msgstr "" -#: admin/class-bulk-title-editor-list-table.php:51 +#: admin/class-bulk-title-editor-list-table.php:53 msgid "New Yoast SEO Title" msgstr "" @@ -318,12 +324,12 @@ msgstr "" msgid "Current option:" msgstr "" -#: admin/class-config.php:266 +#: admin/class-config.php:267 msgid "This is a settings export file for the WordPress SEO plugin by Yoast.com" msgstr "" -#: admin/class-config.php:369 admin/class-metabox.php:384 -#: admin/class-metabox.php:784 +#: admin/class-config.php:373 admin/class-metabox.php:375 +#: admin/class-metabox.php:741 msgid "Use Image" msgstr "" @@ -347,8 +353,8 @@ msgid "" "about.

Read %sthis post%s for more info." msgstr "" -#: admin/class-metabox.php:54 admin/class-metabox.php:834 -#: admin/class-taxonomy.php:173 +#: admin/class-metabox.php:54 admin/class-metabox.php:791 +#: admin/class-taxonomy.php:177 msgid "SEO Title" msgstr "" @@ -362,11 +368,11 @@ msgstr "" #: admin/class-metabox.php:56 msgid "" -"The SEO Title defaults to what is generated based on this sites title " +"The SEO title defaults to what is generated based on this sites title " "template for this posttype." msgstr "" -#: admin/class-metabox.php:58 +#: admin/class-metabox.php:58 admin/pages/metas.php:138 msgid "Meta Description" msgstr "" @@ -383,7 +389,8 @@ msgid "" "searched for.

Read %sthis post%s for more info." msgstr "" -#: admin/class-metabox.php:62 admin/class-taxonomy.php:177 +#: admin/class-metabox.php:62 admin/class-taxonomy.php:181 +#: admin/pages/metas.php:140 msgid "Meta Keywords" msgstr "" @@ -397,14 +404,14 @@ msgstr "" msgid "Meta Robots Index" msgstr "" -#: admin/class-metabox.php:68 admin/class-taxonomy.php:196 +#: admin/class-metabox.php:68 admin/class-taxonomy.php:200 msgid "" "Warning: even though you can set the meta robots setting here, the entire " "site is set to noindex in the sitewide privacy settings, so these settings " "won't have an effect." msgstr "" -#: admin/class-metabox.php:70 admin/class-metabox.php:114 +#: admin/class-metabox.php:70 msgid "Default for post type, currently: %s" msgstr "" @@ -442,7 +449,7 @@ msgstr "" #: admin/class-metabox.php:81 admin/pages/internal-links.php:37 #: admin/pages/internal-links.php:55 admin/pages/network.php:52 -#: inc/class-wpseo-meta.php:453 +#: inc/class-wpseo-meta.php:431 msgid "None" msgstr "" @@ -466,8 +473,9 @@ msgstr "" msgid "No Snippet" msgstr "" -#: admin/class-metabox.php:88 -msgid "Breadcrumbs title" +#: admin/class-metabox.php:88 admin/class-taxonomy.php:187 +#: admin/pages/metas.php:143 +msgid "Breadcrumbs Title" msgstr "" #: admin/class-metabox.php:89 @@ -484,18 +492,15 @@ msgid "" "Meta settings?" msgstr "" -#: admin/class-metabox.php:93 admin/class-metabox.php:108 -#: admin/class-taxonomy.php:65 +#: admin/class-metabox.php:93 admin/class-taxonomy.php:65 msgid "Auto detect" msgstr "" -#: admin/class-metabox.php:94 admin/class-metabox.php:109 -#: admin/class-taxonomy.php:66 +#: admin/class-metabox.php:94 admin/class-taxonomy.php:66 msgid "Always include" msgstr "" -#: admin/class-metabox.php:95 admin/class-metabox.php:110 -#: admin/class-taxonomy.php:67 +#: admin/class-metabox.php:95 admin/class-taxonomy.php:67 msgid "Never include" msgstr "" @@ -532,518 +537,500 @@ msgid "Lowest priority" msgstr "" #: admin/class-metabox.php:106 -msgid "Include in HTML Sitemap" -msgstr "" - -#: admin/class-metabox.php:107 -msgid "" -"Should this page be in the HTML Sitemap at all times, regardless of Robots " -"Meta settings?" -msgstr "" - -#: admin/class-metabox.php:112 admin/pages/metas.php:103 -msgid "Authorship" -msgstr "" - -#: admin/class-metabox.php:113 -msgid "Show rel=\"author\" on this page?" -msgstr "" - -#: admin/class-metabox.php:115 -msgid "Always show" -msgstr "" - -#: admin/class-metabox.php:116 -msgid "Never show" -msgstr "" - -#: admin/class-metabox.php:118 msgid "Canonical URL" msgstr "" -#: admin/class-metabox.php:119 +#: admin/class-metabox.php:107 msgid "" "The canonical URL that this page should point to, leave empty to default to " "permalink. %sCross domain canonical%s supported too." msgstr "" -#: admin/class-metabox.php:121 +#: admin/class-metabox.php:109 msgid "301 Redirect" msgstr "" -#: admin/class-metabox.php:122 +#: admin/class-metabox.php:110 msgid "The URL that this page should redirect to." msgstr "" -#: admin/class-metabox.php:246 admin/class-metabox.php:855 +#: admin/class-metabox.php:252 admin/class-metabox.php:812 msgid "Post is set to noindex." msgstr "" -#: admin/class-metabox.php:268 +#: admin/class-metabox.php:265 msgid "No focus keyword set." msgstr "" -#: admin/class-metabox.php:282 +#: admin/class-metabox.php:278 msgid "SEO: " msgstr "" -#: admin/class-metabox.php:284 +#: admin/class-metabox.php:280 msgid "Check" msgstr "" -#: admin/class-metabox.php:298 +#: admin/class-metabox.php:294 msgid "WordPress SEO by Yoast" msgstr "" -#: admin/class-metabox.php:331 +#: admin/class-metabox.php:322 msgid " (because of date display)" msgstr "" -#: admin/class-metabox.php:378 +#: admin/class-metabox.php:369 +msgid "Focus keyword usage" +msgstr "" + +#: admin/class-metabox.php:369 msgid "Your focus keyword was found in:" msgstr "" -#: admin/class-metabox.php:379 +#: admin/class-metabox.php:370 msgid "Article Heading: " msgstr "" -#: admin/class-metabox.php:380 +#: admin/class-metabox.php:371 msgid "Page title: " msgstr "" -#: admin/class-metabox.php:381 +#: admin/class-metabox.php:372 msgid "Page URL: " msgstr "" -#: admin/class-metabox.php:382 +#: admin/class-metabox.php:373 msgid "Content: " msgstr "" -#: admin/class-metabox.php:383 +#: admin/class-metabox.php:374 msgid "Meta description: " msgstr "" -#: admin/class-metabox.php:429 admin/class-metabox.php:447 +#: admin/class-metabox.php:382 +msgid "(no parent)" +msgstr "" + +#: admin/class-metabox.php:415 admin/class-metabox.php:433 #: admin/pages/dashboard.php:144 admin/pages/metas.php:20 msgid "General" msgstr "" -#: admin/class-metabox.php:431 admin/class-metabox.php:449 +#: admin/class-metabox.php:417 admin/class-metabox.php:435 msgid "Page Analysis" msgstr "" -#: admin/class-metabox.php:435 admin/class-metabox.php:456 +#: admin/class-metabox.php:421 admin/class-metabox.php:442 msgid "Advanced" msgstr "" -#: admin/class-metabox.php:800 +#: admin/class-metabox.php:757 msgid "SEO: No Focus Keyword" msgstr "" -#: admin/class-metabox.php:801 +#: admin/class-metabox.php:758 msgid "SEO: Bad" msgstr "" -#: admin/class-metabox.php:802 +#: admin/class-metabox.php:759 msgid "SEO: Poor" msgstr "" -#: admin/class-metabox.php:803 +#: admin/class-metabox.php:760 msgid "SEO: OK" msgstr "" -#: admin/class-metabox.php:804 +#: admin/class-metabox.php:761 msgid "SEO: Good" msgstr "" -#: admin/class-metabox.php:805 +#: admin/class-metabox.php:762 msgid "SEO: Post Noindexed" msgstr "" -#: admin/class-metabox.php:809 +#: admin/class-metabox.php:766 msgid "All SEO Scores" msgstr "" -#: admin/class-metabox.php:835 +#: admin/class-metabox.php:792 msgid "Meta Desc." msgstr "" -#: admin/class-metabox.php:836 +#: admin/class-metabox.php:793 msgid "Focus KW" msgstr "" -#: admin/class-metabox.php:867 +#: admin/class-metabox.php:824 msgid "Focus keyword not set." msgstr "" -#: admin/class-metabox.php:1134 +#: admin/class-metabox.php:1110 msgid "" "To update this page analysis, save as draft or update and check this tab " "again" msgstr "" -#: admin/class-metabox.php:1158 +#: admin/class-metabox.php:1134 msgid "Your hosting environment does not support PHP's %sDocument Object Model%s." msgstr "" -#: admin/class-metabox.php:1158 +#: admin/class-metabox.php:1134 msgid "" "To enjoy all the benefits of the page analysis feature, you'll need to (get " "your host to) install it." msgstr "" -#: admin/class-metabox.php:1164 +#: admin/class-metabox.php:1140 msgid "No post content to analyse." msgstr "" -#: admin/class-metabox.php:1168 +#: admin/class-metabox.php:1144 msgid "" "No focus keyword was set for this %s. If you do not set a focus keyword, no " "score can be calculated." msgstr "" -#: admin/class-metabox.php:1174 +#: admin/class-metabox.php:1150 msgid "Page Analysis has been disabled." msgstr "" -#: admin/class-metabox.php:1402 +#: admin/class-metabox.php:1382 msgid "You've never used this focus keyword before, very good." msgstr "" -#: admin/class-metabox.php:1404 +#: admin/class-metabox.php:1384 msgid "" "You've used this focus keyword %1$sonce before%2$s, be sure to make very " "clear which URL on your site is the most important for this keyword." msgstr "" -#: admin/class-metabox.php:1409 +#: admin/class-metabox.php:1389 msgid "" "You've used this focus keyword %3$s%4$d times before%2$s, it's probably a " "good idea to read %1$sthis post on cornerstone content%2$s and improve your " "keyword strategy." msgstr "" -#: admin/class-metabox.php:1422 +#: admin/class-metabox.php:1402 msgid "" "The keyword for this page contains one or more %sstop words%s, consider " "removing them. Found '%s'." msgstr "" -#: admin/class-metabox.php:1438 +#: admin/class-metabox.php:1418 msgid "The keyword / phrase appears in the URL for this page." msgstr "" -#: admin/class-metabox.php:1439 +#: admin/class-metabox.php:1419 msgid "" "The keyword / phrase does not appear in the URL for this page. If you " "decide to rename the URL be sure to check the old URL 301 redirects to the " "new one!" msgstr "" -#: admin/class-metabox.php:1440 +#: admin/class-metabox.php:1420 msgid "" "The slug for this page contains one or more stop words, consider " "removing them." msgstr "" -#: admin/class-metabox.php:1441 +#: admin/class-metabox.php:1421 msgid "The slug for this page is a bit long, consider shortening it." msgstr "" -#: admin/class-metabox.php:1475 +#: admin/class-metabox.php:1455 msgid "Please create a page title." msgstr "" -#: admin/class-metabox.php:1476 +#: admin/class-metabox.php:1456 msgid "" "The page title is more than 40 characters and less than the recommended 70 " "character limit." msgstr "" -#: admin/class-metabox.php:1477 +#: admin/class-metabox.php:1457 msgid "" "The page title contains %d characters, which is less than the recommended " "minimum of 40 characters. Use the space to add keyword variations or create " "compelling call-to-action copy." msgstr "" -#: admin/class-metabox.php:1478 +#: admin/class-metabox.php:1458 msgid "" "The page title contains %d characters, which is more than the viewable " "limit of 70 characters; some words will not be visible to users in your " "listing." msgstr "" -#: admin/class-metabox.php:1479 +#: admin/class-metabox.php:1459 msgid "The keyword / phrase %s does not appear in the page title." msgstr "" -#: admin/class-metabox.php:1480 +#: admin/class-metabox.php:1460 msgid "" "The page title contains keyword / phrase, at the beginning which is " "considered to improve rankings." msgstr "" -#: admin/class-metabox.php:1481 +#: admin/class-metabox.php:1461 msgid "" "The page title contains keyword / phrase, but it does not appear at the " "beginning; try and move it to the beginning." msgstr "" -#: admin/class-metabox.php:1521 +#: admin/class-metabox.php:1503 msgid "No outbound links appear in this page, consider adding some as appropriate." msgstr "" -#: admin/class-metabox.php:1522 +#: admin/class-metabox.php:1504 msgid "" "You're linking to another page with the keyword you want this page to rank " "for, consider changing that if you truly want this page to rank." msgstr "" -#: admin/class-metabox.php:1523 +#: admin/class-metabox.php:1505 msgid "This page has %s outbound link(s)." msgstr "" -#: admin/class-metabox.php:1524 +#: admin/class-metabox.php:1506 msgid "This page has %s outbound link(s), all nofollowed." msgstr "" -#: admin/class-metabox.php:1525 +#: admin/class-metabox.php:1507 msgid "This page has %s nofollowed link(s) and %s normal outbound link(s)." msgstr "" -#: admin/class-metabox.php:1634 +#: admin/class-metabox.php:1616 msgid "No images appear in this page, consider adding some as appropriate." msgstr "" -#: admin/class-metabox.php:1635 +#: admin/class-metabox.php:1617 msgid "The images on this page are missing alt tags." msgstr "" -#: admin/class-metabox.php:1636 +#: admin/class-metabox.php:1618 msgid "The images on this page contain alt tags with the target keyword / phrase." msgstr "" -#: admin/class-metabox.php:1637 +#: admin/class-metabox.php:1619 msgid "" "The images on this page do not have alt tags containing your keyword / " "phrase." msgstr "" -#: admin/class-metabox.php:1711 +#: admin/class-metabox.php:1693 msgid "No subheading tags (like an H2) appear in the copy." msgstr "" -#: admin/class-metabox.php:1712 +#: admin/class-metabox.php:1694 msgid "" "Keyword / keyphrase appears in %s (out of %s) subheadings in the copy. " "While not a major ranking factor, this is beneficial." msgstr "" -#: admin/class-metabox.php:1713 +#: admin/class-metabox.php:1695 msgid "" "You have not used your keyword / keyphrase in any subheading (such as an " "H2) in your copy." msgstr "" -#: admin/class-metabox.php:1769 +#: admin/class-metabox.php:1751 msgid "" "In the specified meta description, consider: How does it compare to the " "competition? Could it be made more appealing?" msgstr "" -#: admin/class-metabox.php:1770 +#: admin/class-metabox.php:1752 msgid "" "The meta description is under 120 characters, however up to %s characters " "are available. %s" msgstr "" -#: admin/class-metabox.php:1771 +#: admin/class-metabox.php:1753 msgid "" "The specified meta description is over %s characters, reducing it will " "ensure the entire description is visible. %s" msgstr "" -#: admin/class-metabox.php:1772 +#: admin/class-metabox.php:1754 msgid "" "No meta description has been specified, search engines will display copy " "from the page instead." msgstr "" -#: admin/class-metabox.php:1773 +#: admin/class-metabox.php:1755 msgid "The meta description contains the primary keyword / phrase." msgstr "" -#: admin/class-metabox.php:1774 +#: admin/class-metabox.php:1756 msgid "" "A meta description has been specified, but it does not contain the target " "keyword / phrase." msgstr "" -#: admin/class-metabox.php:1778 +#: admin/class-metabox.php:1760 msgid "" "The available space is shorter than the usual 155 characters because Google " "will also include the publication date in the snippet." msgstr "" -#: admin/class-metabox.php:1822 +#: admin/class-metabox.php:1804 msgid "" "There are %d words contained in the body copy, this is more than the %d " "word recommended minimum." msgstr "" -#: admin/class-metabox.php:1823 +#: admin/class-metabox.php:1805 msgid "" "There are %d words contained in the body copy, this is below the %d word " "recommended minimum. Add more useful content on this topic for readers." msgstr "" -#: admin/class-metabox.php:1824 +#: admin/class-metabox.php:1806 msgid "" "There are %d words contained in the body copy, this is slightly below the " "%d word recommended minimum, add a bit more copy." msgstr "" -#: admin/class-metabox.php:1825 +#: admin/class-metabox.php:1807 msgid "" "There are %d words contained in the body copy. This is far too low and " "should be increased." msgstr "" -#: admin/class-metabox.php:1827 +#: admin/class-metabox.php:1809 msgid "" "The keyword density is %s%%, which is a bit low, the keyword was found %s " "times." msgstr "" -#: admin/class-metabox.php:1828 +#: admin/class-metabox.php:1810 msgid "" "The keyword density is %s%%, which is over the advised 4.5%% maximum, the " "keyword was found %s times." msgstr "" -#: admin/class-metabox.php:1829 +#: admin/class-metabox.php:1811 msgid "The keyword density is %s%%, which is great, the keyword was found %s times." msgstr "" -#: admin/class-metabox.php:1831 +#: admin/class-metabox.php:1813 msgid "" "The keyword doesn't appear in the first paragraph of the copy, make sure " "the topic is clear immediately." msgstr "" -#: admin/class-metabox.php:1832 +#: admin/class-metabox.php:1814 msgid "The keyword appears in the first paragraph of the copy." msgstr "" -#: admin/class-metabox.php:1834 +#: admin/class-metabox.php:1816 msgid "Flesch Reading Ease" msgstr "" -#: admin/class-metabox.php:1835 +#: admin/class-metabox.php:1817 msgid "The copy scores %s in the %s test, which is considered %s to read. %s" msgstr "" -#: admin/class-metabox.php:1862 +#: admin/class-metabox.php:1844 msgid "" "Your keyphrase is over 10 words, a keyphrase should be shorter and there " "can be only one keyphrase." msgstr "" -#: admin/class-metabox.php:1901 +#: admin/class-metabox.php:1883 msgid "very easy" msgstr "" -#: admin/class-metabox.php:1904 +#: admin/class-metabox.php:1886 msgid "easy" msgstr "" -#: admin/class-metabox.php:1907 +#: admin/class-metabox.php:1889 msgid "fairly easy" msgstr "" -#: admin/class-metabox.php:1910 inc/wpseo-non-ajax-functions.php:233 +#: admin/class-metabox.php:1892 inc/wpseo-non-ajax-functions.php:236 msgid "OK" msgstr "" -#: admin/class-metabox.php:1913 +#: admin/class-metabox.php:1895 msgid "fairly difficult" msgstr "" -#: admin/class-metabox.php:1914 +#: admin/class-metabox.php:1896 msgid "Try to make shorter sentences to improve readability." msgstr "" -#: admin/class-metabox.php:1917 +#: admin/class-metabox.php:1899 msgid "difficult" msgstr "" -#: admin/class-metabox.php:1918 admin/class-metabox.php:1922 +#: admin/class-metabox.php:1900 admin/class-metabox.php:1904 msgid "" "Try to make shorter sentences, using less difficult words to improve " "readability." msgstr "" -#: admin/class-metabox.php:1921 +#: admin/class-metabox.php:1903 msgid "very difficult" msgstr "" -#: admin/class-opengraph-admin.php:35 +#: admin/class-opengraph-admin.php:36 msgid "Facebook Title" msgstr "" -#: admin/class-opengraph-admin.php:36 +#: admin/class-opengraph-admin.php:37 msgid "" "If you don't want to use the post title for sharing the post on Facebook " "but instead want another title there, write it here." msgstr "" -#: admin/class-opengraph-admin.php:38 +#: admin/class-opengraph-admin.php:39 msgid "Facebook Description" msgstr "" -#: admin/class-opengraph-admin.php:39 +#: admin/class-opengraph-admin.php:40 msgid "" "If you don't want to use the meta description for sharing the post on " "Facebook but want another description there, write it here." msgstr "" -#: admin/class-opengraph-admin.php:41 +#: admin/class-opengraph-admin.php:42 msgid "Facebook Image" msgstr "" -#: admin/class-opengraph-admin.php:42 +#: admin/class-opengraph-admin.php:43 msgid "" "If you want to override the Facebook image for this post, upload / choose " "an image or add the URL here." msgstr "" -#: admin/class-opengraph-admin.php:44 +#: admin/class-opengraph-admin.php:45 msgid "Google+ Title" msgstr "" -#: admin/class-opengraph-admin.php:45 +#: admin/class-opengraph-admin.php:46 msgid "" "If you don't want to use the post title for sharing the post on Google+ but " "instead want another title there, write it here." msgstr "" -#: admin/class-opengraph-admin.php:47 +#: admin/class-opengraph-admin.php:48 msgid "Google+ Description" msgstr "" -#: admin/class-opengraph-admin.php:48 +#: admin/class-opengraph-admin.php:49 msgid "" "If you don't want to use the meta description for sharing the post on " "Google+ but want another description there, write it here." msgstr "" -#: admin/class-opengraph-admin.php:50 +#: admin/class-opengraph-admin.php:51 msgid "Google+ Image" msgstr "" -#: admin/class-opengraph-admin.php:51 +#: admin/class-opengraph-admin.php:52 msgid "" "If you want to override the image for this post that Google+ will use, " "upload / choose an image or add the URL here. Note that it will otherwise " @@ -1056,183 +1043,234 @@ msgstr "" #: admin/class-pointers.php:68 msgid "" -"You've just installed WordPress SEO by Yoast. Please helps us improve it by " -"allowing us to gather anonymous usage stats so we know which " +"You’ve just installed WordPress SEO by Yoast. Please helps us improve " +"it by allowing us to gather anonymous usage stats so we know which " "configurations, plugins and themes to test with." msgstr "" -#: admin/class-pointers.php:73 -msgid "Allow tracking" -msgstr "" - -#: admin/class-pointers.php:78 +#: admin/class-pointers.php:75 msgid "Do not allow tracking" msgstr "" -#: admin/class-pointers.php:89 +#: admin/class-pointers.php:79 +msgid "Allow tracking" +msgstr "" + +#: admin/class-pointers.php:96 msgid "" "This is the WordPress SEO Dashboard, here you can restart this tour or " "revert the WP SEO settings to default." msgstr "" -#: admin/class-pointers.php:90 +#: admin/class-pointers.php:97 msgid "More WordPress SEO" msgstr "" -#: admin/class-pointers.php:90 +#: admin/class-pointers.php:97 msgid "" -"There's more to learn about WordPress & SEO than just using this " -"plugin. Read our article %1$sthe definitive guide to WordPress SEO%2$s." +"There’s more to learn about WordPress & SEO than just using this " +"plugin. A great start is our article %1$sthe definitive guide to WordPress " +"SEO%2$s." msgstr "" -#: admin/class-pointers.php:91 admin/pages/dashboard.php:162 -msgid "Webmaster Tools" -msgstr "" - -#: admin/class-pointers.php:91 -msgid "" -"Underneath the General Settings, you can add the verification codes for the " -"different Webmaster Tools programs, I highly encourage you to check out " -"both Google and Bing's Webmaster Tools." -msgstr "" - -#: admin/class-pointers.php:92 -msgid "About This Tour" -msgstr "" - -#: admin/class-pointers.php:92 -msgid "" -"Clicking Next below takes you to the next page of the tour. If you want to " -"stop this tour, click \"Close\"." -msgstr "" - -#: admin/class-pointers.php:93 -msgid "Like this plugin?" -msgstr "" - -#: admin/class-pointers.php:93 -msgid "" -"If you like this plugin, please %srate it 5 stars on WordPress.org%s and " -"consider making a donation by clicking the button on the right!" -msgstr "" - -#: admin/class-pointers.php:94 -msgid "Newsletter" -msgstr "" - -#: admin/class-pointers.php:95 -msgid "" -"If you would like to keep up to date regarding the WordPress SEO plugin and " -"other plugins by Yoast, subscribe to the newsletter:" +#: admin/class-pointers.php:98 admin/pages/dashboard.php:154 +msgid "Tracking" msgstr "" #: admin/class-pointers.php:98 -msgid "Email" +msgid "" +"To provide you with the best experience possible, we need your help. Please " +"enable tracking to help us gather anonymous usage data." +msgstr "" + +#: admin/class-pointers.php:99 admin/pages/dashboard.php:162 +msgid "Webmaster Tools" +msgstr "" + +#: admin/class-pointers.php:99 +msgid "" +"You can also add the verification codes for the different Webmaster Tools " +"programs here, we highly encourage you to check out both Google and " +"Bing’s Webmaster Tools." msgstr "" #: admin/class-pointers.php:100 -msgid "Subscribe" +msgid "WordPress SEO Tour" msgstr "" -#: admin/class-pointers.php:102 admin/class-pointers.php:112 -#: admin/class-pointers.php:122 admin/class-pointers.php:127 -#: admin/class-pointers.php:132 admin/class-pointers.php:137 -#: admin/class-pointers.php:142 admin/class-pointers.php:147 -#: admin/class-pointers.php:152 admin/class-pointers.php:157 -msgid "Next" +#: admin/class-pointers.php:100 +msgid "" +"This tour will show you around in the plugin, to give you a general " +"overview of the plugin." msgstr "" -#: admin/class-pointers.php:106 -msgid "Title & Description settings" +#: admin/class-pointers.php:101 +msgid "Newsletter" +msgstr "" + +#: admin/class-pointers.php:102 +msgid "" +"If you would like to us to keep you up-to-date regarding WordPress SEO and " +"other plugins by Yoast, subscribe to our newsletter:" +msgstr "" + +#: admin/class-pointers.php:105 +msgid "Email" msgstr "" #: admin/class-pointers.php:107 +msgid "Subscribe" +msgstr "" + +#: admin/class-pointers.php:109 admin/class-pointers.php:117 +#: admin/class-pointers.php:127 admin/class-pointers.php:136 +#: admin/class-pointers.php:143 admin/class-pointers.php:150 +#: admin/class-pointers.php:157 admin/class-pointers.php:167 +#: admin/class-pointers.php:174 admin/class-pointers.php:181 +msgid "Next" +msgstr "" + +#: admin/class-pointers.php:114 +msgid "Title & Metas settings" +msgstr "" + +#: admin/class-pointers.php:114 msgid "" -"This is where you set the templates for your titles and descriptions of all " -"the different types of pages on your blog, be it your homepage, posts & " -"pages (under post types), category or tag archives (under taxonomy " -"archives), or even custom post type archives and custom posts: all of that " -"is done from here." +"This is where you set the titles and meta-information for all your post " +"types, taxonomies, archives, special pages and for your homepage. The page " +"is divided into different tabs. Make sure you check ’em all out!" msgstr "" -#: admin/class-pointers.php:108 -msgid "Templates" -msgstr "" - -#: admin/class-pointers.php:109 -msgid "" -"The templates are built using variables, the help tab for all the different " -"variables available to you to use in these." -msgstr "" - -#: admin/class-pointers.php:110 +#: admin/class-pointers.php:115 msgid "Sitewide settings" msgstr "" -#: admin/class-pointers.php:111 +#: admin/class-pointers.php:115 msgid "" -"You can also set some settings for the entire site here to add specific " -"meta tags or to remove some unneeded cruft." +"The first tab will show you site-wide settings. You can also set some " +"settings for the entire site here to add specific meta tags or to remove " +"some unneeded cruft." msgstr "" #: admin/class-pointers.php:116 +msgid "Templates and settings" +msgstr "" + +#: admin/class-pointers.php:116 +msgid "" +"Now click on the ‘%1$sPost Types%2$s’-tab, as this will be our " +"example." +msgstr "" + +#: admin/class-pointers.php:116 +msgid "" +"The templates are built using variables. You can find all these variables " +"in the help tab (in the top-right corner of the page). The settings allow " +"you to set specific behavior for the post types." +msgstr "" + +#: admin/class-pointers.php:119 admin/class-pointers.php:129 +#: admin/class-pointers.php:138 admin/class-pointers.php:145 +#: admin/class-pointers.php:152 admin/class-pointers.php:159 +#: admin/class-pointers.php:169 admin/class-pointers.php:176 +#: admin/class-pointers.php:183 admin/class-pointers.php:192 +msgid "Previous" +msgstr "" + +#: admin/class-pointers.php:123 msgid "Social settings" msgstr "" -#: admin/class-pointers.php:117 -msgid "Facebook Open Graph" +#: admin/class-pointers.php:124 admin/pages/social.php:172 +msgid "Facebook" msgstr "" -#: admin/class-pointers.php:118 +#: admin/class-pointers.php:124 msgid "" -"On this page you can enable the Open Graph functionality from this plugin, " -"as well as assign a Facebook user or Application to be the admin of your " -"site, so you can view the Facebook insights." +"On this tab you can enable the %1$sFacebook Open Graph%2$s functionality " +"from this plugin, as well as assign a Facebook user or Application to be " +"the admin of your site, so you can view the Facebook insights." msgstr "" -#: admin/class-pointers.php:119 -msgid "Read more about %1$sFacebook Open Graph%2$s." -msgstr "" - -#: admin/class-pointers.php:120 -msgid "Twitter Cards" -msgstr "" - -#: admin/class-pointers.php:121 +#: admin/class-pointers.php:124 msgid "" -"This functionality is currently in beta, but it allows for %1$sTwitter " -"Cards%2$s." +"The frontpage settings allow you to set meta-data for your homepage, " +"whereas the default settings allow you to set a fallback for all " +"posts/pages without images. " +msgstr "" + +#: admin/class-pointers.php:125 admin/pages/social.php:173 +msgid "Twitter" +msgstr "" + +#: admin/class-pointers.php:125 +msgid "" +"With %1$sTwitter Cards%2$s, you can attach rich photos, videos and media " +"experience to tweets that drive traffic to your website. Simply check the " +"box, sign up for the service, and users who Tweet links to your content " +"will have a “Card” added to the tweet that’s visible to " +"all of their followers." msgstr "" #: admin/class-pointers.php:126 msgid "" -"This plugin adds an XML sitemap to your site. It's automatically updated " -"when you publish a new post, page or custom post and Google and Bing will " -"be automatically notified." +"This tab allows you to add specific post meta data for Google+. And if you " +"have a Google+ page for your business, add that URL here and link it on " +"your %1$sGoogle+%2$s page’s about page." msgstr "" -#: admin/class-pointers.php:126 +#: admin/class-pointers.php:134 +msgid "What are XML sitemaps?" +msgstr "" + +#: admin/class-pointers.php:134 msgid "" -"Be sure to check whether post types or taxonomies are showing that search " -"engines shouldn't be indexing, if so, check the box before them to hide " -"them from the XML sitemaps." +"A Sitemap is an XML file that lists the URLs for a site. It allows " +"webmasters to include additional information about each URL: when it was " +"last updated, how often it changes, and how important it is in relation to " +"other URLs in the site. This allows search engines to crawl the site more " +"intelligently." msgstr "" -#: admin/class-pointers.php:131 admin/pages/permalinks.php:38 +#: admin/class-pointers.php:135 +msgid "What does the plugin do with XML Sitemaps?" +msgstr "" + +#: admin/class-pointers.php:135 +msgid "" +"This plugin adds XML sitemaps to your site. The sitemaps are automatically " +"updated when you publish a new post, page or custom post and Google and " +"Bing will be automatically notified. You can also have the plugin " +"automatically notify Yahoo! and Ask.com." +msgstr "" + +#: admin/class-pointers.php:135 +msgid "" +"If you want to exclude certain post types and/or taxonomies, you can also " +"set that on this page." +msgstr "" + +#: admin/class-pointers.php:135 +msgid "" +"Is your webserver low on memory? Decrease the entries per sitemap (default: " +"1000) to reduce load." +msgstr "" + +#: admin/class-pointers.php:142 admin/pages/permalinks.php:38 msgid "Permalink Settings" msgstr "" -#: admin/class-pointers.php:131 +#: admin/class-pointers.php:142 msgid "" -"All of the options here are for advanced users only, if you don't know " -"whether you should check any, don't touch them." +"All of the options here are for advanced users only, if you don’t " +"know whether you should check any, don’t touch them." msgstr "" -#: admin/class-pointers.php:136 admin/pages/internal-links.php:81 +#: admin/class-pointers.php:149 admin/pages/internal-links.php:81 msgid "Breadcrumbs Settings" msgstr "" -#: admin/class-pointers.php:136 +#: admin/class-pointers.php:149 msgid "" "If your theme supports my breadcrumbs, as all Genesis and WooThemes themes " "as well as a couple of other ones do, you can change the settings for those " @@ -1240,99 +1278,130 @@ msgid "" "instructions%s." msgstr "" -#: admin/class-pointers.php:141 +#: admin/class-pointers.php:156 msgid "RSS Settings" msgstr "" -#: admin/class-pointers.php:141 +#: admin/class-pointers.php:156 msgid "" "This incredibly powerful function allows you to add content to the " "beginning and end of your posts in your RSS feed. This helps you gain links " "from people who steal your content!" msgstr "" -#: admin/class-pointers.php:146 -msgid "Import & Export" +#: admin/class-pointers.php:164 +msgid "Import from other (SEO) plugins" msgstr "" -#: admin/class-pointers.php:146 +#: admin/class-pointers.php:164 msgid "" -"Just switched over from another SEO plugin? Use the options here to switch " -"your data over. If you were using some of my older plugins like Robots Meta " -"& RSS Footer, you can import the settings here too." +"We can imagine that you switch from another SEO plugin to WordPress SEO. If " +"you just did, you can use these options to transfer your SEO-data. If you " +"were using one of my older plugins like Robots Meta & RSS Footer, you " +"can import the settings here too." msgstr "" -#: admin/class-pointers.php:146 +#: admin/class-pointers.php:165 +msgid "Other imports" +msgstr "" + +#: admin/class-pointers.php:165 msgid "" -"If you have multiple blogs and you're happy with how you've configured this " -"blog, you can export the settings and import them on another blog so you " -"don't have to go through this process twice!" +"If you’re using one of our premium plugins, such as %1$sLocal " +"SEO%2$s, you can also find specific import-options for that plugin here." msgstr "" -#: admin/class-pointers.php:151 +#: admin/class-pointers.php:166 admin/pages/import.php:400 +msgid "Export" +msgstr "" + +#: admin/class-pointers.php:166 +msgid "" +"If you have multiple blogs and you’re happy with how you’ve " +"configured this blog, you can export the settings and import them on " +"another blog so you don’t have to go through this process twice!" +msgstr "" + +#: admin/class-pointers.php:173 +msgid "" +"This page lets you view and edit the titles and meta descriptions of all " +"posts and pages on your site. This allows you to edit the title or meta " +"description of all your pages in one place, rather than having to edit each " +"individual page." +msgstr "" + +#: admin/class-pointers.php:180 msgid "File Editor" msgstr "" -#: admin/class-pointers.php:151 +#: admin/class-pointers.php:180 msgid "" "Here you can edit the .htaccess and robots.txt files, two of the most " -"powerful files in your WordPress install. Only touch these files if you " -"know what you're doing!" +"powerful files in your WordPress install, if your WordPress installation " +"has write-access to the files. But please, only touch these files if you " +"know what you’re doing!" msgstr "" -#: admin/class-pointers.php:156 -msgid "Bulk Title Editor" +#: admin/class-pointers.php:187 +msgid "Extensions and Licenses" msgstr "" -#: admin/class-pointers.php:156 +#: admin/class-pointers.php:188 msgid "" -"This is where you can view and edit the SEO titles of every post and page " -"on your site. If you have a lot of pages that need SEO titles, use this " -"page to save yourself the hassle of editing every page one at a time!" +"The powerful functions of WordPress SEO can be extended with %1$sYoast " +"premium plugins%2$s. These premium plugins require the installation of " +"WordPress SEO or WordPress SEO Premium and add specific functionality. You " +"can read all about the Yoast Premium Plugins on " +"%1$shttp://yoast.com/wordpress/plugins/%2$s." msgstr "" -#: admin/class-pointers.php:161 -msgid "Bulk Description Editor" +#: admin/class-pointers.php:189 admin/pages/licenses.php:22 +msgid "Licenses" msgstr "" -#: admin/class-pointers.php:161 +#: admin/class-pointers.php:189 msgid "" -"This page lets you view and edit the meta descriptions of all posts and " -"pages on your site. Just like the Bulk Title Editor, this allows you to " -"edit the meta description of all your pages in one place, rather than " -"having to edit each individual page." +"Once you’ve purchased WordPress SEO Premium or any other premium " +"Yoast plugin, you’ll have to enter a license key. You can do so on " +"the Licenses-tab. Once you’ve activated your premium plugin, you can " +"use all its powerful features." msgstr "" -#: admin/class-pointers.php:162 +#: admin/class-pointers.php:190 +msgid "Like this plugin?" +msgstr "" + +#: admin/class-pointers.php:190 msgid "" -"The tour ends here, thank you for using my plugin and good luck with your " -"SEO!

Best,
Joost de Valk - %1$sYoast.com%2$s" +"So, we’ve come to the end of the tour. If you like the plugin, please " +"%srate it 5 stars on WordPress.org%s!" msgstr "" -#: admin/class-pointers.php:171 +#: admin/class-pointers.php:191 msgid "" -"The tour ends here,thank you for using my plugin and good luck with your " -"SEO!

Best,
Joost de Valk - %1$sYoast.com%2$s" +"Thank you for using my plugin and good luck with your " +"SEO!

Best,
Team Yoast - %1$sYoast.com%2$s" msgstr "" -#: admin/class-pointers.php:185 +#: admin/class-pointers.php:210 +msgid "Close" +msgstr "" + +#: admin/class-pointers.php:218 msgid "Congratulations!" msgstr "" -#: admin/class-pointers.php:186 +#: admin/class-pointers.php:219 msgid "" -"You've just installed WordPress SEO by Yoast! Click \"Start Tour\" to view " -"a quick introduction of this plugins core functionality." +"You’ve just installed WordPress SEO by Yoast! Click “Start " +"Tour” to view a quick introduction of this plugin’s core " +"functionality." msgstr "" -#: admin/class-pointers.php:191 admin/pages/dashboard.php:147 +#: admin/class-pointers.php:224 admin/pages/dashboard.php:147 msgid "Start Tour" msgstr "" -#: admin/class-pointers.php:211 -msgid "Close" -msgstr "" - #: admin/class-taxonomy.php:61 msgid "Use %s default (Currently: %s)" msgstr "" @@ -1345,58 +1414,58 @@ msgstr "" msgid "Always noindex" msgstr "" -#: admin/class-taxonomy.php:170 +#: admin/class-taxonomy.php:174 msgid "Yoast WordPress SEO Settings" msgstr "" -#: admin/class-taxonomy.php:173 +#: admin/class-taxonomy.php:177 msgid "The SEO title is used on the archive page for this term." msgstr "" -#: admin/class-taxonomy.php:174 +#: admin/class-taxonomy.php:178 msgid "SEO Description" msgstr "" -#: admin/class-taxonomy.php:174 +#: admin/class-taxonomy.php:178 msgid "" "The SEO description is used for the meta description on the archive page " "for this term." msgstr "" -#: admin/class-taxonomy.php:177 +#: admin/class-taxonomy.php:181 msgid "Meta keywords used on the archive page for this term." msgstr "" -#: admin/class-taxonomy.php:180 +#: admin/class-taxonomy.php:184 msgid "Canonical" msgstr "" -#: admin/class-taxonomy.php:180 +#: admin/class-taxonomy.php:184 msgid "The canonical link is shown on the archive page for this term." msgstr "" -#: admin/class-taxonomy.php:183 admin/pages/metas.php:144 -msgid "Breadcrumbs Title" -msgstr "" - -#: admin/class-taxonomy.php:183 +#: admin/class-taxonomy.php:187 msgid "The Breadcrumbs title is used in the breadcrumbs where this %s appears." msgstr "" -#: admin/class-taxonomy.php:194 +#: admin/class-taxonomy.php:198 msgid "" "This %s follows the indexation rules set under Metas and Titles, you can " "override it here." msgstr "" -#: admin/class-taxonomy.php:199 +#: admin/class-taxonomy.php:203 msgid "Noindex this %s" msgstr "" -#: admin/class-taxonomy.php:203 +#: admin/class-taxonomy.php:207 msgid "Include in sitemap?" msgstr "" +#: admin/class-yoast-plugin-conflict.php:164 +msgid "The following plugins might cause (%1s) issues with Yoast WordPress SEO: %2s" +msgstr "" + #: admin/license-manager/class-license-manager.php:137 msgid "" "Warning! You're blocking external requests which means you won't be " @@ -1542,7 +1611,7 @@ msgstr "" msgid "%sRenew your license now%s." msgstr "" -#: admin/pages/bulk-editor.php:36 admin/pages/metas.php:138 +#: admin/pages/bulk-editor.php:36 admin/pages/metas.php:137 #: admin/pages/social.php:188 msgid "Title" msgstr "" @@ -1636,10 +1705,6 @@ msgid "" "this button." msgstr "" -#: admin/pages/dashboard.php:154 -msgid "Tracking" -msgstr "" - #: admin/pages/dashboard.php:155 msgid "Allow tracking of this WordPress install's anonymous data." msgstr "" @@ -1770,31 +1835,31 @@ msgstr "" msgid "HeadSpace2 data successfully imported" msgstr "" -#: admin/pages/import.php:221 +#: admin/pages/import.php:266 msgid "All in One SEO (Old version) data successfully imported." msgstr "" -#: admin/pages/import.php:269 +#: admin/pages/import.php:313 msgid "RSS Footer options imported successfully." msgstr "" -#: admin/pages/import.php:287 +#: admin/pages/import.php:330 msgid "Yoast Breadcrumbs options imported successfully." msgstr "" -#: admin/pages/import.php:290 +#: admin/pages/import.php:332 msgid "Yoast Breadcrumbs options could not be found" msgstr "" -#: admin/pages/import.php:306 +#: admin/pages/import.php:348 msgid ", and old data deleted." msgstr "" -#: admin/pages/import.php:309 +#: admin/pages/import.php:351 msgid ", and meta keywords data deleted." msgstr "" -#: admin/pages/import.php:319 +#: admin/pages/import.php:361 msgid "" "No doubt you've used an SEO plugin before if this site isn't new. Let's " "make it easy on you, you can import the data below. If you want, you can " @@ -1802,110 +1867,106 @@ msgid "" "delete. No duplicate data will be imported." msgstr "" -#: admin/pages/import.php:320 +#: admin/pages/import.php:362 msgid "" "If you've used another SEO plugin, try the %sSEO Data Transporter%s plugin " "to move your data into this plugin, it rocks!" msgstr "" -#: admin/pages/import.php:324 +#: admin/pages/import.php:366 msgid "Import from HeadSpace2?" msgstr "" -#: admin/pages/import.php:325 +#: admin/pages/import.php:367 msgid "Import from All-in-One SEO?" msgstr "" -#: admin/pages/import.php:326 +#: admin/pages/import.php:368 msgid "Import from OLD All-in-One SEO?" msgstr "" -#: admin/pages/import.php:327 +#: admin/pages/import.php:369 msgid "Import from WooThemes SEO framework?" msgstr "" -#: admin/pages/import.php:329 +#: admin/pages/import.php:371 msgid "Delete the old data after import? (recommended)" msgstr "" -#: admin/pages/import.php:331 admin/pages/import.php:346 -#: admin/pages/import.php:349 admin/pages/import.php:384 +#: admin/pages/import.php:373 admin/pages/import.php:388 +#: admin/pages/import.php:391 admin/pages/import.php:425 msgid "Import" msgstr "" -#: admin/pages/import.php:334 +#: admin/pages/import.php:376 msgid "Import settings from other plugins" msgstr "" -#: admin/pages/import.php:335 +#: admin/pages/import.php:377 msgid "Import from Robots Meta (by Yoast)?" msgstr "" -#: admin/pages/import.php:336 +#: admin/pages/import.php:378 msgid "Import from RSS Footer (by Yoast)?" msgstr "" -#: admin/pages/import.php:337 +#: admin/pages/import.php:379 msgid "Import from Yoast Breadcrumbs?" msgstr "" -#: admin/pages/import.php:358 -msgid "Export" -msgstr "" - -#: admin/pages/import.php:361 +#: admin/pages/import.php:403 msgid "" "Export your WordPress SEO settings here, to import them again later or to " "import them on another site." msgstr "" -#: admin/pages/import.php:362 +#: admin/pages/import.php:404 msgid "Include Taxonomy Metadata" msgstr "" -#: admin/pages/import.php:363 +#: admin/pages/import.php:405 msgid "Export settings" msgstr "" -#: admin/pages/import.php:386 +#: admin/pages/import.php:427 msgid "Import settings by locating settings.zip and clicking" msgstr "" -#: admin/pages/import.php:386 admin/pages/import.php:392 +#: admin/pages/import.php:427 admin/pages/import.php:433 msgid "Import settings" msgstr "" -#: admin/pages/import.php:433 +#: admin/pages/import.php:472 msgid "Setting \"%s\" is no longer used and has been discarded." msgstr "" -#: admin/pages/import.php:437 +#: admin/pages/import.php:476 msgid "Settings successfully imported." msgstr "" -#: admin/pages/import.php:440 admin/pages/import.php:445 -#: admin/pages/import.php:451 admin/pages/import.php:458 -#: admin/pages/import.php:461 +#: admin/pages/import.php:478 admin/pages/import.php:482 +#: admin/pages/import.php:487 admin/pages/import.php:493 +#: admin/pages/import.php:495 msgid "Settings could not be imported:" msgstr "" -#: admin/pages/import.php:440 +#: admin/pages/import.php:478 msgid "No settings found in file." msgstr "" -#: admin/pages/import.php:445 +#: admin/pages/import.php:482 msgid "Unzipping failed - file settings.ini not found." msgstr "" -#: admin/pages/import.php:451 +#: admin/pages/import.php:487 msgid "Unzipping failed with error \"%s\"." msgstr "" -#: admin/pages/import.php:461 +#: admin/pages/import.php:495 msgid "Upload failed." msgstr "" -#: admin/pages/import.php:465 +#: admin/pages/import.php:499 msgid "Export & Import SEO Settings" msgstr "" @@ -1968,57 +2029,53 @@ msgid "" "more code savvy, insert this in your theme:" msgstr "" -#: admin/pages/licenses.php:22 -msgid "Licenses" -msgstr "" - -#: admin/pages/licenses.php:33 +#: admin/pages/licenses.php:31 msgid "WordPress SEO Premium" msgstr "" -#: admin/pages/licenses.php:34 +#: admin/pages/licenses.php:32 msgid "The premium version of WordPress SEO with more features & support." msgstr "" -#: admin/pages/licenses.php:40 +#: admin/pages/licenses.php:37 msgid "Video SEO" msgstr "" -#: admin/pages/licenses.php:41 +#: admin/pages/licenses.php:38 msgid "Optimize your videos to show them off in search results and get more clicks!" msgstr "" -#: admin/pages/licenses.php:47 +#: admin/pages/licenses.php:43 msgid "News SEO" msgstr "" -#: admin/pages/licenses.php:48 +#: admin/pages/licenses.php:44 msgid "" "Are you in Google News? Increase your traffic from Google News by " "optimizing for it!" msgstr "" -#: admin/pages/licenses.php:54 +#: admin/pages/licenses.php:49 msgid "Local SEO" msgstr "" -#: admin/pages/licenses.php:55 +#: admin/pages/licenses.php:50 msgid "Rank better locally and in Google Maps, without breaking a sweat!" msgstr "" -#: admin/pages/licenses.php:61 +#: admin/pages/licenses.php:55 msgid "Yoast WooCommerce SEO" msgstr "" -#: admin/pages/licenses.php:62 +#: admin/pages/licenses.php:56 msgid "Seamlessly integrate WooCommerce with WordPress SEO and get extra features!" msgstr "" -#: admin/pages/licenses.php:75 +#: admin/pages/licenses.php:96 msgid "Get this extension" msgstr "" -#: admin/pages/metas.php:21 inc/class-wpseo-options.php:2083 +#: admin/pages/metas.php:21 inc/class-wpseo-options.php:2086 msgid "Home" msgstr "" @@ -2131,19 +2188,19 @@ msgstr "" msgid "Homepage" msgstr "" -#: admin/pages/metas.php:62 admin/pages/metas.php:97 admin/pages/metas.php:160 -#: admin/pages/metas.php:178 admin/pages/metas.php:188 -#: admin/pages/metas.php:198 admin/pages/metas.php:200 +#: admin/pages/metas.php:62 admin/pages/metas.php:97 admin/pages/metas.php:159 +#: admin/pages/metas.php:177 admin/pages/metas.php:187 +#: admin/pages/metas.php:197 admin/pages/metas.php:199 msgid "Title template" msgstr "" -#: admin/pages/metas.php:63 admin/pages/metas.php:98 admin/pages/metas.php:161 -#: admin/pages/metas.php:179 admin/pages/metas.php:189 +#: admin/pages/metas.php:63 admin/pages/metas.php:98 admin/pages/metas.php:160 +#: admin/pages/metas.php:178 admin/pages/metas.php:188 msgid "Meta description template" msgstr "" -#: admin/pages/metas.php:65 admin/pages/metas.php:100 admin/pages/metas.php:163 -#: admin/pages/metas.php:181 +#: admin/pages/metas.php:65 admin/pages/metas.php:100 admin/pages/metas.php:162 +#: admin/pages/metas.php:180 msgid "Meta keywords template" msgstr "" @@ -2180,59 +2237,47 @@ msgid "" "future, the below settings will take effect for *all* media items." msgstr "" -#: admin/pages/metas.php:102 admin/pages/metas.php:146 -#: admin/pages/metas.php:165 admin/pages/metas.php:183 -#: admin/pages/metas.php:191 +#: admin/pages/metas.php:102 admin/pages/metas.php:145 +#: admin/pages/metas.php:164 admin/pages/metas.php:182 +#: admin/pages/metas.php:190 msgid "Meta Robots" msgstr "" #: admin/pages/metas.php:103 -msgid "Don't show rel=\"author\"" -msgstr "" - -#: admin/pages/metas.php:104 msgid "Show date in snippet preview?" msgstr "" -#: admin/pages/metas.php:104 +#: admin/pages/metas.php:103 msgid "Date in Snippet Preview" msgstr "" -#: admin/pages/metas.php:105 admin/pages/metas.php:166 +#: admin/pages/metas.php:104 admin/pages/metas.php:165 msgid "Hide" msgstr "" -#: admin/pages/metas.php:105 admin/pages/metas.php:166 +#: admin/pages/metas.php:104 admin/pages/metas.php:165 msgid "WordPress SEO Meta Box" msgstr "" -#: admin/pages/metas.php:127 +#: admin/pages/metas.php:126 msgid "Custom Post Type Archives" msgstr "" -#: admin/pages/metas.php:128 +#: admin/pages/metas.php:127 msgid "" "Note: instead of templates these are the actual titles and meta " "descriptions for these custom post type archive pages." msgstr "" -#: admin/pages/metas.php:139 -msgid "Meta description" -msgstr "" - -#: admin/pages/metas.php:141 -msgid "Meta keywords" -msgstr "" - -#: admin/pages/metas.php:177 +#: admin/pages/metas.php:176 msgid "Author Archives" msgstr "" -#: admin/pages/metas.php:184 +#: admin/pages/metas.php:183 msgid "Disable the author archives" msgstr "" -#: admin/pages/metas.php:185 +#: admin/pages/metas.php:184 msgid "" "If you're running a one author blog, the author archive will always look " "exactly the same as your homepage. And even though you may not link to it, " @@ -2240,39 +2285,39 @@ msgid "" "to those archives will be 301 redirected to the homepage." msgstr "" -#: admin/pages/metas.php:187 +#: admin/pages/metas.php:186 msgid "Date Archives" msgstr "" -#: admin/pages/metas.php:192 +#: admin/pages/metas.php:191 msgid "Disable the date-based archives" msgstr "" -#: admin/pages/metas.php:193 +#: admin/pages/metas.php:192 msgid "" "For the date based archives, the same applies: they probably look a lot " "like your homepage, and could thus be seen as duplicate content." msgstr "" -#: admin/pages/metas.php:195 +#: admin/pages/metas.php:194 msgid "Special Pages" msgstr "" -#: admin/pages/metas.php:196 +#: admin/pages/metas.php:195 msgid "" "These pages will be noindex, followed by default, so they will never show " "up in search results." msgstr "" -#: admin/pages/metas.php:197 +#: admin/pages/metas.php:196 msgid "Search pages" msgstr "" -#: admin/pages/metas.php:199 +#: admin/pages/metas.php:198 msgid "404 pages" msgstr "" -#: admin/pages/metas.php:207 +#: admin/pages/metas.php:206 msgid "Variables" msgstr "" @@ -2518,7 +2563,7 @@ msgid "(HTML allowed)" msgstr "" #: admin/pages/rss.php:28 -msgid "Content to put after each post" +msgid "Content to put after each post in the feed" msgstr "" #: admin/pages/rss.php:33 @@ -2623,14 +2668,6 @@ msgstr "" msgid "Clear all Facebook Data" msgstr "" -#: admin/pages/social.php:172 -msgid "Facebook" -msgstr "" - -#: admin/pages/social.php:173 -msgid "Twitter" -msgstr "" - #: admin/pages/social.php:180 msgid "Add Open Graph meta data" msgstr "" @@ -2697,7 +2734,7 @@ msgid "The default card type to use" msgstr "" #: admin/pages/social.php:223 -msgid "Add Google+ specific post meta data (excluding author metadata)" +msgid "Add Google+ specific post meta data" msgstr "" #: admin/pages/social.php:226 @@ -2710,218 +2747,223 @@ msgid "" "on your Google+ page's about page." msgstr "" -#: admin/pages/xml-sitemaps.php:29 +#: admin/pages/xml-sitemaps.php:27 msgid "Check this box to enable XML sitemap functionality." msgstr "" -#: admin/pages/xml-sitemaps.php:33 +#: admin/pages/xml-sitemaps.php:31 msgid "As you're on NGINX, you'll need the following rewrites:" msgstr "" -#: admin/pages/xml-sitemaps.php:40 +#: admin/pages/xml-sitemaps.php:38 msgid "You can find your XML Sitemap here: %sXML Sitemap%s" msgstr "" -#: admin/pages/xml-sitemaps.php:40 +#: admin/pages/xml-sitemaps.php:38 msgid "" "You do not need to generate the XML sitemap, nor will it " "take up time to generate after publishing a post." msgstr "" -#: admin/pages/xml-sitemaps.php:43 +#: admin/pages/xml-sitemaps.php:40 msgid "Save your settings to activate XML Sitemaps." msgstr "" -#: admin/pages/xml-sitemaps.php:47 +#: admin/pages/xml-sitemaps.php:44 msgid "User sitemap" msgstr "" -#: admin/pages/xml-sitemaps.php:48 +#: admin/pages/xml-sitemaps.php:45 msgid "Disable author/user sitemap" msgstr "" -#: admin/pages/xml-sitemaps.php:50 +#: admin/pages/xml-sitemaps.php:48 +msgid "Exclude users without posts" +msgstr "" + +#: admin/pages/xml-sitemaps.php:49 +msgid "Disable all users with zero posts" +msgstr "" + +#: admin/pages/xml-sitemaps.php:53 +msgid "Exclude user roles" +msgstr "" + +#: admin/pages/xml-sitemaps.php:54 +msgid "" +"Please check the appropriate box below if there's a user role that you do " +"NOT want to include in your sitemap:" +msgstr "" + +#: admin/pages/xml-sitemaps.php:62 msgid "General settings" msgstr "" -#: admin/pages/xml-sitemaps.php:51 +#: admin/pages/xml-sitemaps.php:63 msgid "" "After content publication, the plugin automatically pings Google and Bing, " "do you need it to ping other search engines too? If so, check the box:" msgstr "" -#: admin/pages/xml-sitemaps.php:52 +#: admin/pages/xml-sitemaps.php:64 msgid "Ping Yahoo!" msgstr "" -#: admin/pages/xml-sitemaps.php:53 +#: admin/pages/xml-sitemaps.php:65 msgid "Ping Ask.com" msgstr "" -#: admin/pages/xml-sitemaps.php:58 +#: admin/pages/xml-sitemaps.php:70 msgid "Exclude post types" msgstr "" -#: admin/pages/xml-sitemaps.php:59 +#: admin/pages/xml-sitemaps.php:71 msgid "" "Please check the appropriate box below if there's a post type that you do " "NOT want to include in your sitemap:" msgstr "" -#: admin/pages/xml-sitemaps.php:68 +#: admin/pages/xml-sitemaps.php:80 msgid "Exclude taxonomies" msgstr "" -#: admin/pages/xml-sitemaps.php:69 +#: admin/pages/xml-sitemaps.php:81 msgid "" "Please check the appropriate box below if there's a taxonomy that you do " "NOT want to include in your sitemap:" msgstr "" -#: admin/pages/xml-sitemaps.php:79 +#: admin/pages/xml-sitemaps.php:91 msgid "Entries per page" msgstr "" -#: admin/pages/xml-sitemaps.php:80 +#: admin/pages/xml-sitemaps.php:92 msgid "" "Please enter the maximum number of entries per sitemap page (defaults to " "%s, you might want to lower this to prevent memory issues on some installs):" msgstr "" -#: admin/pages/xml-sitemaps.php:81 +#: admin/pages/xml-sitemaps.php:93 msgid "Max entries per sitemap page" msgstr "" -#: admin/pages/xml-sitemaps.php:86 +#: admin/pages/xml-sitemaps.php:98 msgid "XML Sitemap" msgstr "" -#: frontend/class-frontend.php:370 +#: frontend/class-frontend.php:365 msgid "Search for \"%s\"" msgstr "" -#: frontend/class-frontend.php:422 frontend/class-frontend.php:424 -#: frontend/class-frontend.php:426 frontend/class-frontend.php:439 -#: frontend/class-frontend.php:441 frontend/class-frontend.php:443 -#: inc/class-wpseo-options.php:1596 +#: frontend/class-frontend.php:417 frontend/class-frontend.php:419 +#: frontend/class-frontend.php:421 frontend/class-frontend.php:434 +#: frontend/class-frontend.php:436 frontend/class-frontend.php:438 +#: inc/class-wpseo-options.php:1595 msgid "%s Archives" msgstr "" -#: frontend/class-frontend.php:428 frontend/class-frontend.php:445 -#: inc/wpseo-functions.php:594 +#: frontend/class-frontend.php:423 frontend/class-frontend.php:440 msgid "Archives" msgstr "" -#: frontend/class-frontend.php:454 +#: frontend/class-frontend.php:449 inc/class-wpseo-options.php:1547 msgid "Page not found" msgstr "" -#: frontend/class-frontend.php:1188 +#: frontend/class-frontend.php:1180 msgid "" "Admin only notice: this page doesn't show a meta description because it " "doesn't have one, either write it for this page specifically or go into the " "SEO -> Titles menu and set up a template." msgstr "" -#: inc/class-wpseo-meta.php:473 -msgid "don't show" -msgstr "" - -#: inc/class-wpseo-meta.php:473 -msgid "show" -msgstr "" - -#: inc/class-wpseo-options.php:1065 +#: inc/class-wpseo-options.php:1072 msgid "%s does not seem to be a valid %s verification string. Please correct." msgstr "" -#: inc/class-wpseo-options.php:1304 +#: inc/class-wpseo-options.php:1311 msgid "" "Invalid transport mode set for the canonical settings. Value reset to " "default." msgstr "" -#: inc/class-wpseo-options.php:1540 +#: inc/class-wpseo-options.php:1545 msgid "%s, Author at %s" msgstr "" -#: inc/class-wpseo-options.php:1541 +#: inc/class-wpseo-options.php:1546 msgid "You searched for %s" msgstr "" -#: inc/class-wpseo-options.php:1542 -msgid "Page Not Found" -msgstr "" - -#: inc/class-wpseo-options.php:1585 +#: inc/class-wpseo-options.php:1584 msgid "%s Archive" msgstr "" -#: inc/class-wpseo-options.php:1989 +#: inc/class-wpseo-options.php:1992 msgid "The post %s appeared first on %s." msgstr "" -#: inc/class-wpseo-options.php:2081 +#: inc/class-wpseo-options.php:2084 msgid "Error 404: Page not found" msgstr "" -#: inc/class-wpseo-options.php:2082 +#: inc/class-wpseo-options.php:2085 msgid "Archives for" msgstr "" -#: inc/class-wpseo-options.php:2084 +#: inc/class-wpseo-options.php:2087 msgid "You searched for" msgstr "" -#: inc/class-wpseo-options.php:2173 +#: inc/class-wpseo-options.php:2176 msgid "Please select a valid taxonomy for post type \"%s\"" msgstr "" -#: inc/class-wpseo-options.php:2206 +#: inc/class-wpseo-options.php:2209 msgid "Please select a valid post type for taxonomy \"%s\"" msgstr "" -#: inc/class-wpseo-options.php:2499 +#: inc/class-wpseo-options.php:2516 msgid "" "\"Max entries per sitemap page\" should be a positive number, which %s is " "not. Please correct." msgstr "" -#: inc/class-wpseo-options.php:2659 +#: inc/class-wpseo-options.php:2679 msgid "Summary" msgstr "" -#: inc/class-wpseo-options.php:2660 +#: inc/class-wpseo-options.php:2680 msgid "Summary with large image" msgstr "" -#: inc/class-wpseo-options.php:2786 inc/class-wpseo-options.php:2815 +#: inc/class-wpseo-options.php:2804 msgid "%s does not seem to be a valid url. Please correct." msgstr "" -#: inc/class-wpseo-options.php:2847 +#: inc/class-wpseo-options.php:2840 msgid "%s does not seem to be a valid Twitter user-id. Please correct." msgstr "" -#: inc/class-wpseo-options.php:3092 +#: inc/class-wpseo-options.php:3085 msgid "" "%s is not a valid choice for who should be allowed access to the WP SEO " "settings. Value reset to the default." msgstr "" -#: inc/class-wpseo-options.php:3111 inc/class-wpseo-options.php:3120 +#: inc/class-wpseo-options.php:3104 inc/class-wpseo-options.php:3113 msgid "" "The default blog setting must be the numeric blog id of the blog you want " "to use as default." msgstr "" -#: inc/class-wpseo-options.php:3111 +#: inc/class-wpseo-options.php:3104 msgid "" "This must be an existing blog. Blog %s does not exist or has been marked as " "deleted." msgstr "" -#: inc/class-wpseo-options.php:3120 +#: inc/class-wpseo-options.php:3113 msgid "No numeric value was received." msgstr "" @@ -2931,263 +2973,279 @@ msgid "" "underscore or a dash. Try renaming your variable." msgstr "" -#: inc/class-wpseo-replace-vars.php:111 +#: inc/class-wpseo-replace-vars.php:110 msgid "" "A replacement variable can not start with \"%%cf_\" or \"%%ct_\" as these " "are reserved for the WPSEO standard variable variables for custom fields " "and custom taxonomies. Try making your variable name unique." msgstr "" -#: inc/class-wpseo-replace-vars.php:120 +#: inc/class-wpseo-replace-vars.php:117 msgid "" "A replacement variable with the same name has already been registered. Try " "making your variable name more unique." msgstr "" -#: inc/class-wpseo-replace-vars.php:124 +#: inc/class-wpseo-replace-vars.php:120 msgid "" "You cannot overrule a WPSEO standard variable replacement by registering a " "variable with the same name. Use the \"wpseo_replacements\" filter instead " "to adjust the replacement value." msgstr "" -#: inc/class-wpseo-replace-vars.php:878 +#: inc/class-wpseo-replace-vars.php:886 msgid "Page %d of %d" msgstr "" -#: inc/class-wpseo-replace-vars.php:1061 +#: inc/class-wpseo-replace-vars.php:1069 msgid "Replaced with the date of the post/page" msgstr "" -#: inc/class-wpseo-replace-vars.php:1062 +#: inc/class-wpseo-replace-vars.php:1070 msgid "Replaced with the title of the post/page" msgstr "" -#: inc/class-wpseo-replace-vars.php:1063 +#: inc/class-wpseo-replace-vars.php:1071 msgid "Replaced with the title of the parent page of the current page" msgstr "" -#: inc/class-wpseo-replace-vars.php:1064 +#: inc/class-wpseo-replace-vars.php:1072 msgid "The site's name" msgstr "" -#: inc/class-wpseo-replace-vars.php:1065 +#: inc/class-wpseo-replace-vars.php:1073 msgid "The site's tag line / description" msgstr "" -#: inc/class-wpseo-replace-vars.php:1066 +#: inc/class-wpseo-replace-vars.php:1074 msgid "Replaced with the post/page excerpt (or auto-generated if it does not exist)" msgstr "" -#: inc/class-wpseo-replace-vars.php:1067 +#: inc/class-wpseo-replace-vars.php:1075 msgid "Replaced with the post/page excerpt (without auto-generation)" msgstr "" -#: inc/class-wpseo-replace-vars.php:1068 +#: inc/class-wpseo-replace-vars.php:1076 msgid "Replaced with the current tag/tags" msgstr "" -#: inc/class-wpseo-replace-vars.php:1069 +#: inc/class-wpseo-replace-vars.php:1077 msgid "Replaced with the post categories (comma separated)" msgstr "" -#: inc/class-wpseo-replace-vars.php:1070 +#: inc/class-wpseo-replace-vars.php:1078 msgid "Replaced with the category description" msgstr "" -#: inc/class-wpseo-replace-vars.php:1071 +#: inc/class-wpseo-replace-vars.php:1079 msgid "Replaced with the tag description" msgstr "" -#: inc/class-wpseo-replace-vars.php:1072 +#: inc/class-wpseo-replace-vars.php:1080 msgid "Replaced with the term description" msgstr "" -#: inc/class-wpseo-replace-vars.php:1073 +#: inc/class-wpseo-replace-vars.php:1081 msgid "Replaced with the term name" msgstr "" -#: inc/class-wpseo-replace-vars.php:1074 +#: inc/class-wpseo-replace-vars.php:1082 msgid "Replaced with the current search phrase" msgstr "" -#: inc/class-wpseo-replace-vars.php:1075 +#: inc/class-wpseo-replace-vars.php:1083 msgid "The separator defined in your theme's wp_title() tag." msgstr "" -#: inc/class-wpseo-replace-vars.php:1084 +#: inc/class-wpseo-replace-vars.php:1092 msgid "Replaced with the post type single label" msgstr "" -#: inc/class-wpseo-replace-vars.php:1085 +#: inc/class-wpseo-replace-vars.php:1093 msgid "Replaced with the post type plural label" msgstr "" -#: inc/class-wpseo-replace-vars.php:1086 +#: inc/class-wpseo-replace-vars.php:1094 msgid "Replaced with the post/page modified time" msgstr "" -#: inc/class-wpseo-replace-vars.php:1087 +#: inc/class-wpseo-replace-vars.php:1095 msgid "Replaced with the post/page ID" msgstr "" -#: inc/class-wpseo-replace-vars.php:1088 +#: inc/class-wpseo-replace-vars.php:1096 msgid "Replaced with the post/page author's 'nicename'" msgstr "" -#: inc/class-wpseo-replace-vars.php:1089 -msgid "Replaced with the post/page author's userid" -msgstr "" - -#: inc/class-wpseo-replace-vars.php:1090 -msgid "Replaced with the current time" -msgstr "" - -#: inc/class-wpseo-replace-vars.php:1091 -msgid "Replaced with the current date" -msgstr "" - -#: inc/class-wpseo-replace-vars.php:1092 -msgid "Replaced with the current day" -msgstr "" - -#: inc/class-wpseo-replace-vars.php:1093 -msgid "Replaced with the current month" -msgstr "" - -#: inc/class-wpseo-replace-vars.php:1094 -msgid "Replaced with the current year" -msgstr "" - -#: inc/class-wpseo-replace-vars.php:1095 -msgid "Replaced with the current page number with context (i.e. page 2 of 4)" -msgstr "" - -#: inc/class-wpseo-replace-vars.php:1096 -msgid "Replaced with the current page total" -msgstr "" - #: inc/class-wpseo-replace-vars.php:1097 -msgid "Replaced with the current page number" +msgid "Replaced with the post/page author's 'Biographical Info'" msgstr "" #: inc/class-wpseo-replace-vars.php:1098 -msgid "Attachment caption" +msgid "Replaced with the post/page author's userid" msgstr "" #: inc/class-wpseo-replace-vars.php:1099 -msgid "Replaced with the posts focus keyword" +msgid "Replaced with the current time" msgstr "" #: inc/class-wpseo-replace-vars.php:1100 -msgid "Replaced with the slug which caused the 404" +msgid "Replaced with the current date" msgstr "" #: inc/class-wpseo-replace-vars.php:1101 -msgid "Replaced with a posts custom field value" +msgid "Replaced with the current day" msgstr "" #: inc/class-wpseo-replace-vars.php:1102 -msgid "Replaced with a posts custom taxonomies, comma separated." +msgid "Replaced with the current month" msgstr "" #: inc/class-wpseo-replace-vars.php:1103 +msgid "Replaced with the current year" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1104 +msgid "Replaced with the current page number with context (i.e. page 2 of 4)" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1105 +msgid "Replaced with the current page total" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1106 +msgid "Replaced with the current page number" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1107 +msgid "Attachment caption" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1108 +msgid "Replaced with the posts focus keyword" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1109 +msgid "Replaced with the slug which caused the 404" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1110 +msgid "Replaced with a posts custom field value" +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1111 +msgid "Replaced with a posts custom taxonomies, comma separated." +msgstr "" + +#: inc/class-wpseo-replace-vars.php:1112 msgid "Replaced with a custom taxonomies description" msgstr "" -#: inc/wpseo-functions.php:424 -msgid "Authors" -msgstr "" - -#: inc/wpseo-functions.php:469 -msgid "Pages" -msgstr "" - -#: inc/wpseo-non-ajax-functions.php:223 +#: inc/wpseo-non-ajax-functions.php:226 msgid "N/A" msgstr "" -#: inc/wpseo-non-ajax-functions.php:228 +#: inc/wpseo-non-ajax-functions.php:231 msgid "Poor" msgstr "" -#: inc/wpseo-non-ajax-functions.php:239 +#: inc/wpseo-non-ajax-functions.php:242 msgid "Good" msgstr "" -#: inc/wpseo-non-ajax-functions.php:243 +#: inc/wpseo-non-ajax-functions.php:246 msgid "Bad" msgstr "" -#: inc/wpseo-non-ajax-functions.php:326 +#: inc/wpseo-non-ajax-functions.php:329 msgid "Keyword Research" msgstr "" -#: inc/wpseo-non-ajax-functions.php:332 +#: inc/wpseo-non-ajax-functions.php:335 msgid "AdWords External" msgstr "" -#: inc/wpseo-non-ajax-functions.php:339 +#: inc/wpseo-non-ajax-functions.php:342 msgid "Google Insights" msgstr "" -#: inc/wpseo-non-ajax-functions.php:346 +#: inc/wpseo-non-ajax-functions.php:349 msgid "SEO Book" msgstr "" -#: inc/wpseo-non-ajax-functions.php:355 +#: inc/wpseo-non-ajax-functions.php:358 msgid "Analyze this page" msgstr "" -#: inc/wpseo-non-ajax-functions.php:363 +#: inc/wpseo-non-ajax-functions.php:366 msgid "Check Inlinks (OSE)" msgstr "" -#: inc/wpseo-non-ajax-functions.php:370 +#: inc/wpseo-non-ajax-functions.php:373 msgid "Check Keyword Density" msgstr "" -#: inc/wpseo-non-ajax-functions.php:377 +#: inc/wpseo-non-ajax-functions.php:380 msgid "Check Google Cache" msgstr "" -#: inc/wpseo-non-ajax-functions.php:384 +#: inc/wpseo-non-ajax-functions.php:387 msgid "Check Headers" msgstr "" -#: inc/wpseo-non-ajax-functions.php:391 +#: inc/wpseo-non-ajax-functions.php:394 msgid "Check Rich Snippets" msgstr "" -#: inc/wpseo-non-ajax-functions.php:398 +#: inc/wpseo-non-ajax-functions.php:401 msgid "Facebook Debugger" msgstr "" -#: inc/wpseo-non-ajax-functions.php:432 +#: inc/wpseo-non-ajax-functions.php:408 +msgid "Pinterest Rich Pins Validator" +msgstr "" + +#: inc/wpseo-non-ajax-functions.php:415 +msgid "HTML Validator" +msgstr "" + +#: inc/wpseo-non-ajax-functions.php:422 +msgid "CSS Validator" +msgstr "" + +#: inc/wpseo-non-ajax-functions.php:429 +msgid "Google Page Speed Test" +msgstr "" + +#: inc/wpseo-non-ajax-functions.php:436 +msgid "Modern IE Site Scan" +msgstr "" + +#: inc/wpseo-non-ajax-functions.php:460 msgid "SEO Settings" msgstr "" -#: inc/wpseo-non-ajax-functions.php:623 +#: inc/wpseo-non-ajax-functions.php:651 msgid "" "The plugin All-In-One-SEO has been detected. Do you want to %simport its " "settings%s." msgstr "" -#: inc/wpseo-non-ajax-functions.php:632 +#: inc/wpseo-non-ajax-functions.php:660 msgid "All-In-One-SEO has been deactivated" msgstr "" -#: inc/wpseo-non-ajax-functions.php:641 +#: inc/wpseo-non-ajax-functions.php:669 msgid "" "The plugin Robots-Meta has been detected. Do you want to %simport its " "settings%s." msgstr "" -#: inc/wpseo-non-ajax-functions.php:650 +#: inc/wpseo-non-ajax-functions.php:678 msgid "Robots-Meta has been deactivated" msgstr "" -#: wp-seo-main.php:421 +#: wp-seo-main.php:425 msgid "" "The Standard PHP Library (SPL) extension seem to be unavailable. Please ask " "your web host to enable it." @@ -3210,21 +3268,21 @@ msgid "" msgstr "" #. Author of the plugin/theme -msgid "Joost de Valk" +msgid "Team Yoast" msgstr "" #. Author URI of the plugin/theme msgid "https://yoast.com/" msgstr "" -#: admin/class-bulk-editor-list-table.php:231 +#: admin/class-bulk-editor-list-table.php:241 msgctxt "posts" msgid "All (%s)" msgid_plural "All (%s)" msgstr[0] "" msgstr[1] "" -#: admin/class-bulk-editor-list-table.php:271 +#: admin/class-bulk-editor-list-table.php:281 msgctxt "posts" msgid "Trash (%s)" msgid_plural "Trash (%s)" diff --git a/wp-content/plugins/wordpress-seo/readme.txt b/wp-content/plugins/wordpress-seo/readme.txt index b2bd618..c4b3d77 100644 --- a/wp-content/plugins/wordpress-seo/readme.txt +++ b/wp-content/plugins/wordpress-seo/readme.txt @@ -4,9 +4,9 @@ Donate link: https://yoast.com/ License: GPLv3 License URI: http://www.gnu.org/licenses/gpl.html Tags: seo, SEO, Yoast SEO, google, meta, meta description, search engine optimization, xml sitemap, xml sitemaps, google sitemap, sitemap, sitemaps, robots meta, rss, rss footer, yahoo, bing, news sitemaps, XML News Sitemaps, WordPress SEO, WordPress SEO by Yoast, yoast, multisite, canonical, nofollow, noindex, keywords, meta keywords, description, webmaster tools, google webmaster tools, seo pack -Requires at least: 3.5 +Requires at least: 3.8 Tested up to: 4.0 -Stable tag: 1.5.6 +Stable tag: 1.7.1 Improve your WordPress SEO: Write better content and have a fully optimized WordPress site using Yoast's WordPress SEO plugin. @@ -116,6 +116,94 @@ You'll find the [FAQ on Yoast.com](https://yoast.com/wordpress/plugins/seo/faq/) == Changelog == += 1.7.1 = + +* Security fix: fixed possible cross scripting issue with encoded entities in a post title. This could potentially allow an author on your site to execute JavaScript when you visit that posts edit page, allowing them to do rights expansion or otherwise. + +Thanks to [Joe Hoyle](http://www.joehoyle.co.uk/) for responsibly disclosing this issue. + += 1.7 = + +* Features: + * Adds Twitter inputs to the Social tab. + * Tries to purge Facebook cache when OpenGraph settings are edited. + * Added a new box promoting our translation site for non en_US users. + * Added several new tools (Pinterest Rich Pins, HTML Validation, CSS Validation, Google PageSpeed), props [bhubbard](https://github.com/bhubbard) + +* Enhancements: + * Functionality change: when there's a featured image, output only that for both Twitter and FB, ignore other images in post. + * UX change: rework logic for showing networks on Social tab, social network no longer shows on social tabs if not enabled in admin. + * Always output a specific Twitter title and description, as otherwise we can't overwrite them from metabox. + * Check for conflicts with other plugins doing XML sitemaps or OpenGraph. + * Qtip library replaced with Qtip2. + * Merged several similar translation strings, props [@ramiy](https://github.com/ramiy) + * Several RTL improvements, props [@ramiy](https://github.com/ramiy) + * Several Typo fixes, props [@ramiy](https://github.com/ramiy) + * Updated Open Site Explorer Link, props [bhubbard](https://github.com/bhubbard) + * Updated all links to use // instead of https:// and http://, props [bhubbard](https://github.com/bhubbard) + * When importing from AIOSEO, on finding GA settings, advertise Yoast GA plugin. + * Makes sure stopwords are only removed from slug on publication. + * Updated translations. + +* Bugfixes: + * Fixes a bug where the wrong image was being displayed in twitter cards. + * Fixes a bug where facebook would display the wrong image. + * Fixes a bug where last modified in sitemap was broken. + * Fixes a bug wher SEO-score heading made the table row jump on hover because there wasn't enough place left for the down arrow. + * Removed a couple of languages that were not up to date. + += 1.6.3 = + +* Bugfixes: + * Revert earlier logic change that broke taxonomy sitemaps. + += 1.6.2 = + +* Bugfixes: + * Fixed security issue with XSS in bulk editor, props @ryanhellyer. + * Fix bug where URL would show wrongly in snippet preview for static homepage. + * Fix bug where filtering for posts without a focus keyword in the posts overview wouldn't work. + * Fix a bug where code wouldn't be escaped in the bulk editor. + +* Enhancements: + * When meta description is present, `og:description` is filled with that on category pages. + * Texturize some pointers, props @nacin. + * Fix typo in tour, props @markjaquith. + * Code optimization in in replace vars functionality, props @dannyvankooten. + += 1.6.1 = + +* Bugfixes: + * Remove tags from title and description for snippet preview. + * Fix several notices. + * Improve escaping of values in the bulk editor before saving. + +* Enhancements: + * New admin icon using SVG, which uses proper color. + * Introduced a filter for the XML Sitemap base URL, `wpseo_sitemaps_base_url` + * Introduced a filter for the JSON+LD output: `wpseo_json_ld_search_output` + +* For developers: the [GitHub version](https://github.com/Yoast/wordpress-seo) now contains a full Grunt implementation for many actions. + += 1.6 = + +This update removes more code than it adds, because Google stopped support for rel=author. It adds the new json+ld code for search in sitelinks though, so could have some cool results! + +* Bugfixes: + * Removed leftover code for the deleted HTML sitemap functionality. + * Fix [a bug](https://github.com/Yoast/wordpress-seo/pull/1520) where the wrong `$post` info would be used for the metabox, props [mgmartel](https://github.com/mgmartel). + * Fix the way we [replace whitespace](https://github.com/Yoast/wordpress-seo/pull/1542) to be more compatible with different encoding, props [Jrf](http://profiles.wordpress.org/jrf). + +* Enhancements: + * Implement new [sitelinks search box json+ld code](https://developers.google.com/webmasters/richsnippets/sitelinkssearch). Enabled by default, to disable use the new `disable_wpseo_json_ld_search` filter. To change the URL being put out use the `wpseo_json_ld_search_url` filter. + * Improved the onboarding tour to be more in line with the current status of the plugin. + +* Other: + * Removed all code to do with `rel=author` as Google has stopped that "experiment", see [this blog post](https://yoast.com/ten-blue-links/) for more info. + +* i18n + * Updated da_DK, fa_IR, fr_FR, hr, hu_HU, nl_NL, pt_BR and tr_RK + = 1.5.6 = * Bugfixes: diff --git a/wp-content/plugins/wordpress-seo/wp-seo-main.php b/wp-content/plugins/wordpress-seo/wp-seo-main.php index 8f3e564..dce6943 100644 --- a/wp-content/plugins/wordpress-seo/wp-seo-main.php +++ b/wp-content/plugins/wordpress-seo/wp-seo-main.php @@ -14,7 +14,7 @@ if ( ! function_exists( 'add_filter' ) ) { * @internal Nobody should be able to overrule the real version number as this can cause serious issues * with the options, so no if ( ! defined() ) */ -define( 'WPSEO_VERSION', '1.5.6' ); +define( 'WPSEO_VERSION', '1.7.1' ); if ( ! defined( 'WPSEO_PATH' ) ) { define( 'WPSEO_PATH', plugin_dir_path( WPSEO_FILE ) ); @@ -34,7 +34,8 @@ if ( ! defined( 'WPSEO_CSSJS_SUFFIX' ) ) { /** * Auto load our class files * - * @param string $class Class name + * @param string $class Class name + * * @return void */ function wpseo_auto_load( $class ) { @@ -45,14 +46,19 @@ function wpseo_auto_load( $class ) { 'wpseo_admin' => WPSEO_PATH . 'admin/class-admin.php', 'wpseo_bulk_title_editor_list_table' => WPSEO_PATH . 'admin/class-bulk-title-editor-list-table.php', 'wpseo_bulk_description_list_table' => WPSEO_PATH . 'admin/class-bulk-description-editor-list-table.php', + 'wpseo_bulk_index_editor_list_table' => WPSEO_PATH . 'admin/class-bulk-index-editor-list-table.php', 'wpseo_bulk_list_table' => WPSEO_PATH . 'admin/class-bulk-editor-list-table.php', 'wpseo_admin_pages' => WPSEO_PATH . 'admin/class-config.php', 'wpseo_metabox' => WPSEO_PATH . 'admin/class-metabox.php', + 'wpseo_snippet_preview' => WPSEO_PATH . 'admin/class-snippet-preview.php', 'wpseo_social_admin' => WPSEO_PATH . 'admin/class-opengraph-admin.php', 'wpseo_pointers' => WPSEO_PATH . 'admin/class-pointers.php', 'wpseo_sitemaps_admin' => WPSEO_PATH . 'admin/class-sitemaps-admin.php', 'wpseo_taxonomy' => WPSEO_PATH . 'admin/class-taxonomy.php', + 'yoast_i18n' => WPSEO_PATH . 'admin/includes/i18n-module/i18n-module.php', 'yoast_tracking' => WPSEO_PATH . 'admin/class-tracking.php', + 'yoast_plugin_conflict' => WPSEO_PATH . 'admin/class-yoast-plugin-conflict.php', + 'wpseo_plugin_conflict' => WPSEO_PATH . 'admin/class-plugin-conflict.php', 'yoast_textstatistics' => WPSEO_PATH . 'admin/TextStatistics.php', 'wpseo_breadcrumbs' => WPSEO_PATH . 'frontend/class-breadcrumbs.php', 'wpseo_frontend' => WPSEO_PATH . 'frontend/class-frontend.php', @@ -61,7 +67,6 @@ function wpseo_auto_load( $class ) { 'wpseo_googleplus' => WPSEO_PATH . 'frontend/class-googleplus.php', 'wpseo_rewrite' => WPSEO_PATH . 'inc/class-rewrite.php', 'wpseo_sitemaps' => WPSEO_PATH . 'inc/class-sitemaps.php', - 'sitemap_walker' => WPSEO_PATH . 'inc/class-sitemap-walker.php', 'wpseo_options' => WPSEO_PATH . 'inc/class-wpseo-options.php', 'wpseo_option' => WPSEO_PATH . 'inc/class-wpseo-options.php', 'wpseo_option_wpseo' => WPSEO_PATH . 'inc/class-wpseo-options.php', @@ -75,14 +80,11 @@ function wpseo_auto_load( $class ) { 'wpseo_taxonomy_meta' => WPSEO_PATH . 'inc/class-wpseo-options.php', 'wpseo_meta' => WPSEO_PATH . 'inc/class-wpseo-meta.php', 'wpseo_replace_vars' => WPSEO_PATH . 'inc/class-wpseo-replace-vars.php', - 'yoast_license_manager' => WPSEO_PATH . 'admin/license-manager/class-license-manager.php', - 'yoast_plugin_license_manager' => WPSEO_PATH . 'admin/license-manager/class-plugin-license-manager.php', - 'yoast_product' => WPSEO_PATH . 'admin/license-manager/class-product.php', - - 'yoast_notification_center' => WPSEO_PATH . 'admin/class-yoast-notification-center.php', - 'yoast_notification' => WPSEO_PATH . 'admin/class-yoast-notification.php', - + 'yoast_plugin_license_manager' => WPSEO_PATH . 'admin/license-manager/class-plugin-license-manager.php', + 'yoast_product' => WPSEO_PATH . 'admin/license-manager/class-product.php', + 'yoast_notification_center' => WPSEO_PATH . 'admin/class-yoast-notification-center.php', + 'yoast_notification' => WPSEO_PATH . 'admin/class-yoast-notification.php', 'wp_list_table' => ABSPATH . 'wp-admin/includes/class-wp-list-table.php', 'walker_category' => ABSPATH . 'wp-includes/category-template.php', 'pclzip' => ABSPATH . 'wp-admin/includes/class-pclzip.php', @@ -95,24 +97,23 @@ function wpseo_auto_load( $class ) { require_once( $classes[ $cn ] ); } } + if ( function_exists( 'spl_autoload_register' ) ) { spl_autoload_register( 'wpseo_auto_load' ); } - /* ***************************** PLUGIN (DE-)ACTIVATION *************************** */ /** * Run single site / network-wide activation of the plugin. * - * @param bool $networkwide Whether the plugin is being activated network-wide + * @param bool $networkwide Whether the plugin is being activated network-wide */ function wpseo_activate( $networkwide = false ) { if ( ! is_multisite() || ! $networkwide ) { _wpseo_activate(); - } - else { + } else { /* Multi-site network activation - activate the plugin for all blogs */ wpseo_network_activate_deactivate( true ); } @@ -121,13 +122,12 @@ function wpseo_activate( $networkwide = false ) { /** * Run single site / network-wide de-activation of the plugin. * - * @param bool $networkwide Whether the plugin is being de-activated network-wide + * @param bool $networkwide Whether the plugin is being de-activated network-wide */ function wpseo_deactivate( $networkwide = false ) { if ( ! is_multisite() || ! $networkwide ) { _wpseo_deactivate(); - } - else { + } else { /* Multi-site network activation - de-activate the plugin for all blogs */ wpseo_network_activate_deactivate( false ); } @@ -136,7 +136,7 @@ function wpseo_deactivate( $networkwide = false ) { /** * Run network-wide (de-)activation of the plugin * - * @param bool $activate True for plugin activation, false for de-activation + * @param bool $activate True for plugin activation, false for de-activation */ function wpseo_network_activate_deactivate( $activate = true ) { global $wpdb; @@ -150,8 +150,7 @@ function wpseo_network_activate_deactivate( $activate = true ) { if ( $activate === true ) { _wpseo_activate(); - } - else { + } else { _wpseo_deactivate(); } } @@ -170,8 +169,7 @@ function _wpseo_activate() { WPSEO_Options::get_instance(); if ( ! is_multisite() ) { WPSEO_Options::initialize(); - } - else { + } else { WPSEO_Options::maybe_set_multisite_defaults( true ); } WPSEO_Options::ensure_options_exist(); @@ -213,7 +211,7 @@ function _wpseo_deactivate() { * * Will only be called by multisite actions. * @internal Unfortunately will fail if the plugin is in the must-use directory - * @see https://core.trac.wordpress.org/ticket/24205 + * @see https://core.trac.wordpress.org/ticket/24205 */ function wpseo_on_activate_blog( $blog_id ) { if ( ! function_exists( 'is_plugin_active_for_network' ) ) { @@ -228,7 +226,6 @@ function wpseo_on_activate_blog( $blog_id ) { } - /* ***************************** PLUGIN LOADING *************************** */ /** @@ -237,8 +234,8 @@ function wpseo_on_activate_blog( $blog_id ) { function wpseo_load_textdomain() { load_plugin_textdomain( 'wordpress-seo', false, dirname( plugin_basename( WPSEO_FILE ) ) . '/languages/' ); } -add_action( 'init', 'wpseo_load_textdomain', 1 ); +add_action( 'init', 'wpseo_load_textdomain', 1 ); /** @@ -310,6 +307,28 @@ function wpseo_frontend_head_init() { } } +/** + * Register the promotion class for our GlotPress instance + * + * @link https://github.com/Yoast/i18n-module + * + * @return yoast_i18n + */ +function register_i18n_promo_class() { + return new yoast_i18n( + array( + 'textdomain' => 'wordpress-seo', + 'project_slug' => 'wordpress-seo', + 'plugin_name' => 'WordPress SEO by Yoast', + 'hook' => 'wpseo_admin_footer', + 'glotpress_url' => 'http://translate.yoast.com/', + 'glotpress_name' => 'Yoast Translate', + 'glotpress_logo' => 'https://cdn.yoast.com/wp-content/uploads/i18n-images/Yoast_Translate.svg', + 'register_url' => 'http://translate.yoast.com/projects#utm_source=plugin&utm_medium=promo-box&utm_campaign=wpseo-i18n-promo', + ) + ); +} + /** * Used to load the required files on the plugins_loaded hook, instead of immediately. */ @@ -332,22 +351,26 @@ function wpseo_admin_init() { */ if ( method_exists( 'Yoast_Tracking', 'get_instance' ) ) { add_action( 'yoast_tracking', array( 'Yoast_Tracking', 'get_instance' ) ); - } - else { + } else { $GLOBALS['yoast_tracking'] = new Yoast_Tracking; } } /** - * Filter: 'wpseo_always_register_metaboxes_on_admint' - Allow developers to change whether + * Filter: 'wpseo_always_register_metaboxes_on_admin' - Allow developers to change whether * the WPSEO metaboxes are only registered on the typical pages (lean loading) or always * registered when in admin. * * @api bool Whether to always register the metaboxes or not. Defaults to false. */ - if ( in_array( $pagenow, array( 'edit.php', 'post.php', 'post-new.php' ) ) || apply_filters( 'wpseo_always_register_metaboxes_on_admin', false ) ) { + if ( in_array( $pagenow, array( + 'edit.php', + 'post.php', + 'post-new.php' + ) ) || apply_filters( 'wpseo_always_register_metaboxes_on_admin', false ) + ) { $GLOBALS['wpseo_metabox'] = new WPSEO_Metabox; - if ( $options['opengraph'] === true ) { + if ( $options['opengraph'] === true || $options['twitter'] === true || $options['googleplus'] === true ) { $GLOBALS['wpseo_social'] = new WPSEO_Social_Admin; } } @@ -359,6 +382,8 @@ function wpseo_admin_init() { if ( in_array( $pagenow, array( 'admin.php' ) ) ) { // @todo [JRF => whomever] Can we load this more selectively ? like only when $_GET['page'] is one of ours ? $GLOBALS['wpseo_admin_pages'] = new WPSEO_Admin_Pages; + + $GLOBALS['WPSEO_i18n'] = register_i18n_promo_class(); } if ( $options['tracking_popup_done'] === false || $options['ignore_tour'] === false ) { @@ -371,24 +396,20 @@ function wpseo_admin_init() { } - /* ***************************** BOOTSTRAP / HOOK INTO WP *************************** */ if ( ! function_exists( 'spl_autoload_register' ) ) { add_action( 'admin_init', 'yoast_wpseo_self_deactivate', 1 ); -} -else if ( ! defined( 'WP_INSTALLING' ) || WP_INSTALLING === false ) { +} else if ( ! defined( 'WP_INSTALLING' ) || WP_INSTALLING === false ) { add_action( 'plugins_loaded', 'wpseo_init', 14 ); if ( is_admin() ) { if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { require_once( WPSEO_PATH . 'admin/ajax.php' ); - } - else { + } else { add_action( 'plugins_loaded', 'wpseo_admin_init', 15 ); } - } - else { + } else { add_action( 'plugins_loaded', 'wpseo_frontend_init', 15 ); } @@ -397,6 +418,7 @@ else if ( ! defined( 'WP_INSTALLING' ) || WP_INSTALLING === false ) { // Activation and deactivation hook register_activation_hook( WPSEO_FILE, 'wpseo_activate' ); +register_activation_hook( WPSEO_FILE, array( 'WPSEO_Plugin_Conflict', 'hook_check_for_plugin_conflicts' ) ); register_deactivation_hook( WPSEO_FILE, 'wpseo_deactivate' ); add_action( 'wpmu_new_blog', 'wpseo_on_activate_blog' ); add_action( 'activate_blog', 'wpseo_on_activate_blog' ); @@ -413,8 +435,9 @@ function load_yoast_notifications() { * * @since 1.5.4 * - * @param string Error message - * @return void + * @param string Error message + * + * @return void */ function yoast_wpseo_self_deactivate() { if ( is_admin() ) { diff --git a/wp-content/plugins/wordpress-seo/wp-seo.php b/wp-content/plugins/wordpress-seo/wp-seo.php index b301486..e87c256 100644 --- a/wp-content/plugins/wordpress-seo/wp-seo.php +++ b/wp-content/plugins/wordpress-seo/wp-seo.php @@ -1,10 +1,10 @@ index, '|' ) . '/*?$|', '/', $redirect['path']); @@ -421,7 +417,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) { ( strtolower($original['host']) != 'www.' . strtolower($redirect['host']) && 'www.' . strtolower($original['host']) != strtolower($redirect['host']) ) ) $redirect['host'] = $original['host']; - $compare_original = array( $original['scheme'], $original['host'], $original['path'] ); + $compare_original = array( $original['host'], $original['path'] ); if ( !empty( $original['port'] ) ) $compare_original[] = $original['port']; @@ -429,7 +425,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) { if ( !empty( $original['query'] ) ) $compare_original[] = $original['query']; - $compare_redirect = array( $redirect['scheme'], $redirect['host'], $redirect['path'] ); + $compare_redirect = array( $redirect['host'], $redirect['path'] ); if ( !empty( $redirect['port'] ) ) $compare_redirect[] = $redirect['port']; diff --git a/wp-includes/class-phpass.php b/wp-includes/class-phpass.php index 1970ae9..f2dadae 100644 --- a/wp-includes/class-phpass.php +++ b/wp-includes/class-phpass.php @@ -214,6 +214,10 @@ class PasswordHash { function HashPassword($password) { + if ( strlen( $password ) > 4096 ) { + return '*'; + } + $random = ''; if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) { @@ -249,6 +253,10 @@ class PasswordHash { function CheckPassword($password, $stored_hash) { + if ( strlen( $password ) > 4096 ) { + return false; + } + $hash = $this->crypt_private($password, $stored_hash); if ($hash[0] == '*') $hash = crypt($password, $stored_hash); diff --git a/wp-includes/css/media-views-rtl.css b/wp-includes/css/media-views-rtl.css index d190939..d122b8f 100644 --- a/wp-includes/css/media-views-rtl.css +++ b/wp-includes/css/media-views-rtl.css @@ -7,6 +7,14 @@ box-sizing: content-box; } +.media-frame input, +.media-frame select, +.media-frame textarea { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + .media-modal, .media-frame { font-family: "Open Sans", sans-serif; @@ -56,9 +64,6 @@ .media-frame select { font-family: "Open Sans", sans-serif; font-size: 12px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; border-width: 1px; border-style: solid; border-color: #dfdfdf; diff --git a/wp-includes/css/media-views-rtl.min.css b/wp-includes/css/media-views-rtl.min.css index d346559..fb2fedb 100644 --- a/wp-includes/css/media-views-rtl.min.css +++ b/wp-includes/css/media-views-rtl.min.css @@ -1 +1 @@ -.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:none;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame input[type=email]:focus,.media-frame input[type=number]:focus,.media-frame input[type=password]:focus,.media-frame input[type=search]:focus,.media-frame input[type=text]:focus,.media-frame input[type=url]:focus,.media-frame select:focus,.media-frame textarea:focus{border-color:#5b9dd9}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;right:30px;left:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:10px;left:10px;width:30px;height:30px;z-index:1000;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active{-webkit-box-shadow:none;box-shadow:none}.media-modal-close span.media-modal-icon{display:block;margin-top:5px;width:30px;height:15px;background-image:none;text-align:center}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;right:0;left:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;right:0;left:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:left;height:100%}.media-toolbar-secondary{float:right;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-right:10px;float:right;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-left:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;left:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-right:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:right;width:100%;margin:1px 0}.attachment-details .setting label,.media-sidebar .setting label{display:block}.attachment-details .setting .link-to-custom,.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting span,.media-sidebar .setting span{min-width:30%;margin-left:4%;font-size:12px;text-align:left}.attachment-details .setting select,.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{float:right;min-height:22px;padding-top:8px;line-height:16px;font-weight:400;color:#666}.compat-item label span{text-align:left}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px;width:65%;float:left}.attachment-details .setting .value,.media-sidebar .setting .value{margin:0 1px;text-align:right}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.attachment-details select,.media-sidebar select{margin-top:3px}.compat-item{float:right;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-left:4%;float:right;text-align:left}.compat-item .label span{display:block;width:100%}.compat-item .field{float:left;width:66%}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url]{width:100%;margin:0}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:10px 0;background:#f3f3f3;border-left-width:1px;border-left-style:solid;border-left-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:right;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-left:0}.media-router>a:active{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;right:0;left:0;bottom:0}.media-frame-menu{position:absolute;top:0;right:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;right:200px;left:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;right:200px;left:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;right:200px;left:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;right:200px;left:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{right:0}.media-frame.hide-menu .media-frame-menu{right:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title .dashicons{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:50px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:left;margin-left:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;right:50%;margin-right:-150px;margin-left:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-left:10px}.media-frame .search{margin-top:11px;padding:4px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-left:16px}.attachments{margin:0;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:right;padding:8px;margin:0;color:#464646;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:25%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.attachment.details:focus,.attachment:focus,.selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;outline:0}.selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc}.attachment.details{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe}.attachment-preview{position:relative;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment-preview:before{content:'';display:block;padding-top:100%}.attachment .icon{margin:0 auto;overflow:hidden}.attachment .thumbnail{overflow:hidden;position:absolute;top:0;left:0;bottom:0;right:0;opacity:1;-webkit-transition:opacity .1s;transition:opacity .1s}.attachment .portrait img{max-width:100%}.attachment .landscape img{max-height:100%}.attachment .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .thumbnail .centered img.icon{-webkit-transform:translate(-50%,-70%);-ms-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}.ie8 .attachment img.icon{top:20%;position:relative}.attachment .filename{position:absolute;right:0;left:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;left:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;z-index:10;top:0;left:0;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details .check,.attachment.selected .check:focus,.media-frame.mode-grid .attachment.selected .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div,.media-frame.mode-grid .attachment.selected .check div{background-position:-21px 0}.attachment.details .check:hover div,.attachment.selected .check:focus div,.media-frame.mode-grid .attachment.selected .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{left:300px;height:50px}.attachments-browser.hide-sidebar .media-toolbar{left:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:11px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;right:0;left:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;position:absolute;left:0;text-align:center;top:0;width:50px;z-index:1}.uploader-inline .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{left:0;margin-left:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-left:.5em}.attachments-browser .no-media{padding:2em 2em 0 0}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;right:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;left:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px solid #c00;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-left:8px;font-weight:700;color:#fff;background:#e00;background:#e00 -webkit-gradient(linear,right top,right bottom,from(#e00),to(#a00));background:#e00 -webkit-linear-gradient(top,#e00,#a00);background:#e00 linear-gradient(to bottom,#e00,#a00);-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;right:0;left:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;right:10px;left:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;right:0;left:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px;margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;right:0;left:350px;height:60px;padding:0 16px 0 0;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-left:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:right;padding:1px 8px;margin:1px -8px 1px 8px;line-height:16px;text-decoration:none;border-left:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-left:0;margin-left:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:48px;padding:0;margin:0;-webkit-box-shadow:none;box-shadow:none}.media-selection .attachment .thumbnail{top:4px;left:4px;bottom:4px;right:4px}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{-webkit-box-shadow:none;box-shadow:none;background:0 0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;left:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to right,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:left;text-transform:none;z-index:10}.attachment-details .settings-save-status .spinner{margin:0 5px}.attachment-details .settings-save-status .saved{float:left;display:none}.attachment-details.save-complete .settings-save-status .saved,.attachment-details.save-waiting .settings-save-status .spinner{display:block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:right;max-width:120px;max-height:120px;margin-top:5px;margin-left:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:right;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{color:#bc0b0b}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:right;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:right;margin-left:8px}.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wait{height:auto!important;left:0;bottom:0;right:0}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;left:282px;bottom:0;right:0;overflow:auto}.media-modal .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-right:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;left:0;bottom:0;width:250px;overflow:auto}.media-modal .imgedit-group{background:0 0;border:none;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0 0 16px;padding:0 0 16px;position:relative}.media-modal .imgedit-group:last-of-type{border:none;margin:0;padding:0}.media-modal .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 0}.media-modal .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-modal .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-modal .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-modal .imgedit-group img{margin-top:5px}.media-modal .imgedit-wrap div.updated{margin:0 0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:32px;left:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:70px;right:0;left:0;bottom:0;padding:16px 16px 32px;overflow:auto}.embed-preview embed,.embed-preview iframe,.embed-preview img{max-width:100%}.embed-preview img{height:auto}.image-details .media-modal{right:140px;left:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{right:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings,.image-details .embed-media-settings div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.image-details .column-settings{background:#f3f3f3;border-left:1px solid #ddd;min-height:100%;width:55%;position:absolute;top:0;right:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:45%;position:absolute;right:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle:after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:'\f142'}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:right}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:right;margin:26px 6px 0}.image-details .custom-size:after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:right}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:right;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-right:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:right;width:25%;text-align:left;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;right:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;right:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;right:10px;left:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input[type=email],.ie7 .media-sidebar .setting input[type=number],.ie7 .media-sidebar .setting input[type=password],.ie7 .media-sidebar .setting input[type=search],.ie7 .media-sidebar .setting input[type=tel],.ie7 .media-sidebar .setting input[type=text],.ie7 .media-sidebar .setting input[type=url],.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:right}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:940px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:134px}}@media only screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-title,.media-frame:not(.hide-menu) .media-frame-toolbar{right:0}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{width:auto;max-width:80%;overflow:auto;z-index:2000;top:50px;right:-300px;left:auto;bottom:auto;padding:5px 0;border:1px solid #ccc}.media-frame:not(.hide-menu) .media-menu.visible{right:0}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu>a.active{display:none}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame:not(.hide-menu) .media-frame-title{right:0;color:#21759b}.media-frame:not(.hide-menu) .media-frame-title .dashicons{display:inline-block;line-height:50px}.media-frame:not(.hide-menu) .media-frame-title h1{line-height:3;font-size:18px;float:right;cursor:pointer}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{left:262px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting input,.attachment-details .setting span,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 0}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.image-details .column-image{width:30%;right:70%}.image-details .column-settings{width:70%}.image-details .media-modal{right:30px;left:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:right;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-right:0}.image-details .embed-media-settings .custom-size{margin-right:20px}.collection-settings .setting input[type=checkbox]{margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar-primary,.media-modal .attachments-browser .media-toolbar-secondary{width:50%}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:left}.media-modal .attachments-browser .media-toolbar .attachment-filters{margin:11px 0 0;height:auto;max-width:65%;max-width:-webkit-calc(100% - 38px);max-width:calc(100% - 38px)}.media-modal .attachments-browser .media-toolbar .spinner{margin:14px 8px 0}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;right:0;left:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{left:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;right:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}}@media screen and (max-height:400px){.media-menu{padding:0}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:40px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:480px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:90px}.media-modal-close{top:5px;left:5px}.media-modal .media-frame-title{height:40px}.media-frame:not(.hide-menu) .media-frame-title h1,.media-modal .media-frame-title h1{font-size:18px;line-height:40px}.media-frame:not(.hide-menu) .media-frame-title .dashicons{line-height:40px}.media-frame-router,.media-frame:not(.hide-menu) .media-menu{top:40px}.media-frame-content{top:74px}.media-frame.hide-router .media-frame-content{top:40px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file +.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame input,.media-frame select,.media-frame textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:none;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame input[type=email]:focus,.media-frame input[type=number]:focus,.media-frame input[type=password]:focus,.media-frame input[type=search]:focus,.media-frame input[type=text]:focus,.media-frame input[type=url]:focus,.media-frame select:focus,.media-frame textarea:focus{border-color:#5b9dd9}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;right:30px;left:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:10px;left:10px;width:30px;height:30px;z-index:1000;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active{-webkit-box-shadow:none;box-shadow:none}.media-modal-close span.media-modal-icon{display:block;margin-top:5px;width:30px;height:15px;background-image:none;text-align:center}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;right:0;left:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;right:0;left:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:left;height:100%}.media-toolbar-secondary{float:right;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-right:10px;float:right;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-left:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;left:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-right:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:right;width:100%;margin:1px 0}.attachment-details .setting label,.media-sidebar .setting label{display:block}.attachment-details .setting .link-to-custom,.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting span,.media-sidebar .setting span{min-width:30%;margin-left:4%;font-size:12px;text-align:left}.attachment-details .setting select,.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{float:right;min-height:22px;padding-top:8px;line-height:16px;font-weight:400;color:#666}.compat-item label span{text-align:left}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px;width:65%;float:left}.attachment-details .setting .value,.media-sidebar .setting .value{margin:0 1px;text-align:right}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.attachment-details select,.media-sidebar select{margin-top:3px}.compat-item{float:right;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-left:4%;float:right;text-align:left}.compat-item .label span{display:block;width:100%}.compat-item .field{float:left;width:66%}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url]{width:100%;margin:0}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:10px 0;background:#f3f3f3;border-left-width:1px;border-left-style:solid;border-left-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:right;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-left:0}.media-router>a:active{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;right:0;left:0;bottom:0}.media-frame-menu{position:absolute;top:0;right:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;right:200px;left:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;right:200px;left:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;right:200px;left:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;right:200px;left:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{right:0}.media-frame.hide-menu .media-frame-menu{right:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title .dashicons{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:50px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:left;margin-left:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;right:50%;margin-right:-150px;margin-left:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-left:10px}.media-frame .search{margin-top:11px;padding:4px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-left:16px}.attachments{margin:0;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:right;padding:8px;margin:0;color:#464646;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:25%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.attachment.details:focus,.attachment:focus,.selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;outline:0}.selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc}.attachment.details{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe}.attachment-preview{position:relative;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment-preview:before{content:'';display:block;padding-top:100%}.attachment .icon{margin:0 auto;overflow:hidden}.attachment .thumbnail{overflow:hidden;position:absolute;top:0;left:0;bottom:0;right:0;opacity:1;-webkit-transition:opacity .1s;transition:opacity .1s}.attachment .portrait img{max-width:100%}.attachment .landscape img{max-height:100%}.attachment .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .thumbnail .centered img.icon{-webkit-transform:translate(-50%,-70%);-ms-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}.ie8 .attachment img.icon{top:20%;position:relative}.attachment .filename{position:absolute;right:0;left:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;left:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;z-index:10;top:0;left:0;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details .check,.attachment.selected .check:focus,.media-frame.mode-grid .attachment.selected .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div,.media-frame.mode-grid .attachment.selected .check div{background-position:-21px 0}.attachment.details .check:hover div,.attachment.selected .check:focus div,.media-frame.mode-grid .attachment.selected .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{left:300px;height:50px}.attachments-browser.hide-sidebar .media-toolbar{left:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:11px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;right:0;left:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;position:absolute;left:0;text-align:center;top:0;width:50px;z-index:1}.uploader-inline .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{left:0;margin-left:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-left:.5em}.attachments-browser .no-media{padding:2em 2em 0 0}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;right:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;left:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px solid #c00;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-left:8px;font-weight:700;color:#fff;background:#e00;background:-webkit-gradient(linear,right top,right bottom,from(#e00),to(#a00)) #e00;background:-webkit-linear-gradient(top,#e00,#a00) #e00;background:linear-gradient(to bottom,#e00,#a00) #e00;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;right:0;left:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;right:10px;left:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;right:0;left:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px;margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;right:0;left:350px;height:60px;padding:0 16px 0 0;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-left:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:right;padding:1px 8px;margin:1px -8px 1px 8px;line-height:16px;text-decoration:none;border-left:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-left:0;margin-left:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:48px;padding:0;margin:0;-webkit-box-shadow:none;box-shadow:none}.media-selection .attachment .thumbnail{top:4px;left:4px;bottom:4px;right:4px}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{-webkit-box-shadow:none;box-shadow:none;background:0 0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;left:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to right,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) 0 0/20px 20px no-repeat;-webkit-background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:left;text-transform:none;z-index:10}.attachment-details .settings-save-status .spinner{margin:0 5px}.attachment-details .settings-save-status .saved{float:left;display:none}.attachment-details.save-complete .settings-save-status .saved,.attachment-details.save-waiting .settings-save-status .spinner{display:block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:right;max-width:120px;max-height:120px;margin-top:5px;margin-left:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:right;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{color:#bc0b0b}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:right;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:right;margin-left:8px}.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wait{height:auto!important;left:0;bottom:0;right:0}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;left:282px;bottom:0;right:0;overflow:auto}.media-modal .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-right:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;left:0;bottom:0;width:250px;overflow:auto}.media-modal .imgedit-group{background:0 0;border:none;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0 0 16px;padding:0 0 16px;position:relative}.media-modal .imgedit-group:last-of-type{border:none;margin:0;padding:0}.media-modal .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 0}.media-modal .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-modal .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-modal .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-modal .imgedit-group img{margin-top:5px}.media-modal .imgedit-wrap div.updated{margin:0 0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:32px;left:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:70px;right:0;left:0;bottom:0;padding:16px 16px 32px;overflow:auto}.embed-preview embed,.embed-preview iframe,.embed-preview img{max-width:100%}.embed-preview img{height:auto}.image-details .media-modal{right:140px;left:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{right:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings,.image-details .embed-media-settings div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.image-details .column-settings{background:#f3f3f3;border-left:1px solid #ddd;min-height:100%;width:55%;position:absolute;top:0;right:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:45%;position:absolute;right:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle:after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:'\f142'}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:right}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:right;margin:26px 6px 0}.image-details .custom-size:after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:right}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:right;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-right:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:right;width:25%;text-align:left;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;right:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;right:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;right:10px;left:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input[type=email],.ie7 .media-sidebar .setting input[type=number],.ie7 .media-sidebar .setting input[type=password],.ie7 .media-sidebar .setting input[type=search],.ie7 .media-sidebar .setting input[type=tel],.ie7 .media-sidebar .setting input[type=text],.ie7 .media-sidebar .setting input[type=url],.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:right}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:940px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:134px}}@media only screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-title,.media-frame:not(.hide-menu) .media-frame-toolbar{right:0}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{width:auto;max-width:80%;overflow:auto;z-index:2000;top:50px;right:-300px;left:auto;bottom:auto;padding:5px 0;border:1px solid #ccc}.media-frame:not(.hide-menu) .media-menu.visible{right:0}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu>a.active{display:none}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame:not(.hide-menu) .media-frame-title{right:0;color:#21759b}.media-frame:not(.hide-menu) .media-frame-title .dashicons{display:inline-block;line-height:50px}.media-frame:not(.hide-menu) .media-frame-title h1{line-height:3;font-size:18px;float:right;cursor:pointer}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{left:262px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting input,.attachment-details .setting span,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 0}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.image-details .column-image{width:30%;right:70%}.image-details .column-settings{width:70%}.image-details .media-modal{right:30px;left:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:right;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-right:0}.image-details .embed-media-settings .custom-size{margin-right:20px}.collection-settings .setting input[type=checkbox]{margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar-primary,.media-modal .attachments-browser .media-toolbar-secondary{width:50%}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:left}.media-modal .attachments-browser .media-toolbar .attachment-filters{margin:11px 0 0;height:auto;max-width:65%;max-width:-webkit-calc(100% - 38px);max-width:calc(100% - 38px)}.media-modal .attachments-browser .media-toolbar .spinner{margin:14px 8px 0}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;right:0;left:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{left:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;right:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}}@media screen and (max-height:400px){.media-menu{padding:0}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:40px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:480px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:90px}.media-modal-close{top:5px;left:5px}.media-modal .media-frame-title{height:40px}.media-frame:not(.hide-menu) .media-frame-title h1,.media-modal .media-frame-title h1{font-size:18px;line-height:40px}.media-frame:not(.hide-menu) .media-frame-title .dashicons{line-height:40px}.media-frame-router,.media-frame:not(.hide-menu) .media-menu{top:40px}.media-frame-content{top:74px}.media-frame.hide-router .media-frame-content{top:40px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file diff --git a/wp-includes/css/media-views.css b/wp-includes/css/media-views.css index ced0c8f..e463abf 100644 --- a/wp-includes/css/media-views.css +++ b/wp-includes/css/media-views.css @@ -7,6 +7,14 @@ box-sizing: content-box; } +.media-frame input, +.media-frame select, +.media-frame textarea { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + .media-modal, .media-frame { font-family: "Open Sans", sans-serif; @@ -56,9 +64,6 @@ .media-frame select { font-family: "Open Sans", sans-serif; font-size: 12px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; border-width: 1px; border-style: solid; border-color: #dfdfdf; diff --git a/wp-includes/css/media-views.min.css b/wp-includes/css/media-views.min.css index 66caf7a..a1d966d 100644 --- a/wp-includes/css/media-views.min.css +++ b/wp-includes/css/media-views.min.css @@ -1 +1 @@ -.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:none;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame input[type=email]:focus,.media-frame input[type=number]:focus,.media-frame input[type=password]:focus,.media-frame input[type=search]:focus,.media-frame input[type=text]:focus,.media-frame input[type=url]:focus,.media-frame select:focus,.media-frame textarea:focus{border-color:#5b9dd9}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:10px;right:10px;width:30px;height:30px;z-index:1000;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active{-webkit-box-shadow:none;box-shadow:none}.media-modal-close span.media-modal-icon{display:block;margin-top:5px;width:30px;height:15px;background-image:none;text-align:center}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:right;height:100%}.media-toolbar-secondary{float:left;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:10px;float:left;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;right:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-left:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:left;width:100%;margin:1px 0}.attachment-details .setting label,.media-sidebar .setting label{display:block}.attachment-details .setting .link-to-custom,.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting span,.media-sidebar .setting span{min-width:30%;margin-right:4%;font-size:12px;text-align:right}.attachment-details .setting select,.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{float:left;min-height:22px;padding-top:8px;line-height:16px;font-weight:400;color:#666}.compat-item label span{text-align:right}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px;width:65%;float:right}.attachment-details .setting .value,.media-sidebar .setting .value{margin:0 1px;text-align:left}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.attachment-details select,.media-sidebar select{margin-top:3px}.compat-item{float:left;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-right:4%;float:left;text-align:right}.compat-item .label span{display:block;width:100%}.compat-item .field{float:right;width:66%}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url]{width:100%;margin:0}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:10px 0;background:#f3f3f3;border-right-width:1px;border-right-style:solid;border-right-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:left;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-right:0}.media-router>a:active{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.media-frame-menu{position:absolute;top:0;left:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;left:200px;right:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;left:200px;right:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;left:200px;right:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;left:200px;right:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{left:0}.media-frame.hide-menu .media-frame-menu{left:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title .dashicons{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:50px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:right;margin-right:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;left:50%;margin-left:-150px;margin-right:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-right:10px}.media-frame .search{margin-top:11px;padding:4px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-right:16px}.attachments{margin:0;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:left;padding:8px;margin:0;color:#464646;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:25%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.attachment.details:focus,.attachment:focus,.selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;outline:0}.selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc}.attachment.details{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe}.attachment-preview{position:relative;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment-preview:before{content:'';display:block;padding-top:100%}.attachment .icon{margin:0 auto;overflow:hidden}.attachment .thumbnail{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;-webkit-transition:opacity .1s;transition:opacity .1s}.attachment .portrait img{max-width:100%}.attachment .landscape img{max-height:100%}.attachment .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .thumbnail .centered img.icon{-webkit-transform:translate(-50%,-70%);-ms-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}.ie8 .attachment img.icon{top:20%;position:relative}.attachment .filename{position:absolute;left:0;right:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;right:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;z-index:10;top:0;right:0;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details .check,.attachment.selected .check:focus,.media-frame.mode-grid .attachment.selected .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div,.media-frame.mode-grid .attachment.selected .check div{background-position:-21px 0}.attachment.details .check:hover div,.attachment.selected .check:focus div,.media-frame.mode-grid .attachment.selected .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{right:300px;height:50px}.attachments-browser.hide-sidebar .media-toolbar{right:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:11px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;left:0;right:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;position:absolute;right:0;text-align:center;top:0;width:50px;z-index:1}.uploader-inline .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{right:0;margin-right:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-right:.5em}.attachments-browser .no-media{padding:2em 0 0 2em}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;left:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;right:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px solid #c00;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-right:8px;font-weight:700;color:#fff;background:#e00;background:#e00 -webkit-gradient(linear,left top,left bottom,from(#e00),to(#a00));background:#e00 -webkit-linear-gradient(top,#e00,#a00);background:#e00 linear-gradient(to bottom,#e00,#a00);-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;left:0;right:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px;margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;left:0;right:350px;height:60px;padding:0 0 0 16px;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-right:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:left;padding:1px 8px;margin:1px 8px 1px -8px;line-height:16px;text-decoration:none;border-right:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-right:0;margin-right:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:48px;padding:0;margin:0;-webkit-box-shadow:none;box-shadow:none}.media-selection .attachment .thumbnail{top:4px;right:4px;bottom:4px;left:4px}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{-webkit-box-shadow:none;box-shadow:none;background:0 0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(right,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to left,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:right;text-transform:none;z-index:10}.attachment-details .settings-save-status .spinner{margin:0 5px}.attachment-details .settings-save-status .saved{float:right;display:none}.attachment-details.save-complete .settings-save-status .saved,.attachment-details.save-waiting .settings-save-status .spinner{display:block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:left;max-width:120px;max-height:120px;margin-top:5px;margin-right:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:left;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{color:#bc0b0b}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:left;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:left;margin-right:8px}.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wait{height:auto!important;right:0;bottom:0;left:0}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;right:282px;bottom:0;left:0;overflow:auto}.media-modal .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-left:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;right:0;bottom:0;width:250px;overflow:auto}.media-modal .imgedit-group{background:0 0;border:none;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0 0 16px;padding:0 0 16px;position:relative}.media-modal .imgedit-group:last-of-type{border:none;margin:0;padding:0}.media-modal .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 0}.media-modal .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-modal .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-modal .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-modal .imgedit-group img{margin-top:5px}.media-modal .imgedit-wrap div.updated{margin:0 0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:32px;right:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:70px;left:0;right:0;bottom:0;padding:16px 16px 32px;overflow:auto}.embed-preview embed,.embed-preview iframe,.embed-preview img{max-width:100%}.embed-preview img{height:auto}.image-details .media-modal{left:140px;right:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{left:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings,.image-details .embed-media-settings div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.image-details .column-settings{background:#f3f3f3;border-right:1px solid #ddd;min-height:100%;width:55%;position:absolute;top:0;left:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:45%;position:absolute;left:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle:after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:'\f142'}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:left}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:left;margin:26px 6px 0}.image-details .custom-size:after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:left}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:left;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-left:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:left;width:25%;text-align:right;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;left:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;left:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;left:10px;right:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input[type=email],.ie7 .media-sidebar .setting input[type=number],.ie7 .media-sidebar .setting input[type=password],.ie7 .media-sidebar .setting input[type=search],.ie7 .media-sidebar .setting input[type=tel],.ie7 .media-sidebar .setting input[type=text],.ie7 .media-sidebar .setting input[type=url],.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:left}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:940px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:134px}}@media only screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-title,.media-frame:not(.hide-menu) .media-frame-toolbar{left:0}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{width:auto;max-width:80%;overflow:auto;z-index:2000;top:50px;left:-300px;right:auto;bottom:auto;padding:5px 0;border:1px solid #ccc}.media-frame:not(.hide-menu) .media-menu.visible{left:0}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu>a.active{display:none}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame:not(.hide-menu) .media-frame-title{left:0;color:#21759b}.media-frame:not(.hide-menu) .media-frame-title .dashicons{display:inline-block;line-height:50px}.media-frame:not(.hide-menu) .media-frame-title h1{line-height:3;font-size:18px;float:left;cursor:pointer}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{right:262px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting input,.attachment-details .setting span,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 0}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.image-details .column-image{width:30%;left:70%}.image-details .column-settings{width:70%}.image-details .media-modal{left:30px;right:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:left;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-left:0}.image-details .embed-media-settings .custom-size{margin-left:20px}.collection-settings .setting input[type=checkbox]{margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar-primary,.media-modal .attachments-browser .media-toolbar-secondary{width:50%}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:right}.media-modal .attachments-browser .media-toolbar .attachment-filters{margin:11px 0 0;height:auto;max-width:65%;max-width:-webkit-calc(100% - 38px);max-width:calc(100% - 38px)}.media-modal .attachments-browser .media-toolbar .spinner{margin:14px 8px 0}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;left:0;right:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{right:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;left:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}}@media screen and (max-height:400px){.media-menu{padding:0}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:40px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:480px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:90px}.media-modal-close{top:5px;right:5px}.media-modal .media-frame-title{height:40px}.media-frame:not(.hide-menu) .media-frame-title h1,.media-modal .media-frame-title h1{font-size:18px;line-height:40px}.media-frame:not(.hide-menu) .media-frame-title .dashicons{line-height:40px}.media-frame-router,.media-frame:not(.hide-menu) .media-menu{top:40px}.media-frame-content{top:74px}.media-frame.hide-router .media-frame-content{top:40px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file +.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame input,.media-frame select,.media-frame textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:none;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame input[type=email]:focus,.media-frame input[type=number]:focus,.media-frame input[type=password]:focus,.media-frame input[type=search]:focus,.media-frame input[type=text]:focus,.media-frame input[type=url]:focus,.media-frame select:focus,.media-frame textarea:focus{border-color:#5b9dd9}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:10px;right:10px;width:30px;height:30px;z-index:1000;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active{-webkit-box-shadow:none;box-shadow:none}.media-modal-close span.media-modal-icon{display:block;margin-top:5px;width:30px;height:15px;background-image:none;text-align:center}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:right;height:100%}.media-toolbar-secondary{float:left;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:10px;float:left;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;right:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-left:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:left;width:100%;margin:1px 0}.attachment-details .setting label,.media-sidebar .setting label{display:block}.attachment-details .setting .link-to-custom,.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting span,.media-sidebar .setting span{min-width:30%;margin-right:4%;font-size:12px;text-align:right}.attachment-details .setting select,.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{float:left;min-height:22px;padding-top:8px;line-height:16px;font-weight:400;color:#666}.compat-item label span{text-align:right}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px;width:65%;float:right}.attachment-details .setting .value,.media-sidebar .setting .value{margin:0 1px;text-align:left}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.attachment-details select,.media-sidebar select{margin-top:3px}.compat-item{float:left;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-right:4%;float:left;text-align:right}.compat-item .label span{display:block;width:100%}.compat-item .field{float:right;width:66%}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url]{width:100%;margin:0}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:10px 0;background:#f3f3f3;border-right-width:1px;border-right-style:solid;border-right-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:left;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-right:0}.media-router>a:active{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.media-frame-menu{position:absolute;top:0;left:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;left:200px;right:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;left:200px;right:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;left:200px;right:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;left:200px;right:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{left:0}.media-frame.hide-menu .media-frame-menu{left:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title .dashicons{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:50px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:right;margin-right:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;left:50%;margin-left:-150px;margin-right:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-right:10px}.media-frame .search{margin-top:11px;padding:4px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-right:16px}.attachments{margin:0;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:left;padding:8px;margin:0;color:#464646;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:25%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.attachment.details:focus,.attachment:focus,.selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;outline:0}.selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc}.attachment.details{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe}.attachment-preview{position:relative;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment-preview:before{content:'';display:block;padding-top:100%}.attachment .icon{margin:0 auto;overflow:hidden}.attachment .thumbnail{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;-webkit-transition:opacity .1s;transition:opacity .1s}.attachment .portrait img{max-width:100%}.attachment .landscape img{max-height:100%}.attachment .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .thumbnail .centered img.icon{-webkit-transform:translate(-50%,-70%);-ms-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}.ie8 .attachment img.icon{top:20%;position:relative}.attachment .filename{position:absolute;left:0;right:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;right:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;z-index:10;top:0;right:0;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details .check,.attachment.selected .check:focus,.media-frame.mode-grid .attachment.selected .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div,.media-frame.mode-grid .attachment.selected .check div{background-position:-21px 0}.attachment.details .check:hover div,.attachment.selected .check:focus div,.media-frame.mode-grid .attachment.selected .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{right:300px;height:50px}.attachments-browser.hide-sidebar .media-toolbar{right:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:11px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;left:0;right:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;position:absolute;right:0;text-align:center;top:0;width:50px;z-index:1}.uploader-inline .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{right:0;margin-right:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-right:.5em}.attachments-browser .no-media{padding:2em 0 0 2em}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;left:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;right:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px solid #c00;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-right:8px;font-weight:700;color:#fff;background:#e00;background:-webkit-gradient(linear,left top,left bottom,from(#e00),to(#a00)) #e00;background:-webkit-linear-gradient(top,#e00,#a00) #e00;background:linear-gradient(to bottom,#e00,#a00) #e00;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;left:0;right:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px;margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;left:0;right:350px;height:60px;padding:0 0 0 16px;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-right:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:left;padding:1px 8px;margin:1px 8px 1px -8px;line-height:16px;text-decoration:none;border-right:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-right:0;margin-right:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:48px;padding:0;margin:0;-webkit-box-shadow:none;box-shadow:none}.media-selection .attachment .thumbnail{top:4px;right:4px;bottom:4px;left:4px}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{-webkit-box-shadow:none;box-shadow:none;background:0 0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(right,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to left,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) 0 0/20px 20px no-repeat;-webkit-background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:right;text-transform:none;z-index:10}.attachment-details .settings-save-status .spinner{margin:0 5px}.attachment-details .settings-save-status .saved{float:right;display:none}.attachment-details.save-complete .settings-save-status .saved,.attachment-details.save-waiting .settings-save-status .spinner{display:block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:left;max-width:120px;max-height:120px;margin-top:5px;margin-right:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:left;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{color:#bc0b0b}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:left;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:left;margin-right:8px}.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wait{height:auto!important;right:0;bottom:0;left:0}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;right:282px;bottom:0;left:0;overflow:auto}.media-modal .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-left:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;right:0;bottom:0;width:250px;overflow:auto}.media-modal .imgedit-group{background:0 0;border:none;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0 0 16px;padding:0 0 16px;position:relative}.media-modal .imgedit-group:last-of-type{border:none;margin:0;padding:0}.media-modal .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 0}.media-modal .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-modal .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-modal .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-modal .imgedit-group img{margin-top:5px}.media-modal .imgedit-wrap div.updated{margin:0 0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:32px;right:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:70px;left:0;right:0;bottom:0;padding:16px 16px 32px;overflow:auto}.embed-preview embed,.embed-preview iframe,.embed-preview img{max-width:100%}.embed-preview img{height:auto}.image-details .media-modal{left:140px;right:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{left:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings,.image-details .embed-media-settings div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.image-details .column-settings{background:#f3f3f3;border-right:1px solid #ddd;min-height:100%;width:55%;position:absolute;top:0;left:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:45%;position:absolute;left:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle:after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:'\f142'}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:left}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:left;margin:26px 6px 0}.image-details .custom-size:after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:left}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:left;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-left:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:left;width:25%;text-align:right;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;left:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;left:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;left:10px;right:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input[type=email],.ie7 .media-sidebar .setting input[type=number],.ie7 .media-sidebar .setting input[type=password],.ie7 .media-sidebar .setting input[type=search],.ie7 .media-sidebar .setting input[type=tel],.ie7 .media-sidebar .setting input[type=text],.ie7 .media-sidebar .setting input[type=url],.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:left}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:940px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:134px}}@media only screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-title,.media-frame:not(.hide-menu) .media-frame-toolbar{left:0}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{width:auto;max-width:80%;overflow:auto;z-index:2000;top:50px;left:-300px;right:auto;bottom:auto;padding:5px 0;border:1px solid #ccc}.media-frame:not(.hide-menu) .media-menu.visible{left:0}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu>a.active{display:none}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame:not(.hide-menu) .media-frame-title{left:0;color:#21759b}.media-frame:not(.hide-menu) .media-frame-title .dashicons{display:inline-block;line-height:50px}.media-frame:not(.hide-menu) .media-frame-title h1{line-height:3;font-size:18px;float:left;cursor:pointer}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{right:262px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting input,.attachment-details .setting span,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 0}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.image-details .column-image{width:30%;left:70%}.image-details .column-settings{width:70%}.image-details .media-modal{left:30px;right:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:left;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-left:0}.image-details .embed-media-settings .custom-size{margin-left:20px}.collection-settings .setting input[type=checkbox]{margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar-primary,.media-modal .attachments-browser .media-toolbar-secondary{width:50%}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:right}.media-modal .attachments-browser .media-toolbar .attachment-filters{margin:11px 0 0;height:auto;max-width:65%;max-width:-webkit-calc(100% - 38px);max-width:calc(100% - 38px)}.media-modal .attachments-browser .media-toolbar .spinner{margin:14px 8px 0}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;left:0;right:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{right:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;left:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}}@media screen and (max-height:400px){.media-menu{padding:0}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:40px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:480px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:90px}.media-modal-close{top:5px;right:5px}.media-modal .media-frame-title{height:40px}.media-frame:not(.hide-menu) .media-frame-title h1,.media-modal .media-frame-title h1{font-size:18px;line-height:40px}.media-frame:not(.hide-menu) .media-frame-title .dashicons{line-height:40px}.media-frame-router,.media-frame:not(.hide-menu) .media-menu{top:40px}.media-frame-content{top:74px}.media-frame.hide-router .media-frame-content{top:40px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%} \ No newline at end of file diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php index 1f18ab9..e79043b 100644 --- a/wp-includes/formatting.php +++ b/wp-includes/formatting.php @@ -28,7 +28,7 @@ * @return string The string replaced with html entities */ function wptexturize($text, $reset = false) { - global $wp_cockneyreplace; + global $wp_cockneyreplace, $shortcode_tags; static $static_characters, $static_replacements, $dynamic_characters, $dynamic_replacements, $default_no_texturize_tags, $default_no_texturize_shortcodes, $run_texturize = true; @@ -205,21 +205,34 @@ function wptexturize($text, $reset = false) { // Look for shortcodes and HTML elements. + $tagnames = array_keys( $shortcode_tags ); + $tagregexp = join( '|', array_map( 'preg_quote', $tagnames ) ); + $tagregexp = "(?:$tagregexp)(?![\\w-])"; // Excerpt of get_shortcode_regex(). + + $comment_regex = + '!' // Start of comment, after the <. + . '(?:' // Unroll the loop: Consume everything until --> is found. + . '-(?!->)' // Dash not followed by end of comment. + . '[^\-]*+' // Consume non-dashes. + . ')*+' // Loop possessively. + . '-->'; // End of comment. + $regex = '/(' // Capture the entire match. . '<' // Find start of element. . '(?(?=!--)' // Is this a comment? - . '.+?--\s*>' // Find end of comment + . $comment_regex // Find end of comment . '|' . '[^>]+>' // Find end of element . ')' . '|' . '\[' // Find start of shortcode. - . '\[?' // Shortcodes may begin with [[ + . '[\/\[]?' // Shortcodes may begin with [/ or [[ + . $tagregexp // Only match registered shortcodes, because performance. . '(?:' - . '[^\[\]<>]' // Shortcodes do not contain other shortcodes. + . '[^\[\]<>]+' // Shortcodes do not contain other shortcodes. Quantifier critical. . '|' - . '<[^>]+>' // HTML elements permitted. Prevents matching ] before >. - . ')++' + . '<[^\[\]>]*>' // HTML elements permitted. Prevents matching ] before >. + . ')*+' // Possessive critical. . '\]' // Find end of shortcode. . '\]?' // Shortcodes may end with ]] . ')/s'; @@ -241,12 +254,12 @@ function wptexturize($text, $reset = false) { continue; - } elseif ( '[' === $first && 1 === preg_match( '/^\[(?:[^\[\]<>]|<[^>]+>)++\]$/', $curl ) ) { + } elseif ( '[' === $first && 1 === preg_match( '/^\[\/?' . $tagregexp . '(?:[^\[\]<>]+|<[^\[\]>]*>)*+\]$/', $curl ) ) { // This is a shortcode delimiter. _wptexturize_pushpop_element( $curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes ); - } elseif ( '[' === $first && 1 === preg_match( '/^\[\[?(?:[^\[\]<>]|<[^>]+>)++\]\]?$/', $curl ) ) { + } elseif ( '[' === $first && 1 === preg_match( '/^\[[\/\[]?' . $tagregexp . '(?:[^\[\]<>]+|<[^\[\]>]*>)*+\]\]?$/', $curl ) ) { // This is an escaped shortcode delimiter. // Do not texturize. diff --git a/wp-includes/http.php b/wp-includes/http.php index 3a5f4ad..838ed1f 100644 --- a/wp-includes/http.php +++ b/wp-includes/http.php @@ -444,8 +444,9 @@ function send_origin_headers() { * @return mixed URL or false on failure. */ function wp_http_validate_url( $url ) { + $original_url = $url; $url = wp_kses_bad_protocol( $url, array( 'http', 'https' ) ); - if ( ! $url ) + if ( ! $url || strtolower( $url ) !== strtolower( $original_url ) ) return false; $parsed_url = @parse_url( $url ); @@ -455,7 +456,7 @@ function wp_http_validate_url( $url ) { if ( isset( $parsed_url['user'] ) || isset( $parsed_url['pass'] ) ) return false; - if ( false !== strpos( $parsed_url['host'], ':' ) ) + if ( false !== strpbrk( $parsed_url['host'], ':#?[]' ) ) return false; $parsed_home = @parse_url( get_option( 'home' ) ); @@ -473,8 +474,7 @@ function wp_http_validate_url( $url ) { } if ( $ip ) { $parts = array_map( 'intval', explode( '.', $ip ) ); - if ( '127.0.0.1' === $ip - || ( 10 === $parts[0] ) + if ( 127 === $parts[0] || 10 === $parts[0] || ( 172 === $parts[0] && 16 <= $parts[1] && 31 >= $parts[1] ) || ( 192 === $parts[0] && 168 === $parts[1] ) ) { diff --git a/wp-includes/js/media-grid.js b/wp-includes/js/media-grid.js index 043702c..7822b9d 100644 --- a/wp-includes/js/media-grid.js +++ b/wp-includes/js/media-grid.js @@ -577,10 +577,11 @@ return ( this.getCurrentIndex() - 1 ) > -1; }, /** - * Respond to the keyboard events: right arrow, left arrow, escape. + * Respond to the keyboard events: right arrow, left arrow, except when + * focus is in a textarea or input field. */ keyEvent: function( event ) { - if ( 'INPUT' === event.target.tagName && ! ( event.target.readOnly || event.target.disabled ) ) { + if ( ( 'INPUT' === event.target.nodeName || 'TEXTAREA' === event.target.nodeName ) && ! ( event.target.readOnly || event.target.disabled ) ) { return; } diff --git a/wp-includes/js/media-grid.min.js b/wp-includes/js/media-grid.min.js index 5d1d765..aa4ccbd 100644 --- a/wp-includes/js/media-grid.min.js +++ b/wp-includes/js/media-grid.min.js @@ -1 +1 @@ -!function(a,b,c,d){var e,f=d.media;f.view.l10n?e=f.view.l10n:(e=f.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,delete e.settings),f.controller.EditAttachmentMetadata=f.controller.State.extend({defaults:{id:"edit-attachment",title:e.attachmentDetails,content:"edit-metadata",menu:!1,toolbar:!1,router:!1}}),f.view.MediaFrame.Manage=f.view.MediaFrame.extend({initialize:function(){var c=this;b.defaults(this.options,{title:"",modal:!1,selection:[],library:{},multiple:"add",state:"library",uploader:!0,mode:["grid","edit"]}),this.$body=a(document.body),this.$window=a(window),this.$adminBar=a("#wpadminbar"),this.$window.on("scroll resize",b.debounce(b.bind(this.fixPosition,this),15)),a(document).on("click",".add-new-h2",b.bind(this.addNewClickHandler,this)),this.$el.addClass("wp-core-ui"),(d.Uploader.limitExceeded||!d.Uploader.browser.supported)&&(this.options.uploader=!1),this.options.uploader&&(this.uploader=new f.view.UploaderWindow({controller:this,uploader:{dropzone:document.body,container:document.body}}).render(),this.uploader.ready(),a("body").append(this.uploader.el),this.options.uploader=!1),this.gridRouter=new f.view.MediaFrame.Manage.Router,f.view.MediaFrame.prototype.initialize.apply(this,arguments),this.$el.appendTo(this.options.container),this.createStates(),this.bindRegionModeHandlers(),this.render(),a("#media-search-input").on("input",b.debounce(function(b){var d=a(b.currentTarget).val(),e="";d&&(e+="?search="+d),c.gridRouter.navigate(c.gridRouter.baseUrl(e))},1e3))},createStates:function(){var a=this.options;this.options.states||this.states.add([new f.controller.Library({library:f.query(a.library),multiple:a.multiple,title:a.title,content:"browse",toolbar:"select",contentUserSetting:!1,filterable:"all",autoSelect:!1})])},bindRegionModeHandlers:function(){this.on("content:create:browse",this.browseContent,this),this.on("edit:attachment",this.openEditAttachmentModal,this),this.on("select:activate",this.bindKeydown,this),this.on("select:deactivate",this.unbindKeydown,this)},handleKeydown:function(a){27===a.which&&(a.preventDefault(),this.deactivateMode("select").activateMode("edit"))},bindKeydown:function(){this.$body.on("keydown.select",b.bind(this.handleKeydown,this))},unbindKeydown:function(){this.$body.off("keydown.select")},fixPosition:function(){var a,b;this.isModeActive("select")&&(a=this.$(".attachments-browser"),b=a.find(".media-toolbar"),a.offset().top+16-1},keyEvent:function(a){("INPUT"!==a.target.tagName||a.target.readOnly||a.target.disabled)&&(39===a.keyCode&&this.nextMediaItem(),37===a.keyCode&&this.previousMediaItem())},resetRoute:function(){this.gridRouter.navigate(this.gridRouter.baseUrl(""))}}),f.view.SelectModeToggleButton=f.view.Button.extend({initialize:function(){f.view.Button.prototype.initialize.apply(this,arguments),this.listenTo(this.controller,"select:activate select:deactivate",this.toggleBulkEditHandler),this.listenTo(this.controller,"selection:action:done",this.back)},back:function(){this.controller.deactivateMode("select").activateMode("edit")},click:function(){f.view.Button.prototype.click.apply(this,arguments),this.controller.isModeActive("select")?this.back():this.controller.deactivateMode("edit").activateMode("select")},render:function(){return f.view.Button.prototype.render.apply(this,arguments),this.$el.addClass("select-mode-toggle-button"),this},toggleBulkEditHandler:function(){var a,b=this.controller.content.get().toolbar;a=b.$(".media-toolbar-secondary > *, .media-toolbar-primary > *"),this.controller.isModeActive("select")?(this.model.set("text",e.cancelSelection),a.not(".delete-selected-button").hide(),b.$(".select-mode-toggle-button").show(),b.$(".delete-selected-button").removeClass("hidden")):(this.model.set("text",e.bulkSelect),this.controller.content.get().$el.removeClass("fixed"),b.$el.css("width",""),b.$(".delete-selected-button").addClass("hidden"),a.not(".spinner, .delete-selected-button").show(),this.controller.state().get("selection").reset())}}),f.view.DeleteSelectedButton=f.view.Button.extend({initialize:function(){f.view.Button.prototype.initialize.apply(this,arguments),this.options.filters&&this.listenTo(this.options.filters.model,"change",this.filterChange),this.listenTo(this.controller,"selection:toggle",this.toggleDisabled)},filterChange:function(a){"trash"===a.get("status")?this.model.set("text",e.untrashSelected):f.view.settings.mediaTrash?this.model.set("text",e.trashSelected):this.model.set("text",e.deleteSelected)},toggleDisabled:function(){this.model.set("disabled",!this.controller.state().get("selection").length)},render:function(){return f.view.Button.prototype.render.apply(this,arguments),this.$el.addClass(this.controller.isModeActive("select")?"delete-selected-button":"delete-selected-button hidden"),this}}),f.view.DateFilter=f.view.AttachmentFilters.extend({id:"media-attachment-date-filters",createFilters:function(){var a={};b.each(f.view.settings.months||{},function(b,c){a[c]={text:b.text,props:{year:b.year,monthnum:b.month}}}),a.all={text:e.allDates,props:{monthnum:!1,year:!1},priority:10},this.filters=a}})}(jQuery,_,Backbone,wp); \ No newline at end of file +!function(a,b,c,d){var e,f=d.media;f.view.l10n?e=f.view.l10n:(e=f.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,delete e.settings),f.controller.EditAttachmentMetadata=f.controller.State.extend({defaults:{id:"edit-attachment",title:e.attachmentDetails,content:"edit-metadata",menu:!1,toolbar:!1,router:!1}}),f.view.MediaFrame.Manage=f.view.MediaFrame.extend({initialize:function(){var c=this;b.defaults(this.options,{title:"",modal:!1,selection:[],library:{},multiple:"add",state:"library",uploader:!0,mode:["grid","edit"]}),this.$body=a(document.body),this.$window=a(window),this.$adminBar=a("#wpadminbar"),this.$window.on("scroll resize",b.debounce(b.bind(this.fixPosition,this),15)),a(document).on("click",".add-new-h2",b.bind(this.addNewClickHandler,this)),this.$el.addClass("wp-core-ui"),(d.Uploader.limitExceeded||!d.Uploader.browser.supported)&&(this.options.uploader=!1),this.options.uploader&&(this.uploader=new f.view.UploaderWindow({controller:this,uploader:{dropzone:document.body,container:document.body}}).render(),this.uploader.ready(),a("body").append(this.uploader.el),this.options.uploader=!1),this.gridRouter=new f.view.MediaFrame.Manage.Router,f.view.MediaFrame.prototype.initialize.apply(this,arguments),this.$el.appendTo(this.options.container),this.createStates(),this.bindRegionModeHandlers(),this.render(),a("#media-search-input").on("input",b.debounce(function(b){var d=a(b.currentTarget).val(),e="";d&&(e+="?search="+d),c.gridRouter.navigate(c.gridRouter.baseUrl(e))},1e3))},createStates:function(){var a=this.options;this.options.states||this.states.add([new f.controller.Library({library:f.query(a.library),multiple:a.multiple,title:a.title,content:"browse",toolbar:"select",contentUserSetting:!1,filterable:"all",autoSelect:!1})])},bindRegionModeHandlers:function(){this.on("content:create:browse",this.browseContent,this),this.on("edit:attachment",this.openEditAttachmentModal,this),this.on("select:activate",this.bindKeydown,this),this.on("select:deactivate",this.unbindKeydown,this)},handleKeydown:function(a){27===a.which&&(a.preventDefault(),this.deactivateMode("select").activateMode("edit"))},bindKeydown:function(){this.$body.on("keydown.select",b.bind(this.handleKeydown,this))},unbindKeydown:function(){this.$body.off("keydown.select")},fixPosition:function(){var a,b;this.isModeActive("select")&&(a=this.$(".attachments-browser"),b=a.find(".media-toolbar"),a.offset().top+16-1},keyEvent:function(a){("INPUT"!==a.target.nodeName&&"TEXTAREA"!==a.target.nodeName||a.target.readOnly||a.target.disabled)&&(39===a.keyCode&&this.nextMediaItem(),37===a.keyCode&&this.previousMediaItem())},resetRoute:function(){this.gridRouter.navigate(this.gridRouter.baseUrl(""))}}),f.view.SelectModeToggleButton=f.view.Button.extend({initialize:function(){f.view.Button.prototype.initialize.apply(this,arguments),this.listenTo(this.controller,"select:activate select:deactivate",this.toggleBulkEditHandler),this.listenTo(this.controller,"selection:action:done",this.back)},back:function(){this.controller.deactivateMode("select").activateMode("edit")},click:function(){f.view.Button.prototype.click.apply(this,arguments),this.controller.isModeActive("select")?this.back():this.controller.deactivateMode("edit").activateMode("select")},render:function(){return f.view.Button.prototype.render.apply(this,arguments),this.$el.addClass("select-mode-toggle-button"),this},toggleBulkEditHandler:function(){var a,b=this.controller.content.get().toolbar;a=b.$(".media-toolbar-secondary > *, .media-toolbar-primary > *"),this.controller.isModeActive("select")?(this.model.set("text",e.cancelSelection),a.not(".delete-selected-button").hide(),b.$(".select-mode-toggle-button").show(),b.$(".delete-selected-button").removeClass("hidden")):(this.model.set("text",e.bulkSelect),this.controller.content.get().$el.removeClass("fixed"),b.$el.css("width",""),b.$(".delete-selected-button").addClass("hidden"),a.not(".spinner, .delete-selected-button").show(),this.controller.state().get("selection").reset())}}),f.view.DeleteSelectedButton=f.view.Button.extend({initialize:function(){f.view.Button.prototype.initialize.apply(this,arguments),this.options.filters&&this.listenTo(this.options.filters.model,"change",this.filterChange),this.listenTo(this.controller,"selection:toggle",this.toggleDisabled)},filterChange:function(a){"trash"===a.get("status")?this.model.set("text",e.untrashSelected):f.view.settings.mediaTrash?this.model.set("text",e.trashSelected):this.model.set("text",e.deleteSelected)},toggleDisabled:function(){this.model.set("disabled",!this.controller.state().get("selection").length)},render:function(){return f.view.Button.prototype.render.apply(this,arguments),this.$el.addClass(this.controller.isModeActive("select")?"delete-selected-button":"delete-selected-button hidden"),this}}),f.view.DateFilter=f.view.AttachmentFilters.extend({id:"media-attachment-date-filters",createFilters:function(){var a={};b.each(f.view.settings.months||{},function(b,c){a[c]={text:b.text,props:{year:b.year,monthnum:b.month}}}),a.all={text:e.allDates,props:{monthnum:!1,year:!1},priority:10},this.filters=a}})}(jQuery,_,Backbone,wp); \ No newline at end of file diff --git a/wp-includes/js/media-views.js b/wp-includes/js/media-views.js index 84e1f36..e334b20 100644 --- a/wp-includes/js/media-views.js +++ b/wp-includes/js/media-views.js @@ -5850,7 +5850,7 @@ controller: this.controller, priority: -60, click: function() { - var model, changed = [], self = this, + var changed = [], removed = [], self = this, selection = this.controller.state().get( 'selection' ), library = this.controller.state().get( 'library' ); @@ -5869,22 +5869,28 @@ return; } - while ( selection.length > 0 ) { - model = selection.at( 0 ); + selection.each( function( model ) { + if ( ! model.get( 'nonces' )['delete'] ) { + removed.push( model ); + return; + } + if ( media.view.settings.mediaTrash && 'trash' === model.get( 'status' ) ) { model.set( 'status', 'inherit' ); changed.push( model.save() ); - selection.remove( model ); + removed.push( model ); } else if ( media.view.settings.mediaTrash ) { model.set( 'status', 'trash' ); changed.push( model.save() ); - selection.remove( model ); + removed.push( model ); } else { model.destroy(); } - } + } ); if ( changed.length ) { + selection.remove( removed ); + $.when.apply( null, changed ).then( function() { library._requery( true ); self.controller.trigger( 'selection:action:done' ); diff --git a/wp-includes/js/media-views.min.js b/wp-includes/js/media-views.min.js index 28a939a..c7fe71f 100644 --- a/wp-includes/js/media-views.min.js +++ b/wp-includes/js/media-views.min.js @@ -1,3 +1,3 @@ !function(a,b){var c,d=wp.media,e="ontouchend"in document;c=d.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,d.view.settings=c.settings||{},delete c.settings,d.model.settings.post=d.view.settings.post,a.support.transition=function(){var a,c=document.documentElement.style,d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};return a=b.find(b.keys(d),function(a){return!b.isUndefined(c[a])}),a&&{end:d[a]}}(),d.events=b.extend({},Backbone.Events),d.transition=function(c,d){var e=a.Deferred();return d=d||2e3,a.support.transition?(c instanceof a||(c=a(c)),c.first().one(a.support.transition.end,e.resolve),b.delay(e.resolve,d)):e.resolve(),e.promise()},d.controller.Region=function(a){b.extend(this,b.pick(a||{},"id","view","selector"))},d.controller.Region.extend=Backbone.Model.extend,b.extend(d.controller.Region.prototype,{mode:function(a){return a?a===this._mode?this:(this.trigger("deactivate"),this._mode=a,this.render(a),this.trigger("activate"),this):this._mode},render:function(a){if(a&&a!==this._mode)return this.mode(a);var b,c={view:null};return this.trigger("create",c),b=c.view,this.trigger("render",b),b&&this.set(b),this},get:function(){return this.view.views.first(this.selector)},set:function(a,b){return b&&(b.add=!1),this.view.views.set(this.selector,a,b)},trigger:function(a){var c,d;if(this._mode)return d=b.toArray(arguments),c=this.id+":"+a,d[0]=c+":"+this._mode,this.view.trigger.apply(this.view,d),d[0]=c,this.view.trigger.apply(this.view,d),this}}),d.controller.StateMachine=function(a){this.states=new Backbone.Collection(a)},d.controller.StateMachine.extend=Backbone.Model.extend,b.extend(d.controller.StateMachine.prototype,Backbone.Events,{state:function(a){return this.states=this.states||new Backbone.Collection,a=a||this._state,a&&!this.states.get(a)&&this.states.add({id:a}),this.states.get(a)},setState:function(a){var b=this.state();return b&&a===b.id||!this.states||!this.states.get(a)?this:(b&&(b.trigger("deactivate"),this._lastState=b.id),this._state=a,this.state().trigger("activate"),this)},lastState:function(){return this._lastState?this.state(this._lastState):void 0}}),b.each(["on","off","trigger"],function(a){d.controller.StateMachine.prototype[a]=function(){return this.states=this.states||new Backbone.Collection,this.states[a].apply(this.states,arguments),this}}),d.controller.State=Backbone.Model.extend({constructor:function(){this.on("activate",this._preActivate,this),this.on("activate",this.activate,this),this.on("activate",this._postActivate,this),this.on("deactivate",this._deactivate,this),this.on("deactivate",this.deactivate,this),this.on("reset",this.reset,this),this.on("ready",this._ready,this),this.on("ready",this.ready,this),Backbone.Model.apply(this,arguments),this.on("change:menu",this._updateMenu,this)},ready:function(){},activate:function(){},deactivate:function(){},reset:function(){},_ready:function(){this._updateMenu()},_preActivate:function(){this.active=!0},_postActivate:function(){this.on("change:menu",this._menu,this),this.on("change:titleMode",this._title,this),this.on("change:content",this._content,this),this.on("change:toolbar",this._toolbar,this),this.frame.on("title:render:default",this._renderTitle,this),this._title(),this._menu(),this._toolbar(),this._content(),this._router()},_deactivate:function(){this.active=!1,this.frame.off("title:render:default",this._renderTitle,this),this.off("change:menu",this._menu,this),this.off("change:titleMode",this._title,this),this.off("change:content",this._content,this),this.off("change:toolbar",this._toolbar,this)},_title:function(){this.frame.title.render(this.get("titleMode")||"default")},_renderTitle:function(a){a.$el.text(this.get("title")||"")},_router:function(){var a,b=this.frame.router,c=this.get("router");this.frame.$el.toggleClass("hide-router",!c),c&&(this.frame.router.render(c),a=b.get(),a&&a.select&&a.select(this.frame.content.mode()))},_menu:function(){var a,b=this.frame.menu,c=this.get("menu");this.frame.$el.toggleClass("hide-menu",!c),c&&(b.mode(c),a=b.get(),a&&a.select&&a.select(this.id))},_updateMenu:function(){var a=this.previous("menu"),b=this.get("menu");a&&this.frame.off("menu:render:"+a,this._renderMenu,this),b&&this.frame.on("menu:render:"+b,this._renderMenu,this)},_renderMenu:function(a){var b=this.get("menuItem"),c=this.get("title"),d=this.get("priority");!b&&c&&(b={text:c},d&&(b.priority=d)),b&&a.set(this.id,b)}}),b.each(["toolbar","content"],function(a){d.controller.State.prototype["_"+a]=function(){var b=this.get(a);b&&this.frame[a].render(b)}}),d.selectionSync={syncSelection:function(){var a=this.get("selection"),c=this.frame._selection;this.get("syncSelection")&&c&&a&&(a.multiple&&(a.reset([],{silent:!0}),a.validateAll(c.attachments),c.difference=b.difference(c.attachments.models,a.models)),a.single(c.single))},recordSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple?(b.attachments.reset(a.toArray().concat(b.difference)),b.difference=[]):b.attachments.add(a.toArray()),b.single=a._single)}},d.controller.Library=d.controller.State.extend({defaults:{id:"library",title:c.mediaLibraryTitle,multiple:!1,content:"upload",menu:"default",router:"browse",toolbar:"select",searchable:!0,filterable:!1,sortable:!0,autoSelect:!0,describe:!1,contentUserSetting:!0,syncSelection:!0},initialize:function(){var a,c=this.get("selection");this.get("library")||this.set("library",d.query()),c instanceof d.model.Selection||(a=c,a||(a=this.get("library").props.toJSON(),a=b.omit(a,"orderby","query")),this.set("selection",new d.model.Selection(null,{multiple:this.get("multiple"),props:a}))),this.resetDisplays()},activate:function(){this.syncSelection(),wp.Uploader.queue.on("add",this.uploading,this),this.get("selection").on("add remove reset",this.refreshContent,this),this.get("router")&&this.get("contentUserSetting")&&(this.frame.on("content:activate",this.saveContentMode,this),this.set("content",getUserSetting("libraryContent",this.get("content"))))},deactivate:function(){this.recordSelection(),this.frame.off("content:activate",this.saveContentMode,this),this.get("selection").off(null,null,this),wp.Uploader.queue.off(null,null,this)},reset:function(){this.get("selection").reset(),this.resetDisplays(),this.refreshContent()},resetDisplays:function(){var a=d.view.settings.defaultProps;this._displays=[],this._defaultDisplaySettings={align:a.align||getUserSetting("align","none"),size:a.size||getUserSetting("imgsize","medium"),link:a.link||getUserSetting("urlbutton","file")}},display:function(a){var b=this._displays;return b[a.cid]||(b[a.cid]=new Backbone.Model(this.defaultDisplaySettings(a))),b[a.cid]},defaultDisplaySettings:function(a){var b=this._defaultDisplaySettings;return(b.canEmbed=this.canEmbed(a))&&(b.link="embed"),b},canEmbed:function(a){if(!a.get("uploading")){var c=a.get("type");if("audio"!==c&&"video"!==c)return!1}return b.contains(d.view.settings.embedExts,a.get("filename").split(".").pop())},refreshContent:function(){var a=this.get("selection"),b=this.frame,c=b.router.get(),d=b.content.mode();this.active&&!a.length&&c&&!c.get(d)&&this.frame.content.render(this.get("content"))},uploading:function(a){var b=this.frame.content;"upload"===b.mode()&&this.frame.content.mode("browse"),this.get("autoSelect")&&(this.get("selection").add(a),this.frame.trigger("library:selection:add"))},saveContentMode:function(){if("browse"===this.get("router")){var a=this.frame.content.mode(),b=this.frame.router.get();b&&b.get(a)&&setUserSetting("libraryContent",a)}}}),b.extend(d.controller.Library.prototype,d.selectionSync),d.controller.ImageDetails=d.controller.State.extend({defaults:b.defaults({id:"image-details",title:c.imageDetailsTitle,content:"image-details",menu:!1,router:!1,toolbar:"image-details",editing:!1,priority:60},d.controller.Library.prototype.defaults),initialize:function(a){this.image=a.image,d.controller.State.prototype.initialize.apply(this,arguments)},activate:function(){this.frame.modal.$el.addClass("image-details")}}),d.controller.GalleryEdit=d.controller.Library.extend({defaults:{id:"gallery-edit",title:c.editGalleryTitle,multiple:!1,searchable:!1,sortable:!0,display:!1,content:"browse",toolbar:"gallery-edit",describe:!0,displaySettings:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,syncSelection:!1},initialize:function(){this.get("library")||this.set("library",new d.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",d.view.Attachment.EditLibrary),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type","image"),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.gallerySettings,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.gallerySettings,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},gallerySettings:function(a){if(this.get("displaySettings")){var b=this.get("library");b&&a&&(b.gallery=b.gallery||new Backbone.Model,a.sidebar.set({gallery:new d.view.Settings.Gallery({controller:this,model:b.gallery,priority:40})}),a.toolbar.set("reverse",{text:c.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}}),d.controller.GalleryAdd=d.controller.Library.extend({defaults:b.defaults({id:"gallery-library",title:c.addToGalleryTitle,multiple:"add",filterable:"uploaded",menu:"gallery",toolbar:"gallery-add",priority:100,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(){this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.frame.state("gallery-edit").get("library");this.editLibrary&&this.editLibrary!==b&&a.unobserve(this.editLibrary),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!b.get(a.cid)&&d.model.Selection.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(b),this.editLibrary=b,d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.CollectionEdit=d.controller.Library.extend({defaults:{multiple:!1,sortable:!0,searchable:!1,content:"browse",describe:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,SettingsView:!1,syncSelection:!1},initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-edit"),this.set("toolbar",a+"-edit"),this.get("library")||this.set("library",new d.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",d.view.Attachment.EditLibrary),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type",this.get("type")),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.renderSettings,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.renderSettings,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},renderSettings:function(b){var e=this.get("library"),f=this.get("collectionType"),g=this.get("dragInfoText"),h=this.get("SettingsView"),i={};e&&b&&(e[f]=e[f]||new Backbone.Model,i[f]=new h({controller:this,model:e[f],priority:40}),b.sidebar.set(i),g&&b.toolbar.set("dragInfo",new d.View({el:a('
'+g+"
")[0],priority:-40})),b.toolbar.set("reverse",{text:c.reverseOrder,priority:80,click:function(){e.reset(e.toArray().reverse())}}))}}),d.controller.CollectionAdd=d.controller.Library.extend({defaults:b.defaults({multiple:"add",filterable:"uploaded",priority:100,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-library"),this.set("toolbar",a+"-add"),this.set("menu",a),this.get("library")||this.set("library",d.query({type:this.get("type")})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.get("editLibrary"),c=this.frame.state(this.get("collectionType")+"-edit").get("library");b&&b!==c&&a.unobserve(b),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!c.get(a.cid)&&d.model.Selection.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(c),this.set("editLibrary",c),d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.FeaturedImage=d.controller.Library.extend({defaults:b.defaults({id:"featured-image",title:c.setFeaturedImageTitle,multiple:!1,filterable:"uploaded",toolbar:"featured-image",priority:60,syncSelection:!0},d.controller.Library.prototype.defaults),initialize:function(){var a,b;this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments),a=this.get("library"),b=a.comparator,a.comparator=function(a,c){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(c.cid);return!d&&e?-1:d&&!e?1:b.apply(this,arguments)},a.observe(this.get("selection"))},activate:function(){this.updateSelection(),this.frame.on("open",this.updateSelection,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.frame.off("open",this.updateSelection,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},updateSelection:function(){var a,b=this.get("selection"),c=d.view.settings.post.featuredImageId;""!==c&&-1!==c&&(a=d.model.Attachment.get(c),a.fetch()),b.reset(a?[a]:[])}}),d.controller.ReplaceImage=d.controller.Library.extend({defaults:b.defaults({id:"replace-image",title:c.replaceImageTitle,multiple:!1,filterable:"uploaded",toolbar:"replace",menu:!1,priority:60,syncSelection:!0},d.controller.Library.prototype.defaults),initialize:function(a){var b,c;this.image=a.image,this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments),b=this.get("library"),c=b.comparator,b.comparator=function(a,b){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(b.cid);return!d&&e?-1:d&&!e?1:c.apply(this,arguments)},b.observe(this.get("selection"))},activate:function(){this.updateSelection(),d.controller.Library.prototype.activate.apply(this,arguments)},updateSelection:function(){var a=this.get("selection"),b=this.image.attachment;a.reset(b?[b]:[])}}),d.controller.EditImage=d.controller.State.extend({defaults:{id:"edit-image",title:c.editImage,menu:!1,toolbar:"edit-image",content:"edit-image",url:""},activate:function(){this.listenTo(this.frame,"toolbar:render:edit-image",this.toolbar)},deactivate:function(){this.stopListening(this.frame)},toolbar:function(){var a=this.frame,b=a.lastState(),e=b&&b.id;a.toolbar.set(new d.view.Toolbar({controller:a,items:{back:{style:"primary",text:c.back,priority:20,click:function(){e?a.setState(e):a.close()}}}}))}}),d.controller.MediaLibrary=d.controller.Library.extend({defaults:b.defaults({filterable:"uploaded",displaySettings:!1,priority:80,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(a){this.media=a.media,this.type=a.type,this.set("library",d.query({type:this.type})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){d.frame.lastMime&&(this.set("library",d.query({type:d.frame.lastMime})),delete d.frame.lastMime),d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.Embed=d.controller.State.extend({defaults:{id:"embed",title:c.insertFromUrlTitle,content:"embed",menu:"default",toolbar:"main-embed",priority:120,type:"link",url:"",metadata:{}},sensitivity:200,initialize:function(a){this.metadata=a.metadata,this.debouncedScan=b.debounce(b.bind(this.scan,this),this.sensitivity),this.props=new Backbone.Model(this.metadata||{url:""}),this.props.on("change:url",this.debouncedScan,this),this.props.on("change:url",this.refresh,this),this.on("scan",this.scanImage,this)},scan:function(){var b,c=this,d={type:"link",scanners:[]};this.props.get("url")&&this.trigger("scan",d),d.scanners.length?(b=d.scanners=a.when.apply(a,d.scanners),b.always(function(){c.get("scanners")===b&&c.set("loading",!1)})):d.scanners=null,d.loading=!!d.scanners,this.set(d)},scanImage:function(b){var c=this.frame,d=this,e=this.props.get("url"),f=new Image,g=a.Deferred();b.scanners.push(g.promise()),f.onload=function(){g.resolve(),d===c.state()&&e===d.props.get("url")&&(d.set({type:"image"}),d.props.set({width:f.width,height:f.height}))},f.onerror=g.reject,f.src=e},refresh:function(){this.frame.toolbar.get().refresh()},reset:function(){this.props.clear().set({url:""}),this.active&&this.refresh()}}),d.controller.Cropper=d.controller.State.extend({defaults:{id:"cropper",title:c.cropImage,toolbar:"crop",content:"crop",router:!1,canSkipCrop:!1},activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},deactivate:function(){this.frame.toolbar.mode("browse")},createCropContent:function(){this.cropperView=new wp.media.view.Cropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},removeCropper:function(){this.imgSelect.cancelSelection(),this.imgSelect.setOptions({remove:!0}),this.imgSelect.update(),this.cropperView.remove()},createCropToolbar:function(){var a,d;a=this.get("canSkipCrop")||!1,d={controller:this.frame,items:{insert:{style:"primary",text:c.cropImage,priority:80,requires:{library:!1,selection:!1},click:function(){var a=this,b=this.controller.state().get("selection").first();b.set({cropDetails:this.controller.state().imgSelect.getSelection()}),this.$el.text(c.cropping),this.$el.attr("disabled",!0),this.controller.state().doCrop(b).done(function(b){a.controller.trigger("cropped",b),a.controller.close()}).fail(function(){a.controller.trigger("content:error:crop")})}}}},a&&b.extend(d.items,{skip:{style:"secondary",text:c.skipCropping,priority:70,requires:{library:!1,selection:!1},click:function(){var a=this.controller.state().get("selection").first();this.controller.state().cropperView.remove(),this.controller.trigger("skippedcrop",a),this.controller.close()}}}),this.frame.toolbar.set(new wp.media.view.Toolbar(d))},doCrop:function(a){return wp.ajax.post("custom-header-crop",{nonce:a.get("nonces").edit,id:a.get("id"),cropDetails:a.get("cropDetails")})}}),d.View=wp.Backbone.View.extend({constructor:function(a){a&&a.controller&&(this.controller=a.controller),wp.Backbone.View.apply(this,arguments)},dispose:function(){return this.undelegateEvents(),this.model&&this.model.off&&this.model.off(null,null,this),this.collection&&this.collection.off&&this.collection.off(null,null,this),this.controller&&this.controller.off&&this.controller.off(null,null,this),this},remove:function(){return this.dispose(),wp.Backbone.View.prototype.remove.apply(this,arguments)}}),d.view.Frame=d.View.extend({initialize:function(){b.defaults(this.options,{mode:["select"]}),this._createRegions(),this._createStates(),this._createModes()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[],b.each(this.regions,function(a){this[a]=new d.controller.Region({view:this,id:a,selector:".media-frame-"+a})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:d.controller.State}),this.states.on("add",function(a){a.frame=this,a.trigger("ready")},this),this.options.states&&this.states.add(this.options.states)},_createModes:function(){this.activeModes=new Backbone.Collection,this.activeModes.on("add remove reset",b.bind(this.triggerModeEvents,this)),b.each(this.options.mode,function(a){this.activateMode(a)},this)},reset:function(){return this.states.invoke("trigger","reset"),this},triggerModeEvents:function(a,c,d){var e,f,g={add:"activate",remove:"deactivate"};b.each(d,function(a,b){a&&(e=b)}),b.has(g,e)&&(f=a.get("id")+":"+g[e],this.trigger(f))},activateMode:function(a){return this.isModeActive(a)?void 0:(this.activeModes.add([{id:a}]),this.$el.addClass("mode-"+a),this)},deactivateMode:function(a){return this.isModeActive(a)?(this.activeModes.remove(this.activeModes.where({id:a})),this.$el.removeClass("mode-"+a),this.trigger(a+":deactivate"),this):this},isModeActive:function(a){return Boolean(this.activeModes.where({id:a}).length)}}),b.extend(d.view.Frame.prototype,d.controller.StateMachine.prototype),d.view.MediaFrame=d.view.Frame.extend({className:"media-frame",template:d.template("media-frame"),regions:["menu","title","content","toolbar","router"],events:{"click div.media-frame-title h1":"toggleMenu"},initialize:function(){d.view.Frame.prototype.initialize.apply(this,arguments),b.defaults(this.options,{title:"",modal:!0,uploader:!0}),this.$el.addClass("wp-core-ui"),this.options.modal&&(this.modal=new d.view.Modal({controller:this,title:this.options.title}),this.modal.content(this)),(wp.Uploader.limitExceeded||!wp.Uploader.browser.supported)&&(this.options.uploader=!1),this.options.uploader&&(this.uploader=new d.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}}),this.views.set(".media-frame-uploader",this.uploader)),this.on("attach",b.bind(this.views.ready,this.views),this),this.on("title:create:default",this.createTitle,this),this.title.mode("default"),this.on("title:render",function(a){a.$el.append('')}),this.on("menu:create:default",this.createMenu,this)},render:function(){return!this.state()&&this.options.state&&this.setState(this.options.state),d.view.Frame.prototype.render.apply(this,arguments)},createTitle:function(a){a.view=new d.View({controller:this,tagName:"h1"})},createMenu:function(a){a.view=new d.view.Menu({controller:this})},toggleMenu:function(){this.$el.find(".media-menu").toggleClass("visible")},createToolbar:function(a){a.view=new d.view.Toolbar({controller:this})},createRouter:function(a){a.view=new d.view.Router({controller:this})},createIframeStates:function(c){var e,f=d.view.settings,g=f.tabs,h=f.tabUrl;g&&h&&(e=a("#post_ID"),e.length&&(h+="&post_id="+e.val()),b.each(g,function(a,d){this.state("iframe:"+d).set(b.defaults({tab:d,src:h+"&tab="+d,title:a,content:"iframe",menu:"default"},c))},this),this.on("content:create:iframe",this.iframeContent,this),this.on("menu:render:default",this.iframeMenu,this),this.on("open",this.hijackThickbox,this),this.on("close",this.restoreThickbox,this))},iframeContent:function(a){this.$el.addClass("hide-toolbar"),a.view=new d.view.Iframe({controller:this})},iframeMenu:function(a){var c={};a&&(b.each(d.view.settings.tabs,function(a,b){c["iframe:"+b]={text:this.state("iframe:"+b).get("title"),priority:200}},this),a.set(c))},hijackThickbox:function(){var a=this;window.tb_remove&&!this._tb_remove&&(this._tb_remove=window.tb_remove,window.tb_remove=function(){a.close(),a.reset(),a.setState(a.options.state),a._tb_remove.call(window)})},restoreThickbox:function(){this._tb_remove&&(window.tb_remove=this._tb_remove,delete this._tb_remove)}}),b.each(["open","close","attach","detach","escape"],function(a){d.view.MediaFrame.prototype[a]=function(){return this.modal&&this.modal[a].apply(this.modal,arguments),this}}),d.view.MediaFrame.Select=d.view.MediaFrame.extend({initialize:function(){d.view.MediaFrame.prototype.initialize.apply(this,arguments),b.defaults(this.options,{selection:[],library:{},multiple:!1,state:"library"}),this.createSelection(),this.createStates(),this.bindHandlers()},createSelection:function(){var a=this.options.selection;a instanceof d.model.Selection||(this.options.selection=new d.model.Selection(a,{multiple:this.options.multiple})),this._selection={attachments:new d.model.Attachments,difference:[]}},createStates:function(){var a=this.options;this.options.states||this.states.add([new d.controller.Library({library:d.query(a.library),multiple:a.multiple,title:a.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this),this.on("router:render:browse",this.browseRouter,this),this.on("content:create:browse",this.browseContent,this),this.on("content:render:upload",this.uploadContent,this),this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(a){a.set({upload:{text:c.uploadFilesTitle,priority:20},browse:{text:c.mediaLibraryTitle,priority:40}})},browseContent:function(a){var b=this.state();this.$el.removeClass("hide-toolbar"),a.view=new d.view.AttachmentsBrowser({controller:this,collection:b.get("library"),selection:b.get("selection"),model:b,sortable:b.get("sortable"),search:b.get("searchable"),filters:b.get("filterable"),display:b.get(b.has("display")?"display":"displaySettings"),dragInfo:b.get("dragInfo"),idealColumnWidth:b.get("idealColumnWidth"),suggestedWidth:b.get("suggestedWidth"),suggestedHeight:b.get("suggestedHeight"),AttachmentView:b.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar"),this.content.set(new d.view.UploaderInline({controller:this}))},createSelectToolbar:function(a,b){b=b||this.options.button||{},b.controller=this,a.view=new d.view.Toolbar.Select(b)}}),d.view.MediaFrame.Post=d.view.MediaFrame.Select.extend({initialize:function(){this.counts={audio:{count:d.view.settings.attachmentCounts.audio,state:"playlist"},video:{count:d.view.settings.attachmentCounts.video,state:"video-playlist"}},b.defaults(this.options,{multiple:!0,editing:!1,state:"insert",metadata:{}}),d.view.MediaFrame.Select.prototype.initialize.apply(this,arguments),this.createIframeStates()},createStates:function(){var a=this.options;this.states.add([new d.controller.Library({id:"insert",title:c.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:d.query(a.library),multiple:a.multiple?"reset":!1,editable:!0,allowLocalEdits:!0,displaySettings:!0,displayUserSettings:!0}),new d.controller.Library({id:"gallery",title:c.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"image"},a.library))}),new d.controller.Embed({metadata:a.metadata}),new d.controller.EditImage({model:a.editImage}),new d.controller.GalleryEdit({library:a.selection,editing:a.editing,menu:"gallery"}),new d.controller.GalleryAdd,new d.controller.Library({id:"playlist",title:c.createPlaylistTitle,priority:60,toolbar:"main-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"audio"},a.library))}),new d.controller.CollectionEdit({type:"audio",collectionType:"playlist",title:c.editPlaylistTitle,SettingsView:d.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"playlist",dragInfoText:c.playlistDragInfo,dragInfo:!1}),new d.controller.CollectionAdd({type:"audio",collectionType:"playlist",title:c.addToPlaylistTitle}),new d.controller.Library({id:"video-playlist",title:c.createVideoPlaylistTitle,priority:60,toolbar:"main-video-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"video"},a.library))}),new d.controller.CollectionEdit({type:"video",collectionType:"playlist",title:c.editVideoPlaylistTitle,SettingsView:d.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"video-playlist",dragInfoText:c.videoPlaylistDragInfo,dragInfo:!1}),new d.controller.CollectionAdd({type:"video",collectionType:"playlist",title:c.addToVideoPlaylistTitle})]),d.view.settings.post.featuredImageId&&this.states.add(new d.controller.FeaturedImage)},bindHandlers:function(){var a,c;d.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("activate",this.activate,this),c=b.find(this.counts,function(a){return 0===a.count}),"undefined"!=typeof c&&this.listenTo(d.model.Attachments.all,"change:type",this.mediaTypeCounts),this.on("menu:create:gallery",this.createMenu,this),this.on("menu:create:playlist",this.createMenu,this),this.on("menu:create:video-playlist",this.createMenu,this),this.on("toolbar:create:main-insert",this.createToolbar,this),this.on("toolbar:create:main-gallery",this.createToolbar,this),this.on("toolbar:create:main-playlist",this.createToolbar,this),this.on("toolbar:create:main-video-playlist",this.createToolbar,this),this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this),a={menu:{"default":"mainMenu",gallery:"galleryMenu",playlist:"playlistMenu","video-playlist":"videoPlaylistMenu"},content:{embed:"embedContent","edit-image":"editImageContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar","main-playlist":"mainPlaylistToolbar","playlist-edit":"playlistEditToolbar","playlist-add":"playlistAddToolbar","main-video-playlist":"mainVideoPlaylistToolbar","video-playlist-edit":"videoPlaylistEditToolbar","video-playlist-add":"videoPlaylistAddToolbar"}},b.each(a,function(a,c){b.each(a,function(a,b){this.on(c+":render:"+b,this[a],this)},this)},this)},activate:function(){b.each(this.counts,function(a){a.count<1&&this.menuItemVisibility(a.state,"hide")},this)},mediaTypeCounts:function(a,b){"undefined"!=typeof this.counts[b]&&this.counts[b].count<1&&(this.counts[b].count++,this.menuItemVisibility(this.counts[b].state,"show"))},mainMenu:function(a){a.set({"library-separator":new d.View({className:"separator",priority:100})})},menuItemVisibility:function(a,b){var c=this.menu.get();"hide"===b?c.hide(a):"show"===b&&c.show(a)},galleryMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelGalleryTitle,priority:20,click:function(){e?f.setState(e):f.close(),this.controller.modal.focusManager.focus()}},separateCancel:new d.View({className:"separator",priority:40})})},playlistMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelPlaylistTitle,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},videoPlaylistMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelVideoPlaylistTitle,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},embedContent:function(){var a=new d.view.Embed({controller:this,model:this.state()}).render();this.content.set(a),e||a.url.focus()},editSelectionContent:function(){var a,b=this.state(),e=b.get("selection");a=new d.view.AttachmentsBrowser({controller:this,collection:e,selection:e,model:b,sortable:!0,search:!1,dragInfo:!0,AttachmentView:d.view.Attachment.EditSelection}).render(),a.toolbar.set("backToLibrary",{text:c.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}}),this.content.set(a)},editImageContent:function(){var a=this.state().get("image"),b=new d.view.EditImage({model:a,controller:this}).render();this.content.set(b),b.loadEditor()},selectionStatusToolbar:function(a){var b=this.state().get("editable");a.set("selection",new d.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:b&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("insert",{style:"primary",priority:80,text:c.insertIntoPost,requires:{selection:!0},click:function(){var a=b.state(),c=a.get("selection");b.close(),a.trigger("insert",c).reset()}})},mainGalleryToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("gallery",{style:"primary",text:c.createNewGallery,priority:60,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("gallery-edit"),e=a.where({type:"image"}); c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("gallery-edit"),this.controller.modal.focusManager.focus()}})},mainPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("playlist",{style:"primary",text:c.createNewPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("playlist-edit"),e=a.where({type:"audio"});c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("playlist-edit"),this.controller.modal.focusManager.focus()}})},mainVideoPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("video-playlist",{style:"primary",text:c.createNewVideoPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("video-playlist-edit"),e=a.where({type:"video"});c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("video-playlist-edit"),this.controller.modal.focusManager.focus()}})},featuredImageToolbar:function(a){this.createSelectToolbar(a,{text:c.setFeaturedImage,state:this.options.state})},mainEmbedToolbar:function(a){a.view=new d.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updateGallery:c.insertGallery,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},galleryAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToGallery,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("gallery-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("gallery-edit")}}}}))},playlistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updatePlaylist:c.insertPlaylist,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},playlistAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToPlaylist,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("playlist-edit")}}}}))},videoPlaylistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updateVideoPlaylist:c.insertVideoPlaylist,priority:140,requires:{library:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("library");c.type="video",a.close(),b.trigger("update",c),a.setState(a.options.state),a.reset()}}}}))},videoPlaylistAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToVideoPlaylist,priority:140,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("video-playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("video-playlist-edit")}}}}))}}),d.view.MediaFrame.ImageDetails=d.view.MediaFrame.Select.extend({defaults:{id:"image",url:"",menu:"image-details",content:"image-details",toolbar:"image-details",type:"link",title:c.imageDetailsTitle,priority:120},initialize:function(a){this.image=new d.model.PostImage(a.metadata),this.options.selection=new d.model.Selection(this.image.attachment,{multiple:!1}),d.view.MediaFrame.Select.prototype.initialize.apply(this,arguments)},bindHandlers:function(){d.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:image-details",this.createMenu,this),this.on("content:create:image-details",this.imageDetailsContent,this),this.on("content:render:edit-image",this.editImageContent,this),this.on("toolbar:render:image-details",this.renderImageDetailsToolbar,this),this.on("toolbar:render:replace",this.renderReplaceImageToolbar,this)},createStates:function(){this.states.add([new d.controller.ImageDetails({image:this.image,editable:!1}),new d.controller.ReplaceImage({id:"replace-image",library:d.query({type:"image"}),image:this.image,multiple:!1,title:c.imageReplaceTitle,toolbar:"replace",priority:80,displaySettings:!0}),new d.controller.EditImage({image:this.image,selection:this.options.selection})])},imageDetailsContent:function(a){a.view=new d.view.ImageDetails({controller:this,model:this.state().image,attachment:this.state().image.attachment})},editImageContent:function(){var a,b=this.state(),c=b.get("image");c&&(a=new d.view.EditImage({model:c,controller:this}).render(),this.content.set(a),a.loadEditor())},renderImageDetailsToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{select:{style:"primary",text:c.update,priority:80,click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))},renderReplaceImageToolbar:function(){var a=this,b=a.lastState(),e=b&&b.id;this.toolbar.set(new d.view.Toolbar({controller:this,items:{back:{text:c.back,priority:20,click:function(){e?a.setState(e):a.close()}},replace:{style:"primary",text:c.replace,priority:80,click:function(){var a=this.controller,b=a.state(),c=b.get("selection"),d=c.single();a.close(),a.image.changeAttachment(d,b.display(d)),b.trigger("replace",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))}}),d.view.Modal=d.View.extend({tagName:"div",template:d.template("media-modal"),attributes:{tabindex:0},events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},initialize:function(){b.defaults(this.options,{container:document.body,title:"",propagate:!0,freeze:!0}),this.focusManager=new d.view.FocusManager({el:this.el})},prepare:function(){return{title:this.options.title}},attach:function(){return this.views.attached?this:(this.views.rendered||this.render(),this.$el.appendTo(this.options.container),this.views.attached=!0,this.views.ready(),this.propagate("attach"))},detach:function(){return this.$el.is(":visible")&&this.close(),this.$el.detach(),this.views.attached=!1,this.propagate("detach")},open:function(){var b,c=this.$el,d=this.options;return c.is(":visible")?this:(this.views.attached||this.attach(),d.freeze&&(this._freeze={scrollTop:a(window).scrollTop()}),a("body").addClass("modal-open"),c.show(),"ontouchend"in document&&(b=window.tinymce&&window.tinymce.activeEditor)&&!b.isHidden()&&b.iframeElement&&(b.iframeElement.focus(),b.iframeElement.blur(),setTimeout(function(){b.iframeElement.blur()},100)),this.$el.focus(),this.propagate("open"))},close:function(b){var c=this._freeze;return this.views.attached&&this.$el.is(":visible")?(a("body").removeClass("modal-open"),this.$el.hide().undelegate("keydown"),a("#wpbody-content").focus(),this.propagate("close"),c&&a(window).scrollTop(c.scrollTop),b&&b.escape&&this.propagate("escape"),this):this},escape:function(){return this.close({escape:!0})},escapeHandler:function(a){a.preventDefault(),this.escape()},content:function(a){return this.views.set(".media-modal-content",a),this},propagate:function(a){return this.trigger(a),this.options.propagate&&this.controller.trigger(a),this},keydown:function(a){27===a.which&&this.$el.is(":visible")&&(this.escape(),a.stopImmediatePropagation())}}),d.view.FocusManager=d.View.extend({events:{keydown:"constrainTabbing"},focus:function(){this.$(".media-menu-item").first().focus()},constrainTabbing:function(a){var b;if(9===a.keyCode)return b=this.$(":tabbable"),b.last()[0]!==a.target||a.shiftKey?b.first()[0]===a.target&&a.shiftKey?(b.last().focus(),!1):void 0:(b.first().focus(),!1)}}),d.view.UploaderWindow=d.View.extend({tagName:"div",className:"uploader-window",template:d.template("uploader-window"),initialize:function(){var c;this.$browser=a('').hide().appendTo("body"),c=this.options.uploader=b.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}}),!c.dropzone||c.dropzone instanceof a||(c.dropzone=a(c.dropzone)),this.controller.on("activate",this.refresh,this),this.controller.on("detach",function(){this.$browser.remove()},this)},refresh:function(){this.uploader&&this.uploader.refresh()},ready:function(){var c,e=d.view.settings.post.id;this.uploader||(e&&(this.options.uploader.params.post_id=e),this.uploader=new wp.Uploader(this.options.uploader),c=this.uploader.dropzone,c.on("dropzone:enter",b.bind(this.show,this)),c.on("dropzone:leave",b.bind(this.hide,this)),a(this.uploader).on("uploader:ready",b.bind(this._ready,this)))},_ready:function(){this.controller.trigger("uploader:ready")},show:function(){var a=this.$el.show();b.defer(function(){a.css({opacity:1})})},hide:function(){var a=this.$el.css({opacity:0});d.transition(a).done(function(){"0"===a.css("opacity")&&a.hide()}),b.delay(function(){"0"===a.css("opacity")&&a.is(":visible")&&a.hide()},500)}}),d.view.EditorUploader=d.View.extend({tagName:"div",className:"uploader-editor",template:d.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,initialize:function(){var c=this;return this.initialized=!1,window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()?(this.$document=a(document),this.dropzones=[],this.files=[],this.$document.on("drop",".uploader-editor",b.bind(this.drop,this)),this.$document.on("dragover",".uploader-editor",b.bind(this.dropzoneDragover,this)),this.$document.on("dragleave",".uploader-editor",b.bind(this.dropzoneDragleave,this)),this.$document.on("click",".uploader-editor",b.bind(this.click,this)),this.$document.on("dragover",b.bind(this.containerDragover,this)),this.$document.on("dragleave",b.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",function(a){c.localDrag="dragstart"===a.type}),this.initialized=!0,this):this},browserSupport:function(){var a=!1,b=document.createElement("div");return a="draggable"in b||"ondragstart"in b&&"ondrop"in b,a=a&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(a){return null!==this.draggingFile?this.draggingFile:b.isUndefined(a.originalEvent)||b.isUndefined(a.originalEvent.dataTransfer)?!1:(this.draggingFile=b.indexOf(a.originalEvent.dataTransfer.types,"Files")>-1&&-1===b.indexOf(a.originalEvent.dataTransfer.types,"text/plain"),this.draggingFile)},refresh:function(c){var d;for(d in this.dropzones)this.dropzones[d].toggle(this.overContainer||this.overDropzone);return b.isUndefined(c)||a(c.target).closest(".uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized?(d.View.prototype.render.apply(this,arguments),a(".wp-editor-wrap, #wp-fullscreen-body").each(b.bind(this.attach,this)),this):this},attach:function(b,c){var d=this.$el.clone();return this.dropzones.push(d),a(c).append(d),this},drop:function(b){var c=null;return this.containerDragleave(b),this.dropzoneDragleave(b),this.files=b.originalEvent.dataTransfer.files,this.files.length<1?void 0:(c=a(b.target).parents(".wp-editor-wrap"),c.length>0&&c[0].id&&(window.wpActiveEditor=c[0].id.slice(3,-5)),this.workflow?(this.workflow.state().reset(),this.addFiles.apply(this),this.workflow.open()):(this.workflow=wp.media.editor.open("content",{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0}),this.workflow.on("uploader:ready",this.addFiles,this)),!1)},addFiles:function(){return this.files.length&&(this.workflow.uploader.uploader.uploader.addFile(b.toArray(this.files)),this.files=[]),this},containerDragover:function(a){!this.localDrag&&this.isDraggingFile(a)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,b.delay(b.bind(this.refresh,this),50)},dropzoneDragover:function(a){return!this.localDrag&&this.isDraggingFile(a)?(this.overDropzone=!0,this.refresh(a),!1):void 0},dropzoneDragleave:function(a){this.overDropzone=!1,b.delay(b.bind(this.refresh,this,a),50)},click:function(a){this.containerDragleave(a),this.dropzoneDragleave(a),this.localDrag=!1}}),d.view.UploaderInline=d.View.extend({tagName:"div",className:"uploader-inline",template:d.template("uploader-inline"),events:{"click .close":"hide"},initialize:function(){b.defaults(this.options,{message:"",status:!0,canClose:!1}),!this.options.$browser&&this.controller.uploader&&(this.options.$browser=this.controller.uploader.$browser),b.isUndefined(this.options.postId)&&(this.options.postId=d.view.settings.post.id),this.options.status&&this.views.set(".upload-inline-status",new d.view.UploaderStatus({controller:this.controller}))},prepare:function(){var a=this.controller.state().get("suggestedWidth"),b=this.controller.state().get("suggestedHeight"),c={};return c.message=this.options.message,c.canClose=this.options.canClose,a&&b&&(c.suggestedWidth=a,c.suggestedHeight=b),c},dispose:function(){return this.disposing?d.View.prototype.dispose.apply(this,arguments):(this.disposing=!0,this.remove())},remove:function(){var a=d.View.prototype.remove.apply(this,arguments);return b.defer(b.bind(this.refresh,this)),a},refresh:function(){var a=this.controller.uploader;a&&a.refresh()},ready:function(){var a,b=this.options.$browser;if(this.controller.uploader){if(a=this.$(".browser"),a[0]===b[0])return;b.detach().text(a.text()),b[0].className=a[0].className,a.replaceWith(b.show())}return this.refresh(),this},show:function(){this.$el.removeClass("hidden")},hide:function(){this.$el.addClass("hidden")}}),d.view.UploaderStatus=d.View.extend({className:"media-uploader-status",template:d.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue,this.queue.on("add remove reset",this.visibility,this),this.queue.on("add remove reset change:percent",this.progress,this),this.queue.on("add remove reset change:uploading",this.info,this),this.errors=wp.Uploader.errors,this.errors.reset(),this.errors.on("add remove reset",this.visibility,this),this.errors.on("add",this.error,this)},dispose:function(){return wp.Uploader.queue.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length),this.$el.toggleClass("errors",!!this.errors.length),this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){b.each({$bar:".media-progress-bar div",$index:".upload-index",$total:".upload-total",$filename:".upload-filename"},function(a,b){this[b]=this.$(a)},this),this.visibility(),this.progress(),this.info()},progress:function(){var a=this.queue,c=this.$bar;c&&a.length&&c.width(a.reduce(function(a,c){if(!c.get("uploading"))return a+100;var d=c.get("percent");return a+(b.isNumber(d)?d:100)},0)/a.length+"%")},info:function(){var a,b=this.queue,c=0;b.length&&(a=this.queue.find(function(a,b){return c=b,a.get("uploading")}),this.$index.text(c+1),this.$total.text(b.length),this.$filename.html(a?this.filename(a.get("filename")):""))},filename:function(a){return d.truncate(b.escape(a),24)},error:function(a){this.views.add(".upload-errors",new d.view.UploaderStatusError({filename:this.filename(a.get("file").name),message:a.get("message")}),{at:0})},dismiss:function(a){var c=this.views.get(".upload-errors");a.preventDefault(),c&&b.invoke(c,"remove"),wp.Uploader.errors.reset()}}),d.view.UploaderStatusError=d.View.extend({className:"upload-error",template:d.template("uploader-status-error")}),d.view.Toolbar=d.View.extend({tagName:"div",className:"media-toolbar",initialize:function(){var a=this.controller.state(),b=this.selection=a.get("selection"),c=this.library=a.get("library");this._views={},this.primary=new d.view.PriorityList,this.secondary=new d.view.PriorityList,this.primary.$el.addClass("media-toolbar-primary search-form"),this.secondary.$el.addClass("media-toolbar-secondary"),this.views.set([this.secondary,this.primary]),this.options.items&&this.set(this.options.items,{silent:!0}),this.options.silent||this.render(),b&&b.on("add remove reset",this.refresh,this),c&&c.on("add remove reset",this.refresh,this)},dispose:function(){return this.selection&&this.selection.off(null,null,this),this.library&&this.library.off(null,null,this),d.View.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(a,c,e){var f;return e=e||{},b.isObject(a)?b.each(a,function(a,b){this.set(b,a,{silent:!0})},this):(c instanceof Backbone.View||(c.classes=["media-button-"+a].concat(c.classes||[]),c=new d.view.Button(c).render()),c.controller=c.controller||this.controller,this._views[a]=c,f=c.options.priority<0?"secondary":"primary",this[f].set(a,c,e)),e.silent||this.refresh(),this},get:function(a){return this._views[a]},unset:function(a,b){return delete this._views[a],this.primary.unset(a,b),this.secondary.unset(a,b),b&&b.silent||this.refresh(),this},refresh:function(){var a=this.controller.state(),c=a.get("library"),d=a.get("selection");b.each(this._views,function(a){if(a.model&&a.options&&a.options.requires){var e=a.options.requires,f=!1;f=b.some(d.models,function(a){return a.get("uploading")===!0}),e.selection&&d&&!d.length?f=!0:e.library&&c&&!c.length&&(f=!0),a.model.set("disabled",f)}})}}),d.view.Toolbar.Select=d.view.Toolbar.extend({initialize:function(){var a=this.options;b.bindAll(this,"clickSelect"),b.defaults(a,{event:"select",state:!1,reset:!0,close:!0,text:c.select,requires:{selection:!0}}),a.items=b.defaults(a.items||{},{select:{style:"primary",text:a.text,priority:80,click:this.clickSelect,requires:a.requires}}),d.view.Toolbar.prototype.initialize.apply(this,arguments)},clickSelect:function(){var a=this.options,b=this.controller;a.close&&b.close(),a.event&&b.state().trigger(a.event),a.state&&b.setState(a.state),a.reset&&b.reset()}}),d.view.Toolbar.Embed=d.view.Toolbar.Select.extend({initialize:function(){b.defaults(this.options,{text:c.insertIntoPost,requires:!1}),d.view.Toolbar.Select.prototype.initialize.apply(this,arguments)},refresh:function(){var a=this.controller.state().props.get("url");this.get("select").model.set("disabled",!a||"http://"===a),d.view.Toolbar.Select.prototype.refresh.apply(this,arguments)}}),d.view.Button=d.View.extend({tagName:"a",className:"media-button",attributes:{href:"#"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:!1},initialize:function(){this.model=new Backbone.Model(this.defaults),b.each(this.defaults,function(a,c){var d=this.options[c];b.isUndefined(d)||(this.model.set(c,d),delete this.options[c])},this),this.model.on("change",this.render,this)},render:function(){var a=["button",this.className],c=this.model.toJSON();return c.style&&a.push("button-"+c.style),c.size&&a.push("button-"+c.size),a=b.uniq(a.concat(this.options.classes)),this.el.className=a.join(" "),this.$el.attr("disabled",c.disabled),this.$el.text(this.model.get("text")),this},click:function(a){"#"===this.attributes.href&&a.preventDefault(),this.options.click&&!this.model.get("disabled")&&this.options.click.apply(this,arguments)}}),d.view.ButtonGroup=d.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=b.map(this.options.buttons||[],function(a){return a instanceof Backbone.View?a:new d.view.Button(a).render()}),delete this.options.buttons,this.options.classes&&this.$el.addClass(this.options.classes)},render:function(){return this.$el.html(a(b.pluck(this.buttons,"el")).detach()),this}}),d.view.PriorityList=d.View.extend({tagName:"div",initialize:function(){this._views={},this.set(b.extend({},this._views,this.options.views),{silent:!0}),delete this.options.views,this.options.silent||this.render()},set:function(a,c,d){var e,f,g;return d=d||{},b.isObject(a)?(b.each(a,function(a,b){this.set(b,a)},this),this):(c instanceof Backbone.View||(c=this.toView(c,a,d)),c.controller=c.controller||this.controller,this.unset(a),e=c.options.priority||10,f=this.views.get()||[],b.find(f,function(a,b){return a.options.priority>e?(g=b,!0):void 0}),this._views[a]=c,this.views.add(c,{at:b.isNumber(g)?g:f.length||0}),this)},get:function(a){return this._views[a]},unset:function(a){var b=this.get(a);return b&&b.remove(),delete this._views[a],this},toView:function(a){return new d.View(a)}}),d.view.MenuItem=d.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(b){var c=this.options.click;b&&b.preventDefault(),c?c.call(this):this.click(),e||a(".media-frame-content input").first().focus()},click:function(){var a=this.options.state;a&&(this.controller.setState(a),this.views.parent.$el.removeClass("visible"))},render:function(){var a=this.options;return a.text?this.$el.text(a.text):a.html&&this.$el.html(a.html),this}}),d.view.Menu=d.view.PriorityList.extend({tagName:"div",className:"media-menu",property:"state",ItemView:d.view.MenuItem,region:"menu",toView:function(a,b){return a=a||{},a[this.property]=a[this.property]||b,new this.ItemView(a).render()},ready:function(){d.view.PriorityList.prototype.ready.apply(this,arguments),this.visibility()},set:function(){d.view.PriorityList.prototype.set.apply(this,arguments),this.visibility()},unset:function(){d.view.PriorityList.prototype.unset.apply(this,arguments),this.visibility()},visibility:function(){var a=this.region,b=this.controller[a].get(),c=this.views.get(),d=!c||c.length<2;this===b&&this.controller.$el.toggleClass("hide-"+a,d)},select:function(a){var b=this.get(a);b&&(this.deselect(),b.$el.addClass("active"))},deselect:function(){this.$el.children().removeClass("active")},hide:function(a){var b=this.get(a);b&&b.$el.addClass("hidden")},show:function(a){var b=this.get(a);b&&b.$el.removeClass("hidden")}}),d.view.RouterItem=d.view.MenuItem.extend({click:function(){var a=this.options.contentMode;a&&this.controller.content.mode(a)}}),d.view.Router=d.view.Menu.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:d.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this),d.view.Menu.prototype.initialize.apply(this,arguments)},update:function(){var a=this.controller.content.mode();a&&this.select(a)}}),d.view.Sidebar=d.view.PriorityList.extend({className:"media-sidebar"}),d.view.Attachment=d.View.extend({tagName:"li",className:"attachment",template:d.template("attachment"),attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},events:{"click .js--select-attachment":"toggleSelectionHandler","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .close":"removeFromLibrary","click .check":"checkClickHandler","click a":"preventDefault",keydown:"toggleSelectionHandler"},buttons:{},initialize:function(){var a=this.options.selection,c=b.defaults(this.options,{rerenderOnModelChange:!0});c.rerenderOnModelChange?this.model.on("change",this.render,this):this.model.on("change:percent",this.progress,this),this.model.on("change:title",this._syncTitle,this),this.model.on("change:caption",this._syncCaption,this),this.model.on("change:artist",this._syncArtist,this),this.model.on("change:album",this._syncAlbum,this),this.model.on("add",this.select,this),this.model.on("remove",this.deselect,this),a&&(a.on("reset",this.updateSelect,this),this.model.on("selection:single selection:unsingle",this.details,this),this.details(this.model,this.controller.state().get("selection")))},dispose:function(){var a=this.options.selection;return this.updateAll(),a&&a.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},render:function(){var a=b.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options);return a.buttons=this.buttons,a.describe=this.controller.state().get("describe"),"image"===a.type&&(a.size=this.imageSize()),a.can={},a.nonces&&(a.can.remove=!!a.nonces["delete"],a.can.save=!!a.nonces.update),this.controller.state().get("allowLocalEdits")&&(a.allowLocalEdits=!0),a.uploading&&!a.percent&&(a.percent=0),this.views.detach(),this.$el.html(this.template(a)),this.$el.toggleClass("uploading",a.uploading),a.uploading?this.$bar=this.$(".media-progress-bar div"):delete this.$bar,this.updateSelect(),this.updateSave(),this.views.render(),this},progress:function(){this.$bar&&this.$bar.length&&this.$bar.width(this.model.get("percent")+"%")},toggleSelectionHandler:function(a){var b;if("INPUT"!==a.target.nodeName){if(37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode)return void this.controller.trigger("attachment:keydown:arrow",a);if("keydown"!==a.type||13===a.keyCode||32===a.keyCode){if(this.controller.isModeActive("grid")){if(this.controller.isModeActive("edit"))return this.controller.trigger("edit:attachment",this.model,a.currentTarget),void a.stopPropagation();this.controller.isModeActive("select")&&(b="toggle")}a.shiftKey?b="between":(a.ctrlKey||a.metaKey)&&(b="toggle"),this.toggleSelection({method:b}),this.controller.trigger("selection:toggle"),a.stopPropagation()}}},toggleSelection:function(a){var c,d,e,f,g=this.collection,h=this.options.selection,i=this.model,j=a&&a.method;if(h){if(c=h.single(),j=b.isUndefined(j)?h.multiple:j,"between"===j&&c&&h.multiple){if(c===i)return;return e=g.indexOf(c),f=g.indexOf(this.model),d=f>e?g.models.slice(e,f+1):g.models.slice(f,e+1),h.add(d),void h.single(i)}if("toggle"===j)return h[this.selected()?"remove":"add"](i),void h.single(i);if("add"===j)return h.add(i),void h.single(i);j||(j="add"),"add"!==j&&(j="reset"),this.selected()?h[c===i?"remove":"single"](i):(h[j](i),h.single(i))}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var a=this.options.selection;return a?!!a.get(this.model.cid):void 0},select:function(a,b){var c=this.options.selection,d=this.controller;!c||b&&b!==c||this.$el.hasClass("selected")||(this.$el.addClass("selected").attr("aria-checked",!0),d.isModeActive("grid")&&d.isModeActive("select")||this.$(".check").attr("tabindex","0"))},deselect:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.removeClass("selected").attr("aria-checked",!1).find(".check").attr("tabindex","-1")},details:function(a,b){var c,d=this.options.selection;d===b&&(c=d.single(),this.$el.toggleClass("details",c===this.model))},preventDefault:function(a){a.preventDefault()},imageSize:function(a){var c=this.model.get("sizes");return a=a||"medium",c&&c[a]?b.clone(c[a]):{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}},updateSetting:function(b){var c,d,e=a(b.target).closest("[data-setting]");e.length&&(c=e.data("setting"),d=b.target.value,this.model.get(c)!==d&&this.save(c,d))},save:function(){var b=this,c=this._save=this._save||{status:"ready"},d=this.model.save.apply(this.model,arguments),e=c.requests?a.when(d,c.requests):d;c.savedTimer&&clearTimeout(c.savedTimer),this.updateSave("waiting"),c.requests=e,e.always(function(){c.requests===e&&(b.updateSave("resolved"===e.state()?"complete":"error"),c.savedTimer=setTimeout(function(){b.updateSave("ready"),delete c.savedTimer},2e3))})},updateSave:function(a){var b=this._save=this._save||{status:"ready"};return a&&a!==b.status&&(this.$el.removeClass("save-"+b.status),b.status=a),this.$el.addClass("save-"+b.status),this},updateAll:function(){var c,d=this.$("[data-setting]"),e=this.model;c=b.chain(d).map(function(b){var c,d,f=a("input, textarea, select, [value]",b);if(f.length)return c=a(b).data("setting"),d=f.val(),e.get(c)!==d?[c,d]:void 0}).compact().object().value(),b.isEmpty(c)||e.save(c)},removeFromLibrary:function(a){a.stopPropagation(),this.collection.remove(this.model)},checkClickHandler:function(a){var b=this.options.selection;b&&(a.stopPropagation(),b.where({id:this.model.get("id")}).length?(b.remove(this.model),this.$el.focus()):b.add(this.model))}}),b.each({caption:"_syncCaption",title:"_syncTitle",artist:"_syncArtist",album:"_syncAlbum"},function(a,b){d.view.Attachment.prototype[a]=function(a,c){var d=this.$('[data-setting="'+b+'"]');return d.length?c===d.find("input, textarea, select, [value]").val()?this:this.render():this}}),d.view.Attachment.Library=d.view.Attachment.extend({buttons:{check:!0}}),d.view.Attachment.EditLibrary=d.view.Attachment.extend({buttons:{close:!0}}),d.view.Attachments=d.View.extend({tagName:"ul",className:"attachments",attributes:{tabIndex:-1},initialize:function(){this.el.id=b.uniqueId("__attachments-view-"),b.defaults(this.options,{refreshSensitivity:e?300:200,refreshThreshold:3,AttachmentView:d.view.Attachment,sortable:!1,resize:!0,idealColumnWidth:a(window).width()<640?135:150}),this._viewsByCid={},this.$window=a(window),this.resizeEvent="resize.media-modal-columns",this.collection.on("add",function(a){this.views.add(this.createAttachmentView(a),{at:this.collection.indexOf(a)})},this),this.collection.on("remove",function(a){var b=this._viewsByCid[a.cid];delete this._viewsByCid[a.cid],b&&b.remove()},this),this.collection.on("reset",this.render,this),this.listenTo(this.controller,"library:selection:add",this.attachmentFocus),this.scroll=b.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,a(this.options.scrollElement).on("scroll",this.scroll),this.initSortable(),b.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),this.controller.on("open",this.setColumns),b.defer(this.setColumns,this))},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,b.debounce(this.setColumns,50))},attachmentFocus:function(){this.$("li:first").focus()},restoreFocus:function(){this.$("li.selected:first").focus()},arrowEvent:function(a){var b=this.$el.children("li"),c=this.columns,d=b.filter(":focus").index(),e=c>=d+1?1:Math.ceil((d+1)/c);if(-1!==d){if(37===a.keyCode){if(0===d)return;b.eq(d-1).focus()}if(38===a.keyCode){if(1===e)return;b.eq(d-c).focus()}if(39===a.keyCode){if(b.length===d)return;b.eq(d+1).focus()}if(40===a.keyCode){if(Math.ceil(b.length/c)===e)return;b.eq(d+c).focus()}}},dispose:function(){this.collection.props.off(null,null,this),this.options.resize&&this.$window.off(this.resizeEvent),d.View.prototype.dispose.apply(this,arguments)},setColumns:function(){var a=this.columns,b=this.$el.width();b&&(this.columns=Math.min(Math.round(b/this.options.idealColumnWidth),12)||1,a&&a===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},initSortable:function(){var c=this.collection;!e&&this.options.sortable&&a.fn.sortable&&(this.$el.sortable(b.extend({disabled:!!c.comparator,containment:this.$el,tolerance:"pointer",start:function(a,b){b.item.data("sortableIndexStart",b.item.index())},update:function(a,b){var d=c.at(b.item.data("sortableIndexStart")),e=c.comparator;delete c.comparator,c.remove(d,{silent:!0}),c.add(d,{silent:!0,at:b.item.index()}),c.comparator=e,c.trigger("reset",c),c.saveMenuOrder()}},this.options.sortable)),c.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!c.comparator)},this),this.collection.props.on("change:orderby",this.refreshSortable,this),this.refreshSortable())},refreshSortable:function(){if(!e&&this.options.sortable&&a.fn.sortable){var b=this.collection,c=b.props.get("orderby"),d="menuOrder"===c||!b.comparator;this.$el.sortable("option","disabled",!d) -}},createAttachmentView:function(a){var b=new this.options.AttachmentView({controller:this.controller,model:a,collection:this.collection,selection:this.options.selection});return this._viewsByCid[a.cid]=b},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createAttachmentView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var b,c=this,d=this.options.scrollElement,e=d.scrollTop;d==document&&(d=document.body,e=a(document).scrollTop()),a(d).is(":visible")&&this.collection.hasMore()&&(b=this.views.parent.toolbar,d.scrollHeight-(e+d.clientHeight)").val(c).html(b.text)[0],priority:b.priority||50}},this).sortBy("priority").pluck("el").value()),this.model.on("change",this.select,this),this.select()},createFilters:function(){this.filters={}},change:function(){var a=this.filters[this.el.value];a&&this.model.set(a.props)},select:function(){var a=this.model,c="all",d=a.toJSON();b.find(this.filters,function(a,e){var f=b.all(a.props,function(a,c){return a===(b.isUndefined(d[c])?null:d[c])});return f?c=e:void 0}),this.$el.val(c)}}),d.view.AttachmentFilters.Uploaded=d.view.AttachmentFilters.extend({createFilters:function(){var a,b=this.model.get("type"),e=d.view.settings.mimeTypes;e&&b&&(a=e[b]),this.filters={all:{text:a||c.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10},uploaded:{text:c.uploadedToThisPost,props:{uploadedTo:d.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}}}}),d.view.AttachmentFilters.All=d.view.AttachmentFilters.extend({createFilters:function(){var a={};b.each(d.view.settings.mimeTypes||{},function(b,c){a[c]={text:b,props:{status:null,type:c,uploadedTo:null,orderby:"date",order:"DESC"}}}),a.all={text:c.allMediaItems,props:{status:null,type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10},d.view.settings.post.id&&(a.uploaded={text:c.uploadedToThisPost,props:{status:null,type:null,uploadedTo:d.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}),a.unattached={text:c.unattached,props:{status:null,uploadedTo:0,type:null,orderby:"menuOrder",order:"ASC"},priority:50},d.view.settings.mediaTrash&&this.controller.isModeActive("grid")&&(a.trash={text:c.trash,props:{uploadedTo:null,status:"trash",type:null,orderby:"date",order:"DESC"},priority:50}),this.filters=a}}),d.view.AttachmentsBrowser=d.View.extend({tagName:"div",className:"attachments-browser",initialize:function(){b.defaults(this.options,{filters:!1,search:!0,display:!1,sidebar:!0,AttachmentView:d.view.Attachment.Library}),this.listenTo(this.controller,"toggle:upload:attachment",b.bind(this.toggleUploader,this)),this.createToolbar(),this.options.sidebar&&this.createSidebar(),this.createUploader(),this.createAttachments(),this.updateContent(),this.options.sidebar&&"errors"!==this.options.sidebar||(this.$el.addClass("hide-sidebar"),"errors"===this.options.sidebar&&this.$el.addClass("sidebar-for-errors")),this.collection.on("add remove reset",this.updateContent,this)},dispose:function(){return this.options.selection.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},createToolbar:function(){var b,e,f;f={controller:this.controller},this.controller.isModeActive("grid")&&(f.className="media-toolbar wp-filter"),this.toolbar=new d.view.Toolbar(f),this.views.add(this.toolbar),this.toolbar.set("spinner",new d.view.Spinner({priority:-60})),-1!==a.inArray(this.options.filters,["uploaded","all"])&&(this.toolbar.set("filtersLabel",new d.view.Label({value:c.filterByType,attributes:{"for":"media-attachment-filters"},priority:-80}).render()),"uploaded"===this.options.filters?this.toolbar.set("filters",new d.view.AttachmentFilters.Uploaded({controller:this.controller,model:this.collection.props,priority:-80}).render()):(e=new d.view.AttachmentFilters.All({controller:this.controller,model:this.collection.props,priority:-80}),this.toolbar.set("filters",e.render()))),this.controller.isModeActive("grid")&&(b=d.View.extend({className:"view-switch media-grid-view-switch",template:d.template("media-library-view-switcher")}),this.toolbar.set("libraryViewSwitcher",new b({controller:this.controller,priority:-90}).render()),this.toolbar.set("dateFilterLabel",new d.view.Label({value:c.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new d.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render()),this.toolbar.set("selectModeToggleButton",new d.view.SelectModeToggleButton({text:c.bulkSelect,controller:this.controller,priority:-70}).render()),this.toolbar.set("deleteSelectedButton",new d.view.DeleteSelectedButton({filters:e,style:"primary",disabled:!0,text:d.view.settings.mediaTrash?c.trashSelected:c.deleteSelected,controller:this.controller,priority:-60,click:function(){var b,e=[],f=this,g=this.controller.state().get("selection"),h=this.controller.state().get("library");if(g.length&&(d.view.settings.mediaTrash||confirm(c.warnBulkDelete))&&(!d.view.settings.mediaTrash||"trash"===g.at(0).get("status")||confirm(c.warnBulkTrash))){for(;g.length>0;)b=g.at(0),d.view.settings.mediaTrash&&"trash"===b.get("status")?(b.set("status","inherit"),e.push(b.save()),g.remove(b)):d.view.settings.mediaTrash?(b.set("status","trash"),e.push(b.save()),g.remove(b)):b.destroy();e.length?a.when.apply(null,e).then(function(){h._requery(!0),f.controller.trigger("selection:action:done")}):this.controller.trigger("selection:action:done")}}}).render())),this.options.search&&(this.toolbar.set("searchLabel",new d.view.Label({value:c.searchMediaLabel,attributes:{"for":"media-search-input"},priority:60}).render()),this.toolbar.set("search",new d.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())),this.options.dragInfo&&this.toolbar.set("dragInfo",new d.View({el:a('
'+c.dragInfo+"
")[0],priority:-40})),this.options.suggestedWidth&&this.options.suggestedHeight&&this.toolbar.set("suggestedDimensions",new d.View({el:a('
'+c.suggestedDimensions+" "+this.options.suggestedWidth+" × "+this.options.suggestedHeight+"
")[0],priority:-40}))},updateContent:function(){var a,b=this;a=this.controller.isModeActive("grid")?b.attachmentsNoResults:b.uploader,this.collection.length?(a.$el.addClass("hidden"),b.toolbar.get("spinner").hide()):(this.toolbar.get("spinner").show(),this.dfd=this.collection.more().done(function(){b.collection.length?a.$el.addClass("hidden"):a.$el.removeClass("hidden"),b.toolbar.get("spinner").hide()}))},createUploader:function(){this.uploader=new d.view.UploaderInline({controller:this.controller,status:!1,message:this.controller.isModeActive("grid")?"":c.noItemsFound,canClose:this.controller.isModeActive("grid")}),this.uploader.hide(),this.views.add(this.uploader)},toggleUploader:function(){this.uploader.$el.hasClass("hidden")?this.uploader.show():this.uploader.hide()},createAttachments:function(){this.attachments=new d.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,scrollElement:this.options.scrollElement,idealColumnWidth:this.options.idealColumnWidth,AttachmentView:this.options.AttachmentView}),this.attachments.listenTo(this.controller,"attachment:keydown:arrow",this.attachments.arrowEvent),this.attachments.listenTo(this.controller,"attachment:details:shift-tab",this.attachments.restoreFocus),this.views.add(this.attachments),this.controller.isModeActive("grid")&&(this.attachmentsNoResults=new d.View({controller:this.controller,tagName:"p"}),this.attachmentsNoResults.$el.addClass("hidden no-media"),this.attachmentsNoResults.$el.html(c.noMedia),this.views.add(this.attachmentsNoResults))},createSidebar:function(){var a=this.options,b=a.selection,c=this.sidebar=new d.view.Sidebar({controller:this.controller});this.views.add(c),this.controller.uploader&&c.set("uploads",new d.view.UploaderStatus({controller:this.controller,priority:40})),b.on("selection:single",this.createSingle,this),b.on("selection:unsingle",this.disposeSingle,this),b.single()&&this.createSingle()},createSingle:function(){var a=this.sidebar,b=this.options.selection.single();a.set("details",new d.view.Attachment.Details({controller:this.controller,model:b,priority:80})),a.set("compat",new d.view.AttachmentCompat({controller:this.controller,model:b,priority:120})),this.options.display&&a.set("display",new d.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(b),attachment:b,priority:160,userSettings:this.model.get("displayUserSettings")})),"insert"===this.model.id&&a.$el.addClass("visible")},disposeSingle:function(){var a=this.sidebar;a.unset("details"),a.unset("compat"),a.unset("display"),a.$el.removeClass("visible")}}),d.view.Selection=d.View.extend({tagName:"div",className:"media-selection",template:d.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){b.defaults(this.options,{editable:!1,clearable:!0}),this.attachments=new d.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model}),this.views.set(".selection-view",this.attachments),this.collection.on("add remove reset",this.refresh,this),this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(this.$el.children().length){var a=this.collection,b="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!a.length),this.$el.toggleClass("one",1===a.length),this.$el.toggleClass("editing",b),this.$(".count").text(c.selected.replace("%d",a.length))}},edit:function(a){a.preventDefault(),this.options.editable&&this.options.editable.call(this,this.collection)},clear:function(a){a.preventDefault(),this.collection.reset(),this.controller.modal.focusManager.focus()}}),d.view.Attachment.Selection=d.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}}),d.view.Attachments.Selection=d.view.Attachments.extend({events:{},initialize:function(){return b.defaults(this.options,{sortable:!0,resize:!1,AttachmentView:d.view.Attachment.Selection}),d.view.Attachments.prototype.initialize.apply(this,arguments)}}),d.view.Attachment.EditSelection=d.view.Attachment.Selection.extend({buttons:{close:!0}}),d.view.Settings=d.View.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model,this.model.on("change",this.updateChanges,this)},prepare:function(){return b.defaults({model:this.model.toJSON()},this.options)},render:function(){return d.View.prototype.render.apply(this,arguments),b(this.model.attributes).chain().keys().each(this.update,this),this},update:function(a){var b,c,d=this.model.get(a),e=this.$('[data-setting="'+a+'"]');e.length&&(e.is("select")?(c=e.find('[value="'+d+'"]'),c.length?(e.find("option").prop("selected",!1),c.prop("selected",!0)):this.model.set(a,e.find(":selected").val())):e.hasClass("button-group")?(b=e.find("button").removeClass("active"),b.filter('[value="'+d+'"]').addClass("active")):e.is('input[type="text"], textarea')?e.is(":focus")||e.val(d):e.is('input[type="checkbox"]')&&e.prop("checked",!!d&&"false"!==d))},updateHandler:function(b){var c,d=a(b.target).closest("[data-setting]"),e=b.target.value;b.preventDefault(),d.length&&(d.is('input[type="checkbox"]')&&(e=d[0].checked),this.model.set(d.data("setting"),e),(c=d.data("userSetting"))&&setUserSetting(c,e))},updateChanges:function(a){a.hasChanged()&&b(a.changed).chain().keys().each(this.update,this)}}),d.view.Settings.AttachmentDisplay=d.view.Settings.extend({className:"attachment-display-settings",template:d.template("attachment-display-settings"),initialize:function(){var a=this.options.attachment;b.defaults(this.options,{userSettings:!1}),d.view.Settings.prototype.initialize.apply(this,arguments),this.model.on("change:link",this.updateLinkTo,this),a&&a.on("change:uploading",this.render,this)},dispose:function(){var a=this.options.attachment;a&&a.off(null,null,this),d.view.Settings.prototype.dispose.apply(this,arguments)},render:function(){var a=this.options.attachment;return a&&b.extend(this.options,{sizes:a.get("sizes"),type:a.get("type")}),d.view.Settings.prototype.render.call(this),this.updateLinkTo(),this},updateLinkTo:function(){var a=this.model.get("link"),b=this.$(".link-to-custom"),c=this.options.attachment;return"none"===a||"embed"===a||!c&&"custom"!==a?void b.addClass("hidden"):(c&&("post"===a?b.val(c.get("link")):"file"===a?b.val(c.get("url")):this.model.get("linkUrl")||b.val("http://"),b.prop("readonly","custom"!==a)),b.removeClass("hidden"),void(!e&&b.is(":visible")&&b.focus()[0].select()))}}),d.view.Settings.Gallery=d.view.Settings.extend({className:"collection-settings gallery-settings",template:d.template("gallery-settings")}),d.view.Settings.Playlist=d.view.Settings.extend({className:"collection-settings playlist-settings",template:d.template("playlist-settings")}),d.view.Attachment.Details=d.view.Attachment.extend({tagName:"div",className:"attachment-details",template:d.template("attachment-details"),events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .trash-attachment":"trashAttachment","click .untrash-attachment":"untrashAttachment","click .edit-attachment":"editAttachment","click .refresh-attachment":"refreshAttachment",keydown:"toggleSelectionHandler"},initialize:function(){this.options=b.defaults(this.options,{rerenderOnModelChange:!1}),this.on("ready",this.initialFocus),d.view.Attachment.prototype.initialize.apply(this,arguments)},initialFocus:function(){e||this.$(":input").eq(0).focus()},deleteAttachment:function(a){a.preventDefault(),confirm(c.warnDelete)&&(this.model.destroy(),this.controller.modal.focusManager.focus())},trashAttachment:function(a){var b=this.controller.library;a.preventDefault(),d.view.settings.mediaTrash&&"edit-metadata"===this.controller.content.mode()?(this.model.set("status","trash"),this.model.save().done(function(){b._requery(!0)})):this.model.destroy()},untrashAttachment:function(a){var b=this.controller.library;a.preventDefault(),this.model.set("status","inherit"),this.model.save().done(function(){b._requery(!0)})},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b?(a.preventDefault(),b.set("image",this.model),this.controller.setState("edit-image")):this.$el.addClass("needs-refresh")},refreshAttachment:function(a){this.$el.removeClass("needs-refresh"),a.preventDefault(),this.model.fetch()},toggleSelectionHandler:function(a){return"keydown"===a.type&&9===a.keyCode&&a.shiftKey&&a.target===this.$(":tabbable").get(0)?(this.controller.trigger("attachment:details:shift-tab",a),!1):37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode?void this.controller.trigger("attachment:keydown:arrow",a):void 0}}),d.view.AttachmentCompat=d.View.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.model.on("change:compat",this.render,this)},dispose:function(){return this.$(":focus").length&&this.save(),d.View.prototype.dispose.apply(this,arguments)},render:function(){var a=this.model.get("compat");if(a&&a.item)return this.views.detach(),this.$el.html(a.item),this.views.render(),this},preventDefault:function(a){a.preventDefault()},save:function(a){var c={};a&&a.preventDefault(),b.each(this.$el.serializeArray(),function(a){c[a.name]=a.value}),this.model.saveCompat(c)}}),d.view.Iframe=d.View.extend({className:"media-iframe",render:function(){return this.views.detach(),this.$el.html('