From: Steve Sutton Date: Wed, 1 Oct 2014 18:19:11 +0000 (-0400) Subject: removed from git X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=ec5caaa24fff472db929ad395e066cf6e8bb20cb;p=web%2FWordPress.git removed from git --- diff --git a/wp-content/plugins/akismet/.htaccess b/wp-content/plugins/akismet/.htaccess deleted file mode 100644 index 6d8b4ec..0000000 --- a/wp-content/plugins/akismet/.htaccess +++ /dev/null @@ -1,11 +0,0 @@ -Order Deny,Allow -Deny from all - - - Allow from all - - -#allow access to any image - - Allow from all - \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/akismet.css b/wp-content/plugins/akismet/_inc/akismet.css deleted file mode 100644 index ff076aa..0000000 --- a/wp-content/plugins/akismet/_inc/akismet.css +++ /dev/null @@ -1,361 +0,0 @@ - -#submitted-on { - position: relative; -} -#the-comment-list .author .akismet-user-comment-count { - display: inline; -} -#the-comment-list .author a span { - text-decoration: none; - color: #999; -} -#the-comment-list .author a span.akismet-span-link { - text-decoration: inherit; - color: inherit; -} -#the-comment-list .remove_url { - margin-left: 3px; - color: #999; - padding: 2px 3px 2px 0; -} -#the-comment-list .remove_url:hover { - color: #A7301F; - font-weight: bold; - padding: 2px 2px 2px 0; -} -#dashboard_recent_comments .akismet-status { - display: none; -} -.akismet-status { - float: right; -} -.akismet-status a { - color: #AAA; - font-style: italic; -} -span.comment-link a { - text-decoration: underline; -} -span.comment-link:after { - content: " "attr(title) " "; - color: #aaa; - text-decoration: none; -} -.mshot-arrow { - width: 0; - height: 0; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - border-right: 10px solid #5C5C5C; - position: absolute; - left: -6px; - top: 91px; -} -.mshot-container { - background: #5C5C5C; - position: absolute; - top: -94px; - padding: 7px; - width: 450px; - height: 338px; - z-index: 20000; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-border-radius: 6px; -} -h2.ak-header { - padding: 30px; - background: #649316 url('img/logo-full-2x.png') no-repeat 20px center; - background-size: 185px 33px; - height: 33px; - text-indent: -9999em; - margin-right: 10px; -} -.checkforspam { - display: inline-block !important; -} -.checkforspam-spinner { - display: inline-block; - margin-top: 7px; -} - -.config-wrap { - margin-top: 2em; - max-width: 700px; -} - -.activate-option { - background: #e3e3e3; - border-radius: 3px; - margin-bottom: 30px; - overflow: hidden; - padding: 20px; -} -.activate-option.clicked { - background: #649316; - color: #fff; -} -.activate-option.clicked:hover { - background: #68802E; - color: #fff; -} - -.activate-option .button.button-secondary { - margin: 15px 0; -} - -.activate-option p { - margin: 10px 0 10px; -} - -.activate-highlight { - background: #fff; - padding: 30px; - margin-right: 10px; -} - -.activate-highlight.secondary { - background: #ddd; - padding: 20px 30px; -} - -.activate-highlight h3 { - margin: 0 0 0.3em; -} -.activate-highlight p { - color: #777; -} -.activate-highlight .button-primary { - margin-top: 15px; -} - -#akismet-enter-api-key .regular-text { - width: 18em; - margin-top: 15px; -} - -.right { - float: right; -} - -.alert-text { - color: #dd3d36; -} -.success { - color: #649316; -} -.option-description { - float: left; - font-size: 16px; -} -.option-description span { - color: #666; - display: block; - font-size: 14px; - margin-top: 5px; -} -.option-action { - float: right; -} -.key-config-link { - font-size: 14px; - margin-left: 20px; -} -.jetpack-account { - float: left; - font-size: 18px; - margin-right: 40px; -} -.small-heading { - color: #777; - display: block; - font-size: 12px; - font-weight: bold; - margin-bottom: 5px; - text-transform: uppercase; -} -.inline-label { - background: #ddd; - border-radius: 3px; - font-size: 11px; - padding: 3px 8px; - text-transform: uppercase; -} -.inline-label.alert { - background: #e54747; - color: #fff; -} -.jetpack-account .inline-label { - margin-left: 5px; -} -.option-action .manual-key { - margin-top: 7px; -} - -.alert { - border: 1px solid #e5e5e5; - padding: 0.4em 1em 1.4em 1em; - border-radius: 3px; - -webkit-border-radius: 3px; - border-width: 1px; - border-style: solid; -} - -.alert h3.key-status { - color: #fff; - margin: 1em 0 0.5em 0; -} - -.alert.critical { - background-color: #993300; -} - -.alert.active { - background-color: #649316; -} - -.alert p.key-status { - font-size: 24px; -} - -.alert p.description { - color:#fff; - font-size: 14px; - margin: 0 0; - font-style: normal; -} - -.alert p.description a, -.alert p.description a, -.alert p.description a, -.alert p.description a { - color: #fff; -} - -.new-snapshot { - margin-top: 1em; - padding: 1em; - text-align: center; -} - -.new-snapshot.stats { - background: #fff; - border: 1px solid #e5e5e5; -} - -.new-snapshot h3 { - background: #f5f5f5; - color: #888; - font-size: 11px; - margin: 0; - padding: 3px; -} - -.new-snapspot ul { - font-size: 12px; - width: 100%; -} - -.new-snapshot ul li { - color: #999; - float: left; - font-size: 11px; - padding: 0 20px; - text-transform: uppercase; - width: 33%; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; -} - -.new-snapshot.stats ul li:first-child, -.new-snapshot.stats ul li:nth-child(2) { - border-right:1px dotted #ccc; -} - -.new-snapshot.account ul li:nth-child(2) { - border-right: none; -} - -.new-snapshot ul li span { - color: #52accc; - display: block; - font-size: 32px; - font-weight: lighter; - line-height: 1.5em; -} - -.new-snapshot.stats { -} - -.new-snapshot.account, -.new-snapshot.settings { - float: left; - padding: 0; - text-align: left; - width: 50%; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; -} - -.account-container { - background: #fff; - border: 1px solid #e5e5e5; - margin-right: 0.5em; -} - -.settings-container { - background: #fff; - border: 1px solid #e5e5e5; - margin-left: 0.5em; -} - -.new-snapshot.account ul li { - width:100% -} - -.new-snapshot.account ul li span { - font-size: 14px; - font-weight: normal; -} - - -.new-snapshot.settings ul li { - border: none; - display: block; - width:100% -} - -.new-snapshot.settings ul li span { - display: block; - font-size: 14px; - font-weight: normal; -} - -.new-snapshot.settings p.submit { - margin: 0; - text-align: center; -} - -.akismet-settings th.strictness { - vertical-align: top; - padding-top: 15px; -} - -.akismet-settings input[type=text] { - width: 75%; -} - -.akismet-settings span.note{ - float: left; - padding-left: 23px; - font-size: 75%; - margin-top: -10px; -} - -.clearfix { - clear:both; -} \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/akismet.js b/wp-content/plugins/akismet/_inc/akismet.js deleted file mode 100644 index aa0aab4..0000000 --- a/wp-content/plugins/akismet/_inc/akismet.js +++ /dev/null @@ -1,158 +0,0 @@ -jQuery( function ( $ ) { - $( 'a.activate-option' ).click( function(){ - var link = $( this ); - if ( link.hasClass( 'clicked' ) ) { - link.removeClass( 'clicked' ); - } - else { - link.addClass( 'clicked' ); - } - $( '.toggle-have-key' ).slideToggle( 'slow', function() {}); - return false; - }); - $('.akismet-status').each(function () { - var thisId = $(this).attr('commentid'); - $(this).prependTo('#comment-' + thisId + ' .column-comment'); - }); - $('.akismet-user-comment-count').each(function () { - var thisId = $(this).attr('commentid'); - $(this).insertAfter('#comment-' + thisId + ' .author strong:first').show(); - }); - $('#the-comment-list').find('tr.comment, tr[id ^= "comment-"]').find('.column-author a[title ^= "http://"]').each(function () { - var thisTitle = $(this).attr('title'); - thisCommentId = $(this).parents('tr:first').attr('id').split("-"); - - $(this).attr("id", "author_comment_url_"+ thisCommentId[1]); - - if (thisTitle) { - $(this).after( - $( 'x' ) - .attr( 'commentid', thisCommentId[1] ) - .attr( 'title', WPAkismet.strings['Remove this URL'] ) - ); - } - }); - $('.remove_url').live('click', function () { - var thisId = $(this).attr('commentid'); - var data = { - action: 'comment_author_deurl', - _wpnonce: WPAkismet.comment_author_url_nonce, - id: thisId - }; - $.ajax({ - url: ajaxurl, - type: 'POST', - data: data, - beforeSend: function () { - // Removes "x" link - $("a[commentid='"+ thisId +"']").hide(); - // Show temp status - $("#author_comment_url_"+ thisId).html( $( '' ).text( WPAkismet.strings['Removing...'] ) ); - }, - success: function (response) { - if (response) { - // Show status/undo link - $("#author_comment_url_"+ thisId) - .attr('cid', thisId) - .addClass('akismet_undo_link_removal') - .html( - $( '' ).text( WPAkismet.strings['URL removed'] ) - ) - .append( ' ' ) - .append( - $( '' ) - .text( WPAkismet.strings['(undo)'] ) - .addClass( 'akismet-span-link' ) - ); - } - } - }); - - return false; - }); - $('.akismet_undo_link_removal').live('click', function () { - var thisId = $(this).attr('cid'); - var thisUrl = $(this).attr('href').replace("http://www.", "").replace("http://", ""); - var data = { - action: 'comment_author_reurl', - _wpnonce: WPAkismet.comment_author_url_nonce, - id: thisId, - url: thisUrl - }; - $.ajax({ - url: ajaxurl, - type: 'POST', - data: data, - beforeSend: function () { - // Show temp status - $("#author_comment_url_"+ thisId).html( $( '' ).text( WPAkismet.strings['Re-adding...'] ) ); - }, - success: function (response) { - if (response) { - // Add "x" link - $("a[commentid='"+ thisId +"']").show(); - // Show link - $("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').html(thisUrl); - } - } - }); - - return false; - }); - $('a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type').mouseover(function () { - var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://'; - // Need to determine size of author column - var thisParentWidth = $(this).parent().width(); - // It changes based on if there is a gravatar present - thisParentWidth = ($(this).parent().find('.grav-hijack').length) ? thisParentWidth - 42 + 'px' : thisParentWidth + 'px'; - if ($(this).find('.mShot').length == 0 && !$(this).hasClass('akismet_undo_link_removal')) { - var self = $( this ); - $('.widefat td').css('overflow', 'visible'); - $(this).css('position', 'relative'); - var thisHref = $.URLEncode( $(this).attr('href') ); - $(this).append('
'); - setTimeout(function () { - self.find( '.mshot-image' ).attr('src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2'); - }, 6000); - setTimeout(function () { - self.find( '.mshot-image' ).attr('src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3'); - }, 12000); - } else { - $(this).find('.mShot').css('left', thisParentWidth).show(); - } - }).mouseout(function () { - $(this).find('.mShot').hide(); - }); - $('.checkforspam:not(.button-disabled)').click( function(e) { - $('.checkforspam:not(.button-disabled)').addClass('button-disabled'); - $('.checkforspam-spinner').addClass( 'spinner' ); - akismet_check_for_spam(0, 100); - e.preventDefault(); - }); - - function akismet_check_for_spam(offset, limit) { - $.post( - ajaxurl, - { - 'action': 'akismet_recheck_queue', - 'offset': offset, - 'limit': limit - }, - function(result) { - if (result.processed < limit) { - window.location.reload(); - } - else { - akismet_check_for_spam(offset + limit, limit); - } - } - ); - } -}); -// URL encode plugin -jQuery.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/; - while(x1 && m[1]!=''){o+=m[1];x+=m[1].length; - }else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16); - o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;} -}); diff --git a/wp-content/plugins/akismet/_inc/form.js b/wp-content/plugins/akismet/_inc/form.js deleted file mode 100644 index 3a5be8a..0000000 --- a/wp-content/plugins/akismet/_inc/form.js +++ /dev/null @@ -1,30 +0,0 @@ -var ak_js = document.getElementById( "ak_js" ); - -if ( ! ak_js ) { - ak_js = document.createElement( 'input' ); - ak_js.setAttribute( 'id', 'ak_js' ); - ak_js.setAttribute( 'name', 'ak_js' ); - ak_js.setAttribute( 'type', 'hidden' ); -} -else { - ak_js.parentNode.removeChild( ak_js ); -} - -ak_js.setAttribute( 'value', ( new Date() ).getTime() ); - -var commentForm = document.getElementById( 'commentform' ); - -if ( commentForm ) { - commentForm.appendChild( ak_js ); -} -else { - var replyRowContainer = document.getElementById( 'replyrow' ); - - if ( replyRowContainer ) { - var children = replyRowContainer.getElementsByTagName( 'td' ); - - if ( children.length > 0 ) { - children[0].appendChild( ak_js ); - } - } -} \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/img/logo-full-2x.png b/wp-content/plugins/akismet/_inc/img/logo-full-2x.png deleted file mode 100644 index a9bed8b..0000000 Binary files a/wp-content/plugins/akismet/_inc/img/logo-full-2x.png and /dev/null differ diff --git a/wp-content/plugins/akismet/akismet.php b/wp-content/plugins/akismet/akismet.php deleted file mode 100644 index 68289a3..0000000 --- a/wp-content/plugins/akismet/akismet.php +++ /dev/null @@ -1,59 +0,0 @@ -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 -Author: Automattic -Author URI: http://automattic.com/wordpress-plugins/ -License: GPLv2 or later -Text Domain: akismet -*/ - -/* -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ - -// Make sure we don't expose any info if called directly -if ( !function_exists( 'add_action' ) ) { - echo 'Hi there! I\'m just a plugin, not much I can do when called directly.'; - exit; -} - -define( 'AKISMET_VERSION', '3.0.2' ); -define( 'AKISMET__MINIMUM_WP_VERSION', '3.1' ); -define( 'AKISMET__PLUGIN_URL', plugin_dir_url( __FILE__ ) ); -define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); -define( 'AKISMET_DELETE_LIMIT', 100000 ); - -register_activation_hook( __FILE__, array( 'Akismet', 'plugin_activation' ) ); -register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) ); - -require_once( AKISMET__PLUGIN_DIR . 'class.akismet.php' ); -require_once( AKISMET__PLUGIN_DIR . 'class.akismet-widget.php' ); - -add_action( 'init', array( 'Akismet', 'init' ) ); - -if ( is_admin() ) { - require_once( AKISMET__PLUGIN_DIR . 'class.akismet-admin.php' ); - add_action( 'init', array( 'Akismet_Admin', 'init' ) ); -} - -//add wrapper class around deprecated akismet functions that are referenced elsewhere -require_once( AKISMET__PLUGIN_DIR . 'wrapper.php' ); - diff --git a/wp-content/plugins/akismet/class.akismet-admin.php b/wp-content/plugins/akismet/class.akismet-admin.php deleted file mode 100644 index a1c712e..0000000 --- a/wp-content/plugins/akismet/class.akismet-admin.php +++ /dev/null @@ -1,862 +0,0 @@ -'.__('Settings', 'akismet').''; - array_unshift( $links, $settings_link ); - return $links; - } - - public static function load_menu() { - if ( class_exists( 'Jetpack' ) ) - $hook = add_submenu_page( 'jetpack', __( 'Akismet' , 'akismet'), __( 'Akismet' , 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); - else - $hook = add_options_page( __('Akismet', 'akismet'), __('Akismet', 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); - - if ( version_compare( $GLOBALS['wp_version'], '3.3', '>=' ) ) { - add_action( "load-$hook", array( 'Akismet_Admin', 'admin_help' ) ); - } - } - - public static function load_resources() { - global $hook_suffix; - - if ( in_array( $hook_suffix, array( - 'index.php', # dashboard - 'edit-comments.php', - 'comment.php', - 'post.php', - 'settings_page_akismet-key-config', - 'jetpack_page_akismet-key-config', - ) ) ) { - wp_register_style( 'akismet.css', AKISMET__PLUGIN_URL . '_inc/akismet.css', array(), AKISMET_VERSION ); - wp_enqueue_style( 'akismet.css'); - - wp_register_script( 'akismet.js', AKISMET__PLUGIN_URL . '_inc/akismet.js', array('jquery','postbox'), AKISMET_VERSION ); - wp_enqueue_script( 'akismet.js' ); - wp_localize_script( 'akismet.js', 'WPAkismet', array( - 'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' ), - 'strings' => array( - 'Remove this URL' => __( 'Remove this URL' , 'akismet'), - 'Removing...' => __( 'Removing...' , 'akismet'), - 'URL removed' => __( 'URL removed' , 'akismet'), - '(undo)' => __( '(undo)' , 'akismet'), - 'Re-adding...' => __( 'Re-adding...' , 'akismet'), - ) - ) ); - } - } - - /** - * Add help to the Akismet page - * - * @return false if not the Akismet page - */ - public static function admin_help() { - $current_screen = get_current_screen(); - - // Screen Content - if ( current_user_can( 'manage_options' ) ) { - if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) { - //setup page - $current_screen->add_help_tab( - array( - 'id' => 'overview', - 'title' => __( 'Overview' , 'akismet'), - 'content' => - '

' . esc_html__( 'Akismet Setup' , 'akismet') . '

' . - '

' . esc_html__( 'Akismet filters out your comment and trackback spam for you, so you can focus on more important things.' , 'akismet') . '

' . - '

' . esc_html__( 'On this page, you are able to setup the Akismet plugin.' , 'akismet') . '

', - ) - ); - - $current_screen->add_help_tab( - array( - 'id' => 'setup-signup', - 'title' => __( 'New to Akismet' , 'akismet'), - 'content' => - '

' . esc_html__( 'Akismet Setup' , 'akismet') . '

' . - '

' . esc_html__( 'You need to enter an API key to activate the Akismet service on your site.' , 'akismet') . '

' . - '

' . sprintf( __( 'Signup for an account on %s to get an API Key.' , 'akismet'), 'Akismet.com' ) . '

', - ) - ); - - $current_screen->add_help_tab( - array( - 'id' => 'setup-manual', - 'title' => __( 'Enter an API Key' , 'akismet'), - 'content' => - '

' . esc_html__( 'Akismet Setup' , 'akismet') . '

' . - '

' . esc_html__( 'If you already have an API key' , 'akismet') . '

' . - '
    ' . - '
  1. ' . esc_html__( 'Copy and paste the API key into the text field.' , 'akismet') . '
  2. ' . - '
  3. ' . esc_html__( 'Click the Use this Key button.' , 'akismet') . '
  4. ' . - '
', - ) - ); - } - elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) { - //stats page - $current_screen->add_help_tab( - array( - 'id' => 'overview', - 'title' => __( 'Overview' , 'akismet'), - 'content' => - '

' . esc_html__( 'Akismet Stats' , 'akismet') . '

' . - '

' . esc_html__( 'Akismet filters out your comment and trackback spam for you, so you can focus on more important things.' , 'akismet') . '

' . - '

' . esc_html__( 'On this page, you are able to view stats on spam filtered on your site.' , 'akismet') . '

', - ) - ); - } - else { - //configuration page - $current_screen->add_help_tab( - array( - 'id' => 'overview', - 'title' => __( 'Overview' , 'akismet'), - 'content' => - '

' . esc_html__( 'Akismet Configuration' , 'akismet') . '

' . - '

' . esc_html__( 'Akismet filters out your comment and trackback spam for you, so you can focus on more important things.' , 'akismet') . '

' . - '

' . esc_html__( 'On this page, you are able to enter/remove an API key, view account information and view spam stats.' , 'akismet') . '

', - ) - ); - - $current_screen->add_help_tab( - array( - 'id' => 'settings', - 'title' => __( 'Settings' , 'akismet'), - 'content' => - '

' . esc_html__( 'Akismet Configuration' , 'akismet') . '

' . - '

' . esc_html__( 'API Key' , 'akismet') . ' - ' . esc_html__( 'Enter/remove an API key.' , 'akismet') . '

' . - '

' . esc_html__( 'Comments' , 'akismet') . ' - ' . esc_html__( 'Show the number of approved comments beside each comment author in the comments list page.' , 'akismet') . '

' . - '

' . esc_html__( 'Strictness' , 'akismet') . ' - ' . esc_html__( 'Choose to either discard the worst spam automatically or to always put all spam in spam folder.' , 'akismet') . '

', - ) - ); - - $current_screen->add_help_tab( - array( - 'id' => 'account', - 'title' => __( 'Account' , 'akismet'), - 'content' => - '

' . esc_html__( 'Akismet Configuration' , 'akismet') . '

' . - '

' . esc_html__( 'Subscription Type' , 'akismet') . ' - ' . esc_html__( 'The Akismet subscription plan' , 'akismet') . '

' . - '

' . esc_html__( 'Status' , 'akismet') . ' - ' . esc_html__( 'The subscription status - active, cancelled or suspended' , 'akismet') . '

', - ) - ); - } - } - - // Help Sidebar - $current_screen->set_help_sidebar( - '

' . esc_html__( 'For more information:' , 'akismet') . '

' . - '

' . esc_html__( 'Akismet FAQ' , 'akismet') . '

