diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/readme.html /home/packages/qi/SOURCES/wordpress-3.7.4/readme.html *** /home/packages/qi/SOURCES/wordpress-3.7.1/readme.html 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/readme.html 2014-08-06 22:27:35.000000000 +0400 *************** *** 8,14 ****

WordPress !
Version 3.7

Semantic Personal Publishing Platform

--- 8,14 ----

WordPress !
Version 3.7.4

Semantic Personal Publishing Platform

diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/about.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/about.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/about.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/about.php 2014-08-06 22:27:35.000000000 +0400 *************** *** 36,42 ****
!

Version %1$s addressed %2$s bug.', 'Version %1$s addressed %2$s bugs.', 11 ), '3.7.1', number_format_i18n( 11 ) ); ?> the release notes.' ), 'http://codex.wordpress.org/Version_3.7.1' ); ?> --- 36,54 ----

!

!

Version %1$s addressed a security issue.', ! 'Version %1$s addressed some security issues.', 5 ), '3.7.4', number_format_i18n( 5 ) ); ?> ! the release notes.' ), 'http://codex.wordpress.org/Version_3.7.4' ); ?> !

!

Version %1$s addressed %2$s bug.', ! 'Version %1$s addressed %2$s bugs.', 2 ), '3.7.3', number_format_i18n( 2 ) ); ?> ! the release notes.' ), 'http://codex.wordpress.org/Version_3.7.3' ); ?> !

!

Version %1$s addressed some security issues and fixed %2$s bug.', ! 'Version %1$s addressed some security issues and fixed %2$s bugs.', 9 ), '3.7.2', number_format_i18n( 9 ) ); ?> ! the release notes.' ), 'http://codex.wordpress.org/Version_3.7.2' ); ?> !

Version %1$s addressed %2$s bug.', 'Version %1$s addressed %2$s bugs.', 11 ), '3.7.1', number_format_i18n( 11 ) ); ?> the release notes.' ), 'http://codex.wordpress.org/Version_3.7.1' ); ?> diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-posts-list-table.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-posts-list-table.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-posts-list-table.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-posts-list-table.php 2014-04-07 02:17:10.000000000 +0400 *************** *** 832,838 ****