' . - '

' . esc_html__( 'Akismet Support' , 'akismet') . '

' - ); - } - - public static function enter_api_key() { - if ( function_exists('current_user_can') && !current_user_can('manage_options') ) - die(__('Cheatin’ uh?', 'akismet')); - - if ( !wp_verify_nonce( $_POST['_wpnonce'], self::NONCE ) ) - return false; - - foreach( array( 'akismet_strictness', 'akismet_show_user_comments_approved' ) as $option ) { - update_option( $option, isset( $_POST[$option] ) && (int) $_POST[$option] == 1 ? '1' : '0' ); - } - - if ( defined( 'WPCOM_API_KEY' ) ) - return false; //shouldn't have option to save key if already defined - - $new_key = preg_replace( '/[^a-h0-9]/i', '', $_POST['key'] ); - $old_key = Akismet::get_api_key(); - - if ( empty( $new_key ) ) { - if ( !empty( $old_key ) ) { - delete_option( 'wordpress_api_key' ); - self::$notices[] = 'new-key-empty'; - } - } - elseif ( $new_key != $old_key ) { - self::save_key( $new_key ); - } - - return true; - } - - public static function save_key( $api_key ) { - $key_status = Akismet::verify_key( $api_key ); - - if ( $key_status == 'valid' ) { - $akismet_user = self::get_akismet_user( $api_key ); - - if ( $akismet_user ) { - if ( in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub' ) ) ) - update_option( 'wordpress_api_key', $api_key ); - - if ( $akismet_user->status == 'active' ) - self::$notices['status'] = 'new-key-valid'; - else - self::$notices['status'] = $akismet_user->status; - } - else - self::$notices['status'] = 'new-key-invalid'; - } - elseif ( in_array( $key_status, array( 'invalid', 'failed' ) ) ) - self::$notices['status'] = 'new-key-'.$key_status; - } - - public static function dashboard_stats() { - if ( !function_exists('did_action') || did_action( 'rightnow_end' ) ) - return; // We already displayed this info in the "Right Now" section - - if ( !$count = get_option('akismet_spam_count') ) - return; - - global $submenu; - - echo '

' . esc_html( _x( 'Spam', 'comments' , 'akismet') ) . '

'; - - echo '

'.sprintf( _n( - 'Akismet has protected your site from %3$s spam comment.', - 'Akismet has protected your site from %3$s spam comments.', - $count - , 'akismet'), 'https://akismet.com/wordpress/', esc_url( add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( isset( $submenu['edit-comments.php'] ) ? 'edit-comments.php' : 'edit.php' ) ) ), number_format_i18n($count) ).'

'; - } - - // WP 2.5+ - public static function rightnow_stats() { - global $submenu, $wp_db_version; - - if ( 8645 < $wp_db_version ) // 2.7 - $link = add_query_arg( array( 'comment_status' => 'spam' ), admin_url( 'edit-comments.php' ) ); - elseif ( isset( $submenu['edit-comments.php'] ) ) - $link = add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( 'edit-comments.php' ) ); - else - $link = add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( 'edit.php' ) ); - - if ( $count = get_option('akismet_spam_count') ) { - $intro = sprintf( _n( - 'Akismet has protected your site from %2$s spam comment already. ', - 'Akismet has protected your site from %2$s spam comments already. ', - $count - , 'akismet'), 'https://akismet.com/wordpress/', number_format_i18n( $count ) ); - } else { - $intro = sprintf( __('Akismet blocks spam from getting to your blog. ', 'akismet'), 'https://akismet.com/wordpress/' ); - } - - $link = function_exists( 'esc_url' ) ? esc_url( $link ) : clean_url( $link ); - if ( $queue_count = self::get_spam_count() ) { - $queue_text = sprintf( _n( - 'There’s %1$s comment in your spam queue right now.', - 'There are %1$s comments in your spam queue right now.', - $queue_count - , 'akismet'), number_format_i18n( $queue_count ), $link ); - } else { - $queue_text = sprintf( __( "There’s nothing in your spam queue at the moment." , 'akismet'), $link ); - } - - $text = $intro . '
' . $queue_text; - echo "

$text

\n"; - } - - public static function check_for_spam_button( $comment_status ) { - if ( 'approved' == $comment_status ) - return; - - if ( function_exists('plugins_url') ) - $link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) ); - else - $link = add_query_arg( array( 'page' => 'akismet-admin', 'recheckqueue' => 'true', 'noheader' => 'true' ), admin_url( 'edit-comments.php' ) ); - - echo '
' . esc_html__('Check for Spam', 'akismet') . ''; - } - - public static function recheck_queue() { - global $wpdb; - - Akismet::fix_scheduled_recheck(); - - if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) ) - return; - - $paginate = ''; - if ( isset( $_POST['limit'] ) && isset( $_POST['offset'] ) ) { - $paginate = $wpdb->prepare( " LIMIT %d OFFSET %d", array( $_POST['limit'], $_POST['offset'] ) ); - } - $moderation = $wpdb->get_results( "SELECT * FROM {$wpdb->comments} WHERE comment_approved = '0'{$paginate}", ARRAY_A ); - - foreach ( (array) $moderation as $c ) { - $c['user_ip'] = $c['comment_author_IP']; - $c['user_agent'] = $c['comment_agent']; - $c['referrer'] = ''; - $c['blog'] = get_bloginfo('url'); - $c['blog_lang'] = get_locale(); - $c['blog_charset'] = get_option('blog_charset'); - $c['permalink'] = get_permalink($c['comment_post_ID']); - - $c['user_role'] = ''; - if ( isset( $c['user_ID'] ) ) - $c['user_role'] = Akismet::get_user_roles($c['user_ID']); - - if ( Akismet::is_test_mode() ) - $c['is_test'] = 'true'; - - add_comment_meta( $c['comment_ID'], 'akismet_rechecking', true ); - - $response = Akismet::http_post( Akismet::build_query( $c ), 'comment-check' ); - - if ( 'true' == $response[1] ) { - wp_set_comment_status( $c['comment_ID'], 'spam' ); - update_comment_meta( $c['comment_ID'], 'akismet_result', 'true' ); - delete_comment_meta( $c['comment_ID'], 'akismet_error' ); - delete_comment_meta( $c['comment_ID'], 'akismet_delayed_moderation_email' ); - Akismet::update_comment_history( $c['comment_ID'], __('Akismet re-checked and caught this comment as spam', 'akismet'), 'check-spam' ); - - } elseif ( 'false' == $response[1] ) { - update_comment_meta( $c['comment_ID'], 'akismet_result', 'false' ); - delete_comment_meta( $c['comment_ID'], 'akismet_error' ); - delete_comment_meta( $c['comment_ID'], 'akismet_delayed_moderation_email' ); - Akismet::update_comment_history( $c['comment_ID'], __('Akismet re-checked and cleared this comment', 'akismet'), 'check-ham' ); - // abnormal result: error - } else { - update_comment_meta( $c['comment_ID'], 'akismet_result', 'error' ); - Akismet::update_comment_history( $c['comment_ID'], sprintf( __('Akismet was unable to re-check this comment (response: %s)', 'akismet'), substr($response[1], 0, 50)), 'check-error' ); - } - - delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' ); - } - if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { - wp_send_json( array( - 'processed' => count((array) $moderation), - )); - } - else { - $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' ); - wp_safe_redirect( $redirect_to ); - exit; - } - } - - // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link - public static function remove_comment_author_url() { - if ( !empty( $_POST['id'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { - $comment = get_comment( intval( $_POST['id'] ), ARRAY_A ); - if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { - $comment['comment_author_url'] = ''; - do_action( 'comment_remove_author_url' ); - print( wp_update_comment( $comment ) ); - die(); - } - } - } - - public static function add_comment_author_url() { - if ( !empty( $_POST['id'] ) && !empty( $_POST['url'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { - $comment = get_comment( intval( $_POST['id'] ), ARRAY_A ); - if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { - $comment['comment_author_url'] = esc_url( $_POST['url'] ); - do_action( 'comment_add_author_url' ); - print( wp_update_comment( $comment ) ); - die(); - } - } - } - - public static function comment_row_action( $a, $comment ) { - - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return $a; - - $akismet_result = get_comment_meta( $comment->comment_ID, 'akismet_result', true ); - $akismet_error = get_comment_meta( $comment->comment_ID, 'akismet_error', true ); - $user_result = get_comment_meta( $comment->comment_ID, 'akismet_user_result', true); - $comment_status = wp_get_comment_status( $comment->comment_ID ); - $desc = null; - if ( $akismet_error ) { - $desc = __( 'Awaiting spam check' , 'akismet'); - } elseif ( !$user_result || $user_result == $akismet_result ) { - // Show the original Akismet result if the user hasn't overridden it, or if their decision was the same - if ( $akismet_result == 'true' && $comment_status != 'spam' && $comment_status != 'trash' ) - $desc = __( 'Flagged as spam by Akismet' , 'akismet'); - elseif ( $akismet_result == 'false' && $comment_status == 'spam' ) - $desc = __( 'Cleared by Akismet' , 'akismet'); - } else { - $who = get_comment_meta( $comment->comment_ID, 'akismet_user', true ); - if ( $user_result == 'true' ) - $desc = sprintf( __('Flagged as spam by %s', 'akismet'), $who ); - else - $desc = sprintf( __('Un-spammed by %s', 'akismet'), $who ); - } - - // add a History item to the hover links, just after Edit - if ( $akismet_result ) { - $b = array(); - foreach ( $a as $k => $item ) { - $b[ $k ] = $item; - if ( - $k == 'edit' - || ( $k == 'unspam' && $GLOBALS['wp_version'] >= 3.4 ) - ) { - $b['history'] = ' '. esc_html__('History', 'akismet') . ''; - } - } - - $a = $b; - } - - if ( $desc ) - echo ''.esc_html( $desc ).''; - - $show_user_comments = apply_filters( 'akismet_show_user_comments_approved', get_option('akismet_show_user_comments_approved') ); - $show_user_comments = $show_user_comments === 'false' ? false : $show_user_comments; //option used to be saved as 'false' / 'true' - - if ( $show_user_comments ) { - $comment_count = Akismet::get_user_comments_approved( $comment->user_id, $comment->comment_author_email, $comment->comment_author, $comment->comment_author_url ); - $comment_count = intval( $comment_count ); - echo ''; - } - - return $a; - } - - public static function comment_status_meta_box( $comment ) { - $history = Akismet::get_comment_history( $comment->comment_ID ); - - if ( $history ) { - echo '
'; - foreach ( $history as $row ) { - $time = date( 'D d M Y @ h:i:m a', $row['time'] ) . ' GMT'; - echo '
' . sprintf( esc_html__('%s ago', 'akismet'), human_time_diff( $row['time'] ) ) . ' - '; - echo esc_html( $row['message'] ) . '
'; - } - echo '
'; - } - } - - public static function plugin_action_links( $links, $file ) { - if ( $file == plugin_basename( AKISMET__PLUGIN_URL . '/akismet.php' ) ) { - $links[] = ''.esc_html__( 'Settings' , 'akismet').''; - } - - return $links; - } - - public static function text_add_link_callback( $m ) { - // bare link? - if ( $m[4] == $m[2] ) - return ''.$m[4].''; - else - return ''.$m[4].''; - } - - public static function text_add_link_class( $comment_text ) { - return preg_replace_callback( '#]*)href="([^"]+)"([^>]*)>(.*?)#i', array( 'Akismet_Admin', 'text_add_link_callback' ), $comment_text ); - } - - // Total spam in queue - // get_option( 'akismet_spam_count' ) is the total caught ever - public static function get_spam_count( $type = false ) { - global $wpdb; - - if ( !$type ) { // total - $count = wp_cache_get( 'akismet_spam_count', 'widget' ); - if ( false === $count ) { - if ( function_exists('wp_count_comments') ) { - $count = wp_count_comments(); - $count = $count->spam; - } else { - $count = (int) $wpdb->get_var("SELECT COUNT(comment_ID) FROM {$wpdb->comments} WHERE comment_approved = 'spam'"); - } - wp_cache_set( 'akismet_spam_count', $count, 'widget', 3600 ); - } - return $count; - } elseif ( 'comments' == $type || 'comment' == $type ) { // comments - $type = ''; - } - - return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(comment_ID) FROM {$wpdb->comments} WHERE comment_approved = 'spam' AND comment_type = %s", $type ) ); - } - - // Check connectivity between the WordPress blog and Akismet's servers. - // Returns an associative array of server IP addresses, where the key is the IP address, and value is true (available) or false (unable to connect). - public static function check_server_ip_connectivity() { - - $servers = $ips = array(); - - // Some web hosts may disable this function - if ( function_exists('gethostbynamel') ) { - - $ips = gethostbynamel( 'rest.akismet.com' ); - if ( $ips && is_array($ips) && count($ips) ) { - $api_key = Akismet::get_api_key(); - - foreach ( $ips as $ip ) { - $response = Akismet::verify_key( $api_key, $ip ); - // even if the key is invalid, at least we know we have connectivity - if ( $response == 'valid' || $response == 'invalid' ) - $servers[$ip] = 'connected'; - else - $servers[$ip] = $response ? $response : 'unable to connect'; - } - } - } - - return $servers; - } - - // Simpler connectivity check - public static function check_server_connectivity($cache_timeout = 86400) { - - $debug = array(); - $debug[ 'PHP_VERSION' ] = PHP_VERSION; - $debug[ 'WORDPRESS_VERSION' ] = $GLOBALS['wp_version']; - $debug[ 'AKISMET_VERSION' ] = AKISMET_VERSION; - $debug[ 'AKISMET__PLUGIN_DIR' ] = AKISMET__PLUGIN_DIR; - $debug[ 'SITE_URL' ] = site_url(); - $debug[ 'HOME_URL' ] = home_url(); - - $servers = get_option('akismet_available_servers'); - if ( (time() - get_option('akismet_connectivity_time') < $cache_timeout) && $servers !== false ) { - $servers = self::check_server_ip_connectivity(); - update_option('akismet_available_servers', $servers); - update_option('akismet_connectivity_time', time()); - } - - $response = wp_remote_get( 'http://rest.akismet.com/1.1/test' ); - - $debug[ 'gethostbynamel' ] = function_exists('gethostbynamel') ? 'exists' : 'not here'; - $debug[ 'Servers' ] = $servers; - $debug[ 'Test Connection' ] = $response; - - Akismet::log( $debug ); - - if ( $response && 'connected' == wp_remote_retrieve_body( $response ) ) - return true; - - return false; - } - - // Check the server connectivity and store the available servers in an option. - public static function get_server_connectivity($cache_timeout = 86400) { - return self::check_server_connectivity( $cache_timeout ); - } - - public static function get_number_spam_waiting() { - global $wpdb; - return (int) $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); - } - - public static function get_page_url( $page = 'config' ) { - - $args = array( 'page' => 'akismet-key-config' ); - - if ( $page == 'stats' ) - $args = array( 'page' => 'akismet-key-config', 'view' => 'stats' ); - elseif ( $page == 'delete_key' ) - $args = array( 'page' => 'akismet-key-config', 'view' => 'start', 'action' => 'delete-key', '_wpnonce' => wp_create_nonce( self::NONCE ) ); - - $url = add_query_arg( $args, class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'options-general.php' ) ); - - return $url; - } - - public static function get_akismet_user( $api_key ) { - $akismet_user = Akismet::http_post( Akismet::build_query( array( 'key' => $api_key ) ), 'get-subscription' ); - - if ( ! empty( $akismet_user[1] ) ) - $akismet_user = json_decode( $akismet_user[1] ); - else - $akismet_user = false; - - return $akismet_user; - } - - public static function get_stats( $api_key ) { - $stat_totals = array(); - - foreach( array( '6-months', 'all' ) as $interval ) { - $response = Akismet::http_post( Akismet::build_query( array( 'blog' => urlencode( get_bloginfo('url') ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); - - if ( ! empty( $response[1] ) ) { - $stat_totals[$interval] = json_decode( $response[1] ); - } - } - return $stat_totals; - } - - public static function verify_wpcom_key( $api_key, $user_id, $token = '' ) { - $akismet_account = Akismet::http_post( Akismet::build_query( array( - 'user_id' => $user_id, - 'api_key' => $api_key, - 'token' => $token, - 'get_account_type' => 'true' - ) ), 'verify-wpcom-key' ); - - if ( ! empty( $akismet_account[1] ) ) - $akismet_account = json_decode( $akismet_account[1] ); - - Akismet::log( compact( 'akismet_account' ) ); - - return $akismet_account; - } - - public static function display_alert() { - Akismet::view( 'notice', array( - 'type' => 'alert', - 'code' => (int) get_option( 'akismet_alert_code' ), - 'msg' => get_option( 'akismet_alert_msg' ) - ) ); - } - - public static function display_spam_check_warning() { - Akismet::fix_scheduled_recheck(); - - if ( wp_next_scheduled('akismet_schedule_cron_recheck') > time() && self::get_number_spam_waiting() > 0 ) { - $link_text = apply_filters( 'akismet_spam_check_warning_link_text', sprintf( __( 'Please check your Akismet configuration and contact your web host if problems persist.', 'akismet'), esc_url( self::get_page_url() ) ) ); - Akismet::view( 'notice', array( 'type' => 'spam-check', 'link_text' => $link_text ) ); - } - } - - public static function display_invalid_version() { - Akismet::view( 'notice', array( 'type' => 'version' ) ); - } - - public static function display_api_key_warning() { - Akismet::view( 'notice', array( 'type' => 'plugin' ) ); - } - - public static function display_page() { - if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) - self::display_start_page(); - elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) - self::display_stats_page(); - else - self::display_configuration_page(); - } - - public static function display_start_page() { - if ( isset( $_GET['action'] ) ) { - if ( $_GET['action'] == 'delete-key' ) { - if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], self::NONCE ) ) - delete_option( 'wordpress_api_key' ); - } - } - - if ( $api_key = Akismet::get_api_key() ) { - self::display_configuration_page(); - return; - } - - //the user can choose to auto connect their API key by clicking a button on the akismet done page - //if jetpack, get verified api key by using connected wpcom user id - //if no jetpack, get verified api key by using an akismet token - - $akismet_user = false; - - if ( isset( $_GET['token'] ) && preg_match('/^(\d+)-[0-9a-f]{20}$/', $_GET['token'] ) ) - $akismet_user = self::verify_wpcom_key( '', '', $_GET['token'] ); - elseif ( $jetpack_user = self::get_jetpack_user() ) - $akismet_user = self::verify_wpcom_key( $jetpack_user['api_key'], $jetpack_user['user_id'] ); - - if ( isset( $_GET['action'] ) ) { - if ( $_GET['action'] == 'save-key' ) { - if ( is_object( $akismet_user ) ) { - self::save_key( $akismet_user->api_key ); - self::display_notice(); - self::display_configuration_page(); - return; - } - } - } - - echo '

'.esc_html__('Akismet', 'akismet').'

'; - - self::display_status(); - - Akismet::view( 'start', compact( 'akismet_user' ) ); - } - - public static function display_stats_page() { - Akismet::view( 'stats' ); - } - - public static function display_configuration_page() { - $api_key = Akismet::get_api_key(); - $akismet_user = self::get_akismet_user( $api_key ); - $stat_totals = self::get_stats( $api_key ); - - // If unset, create the new strictness option using the old discard option to determine its default - if ( get_option( 'akismet_strictness' ) === false ) - add_option( 'akismet_strictness', (get_option('akismet_discard_month') === 'true' ? '1' : '0') ); - - if ( empty( self::$notices ) ) { - //show status - if ( ! empty( $stat_totals['all'] ) && isset( $stat_totals['all']->time_saved ) && $akismet_user->status == 'active' && $akismet_user->account_type == 'free-api-key' ) { - - $time_saved = false; - - if ( $stat_totals['all']->time_saved > 1800 ) { - $total_in_minutes = round( $stat_totals['all']->time_saved / 60 ); - $total_in_hours = round( $total_in_minutes / 60 ); - $total_in_days = round( $total_in_hours / 8 ); - $cleaning_up = __( 'Cleaning up spam takes time.' , 'akismet'); - - if ( $total_in_days > 1 ) - $time_saved = $cleaning_up . ' ' . sprintf( __( 'Since you joined us, Akismet has saved you %s days!' , 'akismet'), number_format_i18n( $total_in_days ) ); - elseif ( $total_in_hours > 1 ) - $time_saved = $cleaning_up . ' ' . sprintf( __( 'Since you joined us, Akismet has saved you %d hours!' , 'akismet'), $total_in_hours ); - elseif ( $total_in_minutes >= 30 ) - $time_saved = $cleaning_up . ' ' . sprintf( __( 'Since you joined us, Akismet has saved you %d minutes!' , 'akismet'), $total_in_minutes ); - } - - Akismet::view( 'notice', array( 'type' => 'active-notice', 'time_saved' => $time_saved ) ); - } - - if ( !empty( $akismet_user->limit_reached ) && in_array( $akismet_user->limit_reached, array( 'yellow', 'red' ) ) ) { - Akismet::view( 'notice', array( 'type' => 'limit-reached', 'level' => $akismet_user->limit_reached ) ); - } - } - - if ( !isset( self::$notices['status'] ) && in_array( $akismet_user->status, array( 'cancelled', 'suspended', 'missing', 'no-sub' ) ) ) - Akismet::view( 'notice', array( 'type' => $akismet_user->status ) ); - - Akismet::log( compact( 'stat_totals', 'akismet_user' ) ); - Akismet::view( 'config', compact( 'api_key', 'akismet_user', 'stat_totals' ) ); - } - - public static function display_notice() { - global $hook_suffix; - - if ( in_array( $hook_suffix, array( 'jetpack_page_akismet-key-config', 'settings_page_akismet-key-config', 'edit-comments.php' ) ) && (int) get_option( 'akismet_alert_code' ) > 0 ) { - self::display_alert(); - } - elseif ( $hook_suffix == 'plugins.php' && !Akismet::get_api_key() ) { - self::display_api_key_warning(); - } - elseif ( $hook_suffix == 'edit-comments.php' && wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { - self::display_spam_check_warning(); - } - elseif ( in_array( $hook_suffix, array( 'jetpack_page_akismet-key-config', 'settings_page_akismet-key-config' ) ) && Akismet::get_api_key() ) { - self::display_status(); - } - } - - public static function display_status() { - $type = ''; - - if ( !self::get_server_connectivity() ) - $type = 'servers-be-down'; - - if ( !empty( $type ) ) - Akismet::view( 'notice', compact( 'type' ) ); - elseif ( !empty( self::$notices ) ) { - foreach ( self::$notices as $type ) - Akismet::view( 'notice', compact( 'type' ) ); - } - } - - private static function get_jetpack_user() { - if ( !class_exists('Jetpack') ) - return false; - - Jetpack::load_xml_rpc_client(); - $xml = new Jetpack_IXR_ClientMulticall( array( 'user_id' => get_current_user_id() ) ); - - $xml->addCall( 'wpcom.getUserID' ); - $xml->addCall( 'akismet.getAPIKey' ); - $xml->query(); - - Akismet::log( compact( 'xml' ) ); - - if ( !$xml->isError() ) { - $responses = $xml->getResponse(); - if ( count( $responses ) > 1 ) { - $api_key = array_shift( $responses[0] ); - $user_id = (int) array_shift( $responses[1] ); - return compact( 'api_key', 'user_id' ); - } - } - return false; - } - - /** - * Some commentmeta isn't useful in an export file. Suppress it (when supported). - * - * @param bool $exclude - * @param string $key The meta key - * @param object $meta The meta object - * @return bool Whether to exclude this meta entry from the export. - */ - public static function exclude_commentmeta_from_export( $exclude, $key, $meta ) { - if ( in_array( $key, array( 'akismet_as_submitted', 'akismet_rechecking', 'akismet_delayed_moderation_email' ) ) ) { - return true; - } - - return $exclude; - } -} \ No newline at end of file diff --git a/wp-content/plugins/akismet/class.akismet-widget.php b/wp-content/plugins/akismet/class.akismet-widget.php deleted file mode 100644 index a60ae60..0000000 --- a/wp-content/plugins/akismet/class.akismet-widget.php +++ /dev/null @@ -1,110 +0,0 @@ - __( 'Display the number of spam comments Akismet has caught' , 'akismet') ) - ); - - if ( is_active_widget( false, false, $this->id_base ) ) { - add_action( 'wp_head', array( $this, 'css' ) ); - } - } - - function css() { -?> - - - - - -

- - -

- - - - - - $key, 'blog' => get_option('home') ) ), 'verify-key', $ip ); - } - - public static function verify_key( $key, $ip = null ) { - $response = self::check_key_status( $key, $ip ); - - if ( $response[1] != 'valid' && $response[1] != 'invalid' ) - return 'failed'; - - self::update_alert( $response ); - - return $response[1]; - } - - public static function auto_check_comment( $commentdata ) { - self::$last_comment_result = null; - - $comment = $commentdata; - - $comment['user_ip'] = self::get_ip_address(); - $comment['user_agent'] = self::get_user_agent(); - $comment['referrer'] = self::get_referer(); - $comment['blog'] = get_option('home'); - $comment['blog_lang'] = get_locale(); - $comment['blog_charset'] = get_option('blog_charset'); - $comment['permalink'] = get_permalink( $comment['comment_post_ID'] ); - - if ( !empty( $comment['user_ID'] ) ) - $comment['user_role'] = Akismet::get_user_roles( $comment['user_ID'] ); - - $akismet_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) ); - $comment['akismet_comment_nonce'] = 'inactive'; - if ( $akismet_nonce_option == 'true' || $akismet_nonce_option == '' ) { - $comment['akismet_comment_nonce'] = 'failed'; - if ( isset( $_POST['akismet_comment_nonce'] ) && wp_verify_nonce( $_POST['akismet_comment_nonce'], 'akismet_comment_nonce_' . $comment['comment_post_ID'] ) ) - $comment['akismet_comment_nonce'] = 'passed'; - - // comment reply in wp-admin - if ( isset( $_POST['_ajax_nonce-replyto-comment'] ) && check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' ) ) - $comment['akismet_comment_nonce'] = 'passed'; - - } - - if ( self::is_test_mode() ) - $comment['is_test'] = 'true'; - - foreach( $_POST as $key => $value ) { - if ( is_string( $value ) ) - $comment["POST_{$key}"] = $value; - } - - $ignore = array( 'HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW' ); - - foreach ( $_SERVER as $key => $value ) { - if ( !in_array( $key, $ignore ) && is_string($value) ) - $comment["$key"] = $value; - else - $comment["$key"] = ''; - } - - $post = get_post( $comment['comment_post_ID'] ); - $comment[ 'comment_post_modified_gmt' ] = $post->post_modified_gmt; - - $response = self::http_post( Akismet::build_query( $comment ), 'comment-check' ); - - do_action( 'akismet_comment_check_response', $response ); - - self::update_alert( $response ); - - $commentdata['comment_as_submitted'] = array_intersect_key( $comment, array( 'blog' => '', 'blog_charset' => '', 'blog_lang' => '', 'blog_ua' => '', 'comment_agent' => '', 'comment_author' => '', 'comment_author_IP' => '', 'comment_author_email' => '', 'comment_author_url' => '', 'comment_content' => '', 'comment_date_gmt' => '', 'comment_tags' => '', 'comment_type' => '', 'guid' => '', 'is_test' => '', 'permalink' => '', 'reporter' => '', 'site_domain' => '', 'submit_referer' => '', 'submit_uri' => '', 'user_ID' => '', 'user_agent' => '', 'user_id' => '', 'user_ip' => '' ) ); - $commentdata['akismet_result'] = $response[1]; - - if ( isset( $response[0]['x-akismet-pro-tip'] ) ) - $commentdata['akismet_pro_tip'] = $response[0]['x-akismet-pro-tip']; - - if ( isset( $response[0]['x-akismet-error'] ) ) { - // An error occurred that we anticipated (like a suspended key) and want the user to act on. - // Send to moderation. - self::$last_comment_result = '0'; - } - else if ( 'true' == $response[1] ) { - // akismet_spam_count will be incremented later by comment_is_spam() - self::$last_comment_result = 'spam'; - - $discard = ( isset( $commentdata['akismet_pro_tip'] ) && $commentdata['akismet_pro_tip'] === 'discard' && self::allow_discard() ); - - do_action( 'akismet_spam_caught', $discard ); - - if ( $discard ) { - // akismet_result_spam() won't be called so bump the counter here - if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) - update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); - $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : get_permalink( $post ); - wp_safe_redirect( esc_url_raw( $redirect_to ) ); - die(); - } - } - - // if the response is neither true nor false, hold the comment for moderation and schedule a recheck - if ( 'true' != $response[1] && 'false' != $response[1] ) { - if ( !current_user_can('moderate_comments') ) { - // Comment status should be moderated - self::$last_comment_result = '0'; - } - if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_single_event') ) { - if ( !wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { - wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); - } - } - - self::$prevent_moderation_email_for_these_comments[] = $commentdata; - } - - if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_event') ) { - // WP 2.1+: delete old comments daily - if ( !wp_next_scheduled( 'akismet_scheduled_delete' ) ) - wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' ); - } - elseif ( (mt_rand(1, 10) == 3) ) { - // WP 2.0: run this one time in ten - self::delete_old_comments(); - } - - self::set_last_comment( $commentdata ); - self::fix_scheduled_recheck(); - - return self::$last_comment; - } - - public static function get_last_comment() { - return self::$last_comment; - } - - public static function set_last_comment( $comment ) { - if ( is_null( $comment ) ) { - self::$last_comment = null; - } - else { - // We filter it here so that it matches the filtered comment data that we'll have to compare against later. - // wp_filter_comment expects comment_author_IP - self::$last_comment = wp_filter_comment( - array_merge( - array( 'comment_author_IP' => self::get_ip_address() ), - $comment - ) - ); - } - } - - // this fires on wp_insert_comment. we can't update comment_meta when auto_check_comment() runs - // because we don't know the comment ID at that point. - public static function auto_check_update_meta( $id, $comment ) { - - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return false; - - if ( !isset( self::$last_comment['comment_author_email'] ) ) - self::$last_comment['comment_author_email'] = ''; - - // wp_insert_comment() might be called in other contexts, so make sure this is the same comment - // as was checked by auto_check_comment - if ( is_object( $comment ) && !empty( self::$last_comment ) && is_array( self::$last_comment ) ) { - if ( self::matches_last_comment( $comment ) ) { - - load_plugin_textdomain( 'akismet' ); - - // normal result: true or false - if ( self::$last_comment['akismet_result'] == 'true' ) { - update_comment_meta( $comment->comment_ID, 'akismet_result', 'true' ); - self::update_comment_history( $comment->comment_ID, __('Akismet caught this comment as spam', 'akismet'), 'check-spam' ); - if ( $comment->comment_approved != 'spam' ) - self::update_comment_history( $comment->comment_ID, sprintf( __('Comment status was changed to %s', 'akismet'), $comment->comment_approved), 'status-changed'.$comment->comment_approved ); - } - elseif ( self::$last_comment['akismet_result'] == 'false' ) { - update_comment_meta( $comment->comment_ID, 'akismet_result', 'false' ); - self::update_comment_history( $comment->comment_ID, __('Akismet cleared this comment', 'akismet'), 'check-ham' ); - if ( $comment->comment_approved == 'spam' ) { - if ( wp_blacklist_check($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent) ) - self::update_comment_history( $comment->comment_ID, __('Comment was caught by wp_blacklist_check', 'akismet'), 'wp-blacklisted' ); - else - self::update_comment_history( $comment->comment_ID, sprintf( __('Comment status was changed to %s', 'akismet'), $comment->comment_approved), 'status-changed-'.$comment->comment_approved ); - } - } // abnormal result: error - else { - update_comment_meta( $comment->comment_ID, 'akismet_error', time() ); - self::update_comment_history( $comment->comment_ID, sprintf( __('Akismet was unable to check this comment (response: %s), will automatically retry again later.', 'akismet'), substr(self::$last_comment['akismet_result'], 0, 50)), 'check-error' ); - } - - // record the complete original data as submitted for checking - if ( isset( self::$last_comment['comment_as_submitted'] ) ) - update_comment_meta( $comment->comment_ID, 'akismet_as_submitted', self::$last_comment['comment_as_submitted'] ); - - if ( isset( self::$last_comment['akismet_pro_tip'] ) ) - update_comment_meta( $comment->comment_ID, 'akismet_pro_tip', self::$last_comment['akismet_pro_tip'] ); - } - } - } - - 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 ) ) ) { - if ( empty( $comment_ids ) ) - return; - - $wpdb->queries = array(); - - do_action( 'delete_comment', $comment_ids ); - - $comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) ); - - $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_id IN ( $comma_comment_ids )"); - $wpdb->query("DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( $comma_comment_ids )"); - - clean_comment_cache( $comment_ids ); - } - - if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number - $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}"); - } - - public static function delete_old_comments_meta() { - global $wpdb; - - $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 ); - - # enfore a minimum of 1 day - $interval = absint( $interval ); - if ( $interval < 1 ) - $interval = 1; - - // akismet_as_submitted meta values are large, so expire them - // after $interval days regardless of the comment status - while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) { - if ( empty( $comment_ids ) ) - return; - - $wpdb->queries = array(); - - foreach ( $comment_ids as $comment_id ) { - delete_comment_meta( $comment_id, 'akismet_as_submitted' ); - } - } - - if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number - $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}"); - } - - // how many approved comments does this author have? - public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) { - global $wpdb; - - if ( !empty( $user_id ) ) - return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) ); - - if ( !empty( $comment_author_email ) ) - return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_author_email = %s AND comment_author = %s AND comment_author_url = %s AND comment_approved = 1", $comment_author_email, $comment_author, $comment_author_url ) ); - - return 0; - } - - // get the full comment history for a given comment, as an array in reverse chronological order - public static function get_comment_history( $comment_id ) { - - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return false; - - $history = get_comment_meta( $comment_id, 'akismet_history', false ); - usort( $history, array( 'Akismet', '_cmp_time' ) ); - return $history; - } - - // log an event for a given comment, storing it in comment_meta - public static function update_comment_history( $comment_id, $message, $event=null ) { - global $current_user; - - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return false; - - $user = ''; - if ( is_object( $current_user ) && isset( $current_user->user_login ) ) - $user = $current_user->user_login; - - $event = array( - 'time' => self::_get_microtime(), - 'message' => $message, - 'event' => $event, - 'user' => $user, - ); - - // $unique = false so as to allow multiple values per comment - $r = add_comment_meta( $comment_id, 'akismet_history', $event, false ); - } - - public static function check_db_comment( $id, $recheck_reason = 'recheck_queue' ) { - global $wpdb; - - $c = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $id ), ARRAY_A ); - if ( !$c ) - return; - - $c['user_ip'] = $c['comment_author_IP']; - $c['user_agent'] = $c['comment_agent']; - $c['referrer'] = ''; - $c['blog'] = get_option('home'); - $c['blog_lang'] = get_locale(); - $c['blog_charset'] = get_option('blog_charset'); - $c['permalink'] = get_permalink($c['comment_post_ID']); - $c['recheck_reason'] = $recheck_reason; - - if ( self::is_test_mode() ) - $c['is_test'] = 'true'; - - $response = self::http_post( Akismet::build_query( $c ), 'comment-check' ); - - return ( is_array( $response ) && ! empty( $response[1] ) ) ? $response[1] : false; - } - - - - public static function transition_comment_status( $new_status, $old_status, $comment ) { - - if ( $new_status == $old_status ) - return; - - # we don't need to record a history item for deleted comments - if ( $new_status == 'delete' ) - return; - - if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) && !current_user_can( 'moderate_comments' ) ) - return; - - if ( defined('WP_IMPORTING') && WP_IMPORTING == true ) - return; - - // if this is present, it means the status has been changed by a re-check, not an explicit user action - if ( get_comment_meta( $comment->comment_ID, 'akismet_rechecking' ) ) - return; - - global $current_user; - $reporter = ''; - if ( is_object( $current_user ) ) - $reporter = $current_user->user_login; - - // Assumption alert: - // We want to submit comments to Akismet only when a moderator explicitly spams or approves it - not if the status - // is changed automatically by another plugin. Unfortunately WordPress doesn't provide an unambiguous way to - // determine why the transition_comment_status action was triggered. And there are several different ways by which - // to spam and unspam comments: bulk actions, ajax, links in moderation emails, the dashboard, and perhaps others. - // We'll assume that this is an explicit user action if certain POST/GET variables exist. - if ( ( isset( $_POST['status'] ) && in_array( $_POST['status'], array( 'spam', 'unspam' ) ) ) || - ( isset( $_POST['spam'] ) && (int) $_POST['spam'] == 1 ) || - ( isset( $_POST['unspam'] ) && (int) $_POST['unspam'] == 1 ) || - ( isset( $_POST['comment_status'] ) && in_array( $_POST['comment_status'], array( 'spam', 'unspam' ) ) ) || - ( isset( $_GET['action'] ) && in_array( $_GET['action'], array( 'spam', 'unspam' ) ) ) || - ( isset( $_POST['action'] ) && in_array( $_POST['action'], array( 'editedcomment' ) ) ) - ) { - if ( $new_status == 'spam' && ( $old_status == 'approved' || $old_status == 'unapproved' || !$old_status ) ) { - return self::submit_spam_comment( $comment->comment_ID ); - } elseif ( $old_status == 'spam' && ( $new_status == 'approved' || $new_status == 'unapproved' ) ) { - return self::submit_nonspam_comment( $comment->comment_ID ); - } - } - - self::update_comment_history( $comment->comment_ID, sprintf( __('%1$s changed the comment status to %2$s', 'akismet'), $reporter, $new_status ), 'status-' . $new_status ); - } - - public static function submit_spam_comment( $comment_id ) { - global $wpdb, $current_user, $current_site; - - $comment_id = (int) $comment_id; - - $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); - - if ( !$comment ) // it was deleted - return; - - if ( 'spam' != $comment->comment_approved ) - return; - - // use the original version stored in comment_meta if available - $as_submitted = get_comment_meta( $comment_id, 'akismet_as_submitted', true); - - if ( $as_submitted && is_array( $as_submitted ) && isset( $as_submitted['comment_content'] ) ) - $comment = (object) array_merge( (array)$comment, $as_submitted ); - - $comment->blog = get_bloginfo('url'); - $comment->blog_lang = get_locale(); - $comment->blog_charset = get_option('blog_charset'); - $comment->permalink = get_permalink($comment->comment_post_ID); - - if ( is_object($current_user) ) - $comment->reporter = $current_user->user_login; - - if ( is_object($current_site) ) - $comment->site_domain = $current_site->domain; - - $comment->user_role = ''; - if ( isset( $comment->user_ID ) ) - $comment->user_role = Akismet::get_user_roles( $comment->user_ID ); - - if ( self::is_test_mode() ) - $comment->is_test = 'true'; - - $post = get_post( $comment->comment_post_ID ); - $comment->comment_post_modified_gmt = $post->post_modified_gmt; - - $response = Akismet::http_post( Akismet::build_query( $comment ), 'submit-spam' ); - if ( $comment->reporter ) { - self::update_comment_history( $comment_id, sprintf( __('%s reported this comment as spam', 'akismet'), $comment->reporter ), 'report-spam' ); - update_comment_meta( $comment_id, 'akismet_user_result', 'true' ); - update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); - } - - do_action('akismet_submit_spam_comment', $comment_id, $response[1]); - } - - public static function submit_nonspam_comment( $comment_id ) { - global $wpdb, $current_user, $current_site; - - $comment_id = (int) $comment_id; - - $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); - if ( !$comment ) // it was deleted - return; - - // use the original version stored in comment_meta if available - $as_submitted = get_comment_meta( $comment_id, 'akismet_as_submitted', true); - - if ( $as_submitted && is_array($as_submitted) && isset($as_submitted['comment_content']) ) - $comment = (object) array_merge( (array)$comment, $as_submitted ); - - $comment->blog = get_bloginfo('url'); - $comment->blog_lang = get_locale(); - $comment->blog_charset = get_option('blog_charset'); - $comment->permalink = get_permalink( $comment->comment_post_ID ); - $comment->user_role = ''; - - if ( is_object($current_user) ) - $comment->reporter = $current_user->user_login; - - if ( is_object($current_site) ) - $comment->site_domain = $current_site->domain; - - if ( isset( $comment->user_ID ) ) - $comment->user_role = Akismet::get_user_roles($comment->user_ID); - - if ( Akismet::is_test_mode() ) - $comment->is_test = 'true'; - - $post = get_post( $comment->comment_post_ID ); - $comment->comment_post_modified_gmt = $post->post_modified_gmt; - - $response = self::http_post( Akismet::build_query( $comment ), 'submit-ham' ); - if ( $comment->reporter ) { - self::update_comment_history( $comment_id, sprintf( __('%s reported this comment as not spam', 'akismet'), $comment->reporter ), 'report-ham' ); - update_comment_meta( $comment_id, 'akismet_user_result', 'false' ); - update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); - } - - do_action('akismet_submit_nonspam_comment', $comment_id, $response[1]); - } - - public static function cron_recheck() { - global $wpdb; - - $api_key = self::get_api_key(); - - $status = self::verify_key( $api_key ); - if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) { - // since there is currently a problem with the key, reschedule a check for 6 hours hence - wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' ); - return false; - } - - delete_option('akismet_available_servers'); - - $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error' LIMIT 100" ); - - load_plugin_textdomain( 'akismet' ); - - foreach ( (array) $comment_errors as $comment_id ) { - // if the comment no longer exists, or is too old, remove the meta entry from the queue to avoid getting stuck - $comment = get_comment( $comment_id ); - if ( !$comment || strtotime( $comment->comment_date_gmt ) < strtotime( "-15 days" ) ) { - delete_comment_meta( $comment_id, 'akismet_error' ); - delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); - continue; - } - - add_comment_meta( $comment_id, 'akismet_rechecking', true ); - $status = self::check_db_comment( $comment_id, 'retry' ); - - $msg = ''; - if ( $status == 'true' ) { - $msg = __( 'Akismet caught this comment as spam during an automatic retry.' , 'akismet'); - } elseif ( $status == 'false' ) { - $msg = __( 'Akismet cleared this comment during an automatic retry.' , 'akismet'); - } - - // If we got back a legit response then update the comment history - // other wise just bail now and try again later. No point in - // re-trying all the comments once we hit one failure. - if ( !empty( $msg ) ) { - delete_comment_meta( $comment_id, 'akismet_error' ); - self::update_comment_history( $comment_id, $msg, 'cron-retry' ); - update_comment_meta( $comment_id, 'akismet_result', $status ); - // make sure the comment status is still pending. if it isn't, that means the user has already moved it elsewhere. - $comment = get_comment( $comment_id ); - if ( $comment && 'unapproved' == wp_get_comment_status( $comment_id ) ) { - if ( $status == 'true' ) { - wp_spam_comment( $comment_id ); - } elseif ( $status == 'false' ) { - // comment is good, but it's still in the pending queue. depending on the moderation settings - // we may need to change it to approved. - if ( check_comment($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent, $comment->comment_type) ) - wp_set_comment_status( $comment_id, 1 ); - else if ( get_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ) ) - wp_notify_moderator( $comment_id ); - } - } - - delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); - } else { - // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL, - // send a moderation email now. - if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) { - delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); - wp_notify_moderator( $comment_id ); - } - - delete_comment_meta( $comment_id, 'akismet_rechecking' ); - wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); - return; - } - delete_comment_meta( $comment_id, 'akismet_rechecking' ); - } - - $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); - if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) { - wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); - } - } - - public static function fix_scheduled_recheck() { - $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' ); - if ( !$future_check ) { - return; - } - - if ( get_option( 'akismet_alert_code' ) > 0 ) { - return; - } - - $check_range = time() + 1200; - if ( $future_check > $check_range ) { - wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' ); - wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' ); - } - } - - public static function add_comment_nonce( $post_id ) { - echo '

'; - wp_nonce_field( 'akismet_comment_nonce_' . $post_id, 'akismet_comment_nonce', FALSE ); - echo '

'; - } - - public static function is_test_mode() { - return defined('AKISMET_TEST_MODE') && AKISMET_TEST_MODE; - } - - public static function allow_discard() { - if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) - return false; - if ( is_user_logged_in() ) - return false; - - return ( get_option( 'akismet_strictness' ) === '1' ); - } - - public static function get_ip_address() { - return isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null; - } - - /** - * Do these two comments, without checking the comment_ID, "match"? - * - * @param mixed $comment1 A comment object or array. - * @param mixed $comment2 A comment object or array. - * @return bool Whether the two comments should be treated as the same comment. - */ - private static function comments_match( $comment1, $comment2 ) { - $comment1 = (array) $comment1; - $comment2 = (array) $comment2; - - return ( - isset( $comment1['comment_post_ID'], $comment2['comment_post_ID'] ) - && intval( $comment1['comment_post_ID'] ) == intval( $comment2['comment_post_ID'] ) - && $comment1['comment_author'] == $comment2['comment_author'] - && $comment1['comment_author_email'] == $comment2['comment_author_email'] - ); - } - - // Does the supplied comment match the details of the one most recently stored in self::$last_comment? - public static function matches_last_comment( $comment ) { - if ( is_object( $comment ) ) - $comment = (array) $comment; - - return self::comments_match( self::$last_comment, $comment ); - } - - private static function get_user_agent() { - return isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : null; - } - - private static function get_referer() { - return isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : null; - } - - // return a comma-separated list of role names for the given user - public static function get_user_roles( $user_id ) { - $roles = false; - - if ( !class_exists('WP_User') ) - return false; - - if ( $user_id > 0 ) { - $comment_user = new WP_User( $user_id ); - if ( isset( $comment_user->roles ) ) - $roles = join( ',', $comment_user->roles ); - } - - if ( is_multisite() && is_super_admin( $user_id ) ) { - if ( empty( $roles ) ) { - $roles = 'super_admin'; - } else { - $comment_user->roles[] = 'super_admin'; - $roles = join( ',', $comment_user->roles ); - } - } - - return $roles; - } - - // filter handler used to return a spam result to pre_comment_approved - public static function last_comment_status( $approved, $comment ) { - // Only do this if it's the correct comment - if ( is_null(self::$last_comment_result) || ! self::matches_last_comment( $comment ) ) { - self::log( "comment_is_spam mismatched comment, returning unaltered $approved" ); - return $approved; - } - - // bump the counter here instead of when the filter is added to reduce the possibility of overcounting - if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) - update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); - - return self::$last_comment_result; - } - - /** - * If Akismet is temporarily unreachable, we don't want to "spam" the blogger with - * moderation emails for comments that will be automatically cleared or spammed on - * the next retry. - * - * For comments that will be rechecked later, empty the list of email addresses that - * the moderation email would be sent to. - * - * @param array $emails An array of email addresses that the moderation email will be sent to. - * @param int $comment_id The ID of the relevant comment. - * @return array An array of email addresses that the moderation email will be sent to. - */ - public static function disable_moderation_emails_if_unreachable( $emails, $comment_id ) { - if ( ! empty( self::$prevent_moderation_email_for_these_comments ) && ! empty( $emails ) ) { - $comment = get_comment( $comment_id ); - - foreach ( self::$prevent_moderation_email_for_these_comments as $possible_match ) { - if ( self::comments_match( $possible_match, $comment ) ) { - update_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ); - return array(); - } - } - } - - return $emails; - } - - public static function _cmp_time( $a, $b ) { - return $a['time'] > $b['time'] ? -1 : 1; - } - - public static function _get_microtime() { - $mtime = explode( ' ', microtime() ); - return $mtime[1] + $mtime[0]; - } - - /** - * Make a POST request to the Akismet API. - * - * @param string $request The body of the request. - * @param string $path The path for the request. - * @param string $ip The specific IP address to hit. - * @return array A two-member array consisting of the headers and the response body, both empty in the case of a failure. - */ - public static function http_post( $request, $path, $ip=null ) { - - $akismet_ua = sprintf( 'WordPress/%s | Akismet/%s', $GLOBALS['wp_version'], constant( 'AKISMET_VERSION' ) ); - $akismet_ua = apply_filters( 'akismet_ua', $akismet_ua ); - - $content_length = strlen( $request ); - - $api_key = self::get_api_key(); - $host = self::API_HOST; - - if ( !empty( $api_key ) ) - $host = $api_key.'.'.$host; - - $http_host = $host; - // use a specific IP if provided - // needed by Akismet_Admin::check_server_connectivity() - if ( $ip && long2ip( ip2long( $ip ) ) ) { - $http_host = $ip; - } - - $http_args = array( - 'body' => $request, - 'headers' => array( - 'Content-Type' => 'application/x-www-form-urlencoded; charset=' . get_option( 'blog_charset' ), - 'Host' => $host, - 'User-Agent' => $akismet_ua, - ), - 'httpversion' => '1.0', - 'timeout' => 15 - ); - - $akismet_url = "http://{$http_host}/1.1/{$path}"; - $response = wp_remote_post( $akismet_url, $http_args ); - Akismet::log( compact( 'akismet_url', 'http_args', 'response' ) ); - if ( is_wp_error( $response ) ) - return array( '', '' ); - - return array( $response['headers'], $response['body'] ); - } - - // given a response from an API call like check_key_status(), update the alert code options if an alert is present. - private static function update_alert( $response ) { - $code = $msg = null; - if ( isset( $response[0]['x-akismet-alert-code'] ) ) { - $code = $response[0]['x-akismet-alert-code']; - $msg = $response[0]['x-akismet-alert-msg']; - } - - // only call update_option() if the value has changed - if ( $code != get_option( 'akismet_alert_code' ) ) { - if ( ! $code ) { - delete_option( 'akismet_alert_code' ); - delete_option( 'akismet_alert_msg' ); - } - else { - update_option( 'akismet_alert_code', $code ); - update_option( 'akismet_alert_msg', $msg ); - } - } - } - - public static function load_form_js() { - // WP < 3.3 can't enqueue a script this late in the game and still have it appear in the footer. - // Once we drop support for everything pre-3.3, this can change back to a single enqueue call. - wp_register_script( 'akismet-form', AKISMET__PLUGIN_URL . '_inc/form.js', array(), AKISMET_VERSION, true ); - add_action( 'wp_footer', array( 'Akismet', 'print_form_js' ) ); - add_action( 'admin_footer', array( 'Akismet', 'print_form_js' ) ); - } - - public static function print_form_js() { - wp_print_scripts( 'akismet-form' ); - } - - public static function inject_ak_js( $fields ) { - echo '

'; - echo ''; - echo '

'; - } - - private static function bail_on_activation( $message, $deactivate = true ) { -?> - - - - - - -

- - - $plugin ) { - if ( $plugin === $akismet ) { - $plugins[$i] = false; - $update = true; - } - } - - if ( $update ) { - update_option( 'active_plugins', array_filter( $plugins ) ); - } - } - exit; - } - - public static function view( $name, array $args = array() ) { - $args = apply_filters( 'akismet_view_arguments', $args, $name ); - - foreach ( $args AS $key => $val ) { - $$key = $val; - } - - load_plugin_textdomain( 'akismet' ); - - $file = AKISMET__PLUGIN_DIR . 'views/'. $name . '.php'; - - include( $file ); - } - - /** - * Attached to activate_{ plugin_basename( __FILES__ ) } by register_activation_hook() - * @static - */ - public static function plugin_activation() { - if ( version_compare( $GLOBALS['wp_version'], AKISMET__MINIMUM_WP_VERSION, '<' ) ) { - load_plugin_textdomain( 'akismet' ); - - $message = ''.sprintf(esc_html__( 'Akismet %s requires WordPress %s or higher.' , 'akismet'), AKISMET_VERSION, AKISMET__MINIMUM_WP_VERSION ).' '.sprintf(__('Please upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'http://wordpress.org/extend/plugins/akismet/download/'); - - Akismet::bail_on_activation( $message ); - } - } - - /** - * Removes all connection options - * @static - */ - public static function plugin_deactivation( ) { - //tidy up - } - - /** - * Essentially a copy of WP's build_query but one that doesn't expect pre-urlencoded values. - * - * @param array $args An array of key => value pairs - * @return string A string ready for use as a URL query string. - */ - public static function build_query( $args ) { - return _http_build_query( $args, '', '&' ); - } - - 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 - } -} \ No newline at end of file diff --git a/wp-content/plugins/akismet/index.php b/wp-content/plugins/akismet/index.php deleted file mode 100644 index cf879a5..0000000 --- a/wp-content/plugins/akismet/index.php +++ /dev/null @@ -1,2 +0,0 @@ - - -

- -
- - spam > 0 ) : ?> - -
- - - - - - -
    -
  • -

    - spam );?> - -
  • -
  • -

    - spam );?> - -
  • -
  • -

    - accuracy; ?>% - false_positives , 'akismet') - ), - number_format( $stat_totals['all']->missed_spam ), - number_format( $stat_totals['all']->false_positives ) - ); ?> -
  • -
-
-
- - - - -
- -
-
-
-

-

-
-
- - - - - - - - - - - - - - - - - - - -
- - -
-

- -

-
-
-

-

-
- spam folder older than 15 days is deleted automatically.' , 'akismet'), admin_url( 'edit-comments.php?comment_status=spam' ) );?> -
-
-
- -
- -
- - -
- - - -
-
-
-
-
-
-
-
-
-
-

-

-
- - - - - - - - - - - next_billing_date ) : ?> - - - - - - -
- - account_name; ?> -
- - status ) : - esc_html_e( 'Cancelled', 'akismet' ); - elseif ( 'suspended' == $akismet_user->status ) : - esc_html_e( 'Suspended', 'akismet' ); - elseif ( 'missing' == $akismet_user->status ) : - esc_html_e( 'Missing', 'akismet' ); - elseif ( 'no-sub' == $akismet_user->status ) : - esc_html_e( 'No Subscription Found', 'akismet' ); - else : - esc_html_e( 'Active', 'akismet' ); - endif; ?> -
- - next_billing_date ); ?> -
-
-
-
- ( $akismet_user->account_type == 'free-api-key' && $akismet_user->status == 'active' ? __( 'Upgrade' , 'akismet') : __( 'Change' , 'akismet') ), 'redirect' => 'upgrade' ) ); ?> -
-
-
-
-
-
-
- - - -
-
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/get.php b/wp-content/plugins/akismet/views/get.php deleted file mode 100644 index 70727f6..0000000 --- a/wp-content/plugins/akismet/views/get.php +++ /dev/null @@ -1,5 +0,0 @@ -
- - - -
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/notice.php b/wp-content/plugins/akismet/views/notice.php deleted file mode 100644 index 8a1411d..0000000 --- a/wp-content/plugins/akismet/views/notice.php +++ /dev/null @@ -1,102 +0,0 @@ - -
- -
-
-
A
-
-
-
-
-
-
Almost done - activate your account and say goodbye to comment spam', 'akismet');?>
-
-
-
- -
-