--- 832,838 ----
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-upgrader.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-upgrader.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-upgrader.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-upgrader.php 2014-04-03 08:03:09.000000000 +0400 *************** *** 1314,1320 **** } function upgrade( $current, $args = array() ) { ! global $wp_filesystem, $wp_version; $start_time = time(); --- 1314,1322 ---- } function upgrade( $current, $args = array() ) { ! global $wp_filesystem; ! ! include ABSPATH . WPINC . '/version.php'; // $wp_version; $start_time = time(); *************** *** 1333,1340 **** return new WP_Error('up_to_date', $this->strings['up_to_date']); $res = $this->fs_connect( array(ABSPATH, WP_CONTENT_DIR) ); ! if ( is_wp_error($res) ) return $res; $wp_dir = trailingslashit($wp_filesystem->abspath()); --- 1335,1343 ---- return new WP_Error('up_to_date', $this->strings['up_to_date']); $res = $this->fs_connect( array(ABSPATH, WP_CONTENT_DIR) ); ! if ( ! $res || is_wp_error( $res ) ) { return $res; + } $wp_dir = trailingslashit($wp_filesystem->abspath()); *************** *** 1421,1426 **** --- 1424,1430 ---- 'fs_method' => $wp_filesystem->method, 'fs_method_forced' => defined( 'FS_METHOD' ) || has_filter( 'filesystem_method' ), 'time_taken' => time() - $start_time, + 'reported' => $wp_version, 'attempted' => $current->version, ); *************** *** 1868,1885 **** if ( ! $this->should_update( $type, $item, $context ) ) return false; switch ( $type ) { case 'core': $skin->feedback( __( 'Updating to WordPress %s' ), $item->version ); $item_name = sprintf( __( 'WordPress %s' ), $item->version ); break; case 'theme': ! $theme = wp_get_theme( $item ); $item_name = $theme->Get( 'Name' ); $skin->feedback( __( 'Updating theme: %s' ), $item_name ); break; case 'plugin': ! $plugin_data = get_plugin_data( $context . '/' . $item ); $item_name = $plugin_data['Name']; $skin->feedback( __( 'Updating plugin: %s' ), $item_name ); break; --- 1872,1892 ---- if ( ! $this->should_update( $type, $item, $context ) ) return false; + $upgrader_item = $item; switch ( $type ) { case 'core': $skin->feedback( __( 'Updating to WordPress %s' ), $item->version ); $item_name = sprintf( __( 'WordPress %s' ), $item->version ); break; case 'theme': ! $upgrader_item = $item->theme; ! $theme = wp_get_theme( $upgrader_item ); $item_name = $theme->Get( 'Name' ); $skin->feedback( __( 'Updating theme: %s' ), $item_name ); break; case 'plugin': ! $upgrader_item = $item->plugin; ! $plugin_data = get_plugin_data( $context . '/' . $upgrader_item ); $item_name = $plugin_data['Name']; $skin->feedback( __( 'Updating plugin: %s' ), $item_name ); break; *************** *** 1891,1902 **** } // Boom, This sites about to get a whole new splash of paint! ! $upgrade_result = $upgrader->upgrade( $item, array( 'clear_update_cache' => false, 'pre_check_md5' => false, /* always use partial builds if possible for core updates */ 'attempt_rollback' => true, /* only available for core updates */ ) ); // Core doesn't output this, so lets append it so we don't get confused if ( 'core' == $type ) { if ( is_wp_error( $upgrade_result ) ) { --- 1898,1914 ---- } // Boom, This sites about to get a whole new splash of paint! ! $upgrade_result = $upgrader->upgrade( $upgrader_item, array( 'clear_update_cache' => false, 'pre_check_md5' => false, /* always use partial builds if possible for core updates */ 'attempt_rollback' => true, /* only available for core updates */ ) ); + // if the filesystem is unavailable, false is returned. + if ( false === $upgrade_result ) { + $upgrade_result = new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.' ) ); + } + // Core doesn't output this, so lets append it so we don't get confused if ( 'core' == $type ) { if ( is_wp_error( $upgrade_result ) ) { *************** *** 1960,1966 **** wp_update_plugins(); // Check for Plugin updates $plugin_updates = get_site_transient( 'update_plugins' ); if ( $plugin_updates && !empty( $plugin_updates->response ) ) { ! foreach ( array_keys( $plugin_updates->response ) as $plugin ) { $this->update( 'plugin', $plugin ); } // Force refresh of plugin update information --- 1972,1978 ---- wp_update_plugins(); // Check for Plugin updates $plugin_updates = get_site_transient( 'update_plugins' ); if ( $plugin_updates && !empty( $plugin_updates->response ) ) { ! foreach ( $plugin_updates->response as $plugin ) { $this->update( 'plugin', $plugin ); } // Force refresh of plugin update information *************** *** 1971,1978 **** wp_update_themes(); // Check for Theme updates $theme_updates = get_site_transient( 'update_themes' ); if ( $theme_updates && !empty( $theme_updates->response ) ) { ! foreach ( array_keys( $theme_updates->response ) as $theme ) { ! $this->update( 'theme', $theme ); } // Force refresh of theme update information wp_clean_themes_cache(); --- 1983,1990 ---- wp_update_themes(); // Check for Theme updates $theme_updates = get_site_transient( 'update_themes' ); if ( $theme_updates && !empty( $theme_updates->response ) ) { ! foreach ( $theme_updates->response as $theme ) { ! $this->update( 'theme', (object) $theme ); } // Force refresh of theme update information wp_clean_themes_cache(); *************** *** 1987,1994 **** // Clean up, and check for any pending translations // (Core_Upgrader checks for core updates) ! wp_update_themes(); // Check for Theme updates ! wp_update_plugins(); // Check for Plugin updates // Finally, Process any new translations $language_updates = wp_get_translation_updates(); --- 1999,2019 ---- // Clean up, and check for any pending translations // (Core_Upgrader checks for core updates) ! $theme_stats = array(); ! if ( isset( $this->update_results['theme'] ) ) { ! foreach ( $this->update_results['theme'] as $upgrade ) { ! $theme_stats[ $upgrade->item->theme ] = ( true === $upgrade->result ); ! } ! } ! wp_update_themes( $theme_stats ); // Check for Theme updates ! ! $plugin_stats = array(); ! if ( isset( $this->update_results['plugin'] ) ) { ! foreach ( $this->update_results['plugin'] as $upgrade ) { ! $plugin_stats[ $upgrade->item->plugin ] = ( true === $upgrade->result ); ! } ! } ! wp_update_plugins( $plugin_stats ); // Check for Plugin updates // Finally, Process any new translations $language_updates = wp_get_translation_updates(); diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/post.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/post.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/post.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/post.php 2014-04-14 12:13:10.000000000 +0400 *************** *** 100,105 **** --- 100,109 ---- $post_id = false; $previous_status = $post_id ? get_post_field( 'post_status', $post_id ) : false; + if ( isset( $post_data['post_status'] ) && 'private' == $post_data['post_status'] && ! current_user_can( $ptype->cap->publish_posts ) ) { + $post_data['post_status'] = $previous_status ? $previous_status : 'pending'; + } + $published_statuses = array( 'publish', 'future' ); // Posts 'submitted for approval' present are submitted to $_POST the same as if they were being published. *************** *** 111,116 **** --- 115,124 ---- if ( ! isset($post_data['post_status']) ) $post_data['post_status'] = $previous_status; + if ( isset( $post_data['post_password'] ) && ! current_user_can( $ptype->cap->publish_posts ) ) { + unset( $post_data['post_password'] ); + } + if (!isset( $post_data['comment_status'] )) $post_data['comment_status'] = 'closed'; *************** *** 170,175 **** --- 178,191 ---- $post_data['post_type'] = $post->post_type; $post_data['post_mime_type'] = $post->post_mime_type; + if ( ! empty( $post_data['post_status'] ) ) { + $post_data['post_status'] = sanitize_key( $post_data['post_status'] ); + + if ( 'inherit' == $post_data['post_status'] ) { + unset( $post_data['post_status'] ); + } + } + $ptype = get_post_type_object($post_data['post_type']); if ( !current_user_can( 'edit_post', $post_ID ) ) { if ( 'page' == $post_data['post_type'] ) *************** *** 187,199 **** _wp_upgrade_revisions_of_post( $post, wp_get_post_revisions( $post_ID ) ); } - $post_data = _wp_translate_postdata( true, $post_data ); - if ( is_wp_error($post_data) ) - wp_die( $post_data->get_error_message() ); - if ( ( empty( $post_data['action'] ) || 'autosave' != $post_data['action'] ) && 'auto-draft' == $post_data['post_status'] ) { - $post_data['post_status'] = 'draft'; - } - if ( isset($post_data['visibility']) ) { switch ( $post_data['visibility'] ) { case 'public' : --- 203,208 ---- *************** *** 210,215 **** --- 219,232 ---- } } + $post_data = _wp_translate_postdata( true, $post_data ); + if ( is_wp_error($post_data) ) + wp_die( $post_data->get_error_message() ); + + if ( ( empty( $post_data['action'] ) || 'autosave' != $post_data['action'] ) && 'auto-draft' == $post_data['post_status'] ) { + $post_data['post_status'] = 'draft'; + } + // Post Formats if ( isset( $post_data['post_format'] ) ) set_post_format( $post_ID, $post_data['post_format'] ); *************** *** 332,337 **** --- 349,362 ---- } unset($post_data['_status']); + if ( ! empty( $post_data['post_status'] ) ) { + $post_data['post_status'] = sanitize_key( $post_data['post_status'] ); + + if ( 'inherit' == $post_data['post_status'] ) { + unset( $post_data['post_status'] ); + } + } + $post_IDs = array_map( 'intval', (array) $post_data['post'] ); $reset = array( *************** *** 386,392 **** --- 411,422 ---- } $updated = $skipped = $locked = array(); + $shared_post_data = $post_data; + foreach ( $post_IDs as $post_ID ) { + // Start with fresh post data with each iteration. + $post_data = $shared_post_data; + $post_type_object = get_post_type_object( get_post_type( $post_ID ) ); if ( !isset( $post_type_object ) || ( isset($children) && in_array($post_ID, $children) ) || !current_user_can( 'edit_post', $post_ID ) ) { *************** *** 422,431 **** --- 452,476 ---- unset( $post_data['tax_input']['category'] ); } + $post_data['post_type'] = $post->post_type; $post_data['post_mime_type'] = $post->post_mime_type; $post_data['guid'] = $post->guid; + foreach ( array( 'comment_status', 'ping_status', 'post_author' ) as $field ) { + if ( ! isset( $post_data[ $field ] ) ) { + $post_data[ $field ] = $post->$field; + } + } + $post_data['ID'] = $post_ID; + $post_data['post_ID'] = $post_ID; + + $post_data = _wp_translate_postdata( true, $post_data ); + if ( is_wp_error( $post_data ) ) { + $skipped[] = $post_ID; + continue; + } + $updated[] = wp_update_post( $post_data ); if ( isset( $post_data['sticky'] ) && current_user_can( $ptype->cap->edit_others_posts ) ) { *************** *** 569,578 **** if ( isset( $_POST['post_ID'] ) ) return edit_post(); - $translated = _wp_translate_postdata( false ); - if ( is_wp_error($translated) ) - return $translated; - if ( isset($_POST['visibility']) ) { switch ( $_POST['visibility'] ) { case 'public' : --- 614,619 ---- *************** *** 589,594 **** --- 630,639 ---- } } + $translated = _wp_translate_postdata( false ); + if ( is_wp_error($translated) ) + return $translated; + // Create the post. $post_ID = wp_insert_post( $_POST ); if ( is_wp_error( $post_ID ) ) diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update-core.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update-core.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update-core.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update-core.php 2014-04-01 07:36:10.000000000 +0400 *************** *** 697,702 **** --- 697,705 ---- // Check to see which files don't really need updating - only available for 3.7 and higher if ( function_exists( 'get_core_checksums' ) ) { + // Find the local version of the working directory + $working_dir_local = WP_CONTENT_DIR . '/upgrade/' . basename( $from ) . $distro; + $checksums = get_core_checksums( $wp_version, isset( $wp_local_package ) ? $wp_local_package : 'en_US' ); if ( is_array( $checksums ) && isset( $checksums[ $wp_version ] ) ) $checksums = $checksums[ $wp_version ]; // Compat code for 3.7-beta2 *************** *** 706,711 **** --- 709,716 ---- continue; if ( ! file_exists( ABSPATH . $file ) ) continue; + if ( ! file_exists( $working_dir_local . $file ) ) + continue; if ( md5_file( ABSPATH . $file ) === $checksum ) $skip[] = $file; else *************** *** 752,760 **** $failed = array(); if ( isset( $checksums ) && is_array( $checksums ) ) { foreach ( $checksums as $file => $checksum ) { ! if ( 0 === strpos( $file, 'wp-content' ) ) continue; - if ( file_exists( ABSPATH . $file ) && md5_file( ABSPATH . $file ) == $checksum ) $skip[] = $file; else --- 757,766 ---- $failed = array(); if ( isset( $checksums ) && is_array( $checksums ) ) { foreach ( $checksums as $file => $checksum ) { ! if ( 'wp-content' == substr( $file, 0, 10 ) ) ! continue; ! if ( ! file_exists( $working_dir_local . $file ) ) continue; if ( file_exists( ABSPATH . $file ) && md5_file( ABSPATH . $file ) == $checksum ) $skip[] = $file; else *************** *** 765,772 **** // Some files didn't copy properly if ( ! empty( $failed ) ) { $total_size = 0; - // Find the local version of the working directory - $working_dir_local = WP_CONTENT_DIR . '/upgrade/' . basename( $from ) . $distro; foreach ( $failed as $file ) { if ( file_exists( $working_dir_local . $file ) ) $total_size += filesize( $working_dir_local . $file ); --- 771,776 ---- *************** *** 882,887 **** --- 886,896 ---- $db_upgrade_url = admin_url('upgrade.php?step=upgrade_db'); wp_remote_post($db_upgrade_url, array('timeout' => 60)); + // Clear the cache to prevent an update_option() from saving a stale db_version to the cache + wp_cache_flush(); + // (Not all cache backends listen to 'flush') + wp_cache_delete( 'alloptions', 'options' ); + // Remove working directory $wp_filesystem->delete($from, true); diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update.php 2014-04-01 07:31:09.000000000 +0400 *************** *** 364,370 **** * This flag is cleared whenever a successful update occurs using Core_Upgrader. */ $comparison = ! empty( $failed['critical'] ) ? '>=' : '>'; ! if ( version_compare( $failed['attempted'], $wp_version, '>=' ) ) $nag = true; } --- 364,370 ---- * This flag is cleared whenever a successful update occurs using Core_Upgrader. */ $comparison = ! empty( $failed['critical'] ) ? '>=' : '>'; ! if ( version_compare( $failed['attempted'], $wp_version, $comparison ) ) $nag = true; } diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/upgrade.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/upgrade.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/upgrade.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/upgrade.php 2014-04-11 21:29:10.000000000 +0400 *************** *** 405,410 **** --- 405,416 ---- if ( $wp_current_db_version < 25824 ) upgrade_370(); + if ( $wp_current_db_version < 26148 ) + upgrade_372(); + + if ( $wp_current_db_version < 26149 ) + upgrade_373(); + maybe_disable_link_manager(); maybe_disable_automattic_widgets(); *************** *** 1223,1228 **** --- 1229,1275 ---- } /** + * Execute changes made in WordPress 3.7.2. + * + * @since 3.7.2 + * @since 3.8.0 + */ + function upgrade_372() { + global $wp_current_db_version; + if ( $wp_current_db_version < 26148 ) + wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); + } + + /** + * Execute changes made in WordPress 3.7.3. + * + * @since 3.7.3 + */ + function upgrade_373() { + global $wp_current_db_version, $wpdb; + if ( $wp_current_db_version < 26149 ) { + // Find all lost Quick Draft auto-drafts and promote them to proper drafts. + $posts = $wpdb->get_results( "SELECT ID, post_title, post_content FROM $wpdb->posts WHERE post_type = 'post' + AND post_status = 'auto-draft' AND post_date >= '2014-04-08 00:00:00'" ); + + foreach ( $posts as $post ) { + // A regular auto-draft should never have content as that would mean it should have been promoted. + // If an auto-draft has content, it's from Quick Draft and it should be recovered. + if ( '' === $post->post_content ) { + // If it does not have content, we must evaluate whether the title should be recovered. + if ( 'Auto Draft' === $post->post_title || __( 'Auto Draft' ) === $post->post_title ) { + // This a plain old auto draft. Ignore it. + continue; + } + } + + $wpdb->update( $wpdb->posts, array( 'post_status' => 'draft' ), array( 'ID' => $post->ID ) ); + clean_post_cache( $post->ID ); + } + } + } + + /** * Execute network level changes * * @since 3.0.0 diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/admin.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/admin.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/admin.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/admin.php 2014-03-14 02:57:39.000000000 +0300 *************** *** 39,51 **** 'plugins_page_akismet-key-config', 'jetpack_page_akismet-key-config', ) ) ) { ! wp_register_style( 'akismet.css', AKISMET_PLUGIN_URL . 'akismet.css', array(), '2.5.9' ); wp_enqueue_style( 'akismet.css'); ! wp_register_script( 'akismet.js', AKISMET_PLUGIN_URL . 'akismet.js', array('jquery'), '2.5.9' ); wp_enqueue_script( 'akismet.js' ); wp_localize_script( 'akismet.js', 'WPAkismet', array( ! 'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' ) ) ); } } --- 39,58 ---- 'plugins_page_akismet-key-config', 'jetpack_page_akismet-key-config', ) ) ) { ! wp_register_style( 'akismet.css', AKISMET_PLUGIN_URL . 'akismet.css', array(), AKISMET_VERSION ); wp_enqueue_style( 'akismet.css'); ! wp_register_script( 'akismet.js', AKISMET_PLUGIN_URL . 'akismet.js', array('jquery'), 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' ), ! 'Removing...' => __( 'Removing...' ), ! 'URL removed' => __( 'URL removed' ), ! '(undo)' => __( '(undo)' ), ! 'Re-adding...' => __( 'Re-adding...' ), ! ) ) ); } } *************** *** 335,345 **** $path = plugin_basename(__FILE__); echo '

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

'; global $submenu; ! if ( isset( $submenu['edit-comments.php'] ) ) ! $link = 'edit-comments.php'; ! else ! $link = 'edit.php'; ! echo '

'.sprintf( _n( 'Akismet has protected your site from %3$s spam comments.', 'Akismet has protected your site from %3$s spam comments.', $count ), 'http://akismet.com/?return=true', clean_url("$link?page=akismet-admin"), number_format_i18n($count) ).'

'; } add_action('activity_box_end', 'akismet_stats'); --- 342,348 ---- $path = plugin_basename(__FILE__); echo '

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

'; global $submenu; ! echo '

'.sprintf( _n( 'Akismet has protected your site from %3$s spam comments.', 'Akismet has protected your site from %3$s spam comments.', $count ), 'http://akismet.com/?return=true', 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) ).'

'; } add_action('activity_box_end', 'akismet_stats'); *************** *** 546,556 **** global $submenu, $wp_db_version; if ( 8645 < $wp_db_version ) // 2.7 ! $link = 'edit-comments.php?comment_status=spam'; elseif ( isset( $submenu['edit-comments.php'] ) ) ! $link = 'edit-comments.php?page=akismet-admin'; else ! $link = 'edit.php?page=akismet-admin'; if ( $count = get_option('akismet_spam_count') ) { $intro = sprintf( _n( --- 549,559 ---- 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( *************** *** 581,594 **** // For WP >= 2.5 ! function akismet_check_for_spam_button($comment_status) { if ( 'approved' == $comment_status ) return; if ( function_exists('plugins_url') ) ! $link = 'admin.php?action=akismet_recheck_queue'; else ! $link = 'edit-comments.php?page=akismet-admin&recheckqueue=true&noheader=true'; ! echo "
" . __('Check for Spam') . ""; } add_action('manage_comments_nav', 'akismet_check_for_spam_button'); --- 584,600 ---- // For WP >= 2.5 ! function akismet_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') . ''; ! echo ''; } add_action('manage_comments_nav', 'akismet_check_for_spam_button'); *************** *** 771,778 **** if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) ) return; ! ! $moderation = $wpdb->get_results( "SELECT * FROM $wpdb->comments WHERE comment_approved = '0'", ARRAY_A ); foreach ( (array) $moderation as $c ) { $c['user_ip'] = $c['comment_author_IP']; $c['user_agent'] = $c['comment_agent']; --- 777,788 ---- 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']; *************** *** 780,786 **** $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'] ) ) --- 790,796 ---- $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'] ) ) *************** *** 815,826 **** delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' ); } ! $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' ); ! wp_safe_redirect( $redirect_to ); ! exit; } add_action('admin_action_akismet_recheck_queue', 'akismet_recheck_queue'); // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link function akismet_remove_comment_author_url() { --- 825,844 ---- 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; ! } } add_action('admin_action_akismet_recheck_queue', 'akismet_recheck_queue'); + add_action('wp_ajax_akismet_recheck_queue', 'akismet_recheck_queue'); // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link function akismet_remove_comment_author_url() { diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.css /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.css *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.css 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.css 2014-03-14 02:57:39.000000000 +0300 *************** *** 1 **** ! #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 .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-left:38px;background:url('img/logo.png') no-repeat 0 9px;margin-bottom:14px;line-height:32px}.key-status{padding:0.4em 1em;color:#fff;font-weight:bold;text-align:center;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;max-width:23.3em}input#key{width:25.3em !important}input#key.valid{border-color:#4F800D}input#key.invalid,input#key.failed{border-color:#888}.key-status.under-input{margin-top:-5px;padding-bottom:0px}.key-status.invalid,.key-status.failed{background-color:#888}.key-status.valid{background-color:#4F800D}.key-status.some{background-color:#993300}.key-status.empty{display:none}table.network-status th,table.network-status td{padding:0.4em;margin:0;text-align:center}table.network-status{border-color:#dfdfdf;border-width:0 0 1px 1px;border-style:solid;border-spacing:0;width:25.6em}table.network-status th,table.network-status td{border-color:#dfdfdf;border-width:1px 1px 0 0;border-style:solid;margin:0;border-spacing:0}table.network-status td.key-status{border-radius:0px;-webkit-border-radius:0px} \ No newline at end of file --- 1 ---- ! #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 .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-left:38px;background:url('img/logo.png') no-repeat 0 9px;margin-bottom:14px;line-height:32px}.key-status{padding:0.4em 1em;color:#fff;font-weight:bold;text-align:center;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;max-width:23.3em}input#key{width:25.3em !important}input#key.valid{border-color:#4F800D}input#key.invalid,input#key.failed{border-color:#888}.key-status.under-input{margin-top:-5px;padding-bottom:0px}.key-status.invalid,.key-status.failed{background-color:#888}.key-status.valid{background-color:#4F800D}.key-status.some{background-color:#993300}.key-status.empty{display:none}table.network-status th,table.network-status td{padding:0.4em;margin:0;text-align:center}table.network-status{border-color:#dfdfdf;border-width:0 0 1px 1px;border-style:solid;border-spacing:0;width:25.6em}table.network-status th,table.network-status td{border-color:#dfdfdf;border-width:1px 1px 0 0;border-style:solid;margin:0;border-spacing:0}table.network-status td.key-status{border-radius:0px;-webkit-border-radius:0px}.checkforspam{display:inline-block !important;}.checkforspam-spinner{display:none;margin-top:10px;} \ No newline at end of file diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.js /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.js *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.js 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.js 2014-03-14 02:57:39.000000000 +0300 *************** *** 1,114 **** ! jQuery(document).ready(function () { ! jQuery( '.switch-have-key' ).click( function() { ! var no_key = jQuery( this ).parents().find('div.no-key'); ! var have_key = jQuery( this ).parents().find('div.have-key'); no_key.addClass( 'hidden' ); have_key.removeClass( 'hidden' ); return false; }); ! jQuery( 'p.need-key a' ).click( function(){ document.akismet_activate.submit(); }); ! jQuery('.akismet-status').each(function () { ! var thisId = jQuery(this).attr('commentid'); ! jQuery(this).prependTo('#comment-' + thisId + ' .column-comment div:first-child'); ! }); ! jQuery('.akismet-user-comment-count').each(function () { ! var thisId = jQuery(this).attr('commentid'); ! jQuery(this).insertAfter('#comment-' + thisId + ' .author strong:first').show(); ! }); ! jQuery('#the-comment-list tr.comment .column-author a[title ^= "http://"]').each(function () { ! var thisTitle = jQuery(this).attr('title'); ! thisCommentId = jQuery(this).parents('tr:first').attr('id').split("-"); ! jQuery(this).attr("id", "author_comment_url_"+ thisCommentId[1]); if (thisTitle) { ! jQuery(this).after(' x'); } }); ! jQuery('.remove_url').live('click', function () { ! var thisId = jQuery(this).attr('commentid'); var data = { action: 'comment_author_deurl', _wpnonce: WPAkismet.comment_author_url_nonce, id: thisId }; ! jQuery.ajax({ url: ajaxurl, type: 'POST', data: data, beforeSend: function () { // Removes "x" link ! jQuery("a[commentid='"+ thisId +"']").hide(); // Show temp status ! jQuery("#author_comment_url_"+ thisId).html('Removing...'); }, success: function (response) { if (response) { // Show status/undo link ! jQuery("#author_comment_url_"+ thisId).attr('cid', thisId).addClass('akismet_undo_link_removal').html('URL removed (undo)'); ! } } }); return false; }); ! jQuery('.akismet_undo_link_removal').live('click', function () { ! var thisId = jQuery(this).attr('cid'); ! var thisUrl = jQuery(this).attr('href').replace("http://www.", "").replace("http://", ""); var data = { action: 'comment_author_reurl', _wpnonce: WPAkismet.comment_author_url_nonce, id: thisId, url: thisUrl }; ! jQuery.ajax({ url: ajaxurl, type: 'POST', data: data, beforeSend: function () { // Show temp status ! jQuery("#author_comment_url_"+ thisId).html('Re-adding…'); }, success: function (response) { if (response) { // Add "x" link ! jQuery("a[commentid='"+ thisId +"']").show(); // Show link ! jQuery("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').html(thisUrl); } } }); return false; }); ! jQuery('a[id^="author_comment_url"]').mouseover(function () { var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://'; // Need to determine size of author column ! var thisParentWidth = jQuery(this).parent().width(); // It changes based on if there is a gravatar present ! thisParentWidth = (jQuery(this).parent().find('.grav-hijack').length) ? thisParentWidth - 42 + 'px' : thisParentWidth + 'px'; ! if (jQuery(this).find('.mShot').length == 0 && !jQuery(this).hasClass('akismet_undo_link_removal')) { ! var thisId = jQuery(this).attr('id').replace('author_comment_url_', ''); ! jQuery('.widefat td').css('overflow', 'visible'); ! jQuery(this).css('position', 'relative'); ! var thisHref = jQuery.URLEncode(jQuery(this).attr('href')); ! jQuery(this).append('
'); setTimeout(function () { ! jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2'); }, 6000); setTimeout(function () { ! jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3'); }, 12000); } else { ! jQuery(this).find('.mShot').css('left', thisParentWidth).show(); } }).mouseout(function () { ! jQuery(this).find('.mShot').hide(); }); }); // URL encode plugin jQuery.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/; --- 1,154 ---- ! jQuery( function ( $ ) { ! $( '.switch-have-key' ).click( function() { ! var no_key = $( this ).parents().find('div.no-key'); ! var have_key = $( this ).parents().find('div.have-key'); no_key.addClass( 'hidden' ); have_key.removeClass( 'hidden' ); return false; }); ! $( 'p.need-key a' ).click( function(){ document.akismet_activate.submit(); }); ! $('.akismet-status').each(function () { ! var thisId = $(this).attr('commentid'); ! $(this).prependTo('#comment-' + thisId + ' .column-comment div:first-child'); ! }); ! $('.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').show(); + 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_.]*)/; *************** *** 117,126 **** }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;} }); - // Preload mshot images after everything else has loaded - jQuery(window).load(function() { - var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://'; - jQuery('a[id^="author_comment_url"]').each(function () { - jQuery.get(wpcomProtocol+'s0.wordpress.com/mshots/v1/'+jQuery.URLEncode(jQuery(this).attr('href'))+'?w=450'); - }); - }); --- 157,159 ---- diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.php 2014-03-18 04:18:23.000000000 +0300 *************** *** 6,12 **** Plugin Name: Akismet Plugin URI: http://akismet.com/?return=true Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from comment and trackback spam. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) Sign up for an Akismet API key, and 3) Go to your Akismet configuration page, and save your API key. ! Version: 2.5.9 Author: Automattic Author URI: http://automattic.com/wordpress-plugins/ License: GPLv2 or later --- 6,12 ---- Plugin Name: Akismet Plugin URI: http://akismet.com/?return=true Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from comment and trackback spam. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) Sign up for an Akismet API key, and 3) Go to your Akismet configuration page, and save your API key. ! Version: 2.6.0 Author: Automattic Author URI: http://automattic.com/wordpress-plugins/ License: GPLv2 or later *************** *** 34,41 **** exit; } ! define('AKISMET_VERSION', '2.5.9'); define('AKISMET_PLUGIN_URL', plugin_dir_url( __FILE__ )); /** If you hardcode a WP.com API key here, all key config screens will be hidden */ if ( defined('WPCOM_API_KEY') ) --- 34,42 ---- exit; } ! define('AKISMET_VERSION', '2.6.0'); define('AKISMET_PLUGIN_URL', plugin_dir_url( __FILE__ )); + define('AKISMET_DELETE_LIMIT', 10000); /** If you hardcode a WP.com API key here, all key config screens will be hidden */ if ( defined('WPCOM_API_KEY') ) *************** *** 197,213 **** // filter handler used to return a spam result to pre_comment_approved function akismet_result_spam( $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 ); // this is a one-shot deal ! remove_filter( 'pre_comment_approved', 'akismet_result_spam' ); return 'spam'; } function akismet_result_hold( $approved ) { // once only ! remove_filter( 'pre_comment_approved', 'akismet_result_hold' ); return '0'; } --- 198,223 ---- // filter handler used to return a spam result to pre_comment_approved function akismet_result_spam( $approved ) { + static $just_once = false; + if ( $just_once ) + 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 ); + // this is a one-shot deal ! $just_once = true; return 'spam'; } function akismet_result_hold( $approved ) { + static $just_once = false; + if ( $just_once ) + return $approved; + // once only ! $just_once = true; return '0'; } *************** *** 321,327 **** global $akismet_api_host, $akismet_api_port, $akismet_last_comment; $comment = $commentdata; ! $comment['user_ip'] = $_SERVER['REMOTE_ADDR']; $comment['user_agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null; $comment['referrer'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $comment['blog'] = get_option('home'); --- 331,337 ---- global $akismet_api_host, $akismet_api_port, $akismet_last_comment; $comment = $commentdata; ! $comment['user_ip'] = akismet_get_ip_address(); $comment['user_agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null; $comment['referrer'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $comment['blog'] = get_option('home'); *************** *** 422,479 **** add_action('preprocess_comment', 'akismet_auto_check_comment', 1); function akismet_delete_old() { global $wpdb; ! $now_gmt = current_time('mysql', 1); ! $comment_ids = $wpdb->get_col("SELECT comment_id FROM $wpdb->comments WHERE DATE_SUB('$now_gmt', INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam'"); ! if ( empty( $comment_ids ) ) ! return; ! $comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) ); ! do_action( 'delete_comment', $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 ); ! $n = mt_rand(1, 5000); ! if ( apply_filters('akismet_optimize_table', ($n == 11)) ) // lucky number ! $wpdb->query("OPTIMIZE TABLE $wpdb->comments"); } function akismet_delete_old_metadata() { global $wpdb; - $now_gmt = current_time( 'mysql', 1 ); $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 ); # enfore a minimum of 1 day $interval = absint( $interval ); ! if ( $interval < 1 ) { ! return; ! } // akismet_as_submitted meta values are large, so expire them // after $interval days regardless of the comment status ! while ( TRUE ) { ! $comment_ids = $wpdb->get_col( "SELECT $wpdb->comments.comment_id FROM $wpdb->commentmeta INNER JOIN $wpdb->comments USING(comment_id) WHERE meta_key = 'akismet_as_submitted' AND DATE_SUB('$now_gmt', INTERVAL {$interval} DAY) > comment_date_gmt LIMIT 10000" ); ! ! if ( empty( $comment_ids ) ) { ! return; ! } ! foreach ( $comment_ids as $comment_id ) { delete_comment_meta( $comment_id, 'akismet_as_submitted' ); } } ! ! /* ! $n = mt_rand( 1, 5000 ); ! if ( apply_filters( 'akismet_optimize_table', ( $n == 11 ), 'commentmeta' ) ) { // lucky number ! $wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" ); ! } ! */ ! } add_action('akismet_scheduled_delete', 'akismet_delete_old'); add_action('akismet_scheduled_delete', 'akismet_delete_old_metadata'); --- 432,501 ---- add_action('preprocess_comment', 'akismet_auto_check_comment', 1); + function akismet_get_ip_address() { + foreach( array( 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR' ) as $key ) { + if ( array_key_exists( $key, $_SERVER ) === true ) { + foreach ( explode( ',', $_SERVER[$key] ) as $ip ) { + $ip = trim($ip); + + if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false ) { + return $ip; + } + } + } + } + return null; + } + function akismet_delete_old() { 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) ) ) // lucky number + $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}"); } function akismet_delete_old_metadata() { 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) ) ) // lucky number ! $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}"); ! } add_action('akismet_scheduled_delete', 'akismet_delete_old'); add_action('akismet_scheduled_delete', 'akismet_delete_old_metadata'); *************** *** 588,593 **** --- 610,680 ---- if ( $akismet_comment_nonce_option == 'true' || $akismet_comment_nonce_option == '' ) add_action( 'comment_form', 'akismet_add_comment_nonce' ); + function akismet_pingback_forwarded_for( $r, $url ) { + static $urls = array(); + + // Call this with $r == null to prime the callback to add headers on a specific URL + if ( is_null( $r ) && !in_array( $url, $urls ) ) { + $urls[] = $url; + } + + // Add X-Pingback-Forwarded-For header, but only for requests to a specific URL (the apparent pingback source) + if ( is_array( $r ) && is_array( $r['headers'] ) && !isset( $r['headers']['X-Pingback-Forwarded-For'] ) && in_array( $url, $urls ) ) { + $remote_ip = preg_replace( '/[^a-fx0-9:.,]/i', '', $_SERVER['REMOTE_ADDR'] ); + + // Note: this assumes REMOTE_ADDR is correct, and it may not be if a reverse proxy or CDN is in use + $r['headers']['X-Pingback-Forwarded-For'] = $remote_ip; + + // Also identify the request as a pingback verification in the UA string so it appears in logs + $r['user-agent'] .= '; verifying pingback from ' . $remote_ip; + } + + return $r; + } + + function akismet_pre_check_pingback( $method ) { + + if ( $method !== 'pingback.ping' ) + return; + + global $wp_xmlrpc_server; + + if ( !is_object( $wp_xmlrpc_server ) ) + return false; + + // Lame: tightly coupled with the IXR class. + $args = $wp_xmlrpc_server->message->params; + + if ( !empty( $args[1] ) ) { + $post_id = url_to_postid( $args[1] ); + + // If this gets through the pre-check, make sure we properly identify the outbound request as a pingback verification + akismet_pingback_forwarded_for( null, $args[0] ); + add_filter( 'http_request_args', 'akismet_pingback_forwarded_for', 10, 2 ); + + $comment = array( + 'comment_author_url' => $args[0], + 'comment_post_ID' => $post_id, + 'comment_author' => '', + 'comment_author_email' => '', + 'comment_content' => '', + 'comment_type' => 'pingback', + 'akismet_pre_check' => '1', + 'comment_pingback_target' => $args[1], + ); + + $comment = akismet_auto_check_comment( $comment ); + + if ( isset( $comment['akismet_result'] ) && 'true' == $comment['akismet_result'] ) { + // Lame: tightly coupled with the IXR classes. Unfortunately the action provides no context and no way to return anything. + $wp_xmlrpc_server->error( new IXR_Error( 0, 'Invalid discovery target' ) ); + } + } + } + + // Run this early in the pingback call, before doing a remote fetch of the source uri + add_action( 'xmlrpc_call', 'akismet_pre_check_pingback' ); + global $wp_version; if ( '3.0.5' == $wp_version ) { remove_filter( 'comment_text', 'wp_kses_data' ); diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/readme.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/readme.txt *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/readme.txt 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/readme.txt 2014-03-18 01:15:43.000000000 +0300 *************** *** 2,9 **** Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, automattic Tags: akismet, comments, spam Requires at least: 3.0 ! Tested up to: 3.6 ! Stable tag: 2.5.9 License: GPLv2 or later Akismet checks your comments against the Akismet web service to see if they look like spam or not. --- 2,9 ---- Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, automattic Tags: akismet, comments, spam Requires at least: 3.0 ! Tested up to: 3.8.1 ! Stable tag: 2.6.0 License: GPLv2 or later Akismet checks your comments against the Akismet web service to see if they look like spam or not. *************** *** 31,36 **** --- 31,44 ---- == Changelog == + = 2.6.0 = + * Add ajax paging to the check for spam button to handle large volumes of comments + * Optimize javascript and add localization support + * Fix bug in link to spam comments from right now dashboard widget + * Fix bug with deleting old comments to avoid timeouts dealing with large volumes of comments + * Include X-Pingback-Forwarded-For header in outbound WordPress pingback verifications + * Add pre-check for pingbacks, to stop spam before an outbound verification request is made + = 2.5.9 = * Update 'Already have a key' link to redirect page rather than depend on javascript * Fix some non-translatable strings to be translatable diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/advanced-cache.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/advanced-cache.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/advanced-cache.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/advanced-cache.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 1,6 **** --- 1,10 ---- "; } diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/Changelog.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/Changelog.txt *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/Changelog.txt 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/Changelog.txt 2014-08-08 20:30:29.000000000 +0400 *************** *** 1,3 **** --- 1,106 ---- + 2014-08-08 13:07 donncha + + * wp-cache-phase1.php: Just in case the local modified time of a + file is 0, disable the "last modified time" check. + + 2014-08-08 11:32 donncha + + * plugins/domain-mapping.php: Check if HTTPS exists before checking + it's value to avoid warnings + + 2014-08-08 11:24 donncha + + * wp-cache.php: Replace wpdb->escape with esc_sql() as it's + deprecated. + + 2014-08-08 11:21 donncha + + * wp-cache-phase2.php: Make sure $wp_cache_no_cache_for_get, + $wp_cache_object_cache, $wp_cache_request_uri are visible to the + OB callback to avoid warnings and fix functionality + + 2014-08-07 14:00 donncha + + * Changelog.txt, readme.txt, wp-cache.php: Updated changelog, + documentation, bumped version number to 1.4.1 and tested version. + + 2014-08-07 12:45 donncha + + * wp-cache.php: Removed author information + + 2014-08-06 12:41 kraftbj + + * plugins/awaitingmoderation.php, plugins/badbehaviour.php, + plugins/domain-mapping.php, plugins/jetpack.php, + plugins/searchengine.php, plugins/wptouch.php, wp-cache.php: PR + #13: Added .button-primary and .button-secondary classes to and + removed »'s from buttons throughout the admin for + consistency. Ref: + https://github.com/Automattic/wp-super-cache/pull/13 Props: + rcowles + + 2014-08-05 20:00 kraftbj + + * ossdl-cdn.php, readme.txt, wp-cache.php: Fix bad merge. + + 2014-08-05 19:56 kraftbj + + * readme.txt: Add Jetpack to mobile FAQ. + + 2014-08-05 19:56 kraftbj + + * wp-cache.php: Remove CDN Sync Tools. No longer in WP.org repo + + 2014-08-05 19:55 kraftbj + + * ossdl-cdn.php, readme.txt, wp-cache.php: Update + wordpress.org/extend URLs + + 2014-08-05 12:42 donncha + + * wp-cache.php: Fix to avoid an XSS in the settings page. Props + Simon Waters, Surevine Limited. + + 2014-08-04 22:04 kraftbj + + * ossdl-cdn.php: Remove reference to CDN Sync. Plugin no longer in + repo. + + 2014-07-31 21:09 kraftbj + + * readme.txt: Add Jetpack to mobile FAQ. + + 2014-07-31 21:09 kraftbj + + * wp-cache.php: Remove CDN Sync Tools. No longer in WP.org repo + + 2014-07-31 21:08 kraftbj + + * ossdl-cdn.php, readme.txt, wp-cache-phase1.php, wp-cache.php: + Update wordpress.org/extend URLs + + 2014-07-31 21:08 kraftbj + + * plugins/awaitingmoderation.php, plugins/badbehaviour.php, + plugins/domain-mapping.php, plugins/dynamic-cache-test.php, + plugins/jetpack.php, plugins/searchengine.php, + plugins/wptouch.php: Trim whitespace + + 2014-07-31 21:07 kraftbj + + * wp-cache-config-sample.php, wp-cache-phase1.php, wp-cache.php: + Trim whitespace + + 2014-07-31 21:06 kraftbj + + * wp-cache.php: Admin: Add clear to h3 to pretify Recommended Links + title + + 2014-07-31 20:51 donncha + + * wp-cache-phase2.php: Make sure these are global so the function + knows about them. Props JoHenton and richardmtl + http://wordpress.org/support/topic/notices-appearing-above-site-pages-how-do-i-get-rid-of-them?replies=2 2013-10-23 10:49 donncha * wp-super-cache.pot: Updated translation file diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/ossdl-cdn.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/ossdl-cdn.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/ossdl-cdn.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/ossdl-cdn.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 149,155 **** $example_cdn_uri .= '/wp-includes/js/prototype.js'; ?>

wp-content and wp-includes directories (except for PHP files) on your site with the URL you provide below. That way you can either copy all the static content to a dedicated host or mirror the files to a CDN by origin pull.', 'wp-super-cache' ); ?>

-

CDN Sync Tool plugin will help upload files to Amazon S3/Cloudfront if you would rather not depend on origin pull. See the plugin support forum if you have any queries about this plugin.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cdn-sync-tool/', 'http://wordpress.org/tags/cdn-sync-tool?forum_id=10' ); ?>

WARNING: Test some static urls e.g., %s to ensure your CDN service is fully working before saving changes.', 'wp-super-cache' ), '' . $example_cdn_uri . '' ); ?>

--- 149,154 ---- *************** *** 196,202 ****

!

OSSDL CDN Off Linker by Mark Kubacki', 'wp-super-cache' ); ?>

--- 195,201 ----

!

OSSDL CDN Off Linker by Mark Kubacki', 'wp-super-cache' ); ?>

diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 16,22 **** //Your comment is awaiting moderation. function wp_supercache_awaitingmoderation_admin() { global $cache_awaitingmoderation, $wp_cache_config_file, $valid_nonce; ! $cache_awaitingmoderation = $cache_awaitingmoderation == '' ? '0' : $cache_awaitingmoderation; if(isset($_POST['cache_awaitingmoderation']) && $valid_nonce) { --- 16,22 ---- //Your comment is awaiting moderation. function wp_supercache_awaitingmoderation_admin() { global $cache_awaitingmoderation, $wp_cache_config_file, $valid_nonce; ! $cache_awaitingmoderation = $cache_awaitingmoderation == '' ? '0' : $cache_awaitingmoderation; if(isset($_POST['cache_awaitingmoderation']) && $valid_nonce) { *************** *** 28,34 **** } $id = 'awaitingmoderation-section'; ?> !

--- 28,34 ---- } $id = 'awaitingmoderation-section'; ?> !

*************** *** 42,48 **** $status = __( "disabled" ); echo "

" . sprintf( __( "Awaiting Moderation is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> --- 42,48 ---- $status = __( "disabled" ); echo "

" . sprintf( __( "Awaiting Moderation is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 33,39 **** function wp_supercache_badbehaviour_admin() { global $cache_badbehaviour, $wp_cache_config_file, $valid_nonce; ! $cache_badbehaviour = $cache_badbehaviour == '' ? 0 : $cache_badbehaviour; if ( $cache_badbehaviour == 'no' ) $cache_badbehaviour = 0; --- 33,39 ---- function wp_supercache_badbehaviour_admin() { global $cache_badbehaviour, $wp_cache_config_file, $valid_nonce; ! $cache_badbehaviour = $cache_badbehaviour == '' ? 0 : $cache_badbehaviour; if ( $cache_badbehaviour == 'no' ) $cache_badbehaviour = 0; *************** *** 59,65 **** } $id = 'badbehavior-section'; ?> !

--- 59,65 ---- } $id = 'badbehavior-section'; ?> !

*************** *** 73,79 **** $status = __( "disabled" ); echo "

" . sprintf( __( "Bad Behavior support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> --- 73,79 ---- $status = __( "disabled" ); echo "

" . sprintf( __( "Bad Behavior support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 10,16 **** if ( !$siteurl ) return false; ! $protocol = ( 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://'; $siteurl = trailingslashit( str_replace( $protocol, '', $siteurl ) ); if ( $directory == 'homepage' ) --- 10,16 ---- if ( !$siteurl ) return false; ! $protocol = ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://'; $siteurl = trailingslashit( str_replace( $protocol, '', $siteurl ) ); if ( $directory == 'homepage' ) *************** *** 22,29 **** @wp_cache_rebuild_or_delete( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz' ); break; case "prune": ! prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html', true, true ); ! prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz', true, true ); break; } --- 22,29 ---- @wp_cache_rebuild_or_delete( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz' ); break; case "prune": ! prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html', true, true ); ! prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz', true, true ); break; } *************** *** 39,45 **** if ( !$siteurl ) return $dir; ! $protocol = ( 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://'; $siteurl = str_replace( $protocol, '', $siteurl ); return $cache_path . 'supercache/' . $siteurl; } --- 39,45 ---- if ( !$siteurl ) return $dir; ! $protocol = ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://'; $siteurl = str_replace( $protocol, '', $siteurl ); return $cache_path . 'supercache/' . $siteurl; } *************** *** 55,61 **** function wp_supercache_domain_mapping_admin() { global $cache_domain_mapping, $wp_cache_config_file, $valid_nonce; ! $cache_domain_mapping = $cache_domain_mapping == '' ? '0' : $cache_domain_mapping; if(isset($_POST['cache_domain_mapping']) && $valid_nonce) { --- 55,61 ---- function wp_supercache_domain_mapping_admin() { global $cache_domain_mapping, $wp_cache_config_file, $valid_nonce; ! $cache_domain_mapping = $cache_domain_mapping == '' ? '0' : $cache_domain_mapping; if(isset($_POST['cache_domain_mapping']) && $valid_nonce) { *************** *** 69,75 **** } $id = 'domain_mapping-section'; ?> !

--- 69,75 ---- } $id = 'domain_mapping-section'; ?> !

*************** *** 83,89 **** $status = __( "disabled" ); echo "

" . sprintf( __( "Domain Mapping support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> --- 83,89 ---- $status = __( "disabled" ); echo "

" . sprintf( __( "Domain Mapping support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 1,113 **** This is a test. The current time on the server is: " . date( 'H:i:s' ) . "

"; ! $text = ob_get_contents(); ! ob_end_clean(); ! ! if ( $cachedata === 0 ) // called directly from the theme so store the output ! define( 'DYNAMIC_OB_TEXT', $text ); ! else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php ! return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata ); ! ! } ! add_cacheaction( 'wpsc_cachedata', 'dynamic_output_buffer_test' ); ! ! function dynamic_output_buffer_test_safety( $safety ) { ! if ( defined( 'DYNAMIC_OB_TEXT' ) ) ! return 1; // ready to replace tag with dynamic content. ! else ! return 0; // tag cannot be replaced. ! } ! add_cacheaction( 'wpsc_cachedata_safety', 'dynamic_output_buffer_test_safety' ); ! ! function dynamic_cache_test_filter( &$cachedata) { ! return str_replace( DYNAMIC_CACHE_TEST_TAG, "", $cachedata ); ! } ! add_cacheaction( 'wpsc_cachedata', 'dynamic_cache_test_filter' ); ! ! function dynamic_cache_test_template_tag() { ! echo DYNAMIC_CACHE_TEST_TAG; // This is the template tag ! } ! function dynamic_cache_test_init() { ! add_action( 'wp_footer', 'dynamic_cache_test_template_tag' ); } - add_cacheaction( 'add_cacheaction', 'dynamic_cache_test_init' ); - */ ?> --- 1,169 ---- ", $cachedata ); ! } ! add_cacheaction( 'wpsc_cachedata', 'dynamic_cache_test_filter' ); ! ! function dynamic_cache_test_template_tag() { ! echo DYNAMIC_CACHE_TEST_TAG; // This is the template tag ! } ! ! function dynamic_cache_test_init() { ! add_action( 'wp_footer', 'dynamic_cache_test_template_tag' ); ! } ! add_cacheaction( 'add_cacheaction', 'dynamic_cache_test_init' ); ! } /* ! * EXAMPLE 2 ! * ! * This is going to be complicated. Hang on! ! * ! * When the cache file for a new page is generated the plugin uses an output ! * buffer to capture the page. A callback function processes the buffer and ! * writes to the cache file. The placeholder tag for any dynamic content has ! * to be written to that cache file but also, it has to be replaced with ! * dynamic content before the page is shown to the user. ! * More on output buffers here: http://php.net/ob_start ! * ! * Unfortunately an extra output buffer is often required when capturing dynamic ! * content such as sidebar widgets. Due to a quirk of the way PHP works it's ! * not possible to have an output buffer run in an output buffer callback. That ! * dynamic content has to be generated before the callback function is reached. ! * The following error occurs when an output buffer is created in the ! * callback function of another output buffer: ! * "PHP Fatal error: ob_start(): Cannot use output buffering in output buffering display handlers in..." ! * ! * In this example the function add_action() isn't available when this file is ! * loaded so dynamic_output_buffer_init() is hooked on to the "add_cacheaction" ! * cacheaction. That function then hooks dynamic_output_buffer_test() on to the ! * familiar wp_footer action. ! * ! * The first time dynamic_output_buffer_test() runs it generates the dynamic ! * content and captures it with ob_start() in the DYNAMIC_OB_TEXT constant. ! * ! * When the main WP Super Cache output buffer is ready the callback is called. ! * This fires the wpsc_cachedata_safety filter. If the DYNAMIC_OB_TEXT constant ! * is set, which means dynamic content is ready, then it returns 1, a signal ! * that everything is ok. ! * Finally, the wpsc_cachedata filter is run. The function ! * dynamic_output_buffer_test() is hooked on to it. Since DYNAMIC_OB_TEXT is ! * set it replaces the placeholder text with that constant. ! * The resulting html is then sent to the browser. ! * ! * Already cached pages call the safety filter, and then the wpsc_cachedata ! * filter so any hooked function must be ready to generate dynamic content. The ! * very last line of dynamic_output_buffer_test() replaces the placeholder tag ! * with the dynamic content in the cache file. ! * ! * ! * Use an output buffer to capture dynamic content while the page is generated ! * and insert into the right place: ! * Remember to add the DYNAMIC_OUTPUT_BUFFER_TAG text (as defined below) to ! * your theme where the dynamic content should be. ! * ! * dynamic_output_buffer_test() is a function that uses the wpsc_cachedata ! * filter to add a small message and the current server time to every web ! * page. The time increments on every reload. ! * */ ! define( 'DYNAMIC_OUTPUT_BUFFER_TAG', '' ); // Change this to a secret placeholder tag ! if ( DYNAMIC_OUTPUT_BUFFER_TAG != '' ) { ! function dynamic_output_buffer_test( &$cachedata = 0 ) { ! if ( defined( 'DYNAMIC_OB_TEXT' ) ) ! return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, DYNAMIC_OB_TEXT, $cachedata ); ! ! ob_start(); ! // call the sidebar function, do something dynamic ! echo "

This is a test. The current time on the server is: " . date( 'H:i:s' ) . "

"; ! $text = ob_get_contents(); ! ob_end_clean(); ! ! if ( $cachedata === 0 ) { // called directly from the theme so store the output ! define( 'DYNAMIC_OB_TEXT', $text ); ! } else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php ! return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata ); ! ! } ! add_cacheaction( 'wpsc_cachedata', 'dynamic_output_buffer_test' ); ! ! function dynamic_output_buffer_init() { ! add_action( 'wp_footer', 'dynamic_output_buffer_test' ); ! } ! add_cacheaction( 'add_cacheaction', 'dynamic_output_buffer_init' ); ! ! function dynamic_output_buffer_test_safety( $safety ) { ! if ( defined( 'DYNAMIC_OB_TEXT' ) ) // this is set when you call dynamic_output_buffer_test() from the theme ! return 1; // ready to replace tag with dynamic content. ! else ! return 0; // tag cannot be replaced. ! } ! add_cacheaction( 'wpsc_cachedata_safety', 'dynamic_output_buffer_test_safety' ); } ?> diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/jetpack.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/jetpack.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/jetpack.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/jetpack.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 2,8 **** function wp_super_cache_jetpack_admin() { global $cache_jetpack, $wp_cache_config_file, $valid_nonce; ! $cache_jetpack = $cache_jetpack == '' ? '0' : $cache_jetpack; if(isset($_POST['cache_jetpack']) && $valid_nonce) { --- 2,8 ---- function wp_super_cache_jetpack_admin() { global $cache_jetpack, $wp_cache_config_file, $valid_nonce; ! $cache_jetpack = $cache_jetpack == '' ? '0' : $cache_jetpack; if(isset($_POST['cache_jetpack']) && $valid_nonce) { *************** *** 21,27 **** } $id = 'jetpack-section'; ?> !

!

" . sprintf( __( "Jetpack Mobile Theme support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> --- 39,45 ---- $status = __( "disabled" ); echo "

" . sprintf( __( "Jetpack Mobile Theme support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/searchengine.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/searchengine.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/searchengine.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/searchengine.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 54,60 **** function wp_supercache_searchengine_admin() { global $cache_no_adverts_for_friends, $wp_cache_config_file, $valid_nonce; ! $cache_no_adverts_for_friends = $cache_no_adverts_for_friends == '' ? 'no' : $cache_no_adverts_for_friends; if(isset($_POST['cache_no_adverts_for_friends']) && $valid_nonce) { --- 54,60 ---- function wp_supercache_searchengine_admin() { global $cache_no_adverts_for_friends, $wp_cache_config_file, $valid_nonce; ! $cache_no_adverts_for_friends = $cache_no_adverts_for_friends == '' ? 'no' : $cache_no_adverts_for_friends; if(isset($_POST['cache_no_adverts_for_friends']) && $valid_nonce) { *************** *** 63,69 **** } $id = 'no_adverts_for_friends-section'; ?> !

--- 63,69 ---- } $id = 'no_adverts_for_friends-section'; ?> !

*************** *** 77,83 **** $status = __( "disabled" ); echo "

" . sprintf( __( "No Adverts for Friends support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> --- 77,83 ---- $status = __( "disabled" ); echo "

" . sprintf( __( "No Adverts for Friends support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/wptouch.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/wptouch.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/wptouch.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/wptouch.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 2,8 **** function wp_super_cache_wptouch_admin() { global $cache_wptouch, $wp_cache_config_file, $valid_nonce; ! $cache_wptouch = $cache_wptouch == '' ? '0' : $cache_wptouch; if(isset($_POST['cache_wptouch']) && $valid_nonce) { --- 2,8 ---- function wp_super_cache_wptouch_admin() { global $cache_wptouch, $wp_cache_config_file, $valid_nonce; ! $cache_wptouch = $cache_wptouch == '' ? '0' : $cache_wptouch; if(isset($_POST['cache_wptouch']) && $valid_nonce) { *************** *** 16,22 **** } $id = 'wptouch-section'; ?> !

--- 16,22 ---- } $id = 'wptouch-section'; ?> !

*************** *** 30,36 **** $status = __( "disabled" ); echo "

" . sprintf( __( "WPTouch support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> --- 30,36 ---- $status = __( "disabled" ); echo "

" . sprintf( __( "WPTouch support is now %s", 'wp-super-cache' ), $status ) . "

"; } ! echo '
'; wp_nonce_field('wp-cache'); ?> *************** *** 57,63 **** add_cacheaction( 'add_cacheaction', 'wp_super_cache_wptouch_exists' ); } ! // disable mobile checking if function wp_super_cache_maybe_disable_wptouch( $t ) { global $cache_wptouch, $wptouch_exclude_ua; if ( $cache_wptouch != 1 ) --- 57,63 ---- add_cacheaction( 'add_cacheaction', 'wp_super_cache_wptouch_exists' ); } ! // disable mobile checking if function wp_super_cache_maybe_disable_wptouch( $t ) { global $cache_wptouch, $wptouch_exclude_ua; if ( $cache_wptouch != 1 ) *************** *** 96,102 **** function wp_super_cache_wptouch_prefixes( $prefixes ) { return array(); // wptouch doesn't support UA prefixes ! } function wp_super_cache_wptouch_cookie_check( $cache_key ) { if ( false == isset( $_COOKIE[ 'wptouch_switch_toggle' ] ) ) --- 96,102 ---- function wp_super_cache_wptouch_prefixes( $prefixes ) { return array(); // wptouch doesn't support UA prefixes ! } function wp_super_cache_wptouch_cookie_check( $cache_key ) { if ( false == isset( $_COOKIE[ 'wptouch_switch_toggle' ] ) ) diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/readme.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/readme.txt *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/readme.txt 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/readme.txt 2014-08-08 20:30:29.000000000 +0400 *************** *** 1,8 **** === WP Super Cache === Contributors: donncha, automattic Tags: performance,caching,wp-cache,wp-super-cache,cache ! Tested up to: 3.6.1 ! Stable tag: 1.4 Requires at least: 3.0 A very fast caching engine for WordPress that produces static html files. --- 1,8 ---- === WP Super Cache === Contributors: donncha, automattic Tags: performance,caching,wp-cache,wp-super-cache,cache ! Tested up to: 3.9.2 ! Stable tag: 1.4.2 Requires at least: 3.0 A very fast caching engine for WordPress that produces static html files. *************** *** 56,65 **** == Upgrade Notice == ! = 1.4 = ! Dynamic cached content now disabled by default. mfunc replaced by wpsc_cachedata filter. Read http://ocaoimh.ie/y/6j before updating if you use mfunc/mclude/dynamic-cached-content. == Changelog == = 1.4 = * Replace legacy mfunc/mnclude/dynamic-cached-content functionality with a "wpsc_cachedata" cacheaction filter. * Added dynamic-cache-test.php plugin example wpsc_cachedata filter plugin. --- 56,76 ---- == Upgrade Notice == ! = 1.4.2 = ! Fixed "acceptable file list" and no caching for GET queries bugs in last release. == Changelog == + = 1.4.2 = + * Fixed "acceptable file list". + * Fixed "Don't cache GET requests" feature. + * Maybe fixed "304 not modified" problem for some users. + * Fixed some PHP warnings. + + = 1.4.1 = + * Fixed XSS in settings page. Props Simon Waters, Surevine Limited. + * Fix to object cache so entries may now be deleted when posts updated. (object cache still experimental) + * Documentation updates and cleanup of settings page. + = 1.4 = * Replace legacy mfunc/mnclude/dynamic-cached-content functionality with a "wpsc_cachedata" cacheaction filter. * Added dynamic-cache-test.php plugin example wpsc_cachedata filter plugin. *************** *** 460,469 **** = How do I serve cached mobile pages to clients on small screens like phones and tablets? = You'll have to use a separate mobile plugin to render a page formatted for those visitors. The following plugins have been tested but YMMV depending on mobile client. - * [WPTouch] (http://wordpress.org/extend/plugins/wptouch/) - * [WordPress Mobile Edition] (http://wordpress.org/extend/plugins/wordpress-mobile-edition/) - * [WordPress Mobile Pack] (http://wordpress.org/extend/plugins/wordpress-mobile-pack/) (can't have "Don't cache pages for known users." enabled) = Troubleshooting = --- 471,481 ---- = How do I serve cached mobile pages to clients on small screens like phones and tablets? = You'll have to use a separate mobile plugin to render a page formatted for those visitors. The following plugins have been tested but YMMV depending on mobile client. + * [Jetpack's Mobile Theme Module](http://wordpress.org/plugins/jetpack) + * [WPTouch](http://wordpress.org/plugins/wptouch/) + * [WordPress Mobile Edition](http://wordpress.org/plugins/wordpress-mobile-edition/) + * [WordPress Mobile Pack](http://wordpress.org/plugins/wordpress-mobile-pack/) (can't have "Don't cache pages for known users." enabled) = Troubleshooting = *************** *** 508,514 **** 26. If certain characters do not appear correctly on your website your server may not be configured correctly. You need to tell visitors what character set is used. Go to Settings->Reading and copy the 'Encoding for pages and feeds' value. Edit the .htaccess file with all your Supercache and WordPress rewrite rules and add this at the top, replacing CHARSET with the copied value. (for example, 'UTF-8') `AddDefaultCharset CHARSET` ! 27. Use [Cron View](http://wordpress.org/extend/plugins/cron-view/) to help diagnose garbage collection and preload problems. Use the plugin to make sure jobs are scheduled and for what time. Look for the wp_cache_gc and wp_cache_full_preload_hook jobs. 18. The error message, "WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory." appears at the end of every page. You can delete wp-content/advanced-cache.php and reload the plugin settings page or edit wp-config.php and look for WPCACHEHOME and make sure it points at the wp-super-cache folder. This will normally be wp-content/plugins/wp-super-cache/ but you'll likely need the full path to that file (so it's easier to let the settings page fix it). If it is not correct the caching engine will not load. --- 520,526 ---- 26. If certain characters do not appear correctly on your website your server may not be configured correctly. You need to tell visitors what character set is used. Go to Settings->Reading and copy the 'Encoding for pages and feeds' value. Edit the .htaccess file with all your Supercache and WordPress rewrite rules and add this at the top, replacing CHARSET with the copied value. (for example, 'UTF-8') `AddDefaultCharset CHARSET` ! 27. Use [Cron View](http://wordpress.org/plugins/cron-view/) to help diagnose garbage collection and preload problems. Use the plugin to make sure jobs are scheduled and for what time. Look for the wp_cache_gc and wp_cache_full_preload_hook jobs. 18. The error message, "WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory." appears at the end of every page. You can delete wp-content/advanced-cache.php and reload the plugin settings page or edit wp-config.php and look for WPCACHEHOME and make sure it points at the wp-super-cache folder. This will normally be wp-content/plugins/wp-super-cache/ but you'll likely need the full path to that file (so it's easier to let the settings page fix it). If it is not correct the caching engine will not load. *************** *** 516,522 **** A Content Delivery Network (CDN) is usually a network of computers situated around the world that will serve the content of your website faster by using servers close to you. Static files like images, Javascript and CSS files can be served through these networks to speed up how fast your site loads. You can also create a "poor man's CDN" by using a sub domain of your domain to serve static files too. ! [OSSDL CDN off-linker](http://wordpress.org/extend/plugins/ossdl-cdn-off-linker/) has been integrated into WP Super Cache to provide basic CDN support. It works by rewriting the URLs of files (excluding .php files) in wp-content and wp-includes on your server so they point at a different hostname. Many CDNs support [origin pull](http://www.google.com/search?hl=en&q=%22origin+pull%22). This means the CDN will download the file automatically from your server when it's first requested, and will continue to serve it for a configurable length of time before downloading it again from your server. Configure this on the "CDN" tab of the plugin settings page. This is an advanced technique and requires a basic understanding of how your webserver or CDNs work. Please be sure to clear the file cache after you configure the CDN. --- 528,534 ---- A Content Delivery Network (CDN) is usually a network of computers situated around the world that will serve the content of your website faster by using servers close to you. Static files like images, Javascript and CSS files can be served through these networks to speed up how fast your site loads. You can also create a "poor man's CDN" by using a sub domain of your domain to serve static files too. ! [OSSDL CDN off-linker](http://wordpress.org/plugins/ossdl-cdn-off-linker/) has been integrated into WP Super Cache to provide basic CDN support. It works by rewriting the URLs of files (excluding .php files) in wp-content and wp-includes on your server so they point at a different hostname. Many CDNs support [origin pull](http://www.google.com/search?hl=en&q=%22origin+pull%22). This means the CDN will download the file automatically from your server when it's first requested, and will continue to serve it for a configurable length of time before downloading it again from your server. Configure this on the "CDN" tab of the plugin settings page. This is an advanced technique and requires a basic understanding of how your webserver or CDNs work. Please be sure to clear the file cache after you configure the CDN. *************** *** 536,542 **** See plugins/searchengine.php as an example I use for my [No Adverts for Friends](http://ocaoimh.ie/no-adverts-for-friends/) plugin. == Links == ! [WP Widget Cache](http://wordpress.org/extend/plugins/wp-widget-cache/) is another caching plugin for WordPress. This plugin caches the output of widgets and may significantly speed up dynamic page generation times. == Updates == Updates to the plugin will be posted here, to [Holy Shmoly!](http://ocaoimh.ie/) and the [WP Super Cache homepage](http://ocaoimh.ie/wp-super-cache/) will always link to the newest version. --- 548,554 ---- See plugins/searchengine.php as an example I use for my [No Adverts for Friends](http://ocaoimh.ie/no-adverts-for-friends/) plugin. == Links == ! [WP Widget Cache](http://wordpress.org/plugins/wp-widget-cache/) is another caching plugin for WordPress. This plugin caches the output of widgets and may significantly speed up dynamic page generation times. == Updates == Updates to the plugin will be posted here, to [Holy Shmoly!](http://ocaoimh.ie/) and the [WP Super Cache homepage](http://ocaoimh.ie/wp-super-cache/) will always link to the newest version. diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 17,23 **** $file_prefix = 'wp-cache-'; $ossdlcdn = 0; ! // Array of files that have 'wp-' but should still be cached $cache_acceptable_files = array( 'wp-comments-popup.php', 'wp-links-opml.php', 'wp-locations.php' ); $cache_rejected_uri = array('wp-.*\\.php', 'index\\.php'); --- 17,23 ---- $file_prefix = 'wp-cache-'; $ossdlcdn = 0; ! // Array of files that have 'wp-' but should still be cached $cache_acceptable_files = array( 'wp-comments-popup.php', 'wp-links-opml.php', 'wp-locations.php' ); $cache_rejected_uri = array('wp-.*\\.php', 'index\\.php'); *************** *** 44,50 **** // change to relocate the supercache plugins directory $wp_cache_plugins_dir = WPCACHEHOME . 'plugins'; // set to 1 to do garbage collection during normal process shutdown instead of wp-cron ! $wp_cache_shutdown_gc = 0; $wp_super_cache_late_init = 0; // uncomment the next line to enable advanced debugging features --- 44,50 ---- // change to relocate the supercache plugins directory $wp_cache_plugins_dir = WPCACHEHOME . 'plugins'; // set to 1 to do garbage collection during normal process shutdown instead of wp-cron ! $wp_cache_shutdown_gc = 0; $wp_super_cache_late_init = 0; // uncomment the next line to enable advanced debugging features diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase1.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase1.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase1.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase1.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 47,53 **** do_cacheaction( 'cache_init' ); ! if (!$cache_enabled || $_SERVER["REQUEST_METHOD"] == 'POST') return true; $file_expired = false; --- 47,53 ---- do_cacheaction( 'cache_init' ); ! if (!$cache_enabled || $_SERVER["REQUEST_METHOD"] == 'POST') return true; $file_expired = false; *************** *** 77,85 **** if ( $wp_cache_object_cache ) { if ( ! include_once( WP_CONTENT_DIR . '/object-cache.php' ) ) return; ! wp_cache_init(); // Note: wp-settings.php calls wp_cache_init() which clobbers the object made here. ! if ( ! is_object( $wp_object_cache ) ) return; } --- 77,85 ---- if ( $wp_cache_object_cache ) { if ( ! include_once( WP_CONTENT_DIR . '/object-cache.php' ) ) return; ! wp_cache_init(); // Note: wp-settings.php calls wp_cache_init() which clobbers the object made here. ! if ( ! is_object( $wp_object_cache ) ) return; } *************** *** 135,141 **** return false; } ! if ( $wp_cache_object_cache && wp_cache_get_cookies_values() == '' ) { if ( !empty( $_GET ) ) { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Not serving request from object cache. " . print_r( $_GET, 1 ), 1 ); return false; --- 135,141 ---- return false; } ! if ( $wp_cache_object_cache && wp_cache_get_cookies_values() == '' ) { if ( !empty( $_GET ) ) { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Not serving request from object cache. " . print_r( $_GET, 1 ), 1 ); return false; *************** *** 187,221 **** $wp_cache_home_path = '/'; // make sure ending slashes are ok ! if ( $wp_cache_request_uri == $wp_cache_home_path || ( $wp_cache_slash_check && substr( $wp_cache_request_uri, -1 ) == '/' ) || ( $wp_cache_slash_check == 0 && substr( $wp_cache_request_uri, -1 ) != '/' ) ) { if ( $wp_cache_mfunc_enabled == 0 ) { // get data from file if ( $wp_cache_gzip_encoding ) { if ( file_exists( $file . '.gz' ) ) { $cachefiledata = file_get_contents( $file . '.gz' ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched gzip static page data from supercache file using PHP. File: $file.gz" ); } else { $cachefiledata = gzencode( file_get_contents( $file ), 6, FORCE_GZIP ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP and gzipped it. File: $file" ); } } else { $cachefiledata = file_get_contents( $file ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP. File: $file" ); } } else { // get dynamic data from filtered file ! $cachefiledata = do_cacheaction( 'wpsc_cachedata', file_get_contents( $file ) ); if ( $wp_cache_gzip_encoding ) { $cachefiledata = gzencode( $cachefiledata, 6, FORCE_GZIP ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP and gzipped it. File: $file" ); } else { ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP. File: $file" ); } } if ( isset( $wp_cache_disable_utf8 ) == false || $wp_cache_disable_utf8 == 0 ) ! header( "Content-type: text/html; charset=UTF-8" ); header( "Vary: Accept-Encoding, Cookie" ); header( "Cache-Control: max-age=3, must-revalidate" ); --- 187,221 ---- $wp_cache_home_path = '/'; // make sure ending slashes are ok ! if ( $wp_cache_request_uri == $wp_cache_home_path || ( $wp_cache_slash_check && substr( $wp_cache_request_uri, -1 ) == '/' ) || ( $wp_cache_slash_check == 0 && substr( $wp_cache_request_uri, -1 ) != '/' ) ) { if ( $wp_cache_mfunc_enabled == 0 ) { // get data from file if ( $wp_cache_gzip_encoding ) { if ( file_exists( $file . '.gz' ) ) { $cachefiledata = file_get_contents( $file . '.gz' ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched gzip static page data from supercache file using PHP. File: $file.gz" ); } else { $cachefiledata = gzencode( file_get_contents( $file ), 6, FORCE_GZIP ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP and gzipped it. File: $file" ); } } else { $cachefiledata = file_get_contents( $file ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP. File: $file" ); } } else { // get dynamic data from filtered file ! $cachefiledata = do_cacheaction( 'wpsc_cachedata', file_get_contents( $file ) ); if ( $wp_cache_gzip_encoding ) { $cachefiledata = gzencode( $cachefiledata, 6, FORCE_GZIP ); ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP and gzipped it. File: $file" ); } else { ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP. File: $file" ); } } if ( isset( $wp_cache_disable_utf8 ) == false || $wp_cache_disable_utf8 == 0 ) ! header( "Content-type: text/html; charset=UTF-8" ); header( "Vary: Accept-Encoding, Cookie" ); header( "Cache-Control: max-age=3, must-revalidate" ); *************** *** 234,243 **** $request = apache_request_headers(); $remote_mod_time = $request[ 'If-Modified-Since' ]; } else { ! $remote_mod_time = $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ]; } $local_mod_time = gmdate("D, d M Y H:i:s",filemtime( $file )).' GMT'; ! if ( $remote_mod_time == $local_mod_time ) { header("HTTP/1.0 304 Not Modified"); exit(); } --- 234,246 ---- $request = apache_request_headers(); $remote_mod_time = $request[ 'If-Modified-Since' ]; } else { ! if ( isset( $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ] ) ) ! $remote_mod_time = $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ]; ! else ! $remote_mod_time = 0; } $local_mod_time = gmdate("D, d M Y H:i:s",filemtime( $file )).' GMT'; ! if ( $remote_mod_time != 0 && $remote_mod_time == $local_mod_time ) { header("HTTP/1.0 304 Not Modified"); exit(); } *************** *** 261,271 **** } foreach ($meta[ 'headers' ] as $t => $header) { // godaddy fix, via http://blog.gneu.org/2008/05/wp-supercache-on-godaddy/ and http://www.littleredrails.com/blog/2007/09/08/using-wp-cache-on-godaddy-500-error/ ! if( strpos( $header, 'Last-Modified:' ) === false ) header($header); } header( 'WP-Super-Cache: Served legacy cache file' ); ! if ( $wp_cache_object_cache ) { if ( $cache ) { if ( $ungzip ) { // attempt to uncompress the cached file just in case it's gzipped --- 264,274 ---- } foreach ($meta[ 'headers' ] as $t => $header) { // godaddy fix, via http://blog.gneu.org/2008/05/wp-supercache-on-godaddy/ and http://www.littleredrails.com/blog/2007/09/08/using-wp-cache-on-godaddy-500-error/ ! if( strpos( $header, 'Last-Modified:' ) === false ) header($header); } header( 'WP-Super-Cache: Served legacy cache file' ); ! if ( $wp_cache_object_cache ) { if ( $cache ) { if ( $ungzip ) { // attempt to uncompress the cached file just in case it's gzipped *************** *** 278,284 **** } if ( isset( $meta[ 'dynamic' ] ) && $meta[ 'dynamic' ] ) { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache dynamic file from object cache", 5 ); ! echo do_cacheaction( 'wpsc_cachedata', $cache ); } else { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file from object cache", 5 ); echo $cache; --- 281,287 ---- } if ( isset( $meta[ 'dynamic' ] ) && $meta[ 'dynamic' ] ) { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache dynamic file from object cache", 5 ); ! echo do_cacheaction( 'wpsc_cachedata', $cache ); } else { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file from object cache", 5 ); echo $cache; *************** *** 296,307 **** if ( $uncompressed ) { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Uncompressed gzipped cache file from wp-cache", 1 ); unset( $cache ); ! echo do_cacheaction( 'wpsc_cachedata', $uncompressed ); } else { ! echo do_cacheaction( 'wpsc_cachedata', $cache ); } } else { ! echo do_cacheaction( 'wpsc_cachedata', file_get_contents( $cache_file ) ); } } else { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file", 5 ); --- 299,310 ---- if ( $uncompressed ) { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Uncompressed gzipped cache file from wp-cache", 1 ); unset( $cache ); ! echo do_cacheaction( 'wpsc_cachedata', $uncompressed ); } else { ! echo do_cacheaction( 'wpsc_cachedata', $cache ); } } else { ! echo do_cacheaction( 'wpsc_cachedata', file_get_contents( $cache_file ) ); } } else { if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file", 5 ); *************** *** 335,341 **** function wp_cache_postload() { global $cache_enabled, $wp_super_cache_late_init, $wp_super_cache_debug; ! if ( !$cache_enabled || isset( $_GET[ 'preview' ] ) ) return true; if ( isset( $wp_super_cache_late_init ) && true == $wp_super_cache_late_init ) { --- 338,344 ---- function wp_cache_postload() { global $cache_enabled, $wp_super_cache_late_init, $wp_super_cache_debug; ! if ( !$cache_enabled ) return true; if ( isset( $wp_super_cache_late_init ) && true == $wp_super_cache_late_init ) { *************** *** 393,399 **** if ( is_array( $func ) ) { $value = $func[0]->{$func[1]}( $value ); } else { ! $value = $func( $value ); } } } --- 396,402 ---- if ( is_array( $func ) ) { $value = $func[0]->{$func[1]}( $value ); } else { ! $value = $func( $value ); } } } *************** *** 414,420 **** return "mobile"; } ! // From http://wordpress.org/extend/plugins/wordpress-mobile-edition/ by Alex King function wp_cache_check_mobile( $cache_key ) { global $wp_cache_mobile_enabled, $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes; if ( !isset( $wp_cache_mobile_enabled ) || false == $wp_cache_mobile_enabled ) --- 417,423 ---- return "mobile"; } ! // From http://wordpress.org/plugins/wordpress-mobile-edition/ by Alex King function wp_cache_check_mobile( $cache_key ) { global $wp_cache_mobile_enabled, $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes; if ( !isset( $wp_cache_mobile_enabled ) || false == $wp_cache_mobile_enabled ) *************** *** 451,457 **** return $cache_key . '-' . wp_cache_mobile_group( $user_agent ); } } ! if (isset($_SERVER['HTTP_X_WAP_PROFILE']) ) return $cache_key . '-' . $_SERVER['HTTP_X_WAP_PROFILE']; if (isset($_SERVER['HTTP_PROFILE']) ) return $cache_key . '-' . $_SERVER['HTTP_PROFILE']; --- 454,460 ---- return $cache_key . '-' . wp_cache_mobile_group( $user_agent ); } } ! if (isset($_SERVER['HTTP_X_WAP_PROFILE']) ) return $cache_key . '-' . $_SERVER['HTTP_X_WAP_PROFILE']; if (isset($_SERVER['HTTP_PROFILE']) ) return $cache_key . '-' . $_SERVER['HTTP_PROFILE']; *************** *** 589,595 **** if ( $dir != '' && isset( $wp_cache_mobile_enabled ) && $wp_cache_mobile_enabled ) { // open directory and look for index-*.html files ! if ( is_dir( $dir ) && $dh = opendir( $dir ) ) { while ( ( $file = readdir( $dh ) ) !== false ) { if ( substr( $file, 0, 6 ) == 'index-' && strpos( $file, '.html' ) ) $filenames[] = $file; --- 592,598 ---- if ( $dir != '' && isset( $wp_cache_mobile_enabled ) && $wp_cache_mobile_enabled ) { // open directory and look for index-*.html files ! if ( is_dir( $dir ) && $dh = @opendir( $dir ) ) { while ( ( $file = readdir( $dh ) ) !== false ) { if ( substr( $file, 0, 6 ) == 'index-' && strpos( $file, '.html' ) ) $filenames[] = $file; *************** *** 657,663 **** function wp_supercache_cache_for_admins() { if ( isset( $_GET[ 'preview' ] ) || function_exists( "is_admin" ) && is_admin() ) ! return $cookies; if ( false == do_cacheaction( 'wp_supercache_remove_cookies', true ) ) return true; --- 660,666 ---- function wp_supercache_cache_for_admins() { if ( isset( $_GET[ 'preview' ] ) || function_exists( "is_admin" ) && is_admin() ) ! return true; if ( false == do_cacheaction( 'wp_supercache_remove_cookies', true ) ) return true; diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase2.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase2.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase2.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase2.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 2,8 **** function wp_cache_phase2() { global $cache_filename, $cache_acceptable_files, $wp_cache_gzip_encoding, $super_cache_enabled, $cache_rebuild_files, $wp_cache_last_gc; ! global $cache_max_time, $wp_cache_request_uri, $super_cache_enabled, $wp_cache_object_cache, $cache_time_interval, $wp_cache_no_cache_for_get; global $cache_enabled, $wp_cache_gmt_offset, $wp_cache_blog_charset, $cache_schedule_type, $cache_scheduled_time, $cache_schedule_interval; if ( $cache_enabled == false ) { --- 2,8 ---- function wp_cache_phase2() { global $cache_filename, $cache_acceptable_files, $wp_cache_gzip_encoding, $super_cache_enabled, $cache_rebuild_files, $wp_cache_last_gc; ! global $cache_max_time, $wp_cache_request_uri, $super_cache_enabled, $wp_cache_object_cache, $cache_time_interval; global $cache_enabled, $wp_cache_gmt_offset, $wp_cache_blog_charset, $cache_schedule_type, $cache_scheduled_time, $cache_schedule_interval; if ( $cache_enabled == false ) { *************** *** 46,90 **** do_cacheaction( 'add_cacheaction' ); } - if ( $wp_cache_no_cache_for_get && false == empty( $_GET ) && false == defined( 'DOING_CRON' ) ) { - if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Caching disabled on settings page. " . print_r( $_GET, 1 ), 1 ); - return false; - } - if ( is_admin() ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching wp-admin requests.', 5 ); return false; } - if ( $_SERVER["REQUEST_METHOD"] == 'POST' || !empty( $_POST ) || get_option( 'gzipcompression' ) ) { - if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching POST request.', 5 ); - return false; - } - - if ( $wp_cache_object_cache && !empty( $_GET ) ) { - if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching GET request while object cache storage enabled.', 5 ); - return false; - } - - if ( isset( $_GET[ 'preview' ] ) ) { - if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching preview post.', 2 ); - return false; - } - if ( !empty( $_GET ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Supercache caching disabled. Only using wp-cache. Non empty GET request. ' . print_r( $_GET, 1 ), 5 ); $super_cache_enabled = false; } - $script = basename($_SERVER['PHP_SELF']); - if (!in_array($script, $cache_acceptable_files) && wp_cache_is_rejected($wp_cache_request_uri)) { - if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'URI rejected. Not Caching', 2 ); - return false; - } - if (wp_cache_user_agent_is_rejected()) { - if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "USER AGENT ({$_SERVER[ 'HTTP_USER_AGENT' ]}) rejected. Not Caching", 4 ); - return; - } if($wp_cache_gzip_encoding) header('Vary: Accept-Encoding, Cookie'); else --- 46,61 ---- *************** *** 268,320 **** } function wp_cache_ob_callback( $buffer ) { ! global $wp_cache_pages, $wp_query, $wp_super_cache_query; $buffer = apply_filters( 'wp_cache_ob_callback_filter', $buffer ); - if( defined( 'DONOTCACHEPAGE' ) ) { - if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'DONOTCACHEPAGE defined. Caching disabled.', 2 ); - return $buffer; - } ! if ( isset( $wp_cache_pages[ 'single' ] ) && $wp_cache_pages[ 'single' ] == 1 && isset( $wp_super_cache_query[ 'is_single' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single post.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'pages' ] ) && $wp_cache_pages[ 'pages' ] == 1 && isset( $wp_super_cache_query[ 'is_page' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'archives' ] ) && $wp_cache_pages[ 'archives' ] == 1 && isset( $wp_super_cache_query[ 'is_archive' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching archive page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'tag' ] ) && $wp_cache_pages[ 'tag' ] == 1 && isset( $wp_super_cache_query[ 'is_tag' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching tag page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'category' ] ) && $wp_cache_pages[ 'category' ] == 1 && isset( $wp_super_cache_query[ 'is_category' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching category page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'frontpage' ] ) && $wp_cache_pages[ 'frontpage' ] == 1 && isset( $wp_super_cache_query[ 'is_front_page' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching front page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'home' ] ) && $wp_cache_pages[ 'home' ] == 1 && isset( $wp_super_cache_query[ 'is_home' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching home page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'search' ] ) && $wp_cache_pages[ 'search' ] == 1 && isset( $wp_super_cache_query[ 'is_search' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching search page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'author' ] ) && $wp_cache_pages[ 'author' ] == 1 && isset( $wp_super_cache_query[ 'is_author' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching author page.', 2 ); ! return $buffer; } elseif ( isset( $wp_cache_pages[ 'feed' ] ) && $wp_cache_pages[ 'feed' ] == 1 && isset( $wp_super_cache_query[ 'is_feed' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching feed.', 2 ); ! return $buffer; } if ( !isset( $wp_query ) ) if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_ob_callback: WARNING! $query not defined but the plugin has worked around that problem.', 4 ); ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Output buffer callback', 4 ); ! $buffer = wp_cache_get_ob( $buffer ); ! wp_cache_shutdown_callback(); ! return $buffer; } function wp_cache_append_tag( &$buffer ) { --- 239,317 ---- } function wp_cache_ob_callback( $buffer ) { ! global $wp_cache_pages, $wp_query, $wp_super_cache_query, $cache_acceptable_files, $wp_cache_no_cache_for_get, $wp_cache_object_cache, $wp_cache_request_uri; $buffer = apply_filters( 'wp_cache_ob_callback_filter', $buffer ); ! $script = basename($_SERVER['PHP_SELF']); ! ! // All the things that can stop a page being cached ! $cache_this_page = true; ! if ( defined( 'DONOTCACHEPAGE' ) ) { ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'DONOTCACHEPAGE defined. Caching disabled.', 2 ); ! $cache_this_page = false; ! } elseif ( $wp_cache_no_cache_for_get && false == empty( $_GET ) && false == defined( 'DOING_CRON' ) ) { ! if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Caching disabled on settings page. " . print_r( $_GET, 1 ), 1 ); ! $cache_this_page = false; ! } elseif ( $_SERVER["REQUEST_METHOD"] == 'POST' || !empty( $_POST ) || get_option( 'gzipcompression' ) ) { ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching POST request.', 5 ); ! $cache_this_page = false; ! } elseif ( $wp_cache_object_cache && !empty( $_GET ) ) { ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching GET request while object cache storage enabled.', 5 ); ! $cache_this_page = false; ! } elseif ( isset( $_GET[ 'preview' ] ) ) { ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching preview post.', 2 ); ! $cache_this_page = false; ! } elseif ( !in_array($script, $cache_acceptable_files) && wp_cache_is_rejected( $wp_cache_request_uri ) ) { ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'URI rejected. Not Caching', 2 ); ! $cache_this_page = false; ! } elseif ( wp_cache_user_agent_is_rejected() ) { ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "USER AGENT ({$_SERVER[ 'HTTP_USER_AGENT' ]}) rejected. Not Caching", 4 ); ! $cache_this_page = false; ! } elseif ( isset( $wp_cache_pages[ 'single' ] ) && $wp_cache_pages[ 'single' ] == 1 && isset( $wp_super_cache_query[ 'is_single' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single post.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'pages' ] ) && $wp_cache_pages[ 'pages' ] == 1 && isset( $wp_super_cache_query[ 'is_page' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'archives' ] ) && $wp_cache_pages[ 'archives' ] == 1 && isset( $wp_super_cache_query[ 'is_archive' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching archive page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'tag' ] ) && $wp_cache_pages[ 'tag' ] == 1 && isset( $wp_super_cache_query[ 'is_tag' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching tag page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'category' ] ) && $wp_cache_pages[ 'category' ] == 1 && isset( $wp_super_cache_query[ 'is_category' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching category page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'frontpage' ] ) && $wp_cache_pages[ 'frontpage' ] == 1 && isset( $wp_super_cache_query[ 'is_front_page' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching front page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'home' ] ) && $wp_cache_pages[ 'home' ] == 1 && isset( $wp_super_cache_query[ 'is_home' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching home page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'search' ] ) && $wp_cache_pages[ 'search' ] == 1 && isset( $wp_super_cache_query[ 'is_search' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching search page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'author' ] ) && $wp_cache_pages[ 'author' ] == 1 && isset( $wp_super_cache_query[ 'is_author' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching author page.', 2 ); ! $cache_this_page = false; } elseif ( isset( $wp_cache_pages[ 'feed' ] ) && $wp_cache_pages[ 'feed' ] == 1 && isset( $wp_super_cache_query[ 'is_feed' ] ) ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching feed.', 2 ); ! $cache_this_page = false; } if ( !isset( $wp_query ) ) if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_ob_callback: WARNING! $query not defined but the plugin has worked around that problem.', 4 ); ! if ( $cache_this_page ) { ! if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Output buffer callback', 4 ); ! ! $buffer = wp_cache_get_ob( $buffer ); ! wp_cache_shutdown_callback(); ! return $buffer; ! } else { ! return wp_cache_maybe_dynamic( $buffer ); ! } } function wp_cache_append_tag( &$buffer ) { *************** *** 347,352 **** --- 344,364 ---- $buffer .= "\n"; } + /* + * If dynamic caching is enabled then run buffer through wpsc_cachedata filter before returning it. + * or we'll return template tags to visitors. + */ + function wp_cache_maybe_dynamic( &$buffer ) { + global $wp_cache_mfunc_enabled; + if ( $wp_cache_mfunc_enabled == 1 && do_cacheaction( 'wpsc_cachedata_safety', 0 ) === 1 ) { + if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_maybe_dynamic: filtered $buffer through wpsc_cachedata', 4 ); + return do_cacheaction( 'wpsc_cachedata', $buffer ); // dynamic content for display + } else { + if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_maybe_dynamic: returned $buffer', 4 ); + return $buffer; + } + } + function wp_cache_get_ob(&$buffer) { global $cache_enabled, $cache_path, $cache_filename, $meta_file, $wp_start_time, $supercachedir; global $new_cache, $wp_cache_meta, $file_expired, $blog_id, $cache_compression; *************** *** 393,399 **** } if( !$new_cache ) ! return $buffer; $duration = wp_cache_microtime_diff($wp_start_time, microtime()); $duration = sprintf("%0.3f", $duration); --- 405,411 ---- } if( !$new_cache ) ! return wp_cache_maybe_dynamic( $buffer ); $duration = wp_cache_microtime_diff($wp_start_time, microtime()); $duration = sprintf("%0.3f", $duration); *************** *** 402,408 **** if( !wp_cache_writers_entry() ) { wp_cache_add_to_buffer( $buffer, "Page not cached by WP Super Cache. Could not get mutex lock." ); if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Could not get mutex lock. Not caching.", 1 ); ! return $buffer; } if ( $wp_cache_not_logged_in && is_feed() ) { --- 414,420 ---- if( !wp_cache_writers_entry() ) { wp_cache_add_to_buffer( $buffer, "Page not cached by WP Super Cache. Could not get mutex lock." ); if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Could not get mutex lock. Not caching.", 1 ); ! return wp_cache_maybe_dynamic( $buffer ); } if ( $wp_cache_not_logged_in && is_feed() ) { *************** *** 455,465 **** global $wp_super_cache_late_init; if ( false == isset( $wp_super_cache_late_init ) || ( isset( $wp_super_cache_late_init ) && $wp_super_cache_late_init == 0 ) ) wp_cache_add_to_buffer( $buffer, 'Super Cache dynamic page detected but $wp_super_cache_late_init not set. See the readme.txt for further details.' ); - if ( do_cacheaction( 'wpsc_cachedata_safety', 0 ) === 1 ) - return do_cacheaction( 'wpsc_cachedata', $buffer ); // dynamic content for display } ! return $buffer; } if( @is_dir( $dir ) == false ) --- 467,475 ---- global $wp_super_cache_late_init; if ( false == isset( $wp_super_cache_late_init ) || ( isset( $wp_super_cache_late_init ) && $wp_super_cache_late_init == 0 ) ) wp_cache_add_to_buffer( $buffer, 'Super Cache dynamic page detected but $wp_super_cache_late_init not set. See the readme.txt for further details.' ); } ! return wp_cache_maybe_dynamic( $buffer ); } if( @is_dir( $dir ) == false ) *************** *** 474,480 **** if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename, 1 ); wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename ); wp_cache_writers_exit(); ! return $buffer; } } else { $user_info = wp_cache_get_cookies_values(); --- 484,490 ---- if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename, 1 ); wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename ); wp_cache_writers_exit(); ! return wp_cache_maybe_dynamic( $buffer ); } } else { $user_info = wp_cache_get_cookies_values(); *************** *** 490,496 **** @fclose( $fr ); @unlink( $tmp_wpcache_filename ); wp_cache_writers_exit(); ! return $buffer; } elseif ( ( !isset( $wp_cache_mfunc_enabled ) || $wp_cache_mfunc_enabled == 0 ) && $cache_compression ) { // don't want to store compressed files if using dynamic content $gz = @fopen( $tmp_cache_filename . ".gz", 'w'); if (!$gz) { --- 500,506 ---- @fclose( $fr ); @unlink( $tmp_wpcache_filename ); wp_cache_writers_exit(); ! return wp_cache_maybe_dynamic( $buffer ); } elseif ( ( !isset( $wp_cache_mfunc_enabled ) || $wp_cache_mfunc_enabled == 0 ) && $cache_compression ) { // don't want to store compressed files if using dynamic content $gz = @fopen( $tmp_cache_filename . ".gz", 'w'); if (!$gz) { *************** *** 501,507 **** @fclose( $fr2 ); @unlink( $tmp_cache_filename ); wp_cache_writers_exit(); ! return $buffer; } } } --- 511,517 ---- @fclose( $fr2 ); @unlink( $tmp_cache_filename ); wp_cache_writers_exit(); ! return wp_cache_maybe_dynamic( $buffer ); } } } *************** *** 1021,1027 **** /* check if we want to clear out all cached files on post updates, otherwise call standard wp_cache_post_change() */ function wp_cache_post_edit($post_id) { ! global $wp_cache_clear_on_post_edit, $cache_path, $blog_cache_dir; static $last_post_edited = -1; if ( $post_id == $last_post_edited ) { --- 1031,1037 ---- /* check if we want to clear out all cached files on post updates, otherwise call standard wp_cache_post_change() */ function wp_cache_post_edit($post_id) { ! global $wp_cache_clear_on_post_edit, $cache_path, $blog_cache_dir, $wp_cache_object_cache; static $last_post_edited = -1; if ( $post_id == $last_post_edited ) { *************** *** 1097,1103 **** $post = get_post( $post_id ); // Some users are inexplicibly seeing this error on scheduled posts. // define this constant to disable the post status check. ! if ( false == defined( 'WPSCFORCEUPDATE' ) && $post->post_status != 'publish' ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "wp_cache_post_change: draft post, not deleting any cache files.", 4 ); return $post_id; } --- 1107,1113 ---- $post = get_post( $post_id ); // Some users are inexplicibly seeing this error on scheduled posts. // define this constant to disable the post status check. ! if ( false == defined( 'WPSCFORCEUPDATE' ) && is_object( $post ) && $post->post_status != 'publish' ) { if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "wp_cache_post_change: draft post, not deleting any cache files.", 4 ); return $post_id; } diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache.php 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache.php 2014-08-08 20:30:29.000000000 +0400 *************** *** 1,15 ****

' . __( 'Warning! PHP Safe Mode Enabled!', 'wp-super-cache' ) . '

' . __( 'You may experience problems running this plugin because SAFE MODE is enabled.', 'wp-super-cache' ) . ' '; ! ! if( !ini_get( 'safe_mode_gid' ) ) { _e( 'Your server is set up to check the owner of PHP scripts before allowing them to read and write files.', 'wp-super-cache' ) . " "; printf( __( 'You or an administrator may be able to make it work by changing the group owner of the plugin scripts to match that of the web server user. The group owner of the %s/cache/ directory must also be changed. See the safe mode manual page for further details.', 'wp-super-cache' ), WP_CONTENT_DIR ); --- 172,183 ---- if ( !wpsupercache_site_admin() ) return false; ! if ( version_compare( PHP_VERSION, '5.3.0', '<' ) && ( 1 == ini_get( 'safe_mode' ) || "on" == strtolower( ini_get( 'safe_mode' ) ) ) ) { echo '

' . __( 'Warning! PHP Safe Mode Enabled!', 'wp-super-cache' ) . '

' . __( 'You may experience problems running this plugin because SAFE MODE is enabled.', 'wp-super-cache' ) . ' '; ! ! if( !ini_get( 'safe_mode_gid' ) ) { _e( 'Your server is set up to check the owner of PHP scripts before allowing them to read and write files.', 'wp-super-cache' ) . " "; printf( __( 'You or an administrator may be able to make it work by changing the group owner of the plugin scripts to match that of the web server user. The group owner of the %s/cache/ directory must also be changed. See the safe mode manual page for further details.', 'wp-super-cache' ), WP_CONTENT_DIR ); *************** *** 201,207 **** if( substr( $ip, 0, 3 ) == '127' || substr( $ip, 0, 7 ) == '192.168' ) { ?>

!

Troubleshooting section of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/faq/' ); ?>

!

Troubleshooting section of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/faq/' ); ?>

Warning! wp-cron.php not found!

!

Troubleshooting section of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/faq/' ); ?>

Warning! wp-cron.php not found!

!

Troubleshooting section of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/faq/' ); ?>

this page for instructions on modifying your php.ini.', 'wp-super-cache' ); ?>

this page for instructions on modifying your php.ini.', 'wp-super-cache' ); ?>

! ' />
--- 280,286 ---- ! ' />
*************** *** 306,312 **** ! ' />
--- 308,314 ---- ! ' />
*************** *** 320,326 **** if ( $cache_enabled && $wp_cache_mod_rewrite && !$wp_cache_mobile_enabled && strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) { echo '

' . __( 'Mobile rewrite rules detected', 'wp-super-cache' ) . "

"; echo "

" . __( 'For best performance you should enable "Mobile device support" or delete the mobile rewrite rules in your .htaccess. Look for the 2 lines with the text "2.0\ MMP|240x320" and delete those.', 'wp-super-cache' ) . "

" . __( 'This will have no affect on ordinary users but mobile users will see uncached pages.', 'wp-super-cache' ) . "

"; ! } elseif ( $wp_cache_mod_rewrite && $cache_enabled && $wp_cache_mobile_enabled && $scrules != '' && ( ( false == empty( $wp_cache_mobile_prefixes ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) ) ) || ( false == empty( $wp_cache_mobile_browsers ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) ) ) { --- 322,328 ---- if ( $cache_enabled && $wp_cache_mod_rewrite && !$wp_cache_mobile_enabled && strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) { echo '

' . __( 'Mobile rewrite rules detected', 'wp-super-cache' ) . "

"; echo "

" . __( 'For best performance you should enable "Mobile device support" or delete the mobile rewrite rules in your .htaccess. Look for the 2 lines with the text "2.0\ MMP|240x320" and delete those.', 'wp-super-cache' ) . "

" . __( 'This will have no affect on ordinary users but mobile users will see uncached pages.', 'wp-super-cache' ) . "

"; ! } elseif ( $wp_cache_mod_rewrite && $cache_enabled && $wp_cache_mobile_enabled && $scrules != '' && ( ( false == empty( $wp_cache_mobile_prefixes ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) ) ) || ( false == empty( $wp_cache_mobile_browsers ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) ) ) { *************** *** 332,338 ****
  • Update Mod_Rewrite Rules button.', 'wp-super-cache' ); ?>
  • # BEGIN WPSuperCache and # END WPSuperCache and let the plugin regenerate them by reloading this page.', 'wp-super-cache' ), $home_path ); ?>
  • # BEGIN WPSuperCache and # END WPSuperCache. There are two sections that look very similar. Just below the line %%{HTTP:Cookie} !^.*(comment_author_|%s|wp-postpass_).*$ add these lines: (do it twice, once for each section)', 'wp-super-cache' ), $home_path, wpsc_get_logged_in_cookie() ); ?>

    !
  • Update Mod_Rewrite Rules button.', 'wp-super-cache' ); ?>
  • # BEGIN WPSuperCache and # END WPSuperCache and let the plugin regenerate them by reloading this page.', 'wp-super-cache' ), $home_path ); ?>
  • # BEGIN WPSuperCache and # END WPSuperCache. There are two sections that look very similar. Just below the line %%{HTTP:Cookie} !^.*(comment_author_|%s|wp-postpass_).*$ add these lines: (do it twice, once for each section)', 'wp-super-cache' ), $home_path, wpsc_get_logged_in_cookie() ); ?>

    !
  • ! ' /> !
    ! ' /> !
    \'\"\r\n\t\(\)]/', '', $_GET[ 'path' ] ) ); die(); --- 399,405 ---- $path = trailingslashit( get_supercache_dir() . preg_replace( '/:.*$/', '', $_GET[ 'path' ] ) ); $files = get_all_supercache_filenames( $path ); foreach( $files as $cache_file ) ! prune_super_cache( $path . $cache_file, true ); wp_redirect( preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', $_GET[ 'path' ] ) ); die(); *************** *** 595,601 **** $wp_cache_refresh_single_only = 0; } wp_cache_replace_line('^ *\$wp_cache_refresh_single_only', "\$wp_cache_refresh_single_only = '" . $wp_cache_refresh_single_only . "';", $wp_cache_config_file); ! if ( defined( 'WPSC_DISABLE_COMPRESSION' ) ) { $cache_compression = 0; wp_cache_replace_line('^ *\$cache_compression', "\$cache_compression = " . $cache_compression . ";", $wp_cache_config_file); --- 597,603 ---- $wp_cache_refresh_single_only = 0; } wp_cache_replace_line('^ *\$wp_cache_refresh_single_only', "\$wp_cache_refresh_single_only = '" . $wp_cache_refresh_single_only . "';", $wp_cache_config_file); ! if ( defined( 'WPSC_DISABLE_COMPRESSION' ) ) { $cache_compression = 0; wp_cache_replace_line('^ *\$cache_compression', "\$cache_compression = " . $cache_compression . ";", $wp_cache_config_file); *************** *** 605,611 **** } else { $new_cache_compression = 0; } ! if ( 1 == ini_get( 'zlib.output_compression' ) || "on" == strtolower( ini_get( 'zlib.output_compression' ) ) ) { echo '
    ' . __( "Warning! You attempted to enable compression but zlib.output_compression is enabled. See #21 in the Troubleshooting section of the readme file.", 'wp-super-cache' ) . '
    '; } else { if ( $new_cache_compression != $cache_compression ) { --- 607,613 ---- } else { $new_cache_compression = 0; } ! if ( 1 == ini_get( 'zlib.output_compression' ) || "on" == strtolower( ini_get( 'zlib.output_compression' ) ) ) { echo '
    ' . __( "Warning! You attempted to enable compression but zlib.output_compression is enabled. See #21 in the Troubleshooting section of the readme file.", 'wp-super-cache' ) . '
    '; } else { if ( $new_cache_compression != $cache_compression ) { *************** *** 650,656 **** $wp_cache_mobile_prefixes = apply_filters( 'cached_mobile_prefixes', $wp_cache_mobile_prefixes ); // Allow mobile plugins access to modify the mobile UA prefix list if ( function_exists( 'do_cacheaction' ) ) { $wp_cache_mobile_browsers = do_cacheaction( 'wp_super_cache_mobile_browsers', $wp_cache_mobile_browsers ); ! $wp_cache_mobile_prefixes = do_cacheaction( 'wp_super_cache_mobile_prefixes', $wp_cache_mobile_prefixes ); } $mobile_groups = apply_filters( 'cached_mobile_groups', array() ); // Group mobile user agents by capabilities. Lump them all together by default // mobile_groups = array( 'apple' => array( 'ipod', 'iphone' ), 'nokia' => array( 'nokia5800', 'symbianos' ) ); --- 652,658 ---- $wp_cache_mobile_prefixes = apply_filters( 'cached_mobile_prefixes', $wp_cache_mobile_prefixes ); // Allow mobile plugins access to modify the mobile UA prefix list if ( function_exists( 'do_cacheaction' ) ) { $wp_cache_mobile_browsers = do_cacheaction( 'wp_super_cache_mobile_browsers', $wp_cache_mobile_browsers ); ! $wp_cache_mobile_prefixes = do_cacheaction( 'wp_super_cache_mobile_prefixes', $wp_cache_mobile_prefixes ); } $mobile_groups = apply_filters( 'cached_mobile_groups', array() ); // Group mobile user agents by capabilities. Lump them all together by default // mobile_groups = array( 'apple' => array( 'ipod', 'iphone' ), 'nokia' => array( 'nokia5800', 'symbianos' ) ); *************** *** 738,747 **** $home_path = parse_url( site_url() ); $home_path = trailingslashit( array_key_exists( 'path', $home_path ) ? $home_path[ 'path' ] : '' ); if (! isset( $wp_cache_home_path ) ) ! $wp_cache_home_path = '/'; if ( "$home_path" != "$wp_cache_home_path" ) wp_cache_replace_line('^ *\$wp_cache_home_path', "\$wp_cache_home_path = '$home_path';", $wp_cache_config_file); ! if( $wp_cache_mobile_enabled == 1 ) { update_cached_mobile_ua_list( $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes, $mobile_groups ); --- 740,749 ---- $home_path = parse_url( site_url() ); $home_path = trailingslashit( array_key_exists( 'path', $home_path ) ? $home_path[ 'path' ] : '' ); if (! isset( $wp_cache_home_path ) ) ! $wp_cache_home_path = '/'; if ( "$home_path" != "$wp_cache_home_path" ) wp_cache_replace_line('^ *\$wp_cache_home_path', "\$wp_cache_home_path = '$home_path';", $wp_cache_config_file); ! if( $wp_cache_mobile_enabled == 1 ) { update_cached_mobile_ua_list( $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes, $mobile_groups ); *************** *** 797,803 **** wp_unschedule_event( $next_preload, 'wp_cache_full_preload_hook' ); if ( $wp_cache_preload_interval == 0 ) { echo "

    " . __( 'Scheduled preloading of cache cancelled.', 'wp-super-cache' ) . "

    "; ! } } if ( $_POST[ 'custom_preload_interval' ] != 0 ) wp_schedule_single_event( time() + ( $_POST[ 'custom_preload_interval' ] * 60 ), 'wp_cache_full_preload_hook' ); --- 799,805 ---- wp_unschedule_event( $next_preload, 'wp_cache_full_preload_hook' ); if ( $wp_cache_preload_interval == 0 ) { echo "

    " . __( 'Scheduled preloading of cache cancelled.', 'wp-super-cache' ) . "

    "; ! } } if ( $_POST[ 'custom_preload_interval' ] != 0 ) wp_schedule_single_event( time() + ( $_POST[ 'custom_preload_interval' ] * 60 ), 'wp_cache_full_preload_hook' ); *************** *** 915,923 **** echo "

    " . sprintf( __( "Page last cached: %s", 'wp-super-cache' ), $url ) . "

    "; } } ! echo '
     '; if ( $currently_preloading ) { ! echo ' '; } echo '
    '; wp_nonce_field('wp-cache'); --- 917,925 ---- echo "

    " . sprintf( __( "Page last cached: %s", 'wp-super-cache' ), $url ) . "

    "; } } ! echo '
     '; if ( $currently_preloading ) { ! echo ' '; } echo '
    '; wp_nonce_field('wp-cache'); *************** *** 935,941 **** case 'settings': if ( isset( $wp_cache_front_page_checks ) == false ) $wp_cache_front_page_checks = true; ! echo '
    '; wp_nonce_field('wp-cache'); echo ''; ?> --- 937,943 ---- case 'settings': if ( isset( $wp_cache_front_page_checks ) == false ) $wp_cache_front_page_checks = true; ! echo ''; wp_nonce_field('wp-cache'); echo ''; ?>
    *************** *** 945,952 ****


    !
    !


    --- 947,954 ----


    !
    !


    *************** *** 992,999 ****
    "; } if( $out != '' ) { --- 1519,1525 ---- continue; $generated = ''; if( is_file( ABSPATH . $page . '/index.html' ) ) ! $generated = ''; $out .= ""; } if( $out != '' ) { *************** *** 1542,1548 **** wp_nonce_field('wp-cache'); if( $readonly != 'READONLY' ) ! echo "
    "; echo "\n"; ?>"; echo "\n"; ?>

    "; echo "

    " . __( 'Checking for and deleting expired files is expensive, but it’s expensive leaving them there too. On a very busy site you should set the expiry time to 600 seconds. Experiment with different values and visit this page to see how many expired files remain at different times during the day. If you are using legacy caching aim to have less than 500 cached files if possible. You can have many times more cached files when using mod_rewrite or PHP caching.', 'wp-super-cache' ) . "

    "; echo "

    " . __( 'Set the expiry time to 0 seconds to disable garbage collection.', 'wp-super-cache' ) . "

    "; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; ?>
    "; echo "

    " . __( 'Checking for and deleting expired files is expensive, but it’s expensive leaving them there too. On a very busy site you should set the expiry time to 600 seconds. Experiment with different values and visit this page to see how many expired files remain at different times during the day. If you are using legacy caching aim to have less than 500 cached files if possible. You can have many times more cached files when using mod_rewrite or PHP caching.', 'wp-super-cache' ) . "

    "; echo "

    " . __( 'Set the expiry time to 0 seconds to disable garbage collection.', 'wp-super-cache' ) . "

    "; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; ?>
    '; ! echo '
    '; wp_nonce_field('wp-cache'); echo ''; echo "\n"; --- 1746,1752 ---- echo esc_html( $ua ) . "\n"; } echo ' '; ! echo '
    '; wp_nonce_field('wp-cache'); echo ''; echo "\n"; *************** *** 1785,1791 **** echo '
    '; echo '
    '; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; --- 1783,1789 ---- echo '
    '; echo '
    '; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; *************** *** 1808,1814 **** echo esc_html( $file ) . "\n"; } echo ' '; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; } --- 1806,1812 ---- echo esc_html( $file ) . "\n"; } echo ' '; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; } *************** *** 1830,1836 **** echo esc_html($file) . "\n"; } echo ' '; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; } --- 1828,1834 ---- echo esc_html($file) . "\n"; } echo ' '; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; } *************** *** 1842,1847 **** --- 1840,1847 ---- if ( false == isset( $wp_super_cache_comments ) ) $wp_super_cache_comments = 1; if ( isset( $_POST[ 'wp_cache_debug' ] ) && $valid_nonce ) { + if ( !isset( $_POST[ 'wp_super_cache_debug' ] ) ) + $_POST[ 'wp_super_cache_debug' ] = 0; $wp_super_cache_debug = intval( $_POST[ 'wp_super_cache_debug' ] ); wp_cache_replace_line('^ *\$wp_super_cache_debug', "\$wp_super_cache_debug = '$wp_super_cache_debug';", $wp_cache_config_file); if ( $wp_super_cache_debug && ( ( isset( $wp_cache_debug_log ) && $wp_cache_debug_log == '' ) || !isset( $wp_cache_debug_log ) ) ) { *************** *** 1850,1868 **** $wp_cache_debug_log = ""; } wp_cache_replace_line('^ *\$wp_cache_debug_log', "\$wp_cache_debug_log = '$wp_cache_debug_log';", $wp_cache_config_file); ! $wp_super_cache_comments = (int)$_POST[ 'wp_super_cache_comments' ]; wp_cache_replace_line('^ *\$wp_super_cache_comments', "\$wp_super_cache_comments = '$wp_super_cache_comments';", $wp_cache_config_file); $wp_cache_debug_ip = esc_html( $_POST[ 'wp_cache_debug_ip' ] ); wp_cache_replace_line('^ *\$wp_cache_debug_ip', "\$wp_cache_debug_ip = '$wp_cache_debug_ip';", $wp_cache_config_file); ! $wp_super_cache_front_page_check = (int)$_POST[ 'wp_super_cache_front_page_check' ]; wp_cache_replace_line('^ *\$wp_super_cache_front_page_check', "\$wp_super_cache_front_page_check = '$wp_super_cache_front_page_check';", $wp_cache_config_file); ! $wp_super_cache_front_page_clear = (int)$_POST[ 'wp_super_cache_front_page_clear' ]; wp_cache_replace_line('^ *\$wp_super_cache_front_page_clear', "\$wp_super_cache_front_page_clear = '$wp_super_cache_front_page_clear';", $wp_cache_config_file); $wp_super_cache_front_page_text = esc_html( $_POST[ 'wp_super_cache_front_page_text' ] ); wp_cache_replace_line('^ *\$wp_super_cache_front_page_text', "\$wp_super_cache_front_page_text = '$wp_super_cache_front_page_text';", $wp_cache_config_file); ! $wp_super_cache_front_page_notification = (int)$_POST[ 'wp_super_cache_front_page_notification' ]; wp_cache_replace_line('^ *\$wp_super_cache_front_page_notification', "\$wp_super_cache_front_page_notification = '$wp_super_cache_front_page_notification';", $wp_cache_config_file); ! if ( isset( $wp_super_cache_front_page_check ) && $wp_super_cache_front_page_check == 1 && !wp_next_scheduled( 'wp_cache_check_site_hook' ) ) { wp_schedule_single_event( time() + 360 , 'wp_cache_check_site_hook' ); if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'scheduled wp_cache_check_site_hook for 360 seconds time.', 2 ); } --- 1850,1868 ---- $wp_cache_debug_log = ""; } wp_cache_replace_line('^ *\$wp_cache_debug_log', "\$wp_cache_debug_log = '$wp_cache_debug_log';", $wp_cache_config_file); ! $wp_super_cache_comments = isset( $_POST[ 'wp_super_cache_comments' ] ) ? 1 : 0; wp_cache_replace_line('^ *\$wp_super_cache_comments', "\$wp_super_cache_comments = '$wp_super_cache_comments';", $wp_cache_config_file); $wp_cache_debug_ip = esc_html( $_POST[ 'wp_cache_debug_ip' ] ); wp_cache_replace_line('^ *\$wp_cache_debug_ip', "\$wp_cache_debug_ip = '$wp_cache_debug_ip';", $wp_cache_config_file); ! $wp_super_cache_front_page_check = isset( $_POST[ 'wp_super_cache_front_page_check' ] ) ? 1 : 0; wp_cache_replace_line('^ *\$wp_super_cache_front_page_check', "\$wp_super_cache_front_page_check = '$wp_super_cache_front_page_check';", $wp_cache_config_file); ! $wp_super_cache_front_page_clear = isset( $_POST[ 'wp_super_cache_front_page_clear' ] ) ? 1 : 0; wp_cache_replace_line('^ *\$wp_super_cache_front_page_clear', "\$wp_super_cache_front_page_clear = '$wp_super_cache_front_page_clear';", $wp_cache_config_file); $wp_super_cache_front_page_text = esc_html( $_POST[ 'wp_super_cache_front_page_text' ] ); wp_cache_replace_line('^ *\$wp_super_cache_front_page_text', "\$wp_super_cache_front_page_text = '$wp_super_cache_front_page_text';", $wp_cache_config_file); ! $wp_super_cache_front_page_notification = isset( $_POST[ 'wp_super_cache_front_page_notification' ] ) ? 1 : 0; wp_cache_replace_line('^ *\$wp_super_cache_front_page_notification', "\$wp_super_cache_front_page_notification = '$wp_super_cache_front_page_notification';", $wp_cache_config_file); ! if ( $wp_super_cache_front_page_check == 1 && !wp_next_scheduled( 'wp_cache_check_site_hook' ) ) { wp_schedule_single_event( time() + 360 , 'wp_cache_check_site_hook' ); if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'scheduled wp_cache_check_site_hook for 360 seconds time.', 2 ); } *************** *** 1894,1903 **** echo ""; echo ""; echo ""; ! echo "
    !
    !

    ' . __( 'Mobile Browsers', 'wp-super-cache' ) . '

    ' . implode( ', ', $wp_cache_mobile_browsers ) . "

    " . __( 'Mobile Prefixes', 'wp-super-cache' ) . "

    " . implode( ', ', $wp_cache_mobile_prefixes ) . "
    "; } ?> --- 994,1001 ----
    !
    !

    ' . __( 'Mobile Browsers', 'wp-super-cache' ) . '

    ' . implode( ', ', $wp_cache_mobile_browsers ) . "

    " . __( 'Mobile Prefixes', 'wp-super-cache' ) . "

    " . implode( ', ', $wp_cache_mobile_prefixes ) . "
    "; } ?> *************** *** 1006,1013 ****

    ! DO NOT CACHE PAGE secret key: %s', 'wp-super-cache' ), trailingslashit( get_bloginfo( 'url' ) ) . "?donotcachepage={$cache_page_secret}", $cache_page_secret ); ?> --- 1008,1015 ----

    ! DO NOT CACHE PAGE secret key: %s', 'wp-super-cache' ), trailingslashit( get_bloginfo( 'url' ) ) . "?donotcachepage={$cache_page_secret}", $cache_page_secret ); ?> *************** *** 1020,1029 ****
  • %s is writeable by the webserver so the files advanced-cache.php and cache-config.php can be deleted automatically. (Making sure those files are writeable too is probably a good idea!)', 'wp-super-cache' ), WP_CONTENT_DIR ); ?>
  • readme.txt for instructions on uninstalling this script. Look for the heading, "How to uninstall WP Super Cache".', 'wp-super-cache' ), WP_PLUGIN_URL ); ?>
  • " . sprintf( __( 'Need help? Check the Super Cache readme file. It includes installation documentation, a FAQ and Troubleshooting tips. The support forum is also available. Your question may already have been answered.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/', 'http://wordpress.org/tags/wp-super-cache?forum_id=10' ) . ""; echo ""; ! ! echo "
    "; wp_nonce_field('wp-cache'); ?>
  • %s is writeable by the webserver so the files advanced-cache.php and cache-config.php can be deleted automatically. (Making sure those files are writeable too is probably a good idea!)', 'wp-super-cache' ), WP_CONTENT_DIR ); ?>
  • readme.txt for instructions on uninstalling this script. Look for the heading, "How to uninstall WP Super Cache".', 'wp-super-cache' ), WP_PLUGIN_URL ); ?>
  • " . sprintf( __( 'Need help? Check the Super Cache readme file. It includes installation documentation, a FAQ and Troubleshooting tips. The support forum is also available. Your question may already have been answered.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/', 'http://wordpress.org/tags/wp-super-cache?forum_id=10' ) . ""; echo ""; ! ! echo "
    "; wp_nonce_field('wp-cache'); ?> " . __( 'Notice: PHP caching enabled but Supercache mod_rewrite rules detected. Cached files will be served using those rules. If your site is working ok please ignore this message or you can edit the .htaccess file in the root of your install and remove the SuperCache rules.', 'wp-super-cache' ) . '

    '; } } ! echo "
    "; if ( $cache_enabled ) { echo "

    " . __( 'Cache Tester', 'wp-super-cache' ) . "

    "; echo '

    ' . __( 'Test your cached website by clicking the test button below.', 'wp-super-cache' ) . '

    '; --- 1072,1078 ---- echo "

    " . __( 'Notice: PHP caching enabled but Supercache mod_rewrite rules detected. Cached files will be served using those rules. If your site is working ok please ignore this message or you can edit the .htaccess file in the root of your install and remove the SuperCache rules.', 'wp-super-cache' ) . '

    '; } } ! echo "
    "; if ( $cache_enabled ) { echo "

    " . __( 'Cache Tester', 'wp-super-cache' ) . "

    "; echo '

    ' . __( 'Test your cached website by clicking the test button below.', 'wp-super-cache' ) . '

    '; *************** *** 1151,1157 **** echo ''; if ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) ) echo " " . __( 'Send non-secure (non https) request for homepage', 'wp-super-cache' ); ! echo '
    '; wp_nonce_field('wp-cache'); echo ''; } --- 1153,1159 ---- echo ''; if ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) ) echo " " . __( 'Send non-secure (non https) request for homepage', 'wp-super-cache' ); ! echo '
    '; wp_nonce_field('wp-cache'); echo ''; } *************** *** 1159,1187 **** echo "

    " . __( "Cached pages are stored on your server as html and PHP files. If you need to delete them use the button below.", 'wp-super-cache' ) . "

    "; echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) { echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; } ?> !

    -
    1. WPSCMin, a Supercache plugin that minifies cached pages by removing whitespaces and extra characters ', 'wp-super-cache' ), 'http://lyncd.com/wpscmin/' ); ?>
    2. Yahoo! Yslow is an extension for the Firefox add-on Firebug. It analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. Also try the performance tools online at GTMetrix.', 'wp-super-cache' ), 'http://developer.yahoo.com/yslow/', 'http://gtmetrix.com/' ); ?>
    3. !
    4. Use Google Libraries allows you to load some commonly used Javascript libraries from Google webservers. Ironically it may reduce your Yslow score.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/use-google-libraries/' ); ?>
    5. !
    6. CDN Sync Tool plugin will help upload files to Amazon S3/Cloudfront if you would rather not depend on origin pull. See the plugin support forum if you have any queries about this plugin.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cdn-sync-tool/', 'http://wordpress.org/tags/cdn-sync-tool?forum_id=10' ); ?>
    7. Advanced users only: Speed up your site with Caching and cache-control explains how to make your site more cacheable with .htaccess rules.', 'wp-super-cache' ), 'http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html' ); ?>
    8. !
    9. Advanced users only: Install an object cache. Choose from Memcached, XCache, eAcccelerator and others.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/memcached/', 'http://neosmart.net/dl.php?id=12', 'http://neosmart.net/dl.php?id=13' ); ?>
    10. !
    11. Cron View is a useful plugin to use when trying to debug garbage collection and preload problems.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cron-view/' ); ?>
    ! " . __( "Cached pages are stored on your server as html and PHP files. If you need to delete them use the button below.", 'wp-super-cache' ) . "

    "; echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) { echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; } ?> !

  • Yahoo! Yslow is an extension for the Firefox add-on Firebug. It analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. Also try the performance tools online at GTMetrix.', 'wp-super-cache' ), 'http://developer.yahoo.com/yslow/', 'http://gtmetrix.com/' ); ?>
  • !
  • Use Google Libraries allows you to load some commonly used Javascript libraries from Google webservers. Ironically it may reduce your Yslow score.', 'wp-super-cache' ), 'http://wordpress.org/plugins/use-google-libraries/' ); ?>
  • Advanced users only: Speed up your site with Caching and cache-control explains how to make your site more cacheable with .htaccess rules.', 'wp-super-cache' ), 'http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html' ); ?>
  • !
  • Advanced users only: Install an object cache. Choose from Memcached, XCache, eAcccelerator and others.', 'wp-super-cache' ), 'http://wordpress.org/plugins/memcached/', 'http://neosmart.net/dl.php?id=12', 'http://neosmart.net/dl.php?id=13' ); ?>
  • !
  • Cron View is a useful plugin to use when trying to debug garbage collection and preload problems.', 'wp-super-cache' ), 'http://wordpress.org/plugins/cron-view/' ); ?>
  • !
    -

    -

    WP Super Cache', 'Donncha O Caoimh' ); ?>

    -

    Holy Shmoly', 'In Photos.org' ); ?>

    -

    Twitter' ); ?>

    1. !
    2. Installation Help', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/installation/' ); ?>
    3. !
    4. Frequently Asked Questions', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/faq/' ); ?>
    5. Support Forum', 'wp-super-cache' ), 'http://wordpress.org/tags/wp-super-cache' ); ?>
    6. Development Version', 'wp-super-cache' ), 'http://ocaoimh.ie/y/2o' ); ?>

    !

    rate this plugin and tell me if it works for you or not. It really helps development.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/' ); ?>

    !

    1. !
    2. Installation Help', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/installation/' ); ?>
    3. !
    4. Frequently Asked Questions', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/faq/' ); ?>
    5. Support Forum', 'wp-super-cache' ), 'http://wordpress.org/tags/wp-super-cache' ); ?>
    6. Development Version', 'wp-super-cache' ), 'http://ocaoimh.ie/y/2o' ); ?>

    !

    rate this plugin and tell me if it works for you or not. It really helps development.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/' ); ?>

    ! !

    !

    !

    !

    "; if( wpsc_update_htaccess() ) { echo "

    " . __( 'Mod Rewrite rules updated!', 'wp-super-cache' ) . "

    "; --- 1334,1346 ---- } elseif( strpos( $scrules, 'supercache' ) || strpos( $wprules, 'supercache' ) ) { // only write the rules once $dohtaccess = false; } ! if ( $dohtaccess && !isset( $_POST[ 'updatehtaccess' ] ) ){ if ( $scrules == '' ) { wpsc_update_htaccess_form( 0 ); // don't hide the update htaccess form } else { wpsc_update_htaccess_form(); } ! } elseif ( $valid_nonce && isset( $_POST[ 'updatehtaccess' ] ) ) { echo "
    "; if( wpsc_update_htaccess() ) { echo "

    " . __( 'Mod Rewrite rules updated!', 'wp-super-cache' ) . "

    "; *************** *** 1366,1372 **** echo "'; --- 1362,1368 ---- echo "'; *************** *** 1384,1390 **** echo '

    ' . __( 'Fix Configuration', 'wp-super-cache' ) . '

    '; echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; echo '
    '; --- 1380,1386 ---- echo '

    ' . __( 'Fix Configuration', 'wp-super-cache' ) . '

    '; echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; echo '
    '; *************** *** 1416,1426 **** } } ?> !

    ' . __( 'Disabled', 'wp-super-cache' ) . '' : '' . __( 'Enabled', 'wp-super-cache' ) . ''; ?>

    !

    if( defined( 'WPLOCKDOWN' ) && constant( 'WPLOCKDOWN' ) ) {     echo ""; }
    !

    ' . __( 'Disabled', 'wp-super-cache' ) . '' : '' . __( 'Enabled', 'wp-super-cache' ) . ''; ?>

    !

    if( defined( 'WPLOCKDOWN' ) && constant( 'WPLOCKDOWN' ) ) {     echo ""; }
    '; echo ""; ! echo "
    "; wp_nonce_field('wp-cache'); echo "\n"; ?>
    !

    '; echo ""; ! echo "
    "; wp_nonce_field('wp-cache'); echo "\n"; ?>
    !

    escape( $page ); if( $page != '' ) { $cached_direct_pages[] = $page; $out .= "'$page', "; --- 1444,1450 ---- $expiredfiles = array_diff( $cached_direct_pages, $_POST[ 'direct_pages' ] ); unset( $cached_direct_pages ); foreach( $_POST[ 'direct_pages' ] as $page ) { ! $page = esc_sql( $page ); if( $page != '' ) { $cached_direct_pages[] = $page; $out .= "'$page', "; *************** *** 1462,1468 **** $page = str_replace( get_option( 'siteurl' ), '', $_POST[ 'new_direct_page' ] ); if( substr( $page, 0, 1 ) != '/' ) $page = '/' . $page; ! $page = $wpdb->escape( $page ); if( in_array( $page, $cached_direct_pages ) == false ) { $cached_direct_pages[] = $page; $out .= "'$page', "; --- 1458,1464 ---- $page = str_replace( get_option( 'siteurl' ), '', $_POST[ 'new_direct_page' ] ); if( substr( $page, 0, 1 ) != '/' ) $page = '/' . $page; ! $page = esc_sql( $page ); if( in_array( $page, $cached_direct_pages ) == false ) { $cached_direct_pages[] = $page; $out .= "'$page', "; *************** *** 1523,1529 **** continue; $generated = ''; if( is_file( ABSPATH . $page . '/index.html' ) ) ! $generated = ''; $out .= "
    $generated
    $generated
    " . __( 'Front page text', 'wp-super-cache' ) . " (" . __( 'Text to search for on your front page. If this text is missing the cache will be cleared. Leave blank to disable.', 'wp-super-cache' ) . ")
    " . __( 'Clear cache on error.', 'wp-super-cache' ) . "
    " . __( 'Email the blog admin when checks are made. (useful for testing)', 'wp-super-cache' ) . "
    \n"; } ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; echo ''; --- 1894,1903 ---- echo "" . __( 'Front page text', 'wp-super-cache' ) . " (" . __( 'Text to search for on your front page. If this text is missing the cache will be cleared. Leave blank to disable.', 'wp-super-cache' ) . ")"; echo " " . __( 'Clear cache on error.', 'wp-super-cache' ) . ""; echo " " . __( 'Email the blog admin when checks are made. (useful for testing)', 'wp-super-cache' ) . ""; ! echo "\n"; } ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; echo ''; *************** *** 2116,2122 **** function wp_cache_check_link() { global $wp_cache_link, $wp_cache_file; ! $ret = true; if( file_exists($wp_cache_link) ) { $file = file_get_contents( $wp_cache_link ); --- 2116,2122 ---- function wp_cache_check_link() { global $wp_cache_link, $wp_cache_file; ! $ret = true; if( file_exists($wp_cache_link) ) { $file = file_get_contents( $wp_cache_link ); *************** *** 2169,2175 **** } return false; } else { ! echo "
    " . __( '

    WP_CACHE constant added to wp-config.php

    If you continue to see this warning message please see point 5 of the Troubleshooting Guide. The WP_CACHE line must be moved up.', 'wp-super-cache' ) . "

    "; } return true; } --- 2169,2175 ---- } return false; } else { ! echo "
    " . __( '

    WP_CACHE constant added to wp-config.php

    If you continue to see this warning message please see point 5 of the Troubleshooting Guide. The WP_CACHE line must be moved up.', 'wp-super-cache' ) . "

    "; } return true; } *************** *** 2212,2218 **** $count = 0; $expired = 0; $now = time(); ! if ( ($handle = @opendir( $blog_cache_dir . 'meta/' )) ) { $wp_cache_fsize = 0; if ( $valid_nonce && isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'deletewpcache' ) { $deleteuri = preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', str_replace( '/index.php', '/', str_replace( '..', '', preg_replace("/(\?.*)?$/", '', base64_decode( $_GET[ 'uri' ] ) ) ) ) ); --- 2212,2218 ---- $count = 0; $expired = 0; $now = time(); ! if ( ($handle = @opendir( $blog_cache_dir . 'meta/' )) ) { $wp_cache_fsize = 0; if ( $valid_nonce && isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'deletewpcache' ) { $deleteuri = preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', str_replace( '/index.php', '/', str_replace( '..', '', preg_replace("/(\?.*)?$/", '', base64_decode( $_GET[ 'uri' ] ) ) ) ) ); *************** *** 2234,2244 **** if ( preg_match("/^$file_prefix.*\.meta/", $file) ) { $content_file = preg_replace("/meta$/", "html", $file); $mtime = filemtime( $blog_cache_dir . 'meta/' . $file ); ! if ( ! ( $fsize = @filesize( $blog_cache_dir . $content_file ) ) ) continue; // .meta does not exists $age = $now - $mtime; ! if ( $valid_nonce && $_GET[ 'listfiles' ] ) { $meta = unserialize( file_get_contents( $blog_cache_dir . 'meta/' . $file ) ); if ( $deleteuri != '' && $meta[ 'uri' ] == $deleteuri ) { printf( __( "Deleting wp-cache file: %s
    ", 'wp-super-cache' ), $deleteuri ); --- 2234,2244 ---- if ( preg_match("/^$file_prefix.*\.meta/", $file) ) { $content_file = preg_replace("/meta$/", "html", $file); $mtime = filemtime( $blog_cache_dir . 'meta/' . $file ); ! if ( ! ( $fsize = @filesize( $blog_cache_dir . $content_file ) ) ) continue; // .meta does not exists $age = $now - $mtime; ! if ( $valid_nonce && isset( $_GET[ 'listfiles' ] ) ) { $meta = unserialize( file_get_contents( $blog_cache_dir . 'meta/' . $file ) ); if ( $deleteuri != '' && $meta[ 'uri' ] == $deleteuri ) { printf( __( "Deleting wp-cache file: %s
    ", 'wp-super-cache' ), $deleteuri ); *************** *** 2301,2307 **** if ( $valid_nonce && $_GET[ 'listfiles' ] && $filem ) $sizes[ 'cached_list' ][ str_replace( $cache_path . 'supercache/' , '', $supercachedir ) ] = $now - $filem; } ! } $sizes[ 'ts' ] = time(); $cache_stats = array( 'generated' => time(), 'supercache' => $sizes, 'wpcache' => array( 'cached' => $count, 'expired' => $expired, 'fsize' => $wp_cache_fsize ) ); update_option( 'supercache_stats', $cache_stats ); --- 2301,2307 ---- if ( $valid_nonce && $_GET[ 'listfiles' ] && $filem ) $sizes[ 'cached_list' ][ str_replace( $cache_path . 'supercache/' , '', $supercachedir ) ] = $now - $filem; } ! } $sizes[ 'ts' ] = time(); $cache_stats = array( 'generated' => time(), 'supercache' => $sizes, 'wpcache' => array( 'cached' => $count, 'expired' => $expired, 'fsize' => $wp_cache_fsize ) ); update_option( 'supercache_stats', $cache_stats ); *************** *** 2339,2345 **** echo "
  • " . sprintf( __( '%s Expired Pages', 'wp-super-cache' ), intval( $cache_stats[ 'supercache' ][ 'expired' ] / $divisor ) ) . "
  • "; if ( $valid_nonce && array_key_exists('listfiles', $_GET) && $_GET[ 'listfiles' ] ) { echo "
    "; ! if ( is_array( $cached_list ) && !empty( $cached_list ) ) { echo "

    " . __( 'Fresh WP-Cached Files', 'wp-super-cache' ) . "

    "; echo ""; $c = 1; --- 2339,2345 ---- echo "
  • " . sprintf( __( '%s Expired Pages', 'wp-super-cache' ), intval( $cache_stats[ 'supercache' ][ 'expired' ] / $divisor ) ) . "
  • "; if ( $valid_nonce && array_key_exists('listfiles', $_GET) && $_GET[ 'listfiles' ] ) { echo "
    "; ! if ( isset( $cached_list ) && is_array( $cached_list ) && !empty( $cached_list ) ) { echo "

    " . __( 'Fresh WP-Cached Files', 'wp-super-cache' ) . "

    "; echo "
    #" . __( 'URI', 'wp-super-cache' ) . "" . __( 'Key', 'wp-super-cache' ) . "" . __( 'Age', 'wp-super-cache' ) . "" . __( 'Delete', 'wp-super-cache' ) . "
    "; $c = 1; *************** *** 2355,2361 **** } echo "
    #" . __( 'URI', 'wp-super-cache' ) . "" . __( 'Key', 'wp-super-cache' ) . "" . __( 'Age', 'wp-super-cache' ) . "" . __( 'Delete', 'wp-super-cache' ) . "
    "; } ! if ( is_array( $expired_list ) && !empty( $expired_list ) ) { echo "

    " . __( 'Stale WP-Cached Files', 'wp-super-cache' ) . "

    "; echo ""; $c = 1; --- 2355,2361 ---- } echo "
    #" . __( 'URI', 'wp-super-cache' ) . "" . __( 'Key', 'wp-super-cache' ) . "" . __( 'Age', 'wp-super-cache' ) . "" . __( 'Delete', 'wp-super-cache' ) . "
    "; } ! if ( isset( $expired_list ) && is_array( $expired_list ) && !empty( $expired_list ) ) { echo "

    " . __( 'Stale WP-Cached Files', 'wp-super-cache' ) . "

    "; echo ""; $c = 1; *************** *** 2422,2440 **** echo ''; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; echo ''; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) { echo ''; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; } --- 2422,2440 ---- echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) { echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "\n"; } *************** *** 2512,2518 **** function wp_cache_clean_legacy_files( $dir, $file_prefix ) { global $wpdb; ! if ( $handle = @opendir( $dir . 'meta/' ) ) { while ( false !== ($file = readdir($handle))) { if ( preg_match( "/^$file_prefix/", $file ) ) { $meta = unserialize( file_get_contents( $dir . 'meta/' . $file ) ); --- 2512,2518 ---- function wp_cache_clean_legacy_files( $dir, $file_prefix ) { global $wpdb; ! if ( $handle = @opendir( $dir . 'meta/' ) ) { while ( false !== ($file = readdir($handle))) { if ( preg_match( "/^$file_prefix/", $file ) ) { $meta = unserialize( file_get_contents( $dir . 'meta/' . $file ) ); *************** *** 2549,2555 **** $expr = "/^$file_prefix/"; $now = time(); ! if ( ($handle = @opendir( $blog_cache_dir )) ) { while ( false !== ($file = readdir($handle))) { if ( preg_match( $expr, $file ) && ( filemtime( $blog_cache_dir . $file ) + $cache_max_time ) <= $now ) { --- 2549,2555 ---- $expr = "/^$file_prefix/"; $now = time(); ! if ( ($handle = @opendir( $blog_cache_dir )) ) { while ( false !== ($file = readdir($handle))) { if ( preg_match( $expr, $file ) && ( filemtime( $blog_cache_dir . $file ) + $cache_max_time ) <= $now ) { *************** *** 2669,2675 **** if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) { wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( "Please visit %s to clear the cache as the front page of your site is now downloading!", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) ); } else { ! wp_cache_clear_cache(); wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( "The cache on your blog has been cleared because the front page of your site is now downloading. Please visit %s to verify the cache has been cleared.", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) ); } } --- 2669,2675 ---- if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) { wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( "Please visit %s to clear the cache as the front page of your site is now downloading!", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) ); } else { ! wp_cache_clear_cache( get_current_blog_id() ); wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( "The cache on your blog has been cleared because the front page of your site is now downloading. Please visit %s to verify the cache has been cleared.", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) ); } } *************** *** 2679,2685 **** if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) { wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( 'Please visit %1$s to clear the cache as the front page of your site is not correct and missing the text, "%2$s"!', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) ); } else { ! wp_cache_clear_cache(); wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( 'The cache on your blog has been cleared because the front page of your site is missing the text "%2$s". Please visit %1$s to verify the cache has been cleared.', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) ); } } --- 2679,2685 ---- if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) { wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( 'Please visit %1$s to clear the cache as the front page of your site is not correct and missing the text, "%2$s"!', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) ); } else { ! wp_cache_clear_cache( get_current_blog_id() ); wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( 'The cache on your blog has been cleared because the front page of your site is missing the text "%2$s". Please visit %1$s to verify the cache has been cleared.', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) ); } } *************** *** 2709,2715 **** $wp_cache_mobile_groups = $mobile_groups; wp_cache_replace_line('^ *\$wp_cache_mobile_groups', "\$wp_cache_mobile_groups = '" . implode( ', ', $mobile_groups ) . "';", $wp_cache_config_file); } ! return true; } --- 2709,2715 ---- $wp_cache_mobile_groups = $mobile_groups; wp_cache_replace_line('^ *\$wp_cache_mobile_groups', "\$wp_cache_mobile_groups = '" . implode( ', ', $mobile_groups ) . "';", $wp_cache_config_file); } ! return true; } *************** *** 2742,2761 **** if ( !isset( $wpmu_version ) || $wpmu_version == '' ) { echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; } } } ! /* * Return LOGGED_IN_COOKIE if it doesn't begin with wordpress_logged_in * to avoid having people update their .htaccess file */ function wpsc_get_logged_in_cookie() { $logged_in_cookie = 'wordpress_logged_in'; ! if ( defined( 'LOGGED_IN_COOKIE' ) && substr( constant( 'LOGGED_IN_COOKIE' ), 0, 19 ) != 'wordpress_logged_in' ) $logged_in_cookie = constant( 'LOGGED_IN_COOKIE' ); return $logged_in_cookie; } --- 2742,2761 ---- if ( !isset( $wpmu_version ) || $wpmu_version == '' ) { echo '
    '; echo ''; ! echo '
    '; wp_nonce_field('wp-cache'); echo "
    \n"; } } } ! /* * Return LOGGED_IN_COOKIE if it doesn't begin with wordpress_logged_in * to avoid having people update their .htaccess file */ function wpsc_get_logged_in_cookie() { $logged_in_cookie = 'wordpress_logged_in'; ! if ( defined( 'LOGGED_IN_COOKIE' ) && substr( constant( 'LOGGED_IN_COOKIE' ), 0, 19 ) != 'wordpress_logged_in' ) $logged_in_cookie = constant( 'LOGGED_IN_COOKIE' ); return $logged_in_cookie; } *************** *** 2807,2815 **** $condition_rules[] = "RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\\\"]+ [NC]"; $condition_rules[] = "RewriteCond %{HTTP:Profile} !^[a-z0-9\\\"]+ [NC]"; if ( $wp_cache_mobile_enabled ) { ! if ( false == empty( $wp_cache_mobile_browsers ) ) $condition_rules[] = "RewriteCond %{HTTP_USER_AGENT} !^.*(" . addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) . ").* [NC]"; ! if ( false == empty( $wp_cache_mobile_prefixes ) ) $condition_rules[] = "RewriteCond %{HTTP_user_agent} !^(" . addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) . ").* [NC]"; } $condition_rules = apply_filters( 'supercacherewriteconditions', $condition_rules ); --- 2807,2815 ---- $condition_rules[] = "RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\\\"]+ [NC]"; $condition_rules[] = "RewriteCond %{HTTP:Profile} !^[a-z0-9\\\"]+ [NC]"; if ( $wp_cache_mobile_enabled ) { ! if ( false == empty( $wp_cache_mobile_browsers ) ) $condition_rules[] = "RewriteCond %{HTTP_USER_AGENT} !^.*(" . addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) . ").* [NC]"; ! if ( false == empty( $wp_cache_mobile_prefixes ) ) $condition_rules[] = "RewriteCond %{HTTP_user_agent} !^(" . addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) . ").* [NC]"; } $condition_rules = apply_filters( 'supercacherewriteconditions', $condition_rules ); *************** *** 2867,2873 **** if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "clear_post_supercache: deleting $dir/index*.html files", 2 ); $files_to_check = get_all_supercache_filenames( $dir ); foreach( $files_to_check as $cache_file ) { ! prune_super_cache( $dir . $cache_file, true ); } } --- 2867,2873 ---- if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "clear_post_supercache: deleting $dir/index*.html files", 2 ); $files_to_check = get_all_supercache_filenames( $dir ); foreach( $files_to_check as $cache_file ) { ! prune_super_cache( $dir . $cache_file, true ); } } *************** *** 3111,3117 **** $code .= "
  • chmod 666 " . WP_CONTENT_DIR . "/{$filename}
  • \n"; } $code .= "\n"; ! $msg .= "\n

    First try fixing the directory permissions with this command and refresh this page:

    chmod 777 " . WP_CONTENT_DIR . "

    If you still see this error, you have to fix the permissions on the files themselves and refresh this page again:

    {$code}\n

    Don't forgot to fix things later:
    chmod 755 " . WP_CONTENT_DIR . "

    If you don't know what chmod is use this Google search to find out all about it.

    Please refresh this page when the permissions have been modified.

    "; wp_die( $msg ); } --- 3111,3117 ---- $code .= "
  • chmod 666 " . WP_CONTENT_DIR . "/{$filename}
  • \n"; } $code .= "\n"; ! $msg .= "\n

    First try fixing the directory permissions with this command and refresh this page:

    chmod 777 " . WP_CONTENT_DIR . "

    If you still see this error, you have to fix the permissions on the files themselves and refresh this page again:

    {$code}\n

    Don't forgot to fix things later:
    chmod 755 " . WP_CONTENT_DIR . "

    If you don't know what chmod is use this Google search to find out all about it.

    Please refresh this page when the permissions have been modified.

    "; wp_die( $msg ); } *************** *** 3119,3125 **** if ( $scrules != '' && insert_with_markers( $home_path.'.htaccess', 'WPSuperCache', array() ) ) { $wp_rewrite->flush_rules(); } elseif( $scrules != '' ) { ! wp_mail( get_option( 'admin_email' ), __( 'Supercache Uninstall Problems', 'wp-super-cache' ), sprintf( __( "Dear User,\n\nWP Super Cache was removed from your blog but the mod_rewrite rules\nin your .htaccess were not.\n\nPlease edit the following file and remove the code\nbetween 'BEGIN WPSuperCache' and 'END WPSuperCache'. Please backup the file first!\n\n%s\n\nRegards,\nWP Super Cache Plugin\nhttp://wordpress.org/extend/plugins/wp-super-cache/", 'wp-super-cache' ), ABSPATH . '/.htaccess' ) ); } } --- 3119,3125 ---- if ( $scrules != '' && insert_with_markers( $home_path.'.htaccess', 'WPSuperCache', array() ) ) { $wp_rewrite->flush_rules(); } elseif( $scrules != '' ) { ! wp_mail( get_option( 'admin_email' ), __( 'Supercache Uninstall Problems', 'wp-super-cache' ), sprintf( __( "Dear User,\n\nWP Super Cache was removed from your blog but the mod_rewrite rules\nin your .htaccess were not.\n\nPlease edit the following file and remove the code\nbetween 'BEGIN WPSuperCache' and 'END WPSuperCache'. Please backup the file first!\n\n%s\n\nRegards,\nWP Super Cache Plugin\nhttp://wordpress.org/plugins/wp-super-cache/", 'wp-super-cache' ), ABSPATH . '/.htaccess' ) ); } } *************** *** 3130,3136 **** $dh = @opendir($folderPath); while( false !== ( $value = @readdir( $dh ) ) ) { if ( $value != "." && $value != ".." ) { ! $value = $folderPath . "/" . $value; if ( @is_dir ( $value ) ) { uninstall_supercache( $value ); } else { --- 3130,3136 ---- $dh = @opendir($folderPath); while( false !== ( $value = @readdir( $dh ) ) ) { if ( $value != "." && $value != ".." ) { ! $value = $folderPath . "/" . $value; if ( @is_dir ( $value ) ) { uninstall_supercache( $value ); } else { *************** *** 3146,3152 **** function supercache_admin_bar_render() { global $wp_admin_bar, $wp_cache_not_logged_in; ! if ( !is_user_logged_in() || !$wp_cache_not_logged_in ) return false; if ( function_exists('current_user_can') && false == current_user_can('delete_others_posts') ) --- 3146,3152 ---- function supercache_admin_bar_render() { global $wp_admin_bar, $wp_cache_not_logged_in; ! if ( !is_user_logged_in() || !$wp_cache_not_logged_in ) return false; if ( function_exists('current_user_can') && false == current_user_can('delete_others_posts') ) diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentythirteen/languages/twentythirteen.pot /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentythirteen/languages/twentythirteen.pot *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentythirteen/languages/twentythirteen.pot 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentythirteen/languages/twentythirteen.pot 2014-03-18 22:20:11.000000000 +0300 *************** *** 1,14 **** ! # Copyright (C) 2013 the WordPress team # This file is distributed under the GNU General Public License v2 or later. msgid "" msgstr "" "Project-Id-Version: Twenty Thirteen 1.1\n" "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n" ! "POT-Creation-Date: 2013-10-24 20:32:07+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" ! "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" --- 1,14 ---- ! # Copyright (C) 2014 the WordPress team # This file is distributed under the GNU General Public License v2 or later. msgid "" msgstr "" "Project-Id-Version: Twenty Thirteen 1.1\n" "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n" ! "POT-Creation-Date: 2014-03-18 19:16:26+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" ! "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentytwelve/languages/twentytwelve.pot /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentytwelve/languages/twentytwelve.pot *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentytwelve/languages/twentytwelve.pot 2013-10-30 20:29:20.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentytwelve/languages/twentytwelve.pot 2014-03-18 22:20:11.000000000 +0300 *************** *** 1,14 **** ! # Copyright (C) 2013 the WordPress team # This file is distributed under the GNU General Public License v2 or later. msgid "" msgstr "" "Project-Id-Version: Twenty Twelve 1.3\n" "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n" ! "POT-Creation-Date: 2013-10-24 20:32:05+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" ! "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" --- 1,14 ---- ! # Copyright (C) 2014 the WordPress team # This file is distributed under the GNU General Public License v2 or later. msgid "" msgstr "" "Project-Id-Version: Twenty Twelve 1.3\n" "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n" ! "POT-Creation-Date: 2014-03-18 19:16:25+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" ! "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/bookmark.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/bookmark.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/bookmark.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/bookmark.php 2014-04-03 07:23:10.000000000 +0400 *************** *** 208,215 **** $join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id"; } ! if ( $show_updated && get_option('links_recently_updated_time') ) { ! $recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL " . get_option('links_recently_updated_time') . " MINUTE) >= NOW(), 1,0) as recently_updated "; } else { $recently_updated_test = ''; } --- 208,215 ---- $join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id"; } ! if ( $show_updated ) { ! $recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) >= NOW(), 1,0) as recently_updated "; } else { $recently_updated_test = ''; } diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-IXR.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-IXR.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-IXR.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-IXR.php 2014-08-06 21:51:19.000000000 +0400 *************** *** 203,213 **** { // first remove the XML declaration // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages ! $header = preg_replace( '/<\?xml.*?\?'.'>/', '', substr($this->message, 0, 100), 1); ! $this->message = substr_replace($this->message, $header, 0, 100); ! if (trim($this->message) == '') { return false; } $this->_parser = xml_parser_create(); // Set XML parser to take the case of tags in to account xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false); --- 203,239 ---- { // first remove the XML declaration // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages ! $header = preg_replace( '/<\?xml.*?\?'.'>/s', '', substr( $this->message, 0, 100 ), 1 ); ! $this->message = trim( substr_replace( $this->message, $header, 0, 100 ) ); ! if ( '' == $this->message ) { return false; } + + // Then remove the DOCTYPE + $header = preg_replace( '/^]*+>/i', '', substr( $this->message, 0, 200 ), 1 ); + $this->message = trim( substr_replace( $this->message, $header, 0, 200 ) ); + if ( '' == $this->message ) { + return false; + } + + // Check that the root tag is valid + $root_tag = substr( $this->message, 0, strcspn( substr( $this->message, 0, 20 ), "> \t\r\n" ) ); + if ( 'message, '<' ) ) { + return false; + } + $this->_parser = xml_parser_create(); // Set XML parser to take the case of tags in to account xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false); diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-wp-xmlrpc-server.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-wp-xmlrpc-server.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-wp-xmlrpc-server.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-wp-xmlrpc-server.php 2014-04-01 01:36:11.000000000 +0400 *************** *** 5391,5401 **** --- 5391,5408 ---- // very stupid, but gives time to the 'from' server to publish ! sleep(1); + $remote_ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR'] ); + $user_agent = apply_filters( 'http_headers_useragent', 'WordPress/' . $GLOBALS['wp_version'] . '; ' . get_bloginfo( 'url' ) ); + // Let's check the remote site $http_api_args = array( 'timeout' => 10, 'redirection' => 0, 'limit_response_size' => 153600, // 150 KB + 'user-agent' => "$user_agent; verifying pingback from $remote_ip", + 'headers' => array( + 'X-Pingback-Forwarded-For' => $remote_ip, + ), ); $linea = wp_remote_retrieve_body( wp_safe_remote_get( $pagelinkedfrom, $http_api_args ) ); diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/compat.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/compat.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/compat.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/compat.php 2014-08-06 09:45:10.000000000 +0400 *************** *** 94,96 **** --- 94,125 ---- return is_array($data) ? array_map(__FUNCTION__, $data) : $data; } } + + if ( ! function_exists( 'hash_equals' ) ) : + /** + * Compare two strings in constant time. + * + * This function was added in PHP 5.6. + * It can leak the length of a string. + * + * @since 3.9.2 + * + * @param string $a Expected string. + * @param string $b Actual string. + * @return bool Whether strings are equal. + */ + function hash_equals( $a, $b ) { + $a_length = strlen( $a ); + if ( $a_length !== strlen( $b ) ) { + return false; + } + $result = 0; + + // Do not attempt to "optimize" this. + for ( $i = 0; $i < $a_length; $i++ ) { + $result |= ord( $a[ $i ] ) ^ ord( $b[ $i ] ); + } + + return $result === 0; + } + endif; \ No newline at end of file diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/cron.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/cron.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/cron.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/cron.php 2014-04-01 07:40:10.000000000 +0400 *************** *** 160,167 **** $args = array_slice( func_get_args(), 1 ); } ! while ( $timestamp = wp_next_scheduled( $hook, $args ) ) ! wp_unschedule_event( $timestamp, $hook, $args ); } /** --- 160,178 ---- $args = array_slice( func_get_args(), 1 ); } ! // This logic duplicates wp_next_scheduled() ! // It's required due to a scenario where wp_unschedule_event() fails due to update_option() failing, ! // and, wp_next_scheduled() returns the same schedule in an infinite loop. ! $crons = _get_cron_array(); ! if ( empty( $crons ) ) ! return; ! ! $key = md5( serialize( $args ) ); ! foreach ( $crons as $timestamp => $cron ) { ! if ( isset( $cron[ $hook ][ $key ] ) ) { ! wp_unschedule_event( $timestamp, $hook, $args ); ! } ! } } /** diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/functions.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/functions.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/functions.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/functions.php 2014-04-01 08:02:10.000000000 +0400 *************** *** 1372,1385 **** } // Get the permission bits. ! if ( $target_parent && '.' != $target_parent ) { ! $stat = @stat( $target_parent ); $dir_perms = $stat['mode'] & 0007777; } else { $dir_perms = 0777; } if ( @mkdir( $target, $dir_perms, true ) ) { return true; } --- 1372,1394 ---- } // Get the permission bits. ! $dir_perms = false; ! if ( $stat = @stat( $target_parent ) ) { $dir_perms = $stat['mode'] & 0007777; } else { $dir_perms = 0777; } if ( @mkdir( $target, $dir_perms, true ) ) { + + // If a umask is set that modifies $dir_perms, we'll have to re-set the $dir_perms correctly with chmod() + if ( $dir_perms != ( $dir_perms & ~umask() ) ) { + $folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) ); + for ( $i = 1; $i <= count( $folder_parts ); $i++ ) { + @chmod( $target_parent . '/' . implode( '/', array_slice( $folder_parts, 0, $i ) ), $dir_perms ); + } + } + return true; } diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/ID3/getid3.lib.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/ID3/getid3.lib.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/ID3/getid3.lib.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/ID3/getid3.lib.php 2014-08-06 09:58:19.000000000 +0400 *************** *** 519,529 **** } public static function XML2array($XMLstring) { ! if (function_exists('simplexml_load_string')) { ! if (function_exists('get_object_vars')) { ! $XMLobject = simplexml_load_string($XMLstring); ! return self::SimpleXMLelement2array($XMLobject); ! } } return false; } --- 519,530 ---- } public static function XML2array($XMLstring) { ! if ( function_exists( 'simplexml_load_string' ) && function_exists( 'libxml_disable_entity_loader' ) ) { ! $loader = libxml_disable_entity_loader( true ); ! $XMLobject = simplexml_load_string( $XMLstring, 'SimpleXMLElement', LIBXML_NOENT ); ! $return = self::SimpleXMLelement2array( $XMLobject ); ! libxml_disable_entity_loader( $loader ); ! return $return; } return false; } Binary files /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/js/plupload/plupload.silverlight.xap and /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/js/plupload/plupload.silverlight.xap differ diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/option.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/option.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/option.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/option.php 2014-04-01 08:07:09.000000000 +0400 *************** *** 757,763 **** return $pre; // prevent non-existent options from triggering multiple queries ! $notoptions = wp_cache_get( 'notoptions', 'site-options' ); if ( isset( $notoptions[$option] ) ) return apply_filters( 'default_site_option_' . $option, $default ); --- 757,764 ---- return $pre; // prevent non-existent options from triggering multiple queries ! $notoptions_key = "{$wpdb->siteid}:notoptions"; ! $notoptions = wp_cache_get( $notoptions_key, 'site-options' ); if ( isset( $notoptions[$option] ) ) return apply_filters( 'default_site_option_' . $option, $default ); *************** *** 779,785 **** wp_cache_set( $cache_key, $value, 'site-options' ); } else { $notoptions[$option] = true; ! wp_cache_set( 'notoptions', $notoptions, 'site-options' ); $value = apply_filters( 'default_site_option_' . $option, $default ); } } --- 780,786 ---- wp_cache_set( $cache_key, $value, 'site-options' ); } else { $notoptions[$option] = true; ! wp_cache_set( $notoptions_key, $notoptions, 'site-options' ); $value = apply_filters( 'default_site_option_' . $option, $default ); } } *************** *** 812,817 **** --- 813,819 ---- wp_protect_special_option( $option ); $value = apply_filters( 'pre_add_site_option_' . $option, $value ); + $notoptions_key = "{$wpdb->siteid}:notoptions"; if ( !is_multisite() ) { $result = add_option( $option, $value ); *************** *** 819,825 **** $cache_key = "{$wpdb->siteid}:$option"; // Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query ! $notoptions = wp_cache_get( 'notoptions', 'site-options' ); if ( ! is_array( $notoptions ) || ! isset( $notoptions[$option] ) ) if ( false !== get_site_option( $option ) ) return false; --- 821,827 ---- $cache_key = "{$wpdb->siteid}:$option"; // Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query ! $notoptions = wp_cache_get( $notoptions_key, 'site-options' ); if ( ! is_array( $notoptions ) || ! isset( $notoptions[$option] ) ) if ( false !== get_site_option( $option ) ) return false; *************** *** 835,844 **** wp_cache_set( $cache_key, $value, 'site-options' ); // This option exists now ! $notoptions = wp_cache_get( 'notoptions', 'site-options' ); // yes, again... we need it to be fresh if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) { unset( $notoptions[$option] ); ! wp_cache_set( 'notoptions', $notoptions, 'site-options' ); } } --- 837,846 ---- wp_cache_set( $cache_key, $value, 'site-options' ); // This option exists now ! $notoptions = wp_cache_get( $notoptions_key, 'site-options' ); // yes, again... we need it to be fresh if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) { unset( $notoptions[$option] ); ! wp_cache_set( $notoptions_key, $notoptions, 'site-options' ); } } *************** *** 922,931 **** if ( false === $old_value ) return add_site_option( $option, $value ); ! $notoptions = wp_cache_get( 'notoptions', 'site-options' ); if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) { unset( $notoptions[$option] ); ! wp_cache_set( 'notoptions', $notoptions, 'site-options' ); } if ( !is_multisite() ) { --- 924,934 ---- if ( false === $old_value ) return add_site_option( $option, $value ); ! $notoptions_key = "{$wpdb->siteid}:notoptions"; ! $notoptions = wp_cache_get( $notoptions_key, 'site-options' ); if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) { unset( $notoptions[$option] ); ! wp_cache_set( $notoptions_key, $notoptions, 'site-options' ); } if ( !is_multisite() ) { diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/pluggable.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/pluggable.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/pluggable.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/pluggable.php 2014-08-06 21:59:09.000000000 +0400 *************** *** 546,552 **** $key = wp_hash($username . $pass_frag . '|' . $expiration, $scheme); $hash = hash_hmac('md5', $username . '|' . $expiration, $key); ! if ( $hmac != $hash ) { do_action('auth_cookie_bad_hash', $cookie_elements); return false; } --- 546,552 ---- $key = wp_hash($username . $pass_frag . '|' . $expiration, $scheme); $hash = hash_hmac('md5', $username . '|' . $expiration, $key); ! if ( ! hash_equals( $hash, $hmac ) ) { do_action('auth_cookie_bad_hash', $cookie_elements); return false; } *************** *** 1297,1307 **** $i = wp_nonce_tick(); // Nonce generated 0-12 hours ago ! if ( substr(wp_hash($i . $action . $uid, 'nonce'), -12, 10) === $nonce ) return 1; // Nonce generated 12-24 hours ago ! if ( substr(wp_hash(($i - 1) . $action . $uid, 'nonce'), -12, 10) === $nonce ) return 2; // Invalid nonce return false; } --- 1297,1313 ---- $i = wp_nonce_tick(); // Nonce generated 0-12 hours ago ! $expected = substr( wp_hash( $i . '|' . $action . '|' . $uid, 'nonce'), -12, 10 ); ! if ( hash_equals( $expected, $nonce ) ) { return 1; + } + // Nonce generated 12-24 hours ago ! $expected = substr( wp_hash( ( $i - 1 ) . '|' . $action . '|' . $uid, 'nonce' ), -12, 10 ); ! if ( hash_equals( $expected, $nonce ) ) { return 2; + } + // Invalid nonce return false; } *************** *** 1324,1330 **** $i = wp_nonce_tick(); ! return substr(wp_hash($i . $action . $uid, 'nonce'), -12, 10); } endif; --- 1330,1336 ---- $i = wp_nonce_tick(); ! return substr(wp_hash($i . '|' . $action . '|' . $uid, 'nonce'), -12, 10); } endif; *************** *** 1703,1709 **** $out = str_replace( '&', '&', esc_url( $out ) ); $avatar = "{$safe_alt}"; } else { ! $avatar = "{$safe_alt}"; } return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt); --- 1709,1716 ---- $out = str_replace( '&', '&', esc_url( $out ) ); $avatar = "{$safe_alt}"; } else { ! $out = esc_url( $default ); ! $avatar = "{$safe_alt}"; } return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt); *************** *** 1784,1786 **** --- 1791,1825 ---- } endif; + if ( ! function_exists( 'hash_equals' ) ) : + /** + * Compare two strings in constant time. + * + * This function is NOT pluggable. It is in this file (in addition to + * compat.php) to prevent errors if, during an update, pluggable.php + * copies over but compat.php does not. + * + * This function was added in PHP 5.6. + * It can leak the length of a string. + * + * @since 3.9.2 + * + * @param string $a Expected string. + * @param string $b Actual string. + * @return bool Whether strings are equal. + */ + function hash_equals( $a, $b ) { + $a_length = strlen( $a ); + if ( $a_length !== strlen( $b ) ) { + return false; + } + $result = 0; + + // Do not attempt to "optimize" this. + for ( $i = 0; $i < $a_length; $i++ ) { + $result |= ord( $a[ $i ] ) ^ ord( $b[ $i ] ); + } + + return $result === 0; + } + endif; diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/update.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/update.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/update.php 2013-10-30 20:29:22.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/update.php 2014-04-03 09:47:09.000000000 +0400 *************** *** 160,168 **** * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ ! function wp_update_plugins() { include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) --- 160,169 ---- * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * + * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ ! function wp_update_plugins( $extra_stats = array() ) { include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) *************** *** 201,207 **** $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); ! if ( $time_not_changed ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; --- 202,208 ---- $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); ! if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; *************** *** 250,255 **** --- 251,260 ---- 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); + if ( $extra_stats ) { + $options['body']['update_stats'] = json_encode( $extra_stats ); + } + $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); *************** *** 291,299 **** * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ ! function wp_update_themes() { include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) --- 296,305 ---- * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * + * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ ! function wp_update_themes( $extra_stats = array() ) { include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) *************** *** 343,349 **** $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); ! if ( $time_not_changed ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) --- 349,355 ---- $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); ! if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) *************** *** 390,395 **** --- 396,405 ---- 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); + if ( $extra_stats ) { + $options['body']['update_stats'] = json_encode( $extra_stats ); + } + $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); *************** *** 584,589 **** --- 594,601 ---- $next += 12 * HOUR_IN_SECONDS; } $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS; + // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour + $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS; wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' ); } } *************** *** 600,613 **** add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); ! add_action( 'upgrader_process_complete', 'wp_update_plugins' ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); ! add_action( 'upgrader_process_complete', 'wp_update_themes' ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); --- 612,625 ---- add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); ! add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); ! add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/version.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/version.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/version.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/version.php 2014-08-06 22:27:35.000000000 +0400 *************** *** 4,17 **** * * @global string $wp_version */ ! $wp_version = '3.7.1'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * * @global int $wp_db_version */ ! $wp_db_version = 25824; /** * Holds the TinyMCE version --- 4,17 ---- * * @global string $wp_version */ ! $wp_version = '3.7.4'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * * @global int $wp_db_version */ ! $wp_db_version = 26149; /** * Holds the TinyMCE version diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-login.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-login.php *** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-login.php 2013-10-30 20:29:21.000000000 +0300 --- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-login.php 2014-08-06 10:40:11.000000000 +0400 *************** *** 557,566 **** case 'resetpass' : case 'rp' : ! $user = check_password_reset_key($_GET['key'], $_GET['login']); ! if ( is_wp_error($user) ) { ! if ( $user->get_error_code() === 'expired_key' ) wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) ); else wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) ); --- 557,581 ---- case 'resetpass' : case 'rp' : ! list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) ); ! $rp_cookie = 'wp-resetpass-' . COOKIEHASH; ! if ( isset( $_GET['key'] ) ) { ! $value = sprintf( '%s:%s', wp_unslash( $_GET['login'] ), wp_unslash( $_GET['key'] ) ); ! setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true ); ! wp_safe_redirect( remove_query_arg( array( 'key', 'login' ) ) ); ! exit; ! } ! ! if ( isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' ) ) { ! list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ), 2 ); ! $user = check_password_reset_key( $rp_key, $rp_login ); ! } else { ! $user = false; ! } ! if ( ! $user || is_wp_error( $user ) ) { ! setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true ); ! if ( $user && $user->get_error_code() === 'expired_key' ) wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) ); else wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) ); *************** *** 584,589 **** --- 599,605 ---- if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) { reset_password($user, $_POST['pass1']); + setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true ); login_header( __( 'Password Reset' ), '

    ' . __( 'Your password has been reset.' ) . ' ' . __( 'Log in' ) . '

    ' ); login_footer(); exit; *************** *** 595,602 **** login_header(__('Reset Password'), '

    ' . __('Enter your new password below.') . '

    ', $errors ); ?> !
    !

    ' . __('Enter your new password below.') . '

    ', $errors ); ?> ! !

    #" . __( 'URI', 'wp-super-cache' ) . "" . __( 'Key', 'wp-super-cache' ) . "" . __( 'Age', 'wp-super-cache' ) . "" . __( 'Delete', 'wp-super-cache' ) . "