-

- -

- -
- -

upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'https://wordpress.org/extend/plugins/akismet/download/');?>

- -
-

-

-

https://akismet.com/errors/' . $code . '' ); - - ?> -

-
- -
-

-

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/'); ?>

-
- -
-

-

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

-
- -
-

-

update your payment details.', 'akismet'), 'https://akismet.com/account/'); ?>

-
- -
-

-

Akismet account page to reactivate your subscription.', 'akismet'), 'https://akismet.com/account/'); ?>

-
- -
-

-

Akismet support for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?>

-
- -
-

-

contributing a token amount.', 'akismet'), 'https://akismet.com/account/upgrade/'); ?>

-
- -
-

-

Akismet support for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?>

-
- -
-

-

sign into your account and choose one. Please contact our support team with any questions.', 'akismet'), 'https://akismet.com/account/upgrade/', 'https://akismet.com/contact/' ); ?>

-
- -
-

-
- -
-

-
- -
-

-
- -
- -

-

upgrade to an Enterprise subscription. If you have any questions, please get in touch with our support team', 'akismet'), 'https://akismet.com/account/upgrade/', 'https://akismet.com/contact/'); ?>

- -

-

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/akismet/views/start.php b/wp-content/plugins/akismet/views/start.php deleted file mode 100644 index 692b8af..0000000 --- a/wp-content/plugins/akismet/views/start.php +++ /dev/null @@ -1,95 +0,0 @@ -
status, array( 'active', 'active-dunning', 'no-sub', 'missing', 'cancelled', 'suspended' ) ) ) : - if ( $akismet_user->status == 'missing' ) :?> -

-
-
- - user_email ); ?> -
-
- - - - -
-
-status == 'cancelled' ) :?> -

-
-
- - user_email ); ?> -
-
- - - - -
-
-status == 'suspended' ) : ?> -

-
- -

user_email ); ?>

-

- -
- -

-
-
- - user_email ); ?> -
-
- - - - -
-
- -
-
- -

-
- __( 'Register a different email address' , 'akismet'), 'classes' => array( 'right', 'button', 'button-secondary' ) ) ); ?> -
-
-
- -

-
-
- - - - -
-
- -

-
-
- -

-
- __( 'Get your API key' , 'akismet'), 'classes' => array( 'right', 'button', 'button-primary' ) ) ); ?> -
-
-
- -

-
-
- - - - -
-
-
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/stats.php b/wp-content/plugins/akismet/views/stats.php deleted file mode 100644 index 1ca7661..0000000 --- a/wp-content/plugins/akismet/views/stats.php +++ /dev/null @@ -1,4 +0,0 @@ -
-

- -
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/strict.php b/wp-content/plugins/akismet/views/strict.php deleted file mode 100644 index 3cf197c..0000000 --- a/wp-content/plugins/akismet/views/strict.php +++ /dev/null @@ -1,7 +0,0 @@ - - -
-

-

-
- \ No newline at end of file diff --git a/wp-content/plugins/akismet/wrapper.php b/wp-content/plugins/akismet/wrapper.php deleted file mode 100644 index 12641c7..0000000 --- a/wp-content/plugins/akismet/wrapper.php +++ /dev/null @@ -1,293 +0,0 @@ -Hello, Dolly in the upper right of your admin screen on every page. -Author: Matt Mullenweg -Version: 1.6 -Author URI: http://ma.tt/ -*/ - -function hello_dolly_get_lyric() { - /** These are the lyrics to Hello Dolly */ - $lyrics = "Hello, Dolly -Well, hello, Dolly -It's so nice to have you back where you belong -You're lookin' swell, Dolly -I can tell, Dolly -You're still glowin', you're still crowin' -You're still goin' strong -We feel the room swayin' -While the band's playin' -One of your old favourite songs from way back when -So, take her wrap, fellas -Find her an empty lap, fellas -Dolly'll never go away again -Hello, Dolly -Well, hello, Dolly -It's so nice to have you back where you belong -You're lookin' swell, Dolly -I can tell, Dolly -You're still glowin', you're still crowin' -You're still goin' strong -We feel the room swayin' -While the band's playin' -One of your old favourite songs from way back when -Golly, gee, fellas -Find her a vacant knee, fellas -Dolly'll never go away -Dolly'll never go away -Dolly'll never go away again"; - - // Here we split it into lines - $lyrics = explode( "\n", $lyrics ); - - // And then randomly choose a line - return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] ); -} - -// This just echoes the chosen line, we'll position it later -function hello_dolly() { - $chosen = hello_dolly_get_lyric(); - echo "

$chosen

"; -} - -// Now we set that function up to execute when the admin_notices action is called -add_action( 'admin_notices', 'hello_dolly' ); - -// We need some CSS to position the paragraph -function dolly_css() { - // This makes sure that the positioning is also good for right-to-left languages - $x = is_rtl() ? 'left' : 'right'; - - echo " - - "; -} - -add_action( 'admin_head', 'dolly_css' ); - -?> diff --git a/wp-content/plugins/wp-multibyte-patch/ext/ja/admin.css b/wp-content/plugins/wp-multibyte-patch/ext/ja/admin.css deleted file mode 100644 index c016b6b..0000000 --- a/wp-content/plugins/wp-multibyte-patch/ext/ja/admin.css +++ /dev/null @@ -1,5 +0,0 @@ -@charset "utf-8"; - -body *:not(textarea) { - font-style: normal !important; -} diff --git a/wp-content/plugins/wp-multibyte-patch/ext/ja/class.php b/wp-content/plugins/wp-multibyte-patch/ext/ja/class.php deleted file mode 100644 index d30fdcd..0000000 --- a/wp-content/plugins/wp-multibyte-patch/ext/ja/class.php +++ /dev/null @@ -1,189 +0,0 @@ - - * @copyright Copyright (c) 2014 Seisuke Kuraishi, Tinybit Inc. - * @license http://opensource.org/licenses/gpl-2.0.php GPLv2 - * @link http://eastcoder.com/code/wp-multibyte-patch/ - */ - -/** - * This class extends multibyte_patch. - * - * @package WP_Multibyte_Patch - */ -if ( class_exists( 'multibyte_patch' ) ) : - class multibyte_patch_ext extends multibyte_patch { - - function get_jis_name() { - if ( function_exists( 'mb_list_encodings' ) ) { - $list = "\t" . implode( "\t", mb_list_encodings() ) . "\t"; - return ( preg_match( "/\tISO-2022-JP-MS\t/i", $list ) ) ? 'ISO-2022-JP-MS' : 'ISO-2022-JP'; - } - else - return 'ISO-2022-JP'; - } - - function UTF8toJIS( $string ) { - return $this->convenc( $string, $this->get_jis_name(), 'UTF-8' ); - } - - function JIStoUTF8( $string ) { - return $this->convenc( $string, 'UTF-8', $this->get_jis_name() ); - } - - function encode_mimeheader_b_uncut( $string = '', $charset = 'UTF-8' ) { - if ( 0 == strlen( $string ) || strlen( $string ) == mb_strlen( $string, $charset ) ) - return $string; - - return "=?$charset?B?" . base64_encode( $string ) . '?='; - } - - function get_phpmailer_properties( $phpmailer ) { - $array = (array) $phpmailer; - $new = array(); - foreach ( $array as $key => $value ) { - $key = preg_replace( "/^\\0[^\\0]+\\0/", "", $key ); - $new[$key] = $value; - } - return $new; - } - - function wp_mail( $phpmailer ) { - $blog_encoding = $this->blog_encoding; - - $phpmailer->FromName = preg_replace( "/[\r\n]/", "", trim( $phpmailer->FromName ) ); - $phpmailer->FromName = $this->convenc( $phpmailer->FromName, 'UTF-8', $blog_encoding ); - $phpmailer->Subject = preg_replace( "/[\r\n]/", "", trim( $phpmailer->Subject ) ); - $phpmailer->Subject = $this->convenc( $phpmailer->Subject, 'UTF-8', $blog_encoding ); - $phpmailer->Body = $this->convenc( $phpmailer->Body, 'UTF-8', $blog_encoding ); - - if ( 'UTF-8' == strtoupper( trim( $this->conf['mail_mode'] ) ) ) - $mode = 'UTF-8'; - elseif ( 'JIS' == strtoupper( trim( $this->conf['mail_mode'] ) ) ) - $mode = 'JIS'; - else { // Check unmappable characters and decide what to do. - $test_str_before = $phpmailer->FromName . $phpmailer->Subject . $phpmailer->Body; - $test_str_after = $this->UTF8toJIS( $test_str_before ); - $test_str_after = $this->JIStoUTF8( $test_str_after ); - $mode = ( $test_str_after != $test_str_before ) ? 'UTF-8' : 'JIS'; - } - - $phpmailer_props = $this->get_phpmailer_properties( $phpmailer ); - $recipient_methods = array( 'to' => array( 'add' => 'AddAddress', 'clear' => 'ClearAddresses' ), 'cc' => array( 'add' => 'AddCC', 'clear' => 'ClearCCs' ), 'bcc' => array( 'add' => 'AddBCC', 'clear' => 'ClearBCCs' ) ); - - if ( 'UTF-8' == $mode ) { - $phpmailer->CharSet = 'UTF-8'; - $phpmailer->Encoding = 'base64'; - $phpmailer->AddCustomHeader( 'Content-Disposition: inline' ); - $phpmailer->FromName = $this->encode_mimeheader_b_uncut( $phpmailer->FromName, 'UTF-8' ); - $phpmailer->Subject = $this->encode_mimeheader_b_uncut( $phpmailer->Subject, 'UTF-8' ); - - foreach ( $recipient_methods as $name => $method ) { - if ( isset( $phpmailer_props[$name][0] ) ) { - $phpmailer->{$method['clear']}(); - foreach ( $phpmailer_props[$name] as $recipient ) { - $recipient[1] = $this->encode_mimeheader_b_uncut( $recipient[1], 'UTF-8' ); - $phpmailer->{$method['add']}( $recipient[0], $recipient[1] ); - } - } - } - } - elseif ( 'JIS' == $mode ) { - $phpmailer->CharSet = 'ISO-2022-JP'; - $phpmailer->Encoding = '7bit'; - $phpmailer->FromName = $this->UTF8toJIS( $phpmailer->FromName ); - $phpmailer->FromName = $this->encode_mimeheader_b_uncut( $phpmailer->FromName, 'ISO-2022-JP' ); - $phpmailer->Subject = $this->UTF8toJIS( $phpmailer->Subject ); - $phpmailer->Subject = $this->encode_mimeheader_b_uncut( $phpmailer->Subject, 'ISO-2022-JP' ); - $phpmailer->Body = $this->UTF8toJIS( $phpmailer->Body ); - - foreach ( $recipient_methods as $name => $method ) { - if ( isset( $phpmailer_props[$name][0] ) ) { - $phpmailer->{$method['clear']}(); - foreach ( $phpmailer_props[$name] as $recipient ) { - $recipient[1] = $this->UTF8toJIS( $recipient[1] ); - $recipient[1] = $this->encode_mimeheader_b_uncut( $recipient[1], 'ISO-2022-JP' ); - $phpmailer->{$method['add']}( $recipient[0], $recipient[1] ); - } - } - } - } - } - - function process_search_terms() { - $blog_encoding = $this->blog_encoding; - - if ( isset( $_GET['s'] ) ) { - $_GET['s'] = wp_unslash( $_GET['s'] ); - $_GET['s'] = mb_convert_kana( $_GET['s'], 's', $blog_encoding ); - $_GET['s'] = preg_replace( "/ +/", " ", $_GET['s'] ); - $_GET['s'] = wp_slash( $_GET['s'] ); - } - } - - function guess_encoding( $string, $encoding = '' ) { - $guess_list = 'UTF-8, eucJP-win, SJIS-win'; - - if ( preg_match( "/^utf-8$/i", $encoding ) ) - return 'UTF-8'; - elseif ( preg_match( "/^euc-jp$/i", $encoding ) ) - return 'eucJP-win'; - elseif ( preg_match( "/^(sjis|shift_jis)$/i", $encoding ) ) - return 'SJIS-win'; - elseif ( !$encoding ) - return mb_detect_encoding( $string, $guess_list ); - else - return $encoding; - } - - function admin_custom_css() { - if ( empty( $this->conf['admin_custom_css_url'] ) ) - $url = plugin_dir_url( __FILE__ ) . 'admin.css'; - else - $url = $this->conf['admin_custom_css_url']; - - wp_enqueue_style( 'wpmp-admin-custom', $url, array(), '20131223' ); - } - - function wp_trim_words( $text = '', $num_words = 110, $more = '', $original_text = '' ) { - if ( 'characters' != _x( 'words', 'word count: words or characters?' ) ) - return $text; - - // If the caller is wp_dashboard_recent_drafts() - if( false !== $this->conf['patch_dashboard_recent_drafts'] && 10 === $num_words && is_admin() && strpos( wp_debug_backtrace_summary(), 'wp_dashboard_recent_drafts' ) ) - $num_words = $this->conf['dashboard_recent_drafts_mblength']; - - $text = $original_text; - $text = wp_strip_all_tags( $text ); - $text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' ); - - if ( mb_strlen( $text, $this->blog_encoding ) > $num_words ) - $text = mb_substr( $text, 0, $num_words, $this->blog_encoding ) . $more; - - return $text; - } - - function __construct() { - // mbstring functions are always required for ja. - $this->mbfunctions_required = true; - - $this->conf['patch_wp_mail'] = true; - $this->conf['patch_incoming_trackback'] = true; - $this->conf['patch_incoming_pingback'] = true; - $this->conf['patch_process_search_terms'] = true; - $this->conf['patch_admin_custom_css'] = true; - $this->conf['patch_force_character_count'] = true; - $this->conf['patch_force_twentytwelve_open_sans_off'] = true; - $this->conf['patch_wp_trim_words'] = true; - // auto, JIS, UTF-8 - $this->conf['mail_mode'] = 'JIS'; - $this->conf['admin_custom_css_url'] = ''; - - parent::__construct(); - } -} -endif; diff --git a/wp-content/plugins/wp-multibyte-patch/js/20140410/wplink.js b/wp-content/plugins/wp-multibyte-patch/js/20140410/wplink.js deleted file mode 100644 index 349fed8..0000000 --- a/wp-content/plugins/wp-multibyte-patch/js/20140410/wplink.js +++ /dev/null @@ -1,569 +0,0 @@ -/* global ajaxurl, tinymce, wpLinkL10n, setUserSetting, wpActiveEditor */ -var wpLink; - -( function( $ ) { - var inputs = {}, rivers = {}, editor, searchTimer, River, Query; - - wpLink = { - timeToTriggerRiver: 150, - minRiverAJAXDuration: 200, - riverBottomThreshold: 5, - keySensitivity: 100, - lastSearch: '', - textarea: '', - - init: function() { - inputs.wrap = $('#wp-link-wrap'); - inputs.dialog = $( '#wp-link' ); - inputs.backdrop = $( '#wp-link-backdrop' ); - inputs.submit = $( '#wp-link-submit' ); - inputs.close = $( '#wp-link-close' ); - // URL - inputs.url = $( '#url-field' ); - inputs.nonce = $( '#_ajax_linking_nonce' ); - // Secondary options - inputs.title = $( '#link-title-field' ); - // Advanced Options - inputs.openInNewTab = $( '#link-target-checkbox' ); - inputs.search = $( '#search-field' ); - // Build Rivers - rivers.search = new River( $( '#search-results' ) ); - rivers.recent = new River( $( '#most-recent-results' ) ); - rivers.elements = inputs.dialog.find( '.query-results' ); - - // Bind event handlers - inputs.dialog.keydown( wpLink.keydown ); - inputs.dialog.keyup( wpLink.keyup ); - inputs.submit.click( function( event ) { - event.preventDefault(); - wpLink.update(); - }); - inputs.close.add( inputs.backdrop ).add( '#wp-link-cancel a' ).click( function( event ) { - event.preventDefault(); - wpLink.close(); - }); - - $( '#wp-link-search-toggle' ).click( wpLink.toggleInternalLinking ); - - rivers.elements.on( 'river-select', wpLink.updateFields ); - - inputs.search.keyup( function() { - var self = this; - - window.clearTimeout( searchTimer ); - searchTimer = window.setTimeout( function() { - wpLink.searchInternalLinks.call( self ); - }, 500 ); - }); - }, - - open: function( editorId ) { - var ed; - - wpLink.range = null; - - if ( editorId ) { - window.wpActiveEditor = editorId; - } - - if ( ! window.wpActiveEditor ) { - return; - } - - this.textarea = $( '#' + window.wpActiveEditor ).get( 0 ); - - if ( typeof tinymce !== 'undefined' ) { - ed = tinymce.get( wpActiveEditor ); - - if ( ed && ! ed.isHidden() ) { - editor = ed; - } else { - editor = null; - } - - if ( editor && tinymce.isIE ) { - editor.windowManager.bookmark = editor.selection.getBookmark(); - } - } - - if ( ! wpLink.isMCE() && document.selection ) { - this.textarea.focus(); - this.range = document.selection.createRange(); - } - - inputs.wrap.show(); - inputs.backdrop.show(); - - wpLink.refresh(); - }, - - isMCE: function() { - return editor && ! editor.isHidden(); - }, - - refresh: function() { - // Refresh rivers (clear links, check visibility) - rivers.search.refresh(); - rivers.recent.refresh(); - - if ( wpLink.isMCE() ) - wpLink.mceRefresh(); - else - wpLink.setDefaultValues(); - - // Focus the URL field and highlight its contents. - // If this is moved above the selection changes, - // IE will show a flashing cursor over the dialog. - inputs.url.focus()[0].select(); - // Load the most recent results if this is the first time opening the panel. - if ( ! rivers.recent.ul.children().length ) - rivers.recent.ajax(); - }, - - mceRefresh: function() { - var e; - - // If link exists, select proper values. - if ( e = editor.dom.getParent( editor.selection.getNode(), 'A' ) ) { - // Set URL and description. - inputs.url.val( editor.dom.getAttrib( e, 'href' ) ); - inputs.title.val( editor.dom.getAttrib( e, 'title' ) ); - // Set open in new tab. - inputs.openInNewTab.prop( 'checked', ( '_blank' === editor.dom.getAttrib( e, 'target' ) ) ); - // Update save prompt. - inputs.submit.val( wpLinkL10n.update ); - - // If there's no link, set the default values. - } else { - wpLink.setDefaultValues(); - } - }, - - close: function() { - if ( ! wpLink.isMCE() ) { - wpLink.textarea.focus(); - - if ( wpLink.range ) { - wpLink.range.moveToBookmark( wpLink.range.getBookmark() ); - wpLink.range.select(); - } - } else { - editor.focus(); - } - - inputs.backdrop.hide(); - inputs.wrap.hide(); - }, - - getAttrs: function() { - return { - href: inputs.url.val(), - title: inputs.title.val(), - target: inputs.openInNewTab.prop( 'checked' ) ? '_blank' : '' - }; - }, - - update: function() { - if ( wpLink.isMCE() ) - wpLink.mceUpdate(); - else - wpLink.htmlUpdate(); - }, - - htmlUpdate: function() { - var attrs, html, begin, end, cursor, title, selection, - textarea = wpLink.textarea; - - if ( ! textarea ) - return; - - attrs = wpLink.getAttrs(); - - // If there's no href, return. - if ( ! attrs.href || attrs.href == 'http://' ) - return; - - // Build HTML - html = '/g, '>' ).replace( /"/g, '"' ); - html += ' title="' + title + '"'; - } - - if ( attrs.target ) { - html += ' target="' + attrs.target + '"'; - } - - html += '>'; - - // Insert HTML - if ( document.selection && wpLink.range ) { - // IE - // Note: If no text is selected, IE will not place the cursor - // inside the closing tag. - textarea.focus(); - wpLink.range.text = html + wpLink.range.text + ''; - wpLink.range.moveToBookmark( wpLink.range.getBookmark() ); - wpLink.range.select(); - - wpLink.range = null; - } else if ( typeof textarea.selectionStart !== 'undefined' ) { - // W3C - begin = textarea.selectionStart; - end = textarea.selectionEnd; - selection = textarea.value.substring( begin, end ); - html = html + selection + ''; - cursor = begin + html.length; - - // If no text is selected, place the cursor inside the closing tag. - if ( begin == end ) - cursor -= ''.length; - - textarea.value = textarea.value.substring( 0, begin ) + html + - textarea.value.substring( end, textarea.value.length ); - - // Update cursor position - textarea.selectionStart = textarea.selectionEnd = cursor; - } - - wpLink.close(); - textarea.focus(); - }, - - mceUpdate: function() { - var link, - attrs = wpLink.getAttrs(); - - wpLink.close(); - editor.focus(); - - if ( tinymce.isIE ) { - editor.selection.moveToBookmark( editor.windowManager.bookmark ); - } - - link = editor.dom.getParent( editor.selection.getNode(), 'a[href]' ); - - // If the values are empty, unlink and return - if ( ! attrs.href || attrs.href == 'http://' ) { - editor.execCommand( 'unlink' ); - return; - } - - if ( link ) { - editor.dom.setAttribs( link, attrs ); - } else { - editor.execCommand( 'mceInsertLink', false, attrs ); - } - - // Move the cursor to the end of the selection - editor.selection.collapse(); - }, - - updateFields: function( e, li, originalEvent ) { - inputs.url.val( li.children( '.item-permalink' ).val() ); - inputs.title.val( li.hasClass( 'no-title' ) ? '' : li.children( '.item-title' ).text() ); - if ( originalEvent && originalEvent.type == 'click' ) - inputs.url.focus(); - }, - - setDefaultValues: function() { - // Set URL and description to defaults. - // Leave the new tab setting as-is. - inputs.url.val( 'http://' ); - inputs.title.val( '' ); - - // Update save prompt. - inputs.submit.val( wpLinkL10n.save ); - }, - - searchInternalLinks: function() { - var t = $( this ), waiting, - search = t.val(); - - if ( search.length > 1 ) { - rivers.recent.hide(); - rivers.search.show(); - - // Don't search if the keypress didn't change the title. - if ( wpLink.lastSearch == search ) - return; - - wpLink.lastSearch = search; - waiting = t.parent().find('.spinner').show(); - - rivers.search.change( search ); - rivers.search.ajax( function() { - waiting.hide(); - }); - } else { - rivers.search.hide(); - rivers.recent.show(); - } - }, - - next: function() { - rivers.search.next(); - rivers.recent.next(); - }, - - prev: function() { - rivers.search.prev(); - rivers.recent.prev(); - }, - - keydown: function( event ) { - var fn, id, - key = $.ui.keyCode; - - if ( key.ESCAPE === event.keyCode ) { - wpLink.close(); - event.stopImmediatePropagation(); - } else if ( key.TAB === event.keyCode ) { - id = event.target.id; - - if ( id === 'wp-link-submit' && ! event.shiftKey ) { - inputs.close.focus(); - event.preventDefault(); - } else if ( id === 'wp-link-close' && event.shiftKey ) { - inputs.submit.focus(); - event.preventDefault(); - } - } - - if ( event.keyCode !== key.UP && event.keyCode !== key.DOWN ) { - return; - } - - fn = event.keyCode === key.UP ? 'prev' : 'next'; - clearInterval( wpLink.keyInterval ); - wpLink[ fn ](); - wpLink.keyInterval = setInterval( wpLink[ fn ], wpLink.keySensitivity ); - event.preventDefault(); - }, - - keyup: function( event ) { - var key = $.ui.keyCode; - - if ( event.which === key.UP || event.which === key.DOWN ) { - clearInterval( wpLink.keyInterval ); - event.preventDefault(); - } - }, - - delayedCallback: function( func, delay ) { - var timeoutTriggered, funcTriggered, funcArgs, funcContext; - - if ( ! delay ) - return func; - - setTimeout( function() { - if ( funcTriggered ) - return func.apply( funcContext, funcArgs ); - // Otherwise, wait. - timeoutTriggered = true; - }, delay ); - - return function() { - if ( timeoutTriggered ) - return func.apply( this, arguments ); - // Otherwise, wait. - funcArgs = arguments; - funcContext = this; - funcTriggered = true; - }; - }, - - toggleInternalLinking: function() { - var visible = inputs.wrap.hasClass( 'search-panel-visible' ); - - inputs.wrap.toggleClass( 'search-panel-visible', ! visible ); - setUserSetting( 'wplink', visible ? '0' : '1' ); - inputs[ ! visible ? 'search' : 'url' ].focus(); - } - }; - - River = function( element, search ) { - var self = this; - this.element = element; - this.ul = element.children( 'ul' ); - this.contentHeight = element.children( '#link-selector-height' ); - this.waiting = element.find('.river-waiting'); - - this.change( search ); - this.refresh(); - - $( '#wp-link .query-results, #wp-link #link-selector' ).scroll( function() { - self.maybeLoad(); - }); - element.on( 'click', 'li', function( event ) { - self.select( $( this ), event ); - }); - }; - - $.extend( River.prototype, { - refresh: function() { - this.deselect(); - this.visible = this.element.is( ':visible' ); - }, - show: function() { - if ( ! this.visible ) { - this.deselect(); - this.element.show(); - this.visible = true; - } - }, - hide: function() { - this.element.hide(); - this.visible = false; - }, - // Selects a list item and triggers the river-select event. - select: function( li, event ) { - var liHeight, elHeight, liTop, elTop; - - if ( li.hasClass( 'unselectable' ) || li == this.selected ) - return; - - this.deselect(); - this.selected = li.addClass( 'selected' ); - // Make sure the element is visible - liHeight = li.outerHeight(); - elHeight = this.element.height(); - liTop = li.position().top; - elTop = this.element.scrollTop(); - - if ( liTop < 0 ) // Make first visible element - this.element.scrollTop( elTop + liTop ); - else if ( liTop + liHeight > elHeight ) // Make last visible element - this.element.scrollTop( elTop + liTop - elHeight + liHeight ); - - // Trigger the river-select event - this.element.trigger( 'river-select', [ li, event, this ] ); - }, - deselect: function() { - if ( this.selected ) - this.selected.removeClass( 'selected' ); - this.selected = false; - }, - prev: function() { - if ( ! this.visible ) - return; - - var to; - if ( this.selected ) { - to = this.selected.prev( 'li' ); - if ( to.length ) - this.select( to ); - } - }, - next: function() { - if ( ! this.visible ) - return; - - var to = this.selected ? this.selected.next( 'li' ) : $( 'li:not(.unselectable):first', this.element ); - if ( to.length ) - this.select( to ); - }, - ajax: function( callback ) { - var self = this, - delay = this.query.page == 1 ? 0 : wpLink.minRiverAJAXDuration, - response = wpLink.delayedCallback( function( results, params ) { - self.process( results, params ); - if ( callback ) - callback( results, params ); - }, delay ); - - this.query.ajax( response ); - }, - change: function( search ) { - if ( this.query && this._search == search ) - return; - - this._search = search; - this.query = new Query( search ); - this.element.scrollTop( 0 ); - }, - process: function( results, params ) { - var list = '', alt = true, classes = '', - firstPage = params.page == 1; - - if ( ! results ) { - if ( firstPage ) { - list += '
  • ' + - wpLinkL10n.noMatchesFound + '
  • '; - } - } else { - $.each( results, function() { - classes = alt ? 'alternate' : ''; - classes += this.title ? '' : ' no-title'; - list += classes ? '
  • ' : '
  • '; - list += ''; - list += ''; - list += this.title ? this.title : wpLinkL10n.noTitle; - list += '' + this.info + '
  • '; - alt = ! alt; - }); - } - - this.ul[ firstPage ? 'html' : 'append' ]( list ); - }, - maybeLoad: function() { - var self = this, - el = this.element, - bottom = el.scrollTop() + el.height(); - - if ( ! this.query.ready() || bottom < this.contentHeight.height() - wpLink.riverBottomThreshold ) - return; - - setTimeout(function() { - var newTop = el.scrollTop(), - newBottom = newTop + el.height(); - - if ( ! self.query.ready() || newBottom < self.contentHeight.height() - wpLink.riverBottomThreshold ) - return; - - self.waiting.show(); - el.scrollTop( newTop + self.waiting.outerHeight() ); - - self.ajax( function() { - self.waiting.hide(); - }); - }, wpLink.timeToTriggerRiver ); - } - }); - - Query = function( search ) { - this.page = 1; - this.allLoaded = false; - this.querying = false; - this.search = search; - }; - - $.extend( Query.prototype, { - ready: function() { - return ! ( this.querying || this.allLoaded ); - }, - ajax: function( callback ) { - var self = this, - query = { - action : 'wp-link-ajax', - page : this.page, - '_ajax_linking_nonce' : inputs.nonce.val() - }; - - if ( this.search ) - query.search = this.search; - - this.querying = true; - - $.post( ajaxurl, query, function( r ) { - self.page++; - self.querying = false; - self.allLoaded = ! r; - callback( r, query ); - }, 'json' ); - } - }); - - $( document ).ready( wpLink.init ); -})( jQuery ); diff --git a/wp-content/plugins/wp-multibyte-patch/js/20140410/wplink.min.js b/wp-content/plugins/wp-multibyte-patch/js/20140410/wplink.min.js deleted file mode 100644 index 3b3a247..0000000 --- a/wp-content/plugins/wp-multibyte-patch/js/20140410/wplink.min.js +++ /dev/null @@ -1 +0,0 @@ -var wpLink;!function(a){var b,c,d,e,f={},g={};wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",init:function(){f.wrap=a("#wp-link-wrap"),f.dialog=a("#wp-link"),f.backdrop=a("#wp-link-backdrop"),f.submit=a("#wp-link-submit"),f.close=a("#wp-link-close"),f.url=a("#url-field"),f.nonce=a("#_ajax_linking_nonce"),f.title=a("#link-title-field"),f.openInNewTab=a("#link-target-checkbox"),f.search=a("#search-field"),g.search=new d(a("#search-results")),g.recent=new d(a("#most-recent-results")),g.elements=f.dialog.find(".query-results"),f.dialog.keydown(wpLink.keydown),f.dialog.keyup(wpLink.keyup),f.submit.click(function(a){a.preventDefault(),wpLink.update()}),f.close.add(f.backdrop).add("#wp-link-cancel a").click(function(a){a.preventDefault(),wpLink.close()}),a("#wp-link-search-toggle").click(wpLink.toggleInternalLinking),g.elements.on("river-select",wpLink.updateFields),f.search.keyup(function(){var a=this;window.clearTimeout(c),c=window.setTimeout(function(){wpLink.searchInternalLinks.call(a)},500)})},open:function(c){var d;wpLink.range=null,c&&(window.wpActiveEditor=c),window.wpActiveEditor&&(this.textarea=a("#"+window.wpActiveEditor).get(0),"undefined"!=typeof tinymce&&(d=tinymce.get(wpActiveEditor),b=d&&!d.isHidden()?d:null,b&&tinymce.isIE&&(b.windowManager.bookmark=b.selection.getBookmark())),!wpLink.isMCE()&&document.selection&&(this.textarea.focus(),this.range=document.selection.createRange()),f.wrap.show(),f.backdrop.show(),wpLink.refresh())},isMCE:function(){return b&&!b.isHidden()},refresh:function(){g.search.refresh(),g.recent.refresh(),wpLink.isMCE()?wpLink.mceRefresh():wpLink.setDefaultValues(),f.url.focus()[0].select(),g.recent.ul.children().length||g.recent.ajax()},mceRefresh:function(){var a;(a=b.dom.getParent(b.selection.getNode(),"A"))?(f.url.val(b.dom.getAttrib(a,"href")),f.title.val(b.dom.getAttrib(a,"title")),f.openInNewTab.prop("checked","_blank"===b.dom.getAttrib(a,"target")),f.submit.val(wpLinkL10n.update)):wpLink.setDefaultValues()},close:function(){wpLink.isMCE()?b.focus():(wpLink.textarea.focus(),wpLink.range&&(wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select())),f.backdrop.hide(),f.wrap.hide()},getAttrs:function(){return{href:f.url.val(),title:f.title.val(),target:f.openInNewTab.prop("checked")?"_blank":""}},update:function(){wpLink.isMCE()?wpLink.mceUpdate():wpLink.htmlUpdate()},htmlUpdate:function(){var a,b,c,d,e,f,g,h=wpLink.textarea;h&&(a=wpLink.getAttrs(),a.href&&"http://"!=a.href&&(b='/g,">").replace(/"/g,"""),b+=' title="'+f+'"'),a.target&&(b+=' target="'+a.target+'"'),b+=">",document.selection&&wpLink.range?(h.focus(),wpLink.range.text=b+wpLink.range.text+"",wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select(),wpLink.range=null):"undefined"!=typeof h.selectionStart&&(c=h.selectionStart,d=h.selectionEnd,g=h.value.substring(c,d),b=b+g+"",e=c+b.length,c==d&&(e-="".length),h.value=h.value.substring(0,c)+b+h.value.substring(d,h.value.length),h.selectionStart=h.selectionEnd=e),wpLink.close(),h.focus()))},mceUpdate:function(){var a,c=wpLink.getAttrs();return wpLink.close(),b.focus(),tinymce.isIE&&b.selection.moveToBookmark(b.windowManager.bookmark),a=b.dom.getParent(b.selection.getNode(),"a[href]"),c.href&&"http://"!=c.href?(a?b.dom.setAttribs(a,c):b.execCommand("mceInsertLink",!1,c),void b.selection.collapse()):void b.execCommand("unlink")},updateFields:function(a,b,c){f.url.val(b.children(".item-permalink").val()),f.title.val(b.hasClass("no-title")?"":b.children(".item-title").text()),c&&"click"==c.type&&f.url.focus()},setDefaultValues:function(){f.url.val("http://"),f.title.val(""),f.submit.val(wpLinkL10n.save)},searchInternalLinks:function(){var b,c=a(this),d=c.val();if(d.length>1){if(g.recent.hide(),g.search.show(),wpLink.lastSearch==d)return;wpLink.lastSearch=d,b=c.parent().find(".spinner").show(),g.search.change(d),g.search.ajax(function(){b.hide()})}else g.search.hide(),g.recent.show()},next:function(){g.search.next(),g.recent.next()},prev:function(){g.search.prev(),g.recent.prev()},keydown:function(b){var c,d,e=a.ui.keyCode;e.ESCAPE===b.keyCode?(wpLink.close(),b.stopImmediatePropagation()):e.TAB===b.keyCode&&(d=b.target.id,"wp-link-submit"!==d||b.shiftKey?"wp-link-close"===d&&b.shiftKey&&(f.submit.focus(),b.preventDefault()):(f.close.focus(),b.preventDefault())),(b.keyCode===e.UP||b.keyCode===e.DOWN)&&(c=b.keyCode===e.UP?"prev":"next",clearInterval(wpLink.keyInterval),wpLink[c](),wpLink.keyInterval=setInterval(wpLink[c],wpLink.keySensitivity),b.preventDefault())},keyup:function(b){var c=a.ui.keyCode;(b.which===c.UP||b.which===c.DOWN)&&(clearInterval(wpLink.keyInterval),b.preventDefault())},delayedCallback:function(a,b){var c,d,e,f;return b?(setTimeout(function(){return d?a.apply(f,e):void(c=!0)},b),function(){return c?a.apply(this,arguments):(e=arguments,f=this,void(d=!0))}):a},toggleInternalLinking:function(){var a=f.wrap.hasClass("search-panel-visible");f.wrap.toggleClass("search-panel-visible",!a),setUserSetting("wplink",a?"0":"1"),f[a?"url":"search"].focus()}},d=function(b,c){var d=this;this.element=b,this.ul=b.children("ul"),this.contentHeight=b.children("#link-selector-height"),this.waiting=b.find(".river-waiting"),this.change(c),this.refresh(),a("#wp-link .query-results, #wp-link #link-selector").scroll(function(){d.maybeLoad()}),b.on("click","li",function(b){d.select(a(this),b)})},a.extend(d.prototype,{refresh:function(){this.deselect(),this.visible=this.element.is(":visible")},show:function(){this.visible||(this.deselect(),this.element.show(),this.visible=!0)},hide:function(){this.element.hide(),this.visible=!1},select:function(a,b){var c,d,e,f;a.hasClass("unselectable")||a==this.selected||(this.deselect(),this.selected=a.addClass("selected"),c=a.outerHeight(),d=this.element.height(),e=a.position().top,f=this.element.scrollTop(),0>e?this.element.scrollTop(f+e):e+c>d&&this.element.scrollTop(f+e-d+c),this.element.trigger("river-select",[a,b,this]))},deselect:function(){this.selected&&this.selected.removeClass("selected"),this.selected=!1},prev:function(){if(this.visible){var a;this.selected&&(a=this.selected.prev("li"),a.length&&this.select(a))}},next:function(){if(this.visible){var b=this.selected?this.selected.next("li"):a("li:not(.unselectable):first",this.element);b.length&&this.select(b)}},ajax:function(a){var b=this,c=1==this.query.page?0:wpLink.minRiverAJAXDuration,d=wpLink.delayedCallback(function(c,d){b.process(c,d),a&&a(c,d)},c);this.query.ajax(d)},change:function(a){this.query&&this._search==a||(this._search=a,this.query=new e(a),this.element.scrollTop(0))},process:function(b,c){var d="",e=!0,f="",g=1==c.page;b?a.each(b,function(){f=e?"alternate":"",f+=this.title?"":" no-title",d+=f?'
  • ':"
  • ",d+='',d+='',d+=this.title?this.title:wpLinkL10n.noTitle,d+=''+this.info+"
  • ",e=!e}):g&&(d+='
  • '+wpLinkL10n.noMatchesFound+"
  • "),this.ul[g?"html":"append"](d)},maybeLoad:function(){var a=this,b=this.element,c=b.scrollTop()+b.height();!this.query.ready()||c]*>/g, // strip HTML tags - clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc. - count : /\S\s+/g // word-counting regexp - }, - - block : 0, - - wc : function(tx, type) { - var t = this, w = $('.word-count'), tc = 0; - - if ( type === undefined ) - type = wordCountL10n.type; - if ( type !== 'w' && type !== 'c' ) - type = 'w'; - - if ( t.block ) - return; - - t.block = 1; - - setTimeout( function() { - if ( tx ) { - if ( type == 'w' ) { // word-counting - tx = tx.replace( t.settings.strip, ' ' ).replace( / | /gi, ' ' ); - tx = tx.replace( t.settings.clean, '' ); - tx.replace( t.settings.count, function(){tc++;} ); - } - else if ( type == 'c' ) { // char-counting for asian languages - tx = tx.replace( t.settings.strip, '' ).replace( /^ +| +$/gm, '' ); - tx = tx.replace( / +| | /gi, ' ' ); - tx.replace( /[\S \u00A0\u3000]/g, function(){tc++;} ); - } - } - w.html(tc.toString()); - - setTimeout( function() { t.block = 0; }, 2000 ); - }, 1 ); - } - }; - - $(document).bind( 'wpcountwords', function(e, txt) { - wpWordCount.wc(txt); - }); -}(jQuery)); diff --git a/wp-content/plugins/wp-multibyte-patch/js/word-count.min.js b/wp-content/plugins/wp-multibyte-patch/js/word-count.min.js deleted file mode 100644 index f8003d4..0000000 --- a/wp-content/plugins/wp-multibyte-patch/js/word-count.min.js +++ /dev/null @@ -1 +0,0 @@ -var wpWordCount;(function(a,b){wpWordCount={settings:{strip:/<[a-zA-Z\/][^<>]*>/g,clean:/[0-9.(),;:!?%#$¿'"_+=\\/-]+/g,count:/\S\s+/g},block:0,wc:function(e,g){var f=this,d=a(".word-count"),c=0;if(g===b){g=wordCountL10n.type}if(g!=="w"&&g!=="c"){g="w"}if(f.block){return}f.block=1;setTimeout(function(){if(e){if(g=="w"){e=e.replace(f.settings.strip," ").replace(/ | /gi," ");e=e.replace(f.settings.clean,"");e.replace(f.settings.count,function(){c++})}else{if(g=="c"){e=e.replace(f.settings.strip,"").replace(/^ +| +$/gm,"");e=e.replace(/ +| | /gi," ");e.replace(/[\S \u00A0\u3000]/g,function(){c++})}}}d.html(c.toString());setTimeout(function(){f.block=0},2000)},1)}};a(document).bind("wpcountwords",function(d,c){wpWordCount.wc(c)})}(jQuery)); \ No newline at end of file diff --git a/wp-content/plugins/wp-multibyte-patch/js/wplink.js b/wp-content/plugins/wp-multibyte-patch/js/wplink.js deleted file mode 100644 index cae26e1..0000000 --- a/wp-content/plugins/wp-multibyte-patch/js/wplink.js +++ /dev/null @@ -1,615 +0,0 @@ -/* global ajaxurl, tinymce, wpLinkL10n, setUserSetting, wpActiveEditor */ -var wpLink; - -( function( $ ) { - var editor, searchTimer, River, Query, - inputs = {}, - rivers = {}, - isTouch = ( 'ontouchend' in document ); - - wpLink = { - timeToTriggerRiver: 150, - minRiverAJAXDuration: 200, - riverBottomThreshold: 5, - keySensitivity: 100, - lastSearch: '', - textarea: '', - - init: function() { - inputs.wrap = $('#wp-link-wrap'); - inputs.dialog = $( '#wp-link' ); - inputs.backdrop = $( '#wp-link-backdrop' ); - inputs.submit = $( '#wp-link-submit' ); - inputs.close = $( '#wp-link-close' ); - // URL - inputs.url = $( '#url-field' ); - inputs.nonce = $( '#_ajax_linking_nonce' ); - // Secondary options - inputs.title = $( '#link-title-field' ); - // Advanced Options - inputs.openInNewTab = $( '#link-target-checkbox' ); - inputs.search = $( '#search-field' ); - // Build Rivers - rivers.search = new River( $( '#search-results' ) ); - rivers.recent = new River( $( '#most-recent-results' ) ); - rivers.elements = inputs.dialog.find( '.query-results' ); - - // Get search notice text - inputs.queryNotice = $( '#query-notice-message' ); - inputs.queryNoticeTextDefault = inputs.queryNotice.find( '.query-notice-default' ); - inputs.queryNoticeTextHint = inputs.queryNotice.find( '.query-notice-hint' ); - - // Bind event handlers - inputs.dialog.keydown( wpLink.keydown ); - inputs.dialog.keyup( wpLink.keyup ); - inputs.submit.click( function( event ) { - event.preventDefault(); - wpLink.update(); - }); - inputs.close.add( inputs.backdrop ).add( '#wp-link-cancel a' ).click( function( event ) { - event.preventDefault(); - wpLink.close(); - }); - - $( '#wp-link-search-toggle' ).on( 'click', wpLink.toggleInternalLinking ); - - rivers.elements.on( 'river-select', wpLink.updateFields ); - - // Display 'hint' message when search field or 'query-results' box are focused - inputs.search.on( 'focus.wplink', function() { - inputs.queryNoticeTextDefault.hide(); - inputs.queryNoticeTextHint.removeClass( 'screen-reader-text' ).show(); - } ).on( 'blur.wplink', function() { - inputs.queryNoticeTextDefault.show(); - inputs.queryNoticeTextHint.addClass( 'screen-reader-text' ).hide(); - } ); - - inputs.search.keyup( function() { - var self = this; - - window.clearTimeout( searchTimer ); - searchTimer = window.setTimeout( function() { - wpLink.searchInternalLinks.call( self ); - }, 500 ); - }); - }, - - open: function( editorId ) { - var ed; - - wpLink.range = null; - - if ( editorId ) { - window.wpActiveEditor = editorId; - } - - if ( ! window.wpActiveEditor ) { - return; - } - - this.textarea = $( '#' + window.wpActiveEditor ).get( 0 ); - - if ( typeof tinymce !== 'undefined' ) { - ed = tinymce.get( wpActiveEditor ); - - if ( ed && ! ed.isHidden() ) { - editor = ed; - } else { - editor = null; - } - - if ( editor && tinymce.isIE ) { - editor.windowManager.bookmark = editor.selection.getBookmark(); - } - } - - if ( ! wpLink.isMCE() && document.selection ) { - this.textarea.focus(); - this.range = document.selection.createRange(); - } - - inputs.wrap.show(); - inputs.backdrop.show(); - - wpLink.refresh(); - $( document ).trigger( 'wplink-open', inputs.wrap ); - }, - - isMCE: function() { - return editor && ! editor.isHidden(); - }, - - refresh: function() { - // Refresh rivers (clear links, check visibility) - rivers.search.refresh(); - rivers.recent.refresh(); - - if ( wpLink.isMCE() ) { - wpLink.mceRefresh(); - } else { - wpLink.setDefaultValues(); - } - - if ( isTouch ) { - // Close the onscreen keyboard - inputs.url.focus().blur(); - } else { - // Focus the URL field and highlight its contents. - // If this is moved above the selection changes, - // IE will show a flashing cursor over the dialog. - inputs.url.focus()[0].select(); - } - - // Load the most recent results if this is the first time opening the panel. - if ( ! rivers.recent.ul.children().length ) { - rivers.recent.ajax(); - } - }, - - mceRefresh: function() { - var e; - - // If link exists, select proper values. - if ( e = editor.dom.getParent( editor.selection.getNode(), 'A' ) ) { - // Set URL and description. - inputs.url.val( editor.dom.getAttrib( e, 'href' ) ); - inputs.title.val( editor.dom.getAttrib( e, 'title' ) ); - // Set open in new tab. - inputs.openInNewTab.prop( 'checked', ( '_blank' === editor.dom.getAttrib( e, 'target' ) ) ); - // Update save prompt. - inputs.submit.val( wpLinkL10n.update ); - - // If there's no link, set the default values. - } else { - wpLink.setDefaultValues(); - } - }, - - close: function() { - if ( ! wpLink.isMCE() ) { - wpLink.textarea.focus(); - - if ( wpLink.range ) { - wpLink.range.moveToBookmark( wpLink.range.getBookmark() ); - wpLink.range.select(); - } - } else { - editor.focus(); - } - - inputs.backdrop.hide(); - inputs.wrap.hide(); - $( document ).trigger( 'wplink-close', inputs.wrap ); - }, - - getAttrs: function() { - return { - href: inputs.url.val(), - title: inputs.title.val(), - target: inputs.openInNewTab.prop( 'checked' ) ? '_blank' : '' - }; - }, - - update: function() { - if ( wpLink.isMCE() ) - wpLink.mceUpdate(); - else - wpLink.htmlUpdate(); - }, - - htmlUpdate: function() { - var attrs, html, begin, end, cursor, title, selection, - textarea = wpLink.textarea; - - if ( ! textarea ) - return; - - attrs = wpLink.getAttrs(); - - // If there's no href, return. - if ( ! attrs.href || attrs.href == 'http://' ) - return; - - // Build HTML - html = '/g, '>' ).replace( /"/g, '"' ); - html += ' title="' + title + '"'; - } - - if ( attrs.target ) { - html += ' target="' + attrs.target + '"'; - } - - html += '>'; - - // Insert HTML - if ( document.selection && wpLink.range ) { - // IE - // Note: If no text is selected, IE will not place the cursor - // inside the closing tag. - textarea.focus(); - wpLink.range.text = html + wpLink.range.text + ''; - wpLink.range.moveToBookmark( wpLink.range.getBookmark() ); - wpLink.range.select(); - - wpLink.range = null; - } else if ( typeof textarea.selectionStart !== 'undefined' ) { - // W3C - begin = textarea.selectionStart; - end = textarea.selectionEnd; - selection = textarea.value.substring( begin, end ); - html = html + selection + ''; - cursor = begin + html.length; - - // If no text is selected, place the cursor inside the closing tag. - if ( begin == end ) - cursor -= ''.length; - - textarea.value = textarea.value.substring( 0, begin ) + html + - textarea.value.substring( end, textarea.value.length ); - - // Update cursor position - textarea.selectionStart = textarea.selectionEnd = cursor; - } - - wpLink.close(); - textarea.focus(); - }, - - mceUpdate: function() { - var link, - attrs = wpLink.getAttrs(); - - wpLink.close(); - editor.focus(); - - if ( tinymce.isIE ) { - editor.selection.moveToBookmark( editor.windowManager.bookmark ); - } - - link = editor.dom.getParent( editor.selection.getNode(), 'a[href]' ); - - // If the values are empty, unlink and return - if ( ! attrs.href || attrs.href == 'http://' ) { - editor.execCommand( 'unlink' ); - return; - } - - if ( link ) { - editor.dom.setAttribs( link, attrs ); - } else { - editor.execCommand( 'mceInsertLink', false, attrs ); - } - - // Move the cursor to the end of the selection - editor.selection.collapse(); - }, - - updateFields: function( e, li ) { - inputs.url.val( li.children( '.item-permalink' ).val() ); - inputs.title.val( li.hasClass( 'no-title' ) ? '' : li.children( '.item-title' ).text() ); - }, - - setDefaultValues: function() { - var selection = editor && editor.selection.getContent(), - emailRegexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i, - urlRegexp = /^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,4}[^ "]*$/i; - - if ( selection && emailRegexp.test( selection ) ) { - // Selection is email address - inputs.url.val( 'mailto:' + selection ); - } else if ( selection && urlRegexp.test( selection ) ) { - // Selection is URL - inputs.url.val( selection.replace( /&|�?38;/gi, '&' ) ); - } else { - // Set URL to default. - inputs.url.val( 'http://' ); - } - - // Set description to default. - inputs.title.val( '' ); - - // Update save prompt. - inputs.submit.val( wpLinkL10n.save ); - }, - - searchInternalLinks: function() { - var t = $( this ), waiting, - search = t.val(); - - if ( search.length > 1 ) { - rivers.recent.hide(); - rivers.search.show(); - - // Don't search if the keypress didn't change the title. - if ( wpLink.lastSearch == search ) - return; - - wpLink.lastSearch = search; - waiting = t.parent().find('.spinner').show(); - - rivers.search.change( search ); - rivers.search.ajax( function() { - waiting.hide(); - }); - } else { - rivers.search.hide(); - rivers.recent.show(); - } - }, - - next: function() { - rivers.search.next(); - rivers.recent.next(); - }, - - prev: function() { - rivers.search.prev(); - rivers.recent.prev(); - }, - - keydown: function( event ) { - var fn, id, - key = $.ui.keyCode; - - if ( key.ESCAPE === event.keyCode ) { - wpLink.close(); - event.stopImmediatePropagation(); - } else if ( key.TAB === event.keyCode ) { - id = event.target.id; - - // wp-link-submit must always be the last focusable element in the dialog. - // following focusable elements will be skipped on keyboard navigation. - if ( id === 'wp-link-submit' && ! event.shiftKey ) { - inputs.close.focus(); - event.preventDefault(); - } else if ( id === 'wp-link-close' && event.shiftKey ) { - inputs.submit.focus(); - event.preventDefault(); - } - } - - if ( event.keyCode !== key.UP && event.keyCode !== key.DOWN ) { - return; - } - - if ( document.activeElement && - ( document.activeElement.id === 'link-title-field' || document.activeElement.id === 'url-field' ) ) { - return; - } - - fn = event.keyCode === key.UP ? 'prev' : 'next'; - clearInterval( wpLink.keyInterval ); - wpLink[ fn ](); - wpLink.keyInterval = setInterval( wpLink[ fn ], wpLink.keySensitivity ); - event.preventDefault(); - }, - - keyup: function( event ) { - var key = $.ui.keyCode; - - if ( event.which === key.UP || event.which === key.DOWN ) { - clearInterval( wpLink.keyInterval ); - event.preventDefault(); - } - }, - - delayedCallback: function( func, delay ) { - var timeoutTriggered, funcTriggered, funcArgs, funcContext; - - if ( ! delay ) - return func; - - setTimeout( function() { - if ( funcTriggered ) - return func.apply( funcContext, funcArgs ); - // Otherwise, wait. - timeoutTriggered = true; - }, delay ); - - return function() { - if ( timeoutTriggered ) - return func.apply( this, arguments ); - // Otherwise, wait. - funcArgs = arguments; - funcContext = this; - funcTriggered = true; - }; - }, - - toggleInternalLinking: function( event ) { - var visible = inputs.wrap.hasClass( 'search-panel-visible' ); - - inputs.wrap.toggleClass( 'search-panel-visible', ! visible ); - setUserSetting( 'wplink', visible ? '0' : '1' ); - inputs[ ! visible ? 'search' : 'url' ].focus(); - event.preventDefault(); - } - }; - - River = function( element, search ) { - var self = this; - this.element = element; - this.ul = element.children( 'ul' ); - this.contentHeight = element.children( '#link-selector-height' ); - this.waiting = element.find('.river-waiting'); - - this.change( search ); - this.refresh(); - - $( '#wp-link .query-results, #wp-link #link-selector' ).scroll( function() { - self.maybeLoad(); - }); - element.on( 'click', 'li', function( event ) { - self.select( $( this ), event ); - }); - }; - - $.extend( River.prototype, { - refresh: function() { - this.deselect(); - this.visible = this.element.is( ':visible' ); - }, - show: function() { - if ( ! this.visible ) { - this.deselect(); - this.element.show(); - this.visible = true; - } - }, - hide: function() { - this.element.hide(); - this.visible = false; - }, - // Selects a list item and triggers the river-select event. - select: function( li, event ) { - var liHeight, elHeight, liTop, elTop; - - if ( li.hasClass( 'unselectable' ) || li == this.selected ) - return; - - this.deselect(); - this.selected = li.addClass( 'selected' ); - // Make sure the element is visible - liHeight = li.outerHeight(); - elHeight = this.element.height(); - liTop = li.position().top; - elTop = this.element.scrollTop(); - - if ( liTop < 0 ) // Make first visible element - this.element.scrollTop( elTop + liTop ); - else if ( liTop + liHeight > elHeight ) // Make last visible element - this.element.scrollTop( elTop + liTop - elHeight + liHeight ); - - // Trigger the river-select event - this.element.trigger( 'river-select', [ li, event, this ] ); - }, - deselect: function() { - if ( this.selected ) - this.selected.removeClass( 'selected' ); - this.selected = false; - }, - prev: function() { - if ( ! this.visible ) - return; - - var to; - if ( this.selected ) { - to = this.selected.prev( 'li' ); - if ( to.length ) - this.select( to ); - } - }, - next: function() { - if ( ! this.visible ) - return; - - var to = this.selected ? this.selected.next( 'li' ) : $( 'li:not(.unselectable):first', this.element ); - if ( to.length ) - this.select( to ); - }, - ajax: function( callback ) { - var self = this, - delay = this.query.page == 1 ? 0 : wpLink.minRiverAJAXDuration, - response = wpLink.delayedCallback( function( results, params ) { - self.process( results, params ); - if ( callback ) - callback( results, params ); - }, delay ); - - this.query.ajax( response ); - }, - change: function( search ) { - if ( this.query && this._search == search ) - return; - - this._search = search; - this.query = new Query( search ); - this.element.scrollTop( 0 ); - }, - process: function( results, params ) { - var list = '', alt = true, classes = '', - firstPage = params.page == 1; - - if ( ! results ) { - if ( firstPage ) { - list += '
  • ' + - wpLinkL10n.noMatchesFound + '
  • '; - } - } else { - $.each( results, function() { - classes = alt ? 'alternate' : ''; - classes += this.title ? '' : ' no-title'; - list += classes ? '
  • ' : '
  • '; - list += ''; - list += ''; - list += this.title ? this.title : wpLinkL10n.noTitle; - list += '' + this.info + '
  • '; - alt = ! alt; - }); - } - - this.ul[ firstPage ? 'html' : 'append' ]( list ); - }, - maybeLoad: function() { - var self = this, - el = this.element, - bottom = el.scrollTop() + el.height(); - - if ( ! this.query.ready() || bottom < this.contentHeight.height() - wpLink.riverBottomThreshold ) - return; - - setTimeout(function() { - var newTop = el.scrollTop(), - newBottom = newTop + el.height(); - - if ( ! self.query.ready() || newBottom < self.contentHeight.height() - wpLink.riverBottomThreshold ) - return; - - self.waiting.show(); - el.scrollTop( newTop + self.waiting.outerHeight() ); - - self.ajax( function() { - self.waiting.hide(); - }); - }, wpLink.timeToTriggerRiver ); - } - }); - - Query = function( search ) { - this.page = 1; - this.allLoaded = false; - this.querying = false; - this.search = search; - }; - - $.extend( Query.prototype, { - ready: function() { - return ! ( this.querying || this.allLoaded ); - }, - ajax: function( callback ) { - var self = this, - query = { - action : 'wp-link-ajax', - page : this.page, - '_ajax_linking_nonce' : inputs.nonce.val() - }; - - if ( this.search ) - query.search = this.search; - - this.querying = true; - - $.post( ajaxurl, query, function( r ) { - self.page++; - self.querying = false; - self.allLoaded = ! r; - callback( r, query ); - }, 'json' ); - } - }); - - $( document ).ready( wpLink.init ); -})( jQuery ); diff --git a/wp-content/plugins/wp-multibyte-patch/js/wplink.min.js b/wp-content/plugins/wp-multibyte-patch/js/wplink.min.js deleted file mode 100644 index f5ba259..0000000 --- a/wp-content/plugins/wp-multibyte-patch/js/wplink.min.js +++ /dev/null @@ -1 +0,0 @@ -var wpLink;!function(a){var b,c,d,e,f={},g={},h="ontouchend"in document;wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",init:function(){f.wrap=a("#wp-link-wrap"),f.dialog=a("#wp-link"),f.backdrop=a("#wp-link-backdrop"),f.submit=a("#wp-link-submit"),f.close=a("#wp-link-close"),f.url=a("#url-field"),f.nonce=a("#_ajax_linking_nonce"),f.title=a("#link-title-field"),f.openInNewTab=a("#link-target-checkbox"),f.search=a("#search-field"),g.search=new d(a("#search-results")),g.recent=new d(a("#most-recent-results")),g.elements=f.dialog.find(".query-results"),f.queryNotice=a("#query-notice-message"),f.queryNoticeTextDefault=f.queryNotice.find(".query-notice-default"),f.queryNoticeTextHint=f.queryNotice.find(".query-notice-hint"),f.dialog.keydown(wpLink.keydown),f.dialog.keyup(wpLink.keyup),f.submit.click(function(a){a.preventDefault(),wpLink.update()}),f.close.add(f.backdrop).add("#wp-link-cancel a").click(function(a){a.preventDefault(),wpLink.close()}),a("#wp-link-search-toggle").on("click",wpLink.toggleInternalLinking),g.elements.on("river-select",wpLink.updateFields),f.search.on("focus.wplink",function(){f.queryNoticeTextDefault.hide(),f.queryNoticeTextHint.removeClass("screen-reader-text").show()}).on("blur.wplink",function(){f.queryNoticeTextDefault.show(),f.queryNoticeTextHint.addClass("screen-reader-text").hide()}),f.search.keyup(function(){var a=this;window.clearTimeout(c),c=window.setTimeout(function(){wpLink.searchInternalLinks.call(a)},500)})},open:function(c){var d;wpLink.range=null,c&&(window.wpActiveEditor=c),window.wpActiveEditor&&(this.textarea=a("#"+window.wpActiveEditor).get(0),"undefined"!=typeof tinymce&&(d=tinymce.get(wpActiveEditor),b=d&&!d.isHidden()?d:null,b&&tinymce.isIE&&(b.windowManager.bookmark=b.selection.getBookmark())),!wpLink.isMCE()&&document.selection&&(this.textarea.focus(),this.range=document.selection.createRange()),f.wrap.show(),f.backdrop.show(),wpLink.refresh(),a(document).trigger("wplink-open",f.wrap))},isMCE:function(){return b&&!b.isHidden()},refresh:function(){g.search.refresh(),g.recent.refresh(),wpLink.isMCE()?wpLink.mceRefresh():wpLink.setDefaultValues(),h?f.url.focus().blur():f.url.focus()[0].select(),g.recent.ul.children().length||g.recent.ajax()},mceRefresh:function(){var a;(a=b.dom.getParent(b.selection.getNode(),"A"))?(f.url.val(b.dom.getAttrib(a,"href")),f.title.val(b.dom.getAttrib(a,"title")),f.openInNewTab.prop("checked","_blank"===b.dom.getAttrib(a,"target")),f.submit.val(wpLinkL10n.update)):wpLink.setDefaultValues()},close:function(){wpLink.isMCE()?b.focus():(wpLink.textarea.focus(),wpLink.range&&(wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select())),f.backdrop.hide(),f.wrap.hide(),a(document).trigger("wplink-close",f.wrap)},getAttrs:function(){return{href:f.url.val(),title:f.title.val(),target:f.openInNewTab.prop("checked")?"_blank":""}},update:function(){wpLink.isMCE()?wpLink.mceUpdate():wpLink.htmlUpdate()},htmlUpdate:function(){var a,b,c,d,e,f,g,h=wpLink.textarea;h&&(a=wpLink.getAttrs(),a.href&&"http://"!=a.href&&(b='/g,">").replace(/"/g,"""),b+=' title="'+f+'"'),a.target&&(b+=' target="'+a.target+'"'),b+=">",document.selection&&wpLink.range?(h.focus(),wpLink.range.text=b+wpLink.range.text+"",wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select(),wpLink.range=null):"undefined"!=typeof h.selectionStart&&(c=h.selectionStart,d=h.selectionEnd,g=h.value.substring(c,d),b=b+g+"",e=c+b.length,c==d&&(e-="".length),h.value=h.value.substring(0,c)+b+h.value.substring(d,h.value.length),h.selectionStart=h.selectionEnd=e),wpLink.close(),h.focus()))},mceUpdate:function(){var a,c=wpLink.getAttrs();return wpLink.close(),b.focus(),tinymce.isIE&&b.selection.moveToBookmark(b.windowManager.bookmark),a=b.dom.getParent(b.selection.getNode(),"a[href]"),c.href&&"http://"!=c.href?(a?b.dom.setAttribs(a,c):b.execCommand("mceInsertLink",!1,c),void b.selection.collapse()):void b.execCommand("unlink")},updateFields:function(a,b){f.url.val(b.children(".item-permalink").val()),f.title.val(b.hasClass("no-title")?"":b.children(".item-title").text())},setDefaultValues:function(){var a=b&&b.selection.getContent(),c=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,d=/^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,4}[^ "]*$/i;f.url.val(a&&c.test(a)?"mailto:"+a:a&&d.test(a)?a.replace(/&|�?38;/gi,"&"):"http://"),f.title.val(""),f.submit.val(wpLinkL10n.save)},searchInternalLinks:function(){var b,c=a(this),d=c.val();if(d.length>1){if(g.recent.hide(),g.search.show(),wpLink.lastSearch==d)return;wpLink.lastSearch=d,b=c.parent().find(".spinner").show(),g.search.change(d),g.search.ajax(function(){b.hide()})}else g.search.hide(),g.recent.show()},next:function(){g.search.next(),g.recent.next()},prev:function(){g.search.prev(),g.recent.prev()},keydown:function(b){var c,d,e=a.ui.keyCode;e.ESCAPE===b.keyCode?(wpLink.close(),b.stopImmediatePropagation()):e.TAB===b.keyCode&&(d=b.target.id,"wp-link-submit"!==d||b.shiftKey?"wp-link-close"===d&&b.shiftKey&&(f.submit.focus(),b.preventDefault()):(f.close.focus(),b.preventDefault())),(b.keyCode===e.UP||b.keyCode===e.DOWN)&&(!document.activeElement||"link-title-field"!==document.activeElement.id&&"url-field"!==document.activeElement.id)&&(c=b.keyCode===e.UP?"prev":"next",clearInterval(wpLink.keyInterval),wpLink[c](),wpLink.keyInterval=setInterval(wpLink[c],wpLink.keySensitivity),b.preventDefault())},keyup:function(b){var c=a.ui.keyCode;(b.which===c.UP||b.which===c.DOWN)&&(clearInterval(wpLink.keyInterval),b.preventDefault())},delayedCallback:function(a,b){var c,d,e,f;return b?(setTimeout(function(){return d?a.apply(f,e):void(c=!0)},b),function(){return c?a.apply(this,arguments):(e=arguments,f=this,void(d=!0))}):a},toggleInternalLinking:function(a){var b=f.wrap.hasClass("search-panel-visible");f.wrap.toggleClass("search-panel-visible",!b),setUserSetting("wplink",b?"0":"1"),f[b?"url":"search"].focus(),a.preventDefault()}},d=function(b,c){var d=this;this.element=b,this.ul=b.children("ul"),this.contentHeight=b.children("#link-selector-height"),this.waiting=b.find(".river-waiting"),this.change(c),this.refresh(),a("#wp-link .query-results, #wp-link #link-selector").scroll(function(){d.maybeLoad()}),b.on("click","li",function(b){d.select(a(this),b)})},a.extend(d.prototype,{refresh:function(){this.deselect(),this.visible=this.element.is(":visible")},show:function(){this.visible||(this.deselect(),this.element.show(),this.visible=!0)},hide:function(){this.element.hide(),this.visible=!1},select:function(a,b){var c,d,e,f;a.hasClass("unselectable")||a==this.selected||(this.deselect(),this.selected=a.addClass("selected"),c=a.outerHeight(),d=this.element.height(),e=a.position().top,f=this.element.scrollTop(),0>e?this.element.scrollTop(f+e):e+c>d&&this.element.scrollTop(f+e-d+c),this.element.trigger("river-select",[a,b,this]))},deselect:function(){this.selected&&this.selected.removeClass("selected"),this.selected=!1},prev:function(){if(this.visible){var a;this.selected&&(a=this.selected.prev("li"),a.length&&this.select(a))}},next:function(){if(this.visible){var b=this.selected?this.selected.next("li"):a("li:not(.unselectable):first",this.element);b.length&&this.select(b)}},ajax:function(a){var b=this,c=1==this.query.page?0:wpLink.minRiverAJAXDuration,d=wpLink.delayedCallback(function(c,d){b.process(c,d),a&&a(c,d)},c);this.query.ajax(d)},change:function(a){this.query&&this._search==a||(this._search=a,this.query=new e(a),this.element.scrollTop(0))},process:function(b,c){var d="",e=!0,f="",g=1==c.page;b?a.each(b,function(){f=e?"alternate":"",f+=this.title?"":" no-title",d+=f?'
  • ':"
  • ",d+='',d+='',d+=this.title?this.title:wpLinkL10n.noTitle,d+=''+this.info+"
  • ",e=!e}):g&&(d+='
  • '+wpLinkL10n.noMatchesFound+"
  • "),this.ul[g?"html":"append"](d)},maybeLoad:function(){var a=this,b=this.element,c=b.scrollTop()+b.height();!this.query.ready()||c\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: wp-multibyte-patch.php:405 -msgid "Sorry, WP Multibyte Patch requires WordPress %s or later." -msgstr "お使いの WP Multibyte Patch を有効化するには WordPress %s 以上が必要です。" - -#: wp-multibyte-patch.php:409 -msgid "Sorry, WP Multibyte Patch requires mbstring functions." -msgstr "お使いの WP Multibyte Patch を有効化するには PHP の mbstring 関数が必要です。" - -#. Plugin URI of the plugin/theme -msgid "http://eastcoder.com/code/wp-multibyte-patch/" -msgstr "http://eastcoder.com/code/wp-multibyte-patch/" - -#. Description of the plugin/theme -msgid "Multibyte functionality enhancement for the WordPress Japanese package." -msgstr "WP Multibyte Patch は、本家版、日本語版 WordPress のマルチバイト文字の取り扱いに関する不具合の累積的修正と強化を行うプラグインです。 » 詳しい説明を読む" - diff --git a/wp-content/plugins/wp-multibyte-patch/languages/wp-multibyte-patch.pot b/wp-content/plugins/wp-multibyte-patch/languages/wp-multibyte-patch.pot deleted file mode 100644 index 7366c2e..0000000 --- a/wp-content/plugins/wp-multibyte-patch/languages/wp-multibyte-patch.pot +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2012 WP Multibyte Patch -# This file is distributed under the same license as the WP Multibyte Patch package. -msgid "" -msgstr "" -"Project-Id-Version: WP Multibyte Patch\n" -"Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-multibyte-patch\n" -"POT-Creation-Date: 2012-06-09 14:33:17+00:00\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2011-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" - -#: wp-multibyte-patch.php:405 -msgid "Sorry, WP Multibyte Patch requires WordPress %s or later." -msgstr "" - -#: wp-multibyte-patch.php:409 -msgid "" -"Sorry, WP Multibyte Patch requires mbstring functions." -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "http://eastcoder.com/code/wp-multibyte-patch/" -msgstr "" - -#. Description of the plugin/theme -msgid "Multibyte functionality enhancement for the WordPress Japanese package." -msgstr "" diff --git a/wp-content/plugins/wp-multibyte-patch/readme.txt b/wp-content/plugins/wp-multibyte-patch/readme.txt deleted file mode 100644 index db16ea7..0000000 --- a/wp-content/plugins/wp-multibyte-patch/readme.txt +++ /dev/null @@ -1,18 +0,0 @@ -=== WP Multibyte Patch === -Contributors: tenpura -Tags: multibyte,i18n,wp-multibyte-patch,Japanese -Requires at least: 3.9-RC1 -Tested up to: 4.0 -Stable tag: 2.1.1 - -Multibyte functionality enhancement for the WordPress Japanese package. - -== Description == - -Multibyte functionality enhancement for the WordPress Japanese package. -[日本語の説明を読む](http://eastcoder.com/code/wp-multibyte-patch/ "Documentation in Japanese") - -== Installation == - -1. Upload the `wp-multibyte-patch` folder to the `/wp-content/plugins/` directory. -2. Activate the plugin through the Plugins menu in WordPress. diff --git a/wp-content/plugins/wp-multibyte-patch/wp-multibyte-patch.php b/wp-content/plugins/wp-multibyte-patch/wp-multibyte-patch.php deleted file mode 100644 index 3a4a387..0000000 --- a/wp-content/plugins/wp-multibyte-patch/wp-multibyte-patch.php +++ /dev/null @@ -1,462 +0,0 @@ - - * @copyright Copyright (c) 2014 Seisuke Kuraishi, Tinybit Inc. - * @license http://opensource.org/licenses/gpl-2.0.php GPLv2 - * @link http://eastcoder.com/code/wp-multibyte-patch/ - */ - -/** - * @package WP_Multibyte_Patch - */ -class multibyte_patch { - - // Do not edit this section. Use wpmp-config.php instead. - var $conf = array( - 'excerpt_mblength' => 110, - 'excerpt_more' => ' […]', - 'comment_excerpt_mblength' => 40, - 'dashboard_recent_drafts_mblength' => 40, - 'patch_wp_mail' => false, - 'patch_incoming_trackback' => false, - 'patch_incoming_pingback' => false, - 'patch_wp_trim_excerpt' => true, - 'patch_wp_trim_words' => false, - 'patch_get_comment_excerpt' => true, - 'patch_dashboard_recent_drafts' => true, - 'patch_process_search_terms' => false, - 'patch_admin_custom_css' => false, - 'patch_wplink_js' => true, - 'patch_word_count_js' => true, - 'patch_force_character_count' => false, - 'patch_force_twentytwelve_open_sans_off' => false, - 'patch_force_twentythirteen_google_fonts_off' => false, - 'patch_force_twentyfourteen_google_fonts_off' => false, - 'patch_sanitize_file_name' => true, - 'patch_bp_create_excerpt' => false, - 'bp_excerpt_mblength' => 110, - 'bp_excerpt_more' => ' […]' - ); - - var $blog_encoding = 'UTF-8'; - var $has_mbfunctions = false; - var $mbfunctions_required = false; - var $has_mb_strlen = false; - var $debug_suffix = ''; - var $textdomain = 'wp-multibyte-patch'; - var $lang_dir = 'languages'; - var $required_version = '3.9-RC1'; - var $query_based_vars = array(); - - // For fallback purpose only. (1.6) - function guess_encoding( $string, $encoding = '' ) { - $blog_encoding = $this->blog_encoding; - - if ( !$encoding && seems_utf8( $string ) ) - return 'UTF-8'; - elseif ( !$encoding ) - return $blog_encoding; - else - return $encoding; - } - - // For fallback purpose only. (1.6) - function convenc( $string, $to_encoding, $from_encoding = '' ) { - $blog_encoding = $this->blog_encoding; - - if ( '' == $from_encoding ) - $from_encoding = $blog_encoding; - - if ( strtoupper( $to_encoding ) == strtoupper( $from_encoding ) ) - return $string; - else - return mb_convert_encoding( $string, $to_encoding, $from_encoding ); - } - - function incoming_trackback( $commentdata ) { - if ( 'trackback' != $commentdata['comment_type'] ) - return $commentdata; - - if ( false === $this->conf['patch_incoming_trackback'] ) - return $commentdata; - - $title = isset( $_POST['title'] ) ? wp_unslash( $_POST['title'] ) : ''; - $excerpt = isset( $_POST['excerpt'] ) ? wp_unslash( $_POST['excerpt'] ) : ''; - $blog_name = isset( $_POST['blog_name'] ) ? wp_unslash( $_POST['blog_name'] ) : ''; - $blog_encoding = $this->blog_encoding; - - $from_encoding = isset( $_POST['charset'] ) ? $_POST['charset'] : ''; - - if ( !$from_encoding ) - $from_encoding = ( preg_match( "/^.*charset=([a-zA-Z0-9\-_]+).*$/i", $_SERVER['CONTENT_TYPE'], $matched ) ) ? $matched[1] : ''; - - $from_encoding = str_replace( array( ',', ' ' ), '', strtoupper( trim( $from_encoding ) ) ); - $from_encoding = $this->guess_encoding( $excerpt . $title . $blog_name, $from_encoding ); - - $title = $this->convenc( $title, $blog_encoding, $from_encoding ); - $blog_name = $this->convenc( $blog_name, $blog_encoding, $from_encoding ); - $excerpt = $this->convenc( $excerpt, $blog_encoding, $from_encoding ); - - $title = strip_tags( $title ); - $excerpt = strip_tags( $excerpt ); - - $title = ( strlen( $title ) > 250 ) ? mb_strcut( $title, 0, 250, $blog_encoding ) . '…' : $title; - $excerpt = ( strlen( $excerpt ) > 255 ) ? mb_strcut( $excerpt, 0, 252, $blog_encoding ) . '…' : $excerpt; - - $commentdata['comment_author'] = wp_slash( $blog_name ); - $commentdata['comment_content'] = wp_slash( "$title\n\n$excerpt" ); - - return $commentdata; - } - - function pre_remote_source( $linea, $pagelinkedto ) { - $this->pingback_ping_linea = $linea; - $this->pingback_ping_pagelinkedto = $pagelinkedto; - return $linea; - } - - function incoming_pingback( $commentdata ) { - if ( 'pingback' != $commentdata['comment_type'] ) - return $commentdata; - - if ( false === $this->conf['patch_incoming_pingback'] ) - return $commentdata; - - $pagelinkedto = $this->pingback_ping_pagelinkedto; - $linea = $this->pingback_ping_linea; - - $linea = preg_replace( "/" . preg_quote( ']*>/i", "\n\n", $linea ); - - preg_match( '|([^<]*?)|is', $linea, $matchtitle ); - $title = $matchtitle[1]; - - preg_match( "/]+charset=\"*([a-zA-Z0-9\-_]+)\"*[^<>]*>/i", $linea, $matches ); - $charset = isset( $matches[1] ) ? $matches[1] : ''; - $from_encoding = $this->guess_encoding( strip_tags( $linea ), $charset ); - $blog_encoding = $this->blog_encoding; - - $linea = strip_tags( $linea, '' ); - $linea = $this->convenc( $linea, $blog_encoding, $from_encoding ); - $p = explode( "\n\n", $linea ); - - foreach ( $p as $para ) { - if ( strpos( $para, $pagelinkedto ) !== false && preg_match( "/^([^<>]*)(\]+[\"']" . preg_quote( $pagelinkedto, '/' ) . "[\"'][^<>]*\>)([^<>]+)(\<\/a\>)(.*)$/i", $para, $context ) ) - break; - } - - if ( !$context ) - return $commentdata; - - $context[1] = strip_tags( $context[1] ); - $context[5] = strip_tags( $context[5] ); - $len_max = 250; - $len_c3 = strlen( $context[3] ); - - if ( $len_c3 > $len_max ) { - $excerpt = mb_strcut( $context[3], 0, 250, $blog_encoding ); - } else { - $len_c1 = strlen( $context[1] ); - $len_c5 = strlen( $context[5] ); - $len_left = $len_max - $len_c3; - $len_left_even = ceil( $len_left / 2 ); - - if ( $len_left_even > $len_c1 ) { - $context[5] = mb_strcut( $context[5], 0, $len_left - $len_c1, $blog_encoding ); - } - elseif ( $len_left_even > $len_c5 ) { - $context[1] .= "\t\t\t\t\t\t"; - $context[1] = mb_strcut( $context[1], $len_c1 - ( $len_left - $len_c5 ), $len_c1 + 6, $blog_encoding ); - $context[1] = preg_replace( "/\t*$/", '', $context[1] ); - } - else { - $context[1] .= "\t\t\t\t\t\t"; - $context[1] = mb_strcut( $context[1], $len_c1 - $len_left_even, $len_c1 + 6, $blog_encoding ); - $context[1] = preg_replace( "/\t*$/", '', $context[1] ); - $context[5] = mb_strcut( $context[5], 0, $len_left_even, $blog_encoding ); - } - - $excerpt = $context[1] . $context[3] . $context[5]; - } - - $commentdata['comment_content'] = '[…] ' . esc_html( $excerpt ) . ' […]'; - $commentdata['comment_content'] = wp_slash( $commentdata['comment_content'] ); - $commentdata['comment_author'] = $this->convenc( $title, $blog_encoding, $from_encoding ); - $commentdata['comment_author'] = wp_slash( $commentdata['comment_author'] ); - - return $commentdata; - } - - function preprocess_comment( $commentdata ) { - if ( $commentdata['comment_type'] == 'trackback' ) - return $this->incoming_trackback( $commentdata ); - elseif ( $commentdata['comment_type'] == 'pingback' ) - return $this->incoming_pingback( $commentdata ); - else - return $commentdata; - } - - function trim_multibyte_excerpt( $text = '', $length = 110, $more = ' […]', $encoding = 'UTF-8' ) { - $text = strip_shortcodes( $text ); - $text = str_replace( ']]>', ']]>', $text ); - $text = strip_tags( $text ); - $text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' ); - - if ( $this->mb_strlen( $text, $encoding ) > $length ) - $text = mb_substr( $text, 0, $length, $encoding ) . $more; - - return $text; - } - - function bp_create_excerpt( $text = '' ) { - return $this->trim_multibyte_excerpt( $text, $this->conf['bp_excerpt_mblength'], $this->conf['bp_excerpt_more'], $this->blog_encoding ); - } - - function bp_get_activity_content_body( $content = '' ) { - return preg_replace( "/]+>([^<>]+)<\/a>(" . preg_quote( $this->conf['bp_excerpt_more'], '/' ) . "<\/p>)$/", "$1$2", $content ); - } - - // param $excerpt could already be truncated to 20 words or less by the original get_comment_excerpt() function. - function get_comment_excerpt( $excerpt = '' ) { - $excerpt = preg_replace( "/\.\.\.$/", '', $excerpt ); - $blog_encoding = $this->blog_encoding; - - if ( $this->mb_strlen( $excerpt, $blog_encoding ) > $this->conf['comment_excerpt_mblength'] ) - $excerpt = mb_substr( $excerpt, 0, $this->conf['comment_excerpt_mblength'], $blog_encoding ) . '…'; - - return $excerpt; - } - - function excerpt_mblength() { - if ( isset( $this->query_based_vars['excerpt_mblength'] ) && (int) $this->query_based_vars['excerpt_mblength'] ) - $length = (int) $this->query_based_vars['excerpt_mblength']; - else - $length = (int) $this->conf['excerpt_mblength']; - - return apply_filters( 'excerpt_mblength', $length ); - } - - function excerpt_more() { - if ( isset( $this->query_based_vars['excerpt_more'] ) ) - return $this->query_based_vars['excerpt_more']; - else - return $this->conf['excerpt_more']; - } - - function sanitize_file_name( $name ) { - $info = pathinfo( $name ); - $ext = !empty( $info['extension'] ) ? '.' . $info['extension'] : ''; - $name = str_replace( $ext, '', $name ); - $name_enc = rawurlencode( $name ); - $name = ( $name == $name_enc ) ? $name . $ext : md5( $name ) . $ext; - return $name; - } - - function wplink_js( &$scripts ) { - global $wp_version; - $script_required_version = '4.0-beta4'; - - if ( version_compare( substr( $wp_version, 0, strlen( $script_required_version ) ), $script_required_version, '<' ) ) - $scripts->add( 'wplink', plugin_dir_url( __FILE__ ) . "js/20140410/wplink{$this->debug_suffix}.js", array( 'jquery' ), '20140410', 1 ); - else - $scripts->add( 'wplink', plugin_dir_url( __FILE__ ) . "js/wplink{$this->debug_suffix}.js", array( 'jquery' ), '20140817', 1 ); - } - - function word_count_js( &$scripts ) { - $scripts->add( 'word-count', plugin_dir_url( __FILE__ ) . "js/word-count{$this->debug_suffix}.js", array( 'jquery' ), '20131219', 1 ); - } - - function force_character_count( $translations = '', $text = '', $context = '' ) { - if ( 'word count: words or characters?' == $context && 'words' == $text ) - return 'characters'; - return $translations; - } - - function force_twentytwelve_open_sans_off() { - wp_dequeue_style( 'twentytwelve-fonts' ); - } - - function force_twentythirteen_google_fonts_off() { - wp_dequeue_style( 'twentythirteen-fonts' ); - } - - function force_twentyfourteen_google_fonts_off() { - wp_dequeue_style( 'twentyfourteen-lato' ); - } - - function query_based_settings() { - $is_query_funcs = array( 'is_feed', 'is_404', 'is_search', 'is_tax', 'is_front_page', 'is_home', 'is_attachment', 'is_single', 'is_page', 'is_category', 'is_tag', 'is_author', 'is_date', 'is_archive', 'is_paged' ); - - foreach ( $is_query_funcs as $func ) { - if ( isset( $this->conf['excerpt_mblength.' . $func] ) && !isset( $this->query_based_vars['excerpt_mblength'] ) && $func() ) - $this->query_based_vars['excerpt_mblength'] = $this->conf['excerpt_mblength.' . $func]; - - if ( isset( $this->conf['excerpt_more.' . $func] ) && !isset( $this->query_based_vars['excerpt_more'] ) && $func() ) - $this->query_based_vars['excerpt_more'] = $this->conf['excerpt_more.' . $func]; - } - } - - // The fallback only works with UTF-8 blog. - function mb_strlen( $str = '', $encoding = 'UTF-8' ) { - if ( $this->has_mb_strlen ) - return mb_strlen( $str, $encoding ); - else - return preg_match_all( "/./us", $str, $match ); - } - - function filters_after_setup_theme() { - // add filter - if ( false !== $this->conf['patch_force_character_count'] && 'characters' != _x( 'words', 'word count: words or characters?' ) ) - add_filter( 'gettext_with_context', array( $this, 'force_character_count' ), 10, 3 ); - - if ( false !== $this->conf['patch_force_twentytwelve_open_sans_off'] && 'twentytwelve' == get_template() ) { - add_action( 'wp_enqueue_scripts', array( $this, 'force_twentytwelve_open_sans_off' ), 99 ); - add_action( 'admin_print_styles-appearance_page_custom-header', array( $this, 'force_twentytwelve_open_sans_off' ), 99 ); - } - - if ( false !== $this->conf['patch_force_twentythirteen_google_fonts_off'] && 'twentythirteen' == get_template() ) { - add_action( 'wp_enqueue_scripts', array( $this, 'force_twentythirteen_google_fonts_off' ), 99 ); - add_action( 'admin_print_styles-appearance_page_custom-header', array( $this, 'force_twentythirteen_google_fonts_off' ), 99 ); - } - - if ( false !== $this->conf['patch_force_twentyfourteen_google_fonts_off'] && 'twentyfourteen' == get_template() ) { - add_action( 'wp_enqueue_scripts', array( $this, 'force_twentyfourteen_google_fonts_off' ), 99 ); - add_action( 'admin_print_scripts-appearance_page_custom-header', array( $this, 'force_twentyfourteen_google_fonts_off' ), 99 ); - } - } - - function filters() { - // add filter - add_filter( 'preprocess_comment', array( $this, 'preprocess_comment' ), 99 ); - - if ( false !== $this->conf['patch_incoming_pingback'] ) - add_filter( 'pre_remote_source', array( $this, 'pre_remote_source' ), 10, 2 ); - - if ( false !== $this->conf['patch_wp_trim_excerpt'] ) { - add_filter( 'excerpt_length', array( $this, 'excerpt_mblength' ), 99 ); - add_filter( 'excerpt_more', array( $this, 'excerpt_more' ), 9 ); - } - - if ( false !== $this->conf['patch_get_comment_excerpt'] ) - add_filter( 'get_comment_excerpt', array( $this, 'get_comment_excerpt' ) ); - - if ( false !== $this->conf['patch_sanitize_file_name'] ) - add_filter( 'sanitize_file_name', array( $this, 'sanitize_file_name' ) ); - - if ( false !== $this->conf['patch_bp_create_excerpt'] ) { - add_filter( 'bp_create_excerpt', array( $this, 'bp_create_excerpt' ), 99 ); - add_filter( 'bp_get_activity_content_body', array( $this, 'bp_get_activity_content_body' ), 99 ); - } - - if ( method_exists( $this, 'wp_trim_words' ) && false !== $this->conf['patch_wp_trim_words'] ) - add_filter( 'wp_trim_words', array( $this, 'wp_trim_words' ), 99, 4 ); - - // add action - add_action( 'wp', array( $this, 'query_based_settings' ) ); - - if ( method_exists( $this, 'process_search_terms' ) && false !== $this->conf['patch_process_search_terms'] ) - add_action( 'sanitize_comment_cookies', array( $this, 'process_search_terms' ) ); - - if ( method_exists( $this, 'wp_mail' ) && false !== $this->conf['patch_wp_mail'] ) - add_action( 'phpmailer_init', array( $this, 'wp_mail' ) ); - - if ( method_exists( $this, 'admin_custom_css' ) && false !== $this->conf['patch_admin_custom_css'] ) { - add_action( 'admin_enqueue_scripts', array( $this, 'admin_custom_css' ), 99 ); - add_action( 'customize_controls_enqueue_scripts', array( $this, 'admin_custom_css' ), 99 ); - } - - if ( false !== $this->conf['patch_wplink_js'] ) - add_action( 'wp_default_scripts', array( $this, 'wplink_js' ), 9 ); - - if ( false !== $this->conf['patch_word_count_js'] ) - add_action( 'wp_default_scripts', array( $this, 'word_count_js' ), 9 ); - - add_action( 'after_setup_theme', array( $this, 'filters_after_setup_theme' ), 99 ); - } - - function mbfunctions_exist() { - return ( - function_exists( 'mb_convert_encoding' ) && - function_exists( 'mb_convert_kana' ) && - function_exists( 'mb_detect_encoding' ) && - function_exists( 'mb_strcut' ) && - function_exists( 'mb_strlen' ) - ) ? true : false; - } - - function activation_check() { - global $wp_version; - $required_version = $this->required_version; - - if ( version_compare( substr( $wp_version, 0, strlen( $required_version ) ), $required_version, '<' ) ) { - deactivate_plugins( __FILE__ ); - exit( sprintf( __( 'Sorry, WP Multibyte Patch requires WordPress %s or later.', 'wp-multibyte-patch' ), $required_version ) ); - } - elseif ( !$this->has_mbfunctions && $this->mbfunctions_required ) { - deactivate_plugins( __FILE__ ); - exit( __( 'Sorry, WP Multibyte Patch requires mbstring functions.', 'wp-multibyte-patch' ) ); - } - } - - function load_conf() { - $wpmp_conf = array(); - - if ( file_exists( WP_CONTENT_DIR . '/wpmp-config.php' ) ) - require_once WP_CONTENT_DIR . '/wpmp-config.php'; - - if ( is_multisite() ) { - $blog_id = get_current_blog_id(); - if ( file_exists( WP_CONTENT_DIR . '/wpmp-config-blog-' . $blog_id . '.php' ) ) - require_once WP_CONTENT_DIR . '/wpmp-config-blog-' . $blog_id . '.php'; - } - - $this->conf = array_merge( $this->conf, $wpmp_conf ); - } - - function __construct() { - $this->load_conf(); - $this->blog_encoding = get_option( 'blog_charset' ); - - // mbstring functions are required for non UTF-8 blog. - if ( !preg_match( "/^utf-?8$/i", $this->blog_encoding ) ) - $this->mbfunctions_required = true; - - $this->has_mbfunctions = $this->mbfunctions_exist(); - $this->has_mb_strlen = function_exists( 'mb_strlen' ); - $this->debug_suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; - - load_plugin_textdomain( $this->textdomain, false, dirname( plugin_basename( __FILE__ ) ) . '/' . $this->lang_dir ); - register_activation_hook( __FILE__, array( $this, 'activation_check' ) ); - $this->filters(); - } -} - -if ( defined( 'WP_PLUGIN_URL' ) ) { - if ( file_exists( dirname( __FILE__ ) . '/ext/' . get_locale() . '/class.php' ) ) { - require_once dirname( __FILE__ ) . '/ext/' . get_locale() . '/class.php'; - $GLOBALS['wpmp'] = new multibyte_patch_ext(); - } - elseif ( file_exists( dirname( __FILE__ ) . '/ext/default/class.php' ) ) { - require_once dirname( __FILE__ ) . '/ext/default/class.php'; - $GLOBALS['wpmp'] = new multibyte_patch_ext(); - } - else - $GLOBALS['wpmp'] = new multibyte_patch(); -} diff --git a/wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.php b/wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.php deleted file mode 100644 index 084b4d7..0000000 --- a/wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.php +++ /dev/null @@ -1,103 +0,0 @@ - アクティビティ > コメント の抜粋で利用) に適用されます。 - * この設定は $wpmp_conf['patch_get_comment_excerpt'] が false の場合は無効となります。 - */ -$wpmp_conf['comment_excerpt_mblength'] = 40; - -/** - * ダッシュボード「下書き」抜粋の最大文字数 - * - * この設定は、ダッシュボード > クイックドラフト > 下書き の抜粋に適用されます。 - * この設定は $wpmp_conf['patch_dashboard_recent_drafts'] が false の場合は無効となります。 - */ -$wpmp_conf['dashboard_recent_drafts_mblength'] = 40; - -/** - * wp_mail() の文字エンコーディング - * - * この設定は WordPress から wp_mail() を通して送信されるメールに適用されます。 - * 指定可能な値は、'JIS'、'UTF-8'、'auto' です。 - * この設定は $wpmp_conf['patch_wp_mail'] が false の場合は無効となります。 - */ -$wpmp_conf['mail_mode'] = 'JIS'; - -/** - * 管理パネルカスタム CSS の URL - * - * 管理パネルで読み込まれる CSS の URL を任意で指定することができます。 - * 未指定の場合は、デフォルトの CSS が読み込まれます。 - * この設定は $wpmp_conf['patch_admin_custom_css'] が false の場合は無効となります。 - */ -$wpmp_conf['admin_custom_css_url'] = ''; - -/** - * BuddyPress bp_create_excerpt() 抜粋の最大文字数 - * - * この設定は BuddyPress の bp_create_excerpt() (アクティビティストリームの抜粋で利用) に適用されます。 - * この設定は $wpmp_conf['patch_bp_create_excerpt'] が false の場合は無効となります。 - */ -$wpmp_conf['bp_excerpt_mblength'] = 110; - -/** - * BuddyPress bp_create_excerpt() 抜粋末尾に出力される more 文字列 - * - * この設定は BuddyPress の bp_create_excerpt() (アクティビティストリームの抜粋で利用) に適用されます。 - * この設定は $wpmp_conf['patch_bp_create_excerpt'] が false の場合は無効となります。 - */ -$wpmp_conf['bp_excerpt_more'] = ' […]'; - - -/* 機能を個別に有効化、無効化できます。有効化するには true を、無効化するには false を指定してください。 */ -$wpmp_conf['patch_wp_mail'] = true; -$wpmp_conf['patch_incoming_trackback'] = true; -$wpmp_conf['patch_incoming_pingback'] = true; -$wpmp_conf['patch_wp_trim_excerpt'] = true; -$wpmp_conf['patch_wp_trim_words'] = true; -$wpmp_conf['patch_get_comment_excerpt'] = true; -$wpmp_conf['patch_dashboard_recent_drafts'] = true; -$wpmp_conf['patch_process_search_terms'] = true; -$wpmp_conf['patch_admin_custom_css'] = true; -$wpmp_conf['patch_wplink_js'] = true; -$wpmp_conf['patch_word_count_js'] = true; -$wpmp_conf['patch_force_character_count'] = true; -$wpmp_conf['patch_force_twentytwelve_open_sans_off'] = true; -$wpmp_conf['patch_force_twentythirteen_google_fonts_off'] = false; -$wpmp_conf['patch_force_twentyfourteen_google_fonts_off'] = false; -$wpmp_conf['patch_sanitize_file_name'] = true; -$wpmp_conf['patch_bp_create_excerpt'] = false; diff --git a/wp-content/plugins/wp-multibyte-patch/wpmp-load.php b/wp-content/plugins/wp-multibyte-patch/wpmp-load.php deleted file mode 100644 index 6fb1af6..0000000 --- a/wp-content/plugins/wp-multibyte-patch/wpmp-load.php +++ /dev/null @@ -1,15 +0,0 @@ -