WordPress.org

Plugin Directory

Changeset 703541


Ignore:
Timestamp:
04/25/13 16:00:46 (12 months ago)
Author:
donncha
Message:

Replace legacy mfunc/mnclude/dynamic-cached-data functionality with a "wpsc_cachedata" cacheaction filter

Location:
wp-super-cache/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • wp-super-cache/trunk/wp-cache-phase1.php

    r699010 r703541  
    120120    global $key, $blogcacheid, $wp_cache_request_uri, $file_prefix, $blog_cache_dir, $meta_file, $cache_file, $cache_filename, $wp_super_cache_debug, $meta_pathname, $wp_cache_gzip_encoding, $meta; 
    121121    global $wp_cache_object_cache, $cache_compression, $wp_cache_slash_check, $wp_supercache_304, $wp_cache_home_path, $wp_cache_no_cache_for_get; 
    122     global $wp_cache_disable_utf8; 
     122    global $wp_cache_disable_utf8, $wp_cache_mfunc_enabled; 
    123123 
    124124    extract( wp_super_cache_init() ); 
     
    168168        $filename = supercache_filename(); 
    169169        $file = get_current_url_supercache_dir() . $filename; 
    170         $phpfile = get_current_url_supercache_dir() . $filename . ".php"; 
    171         $serving_supercache = false; 
    172         if ( file_exists( $file ) ) { 
    173             $serving_supercache = 'html'; 
    174         } elseif ( file_exists( $phpfile ) ) { 
    175             $serving_supercache = 'php'; 
    176         } 
     170        if ( false == file_exists( $file ) ) { 
     171            if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "No Super Cache file found for current URL: $file" ); 
     172            return false; 
     173        } elseif ( false == empty( $_GET ) ) { 
     174            if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "GET array not empty. Cannot serve a supercache file. " . print_r( $_GET, 1 ) ); 
     175            return false; 
     176        } elseif ( wp_cache_get_cookies_values() != '' ) { 
     177            if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Cookies found. Cannot serve a supercache file. " . wp_cache_get_cookies_values() ); 
     178            return false; 
     179        } 
     180 
     181        if ( isset( $wp_cache_mfunc_enabled ) == false ) 
     182            $wp_cache_mfunc_enabled = 0; 
     183 
    177184        if ( false == isset( $wp_cache_home_path ) ) 
    178185            $wp_cache_home_path = '/'; 
    179         if (  
    180             (  
    181                 $wp_cache_request_uri == $wp_cache_home_path ||  
    182                 ( $wp_cache_slash_check && substr( $wp_cache_request_uri, -1 ) == '/' ) ||  
    183                 ( $wp_cache_slash_check == 0 && substr( $wp_cache_request_uri, -1 ) != '/' )  
    184             ) &&  
    185             ( wp_cache_get_cookies_values() == '' && empty( $_GET ) && $serving_supercache ) ) 
    186         { 
     186 
     187        // make sure ending slashes are ok 
     188        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 ) != '/' ) ) {  
     189 
     190            if ( $wp_cache_mfunc_enabled == 0 ) { 
     191                // get data from file 
     192                if ( $wp_cache_gzip_encoding ) { 
     193                    if ( file_exists( $file . '.gz' ) ) { 
     194                        $cachefiledata = file_get_contents( $file . '.gz' ); 
     195                        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" );  
     196                    } else { 
     197                        $cachefiledata = gzencode( file_get_contents( $file ), 6, FORCE_GZIP ); 
     198                        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" );  
     199                    } 
     200                } else { 
     201                    $cachefiledata = gzencode( file_get_contents( $file ), 6, FORCE_GZIP ); 
     202                    if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP. File: $file" );  
     203                } 
     204            } else { 
     205                // get dynamic data from filtered file 
     206                $cachefiledata = do_cacheaction( 'wpsc_cachedata', file_get_contents( $file ) );  
     207                if ( $wp_cache_gzip_encoding ) { 
     208                    $cachefiledata = gzencode( $cachefiledata, 6, FORCE_GZIP ); 
     209                    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" );  
     210                } else { 
     211                    if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP. File: $file" );  
     212                } 
     213            } 
     214 
    187215            if ( isset( $wp_cache_disable_utf8 ) == false || $wp_cache_disable_utf8 == 0 ) 
    188216                header( "Content-type: text/html; charset=UTF-8" );  
     217 
    189218            header( "Vary: Accept-Encoding, Cookie" ); 
    190219            header( "Cache-Control: max-age=3, must-revalidate" ); 
    191220            header( "WP-Super-Cache: Served supercache file from PHP" ); 
    192             if ( file_exists( $file . '.gz' ) && $wp_cache_gzip_encoding ) { 
    193                 $file = $file . '.gz'; 
     221            $size = function_exists( 'mb_strlen' ) ? mb_strlen( $cachefiledata, '8bit' ) : strlen( $cachefiledata ); 
     222            if ( $wp_cache_gzip_encoding ) { 
    194223                header( 'Content-Encoding: ' . $wp_cache_gzip_encoding ); 
    195                 header( 'Content-Length: ' . filesize( $file ) ); 
    196             } elseif ( $serving_supercache == 'html' && $wp_supercache_304 ) { 
    197                 header( 'Content-Length: ' . filesize( $file ) ); 
    198             } 
    199  
    200             if ( $serving_supercache == 'html' && $wp_supercache_304 ) { 
     224                header( 'Content-Length: ' . $size ); 
     225            } elseif ( $wp_supercache_304 ) { 
     226                header( 'Content-Length: ' . $size ); 
     227            } 
     228 
     229            // don't try to match modified dates if using dynamic code. 
     230            if ( $wp_cache_mfunc_enabled == 0 && $wp_supercache_304 ) { 
    201231                if ( function_exists( 'apache_request_headers' ) ) { 
    202232                    $request = apache_request_headers(); 
     
    212242                header( 'Last-Modified: ' . $local_mod_time ); 
    213243            } 
    214             if ( $serving_supercache == 'html' ) { 
    215                 readfile( $file ); 
    216                 if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Served page from supercache file using PHP.", 5 ); 
    217                 exit(); 
    218             } elseif ( $serving_supercache == 'php' ) { 
    219                 $cachefiledata = file_get_contents($phpfile);  
    220                 if ( $cache_compression and $wp_cache_gzip_encoding ) { 
    221                     ob_start("ob_gzhandler"); 
    222                     eval( '?>' . $cachefiledata . '<?php ' );  
    223                     echo "\n<!-- Compression = gzip -->\n"; 
    224                     ob_end_flush(); 
    225                     if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Served compressed dynamic page from supercache file using PHP. File: $file", 5 );  
    226                 } else { 
    227                     eval( '?>' . $cachefiledata . '<?php ' );  
    228                     if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Served dynamic page from supercache file using PHP. File: $file", 5 );  
    229                 } 
    230                 exit(); 
    231             } 
     244            echo $cachefiledata; 
     245            exit(); 
    232246        } else { 
    233             if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "No wp-cache file exists. Must generate a new one.", 5 ); 
     247            if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "No wp-cache file exists. Must generate a new one." ); 
    234248            return false; 
    235249        } 
    236250    } 
     251 
    237252    $cache_file = do_cacheaction( 'wp_cache_served_cache_file', $cache_file ); 
    238253    // Sometimes the gzip headers are lost. Make sure html returned isn't compressed! 
     
    252267        if ( $cache ) { 
    253268            if ( $ungzip ) { 
     269                // attempt to uncompress the cached file just in case it's gzipped 
    254270                $uncompressed = gzuncompress( $cache ); 
    255271                if ( $uncompressed ) { 
     
    261277            if ( isset( $meta[ 'dynamic' ] ) && $meta[ 'dynamic' ] ) { 
    262278                if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache dynamic file from object cache", 5 ); 
    263                 eval( '?>' . $cache . '<?php ' ); 
     279                echo do_cacheaction( 'wpsc_cachedata', $cache );  
    264280            } else { 
    265281                if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file from object cache", 5 ); 
     
    273289            if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache dynamic file", 5 ); 
    274290            if ( $ungzip ) { 
     291                // attempt to uncompress the cached file just in case it's gzipped 
    275292                $cache = file_get_contents( $cache_file ); 
    276293                $uncompressed = @gzuncompress( $cache ); 
     
    278295                    if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Uncompressed gzipped cache file from wp-cache", 1 ); 
    279296                    unset( $cache ); 
    280                     eval( '?>' . $uncompressed . '<?php ' ); 
     297                    echo do_cacheaction( 'wpsc_cachedata', $uncompressed );  
    281298                } else { 
    282                     eval( '?>' . $cache . '<?php ' ); 
     299                    echo do_cacheaction( 'wpsc_cachedata', $cache );  
    283300                } 
    284301            } else { 
    285                 include( $cache_file ); 
     302                echo do_cacheaction( 'wpsc_cachedata', file_get_contents( $cache_file ) );  
    286303            } 
    287304        } else { 
  • wp-super-cache/trunk/wp-cache-phase2.php

    r703405 r703541  
    356356    global $wp_cache_is_home, $wp_cache_front_page_checks, $wp_cache_mfunc_enabled; 
    357357 
     358    if ( isset( $wp_cache_mfunc_enabled ) == false ) 
     359        $wp_cache_mfunc_enabled = 0; 
     360 
    358361    $new_cache = true; 
    359362    $wp_cache_meta = ''; 
     
    456459    $fr = $fr2 = $gz = false; 
    457460    // Open wp-cache cache file 
    458     if ( !$supercacheonly ) { 
    459         if ( false == $wp_cache_object_cache ) { 
     461    if ( false == $wp_cache_object_cache ) { 
     462        if ( !$supercacheonly ) { 
    460463            $fr = @fopen($tmp_wpcache_filename, 'w'); 
    461464            if (!$fr) { 
     
    465468                return $buffer; 
    466469            } 
    467         } 
    468     } else { 
    469         $user_info = wp_cache_get_cookies_values(); 
    470         $do_cache = apply_filters( 'do_createsupercache', $user_info ); 
    471         if ( $super_cache_enabled && ( $user_info == '' || $do_cache === true ) ) { 
    472  
    473             $cache_fname = $dir . supercache_filename(); 
    474             $tmp_cache_filename = $dir . uniqid( mt_rand(), true ) . '.tmp'; 
    475             $fr2 = @fopen( $tmp_cache_filename, 'w' ); 
    476             if ( !$fr2 ) { 
    477                 if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $tmp_cache_filename ), 1 ); 
    478                 wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $tmp_cache_filename ) ); 
    479                 @fclose( $fr ); 
    480                 @unlink( $tmp_wpcache_filename ); 
    481                 wp_cache_writers_exit(); 
    482                 return $buffer; 
    483             } elseif ( $cache_compression ) { 
    484                 $gz = @fopen( $tmp_cache_filename . ".gz", 'w'); 
    485                 if (!$gz) { 
    486                     if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $tmp_cache_filename ) . ".gz", 1 ); 
    487                     wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $tmp_cache_filename ) . ".gz" ); 
     470        } else { 
     471            $user_info = wp_cache_get_cookies_values(); 
     472            $do_cache = apply_filters( 'do_createsupercache', $user_info ); 
     473            if ( $super_cache_enabled && ( $user_info == '' || $do_cache === true ) ) { 
     474 
     475                $cache_fname = $dir . supercache_filename(); 
     476                $tmp_cache_filename = $dir . uniqid( mt_rand(), true ) . '.tmp'; 
     477                $fr2 = @fopen( $tmp_cache_filename, 'w' ); 
     478                if ( !$fr2 ) { 
     479                    if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $tmp_cache_filename ), 1 ); 
     480                    wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $tmp_cache_filename ) ); 
    488481                    @fclose( $fr ); 
    489482                    @unlink( $tmp_wpcache_filename ); 
    490                     @fclose( $fr2 ); 
    491                     @unlink( $tmp_cache_filename ); 
    492483                    wp_cache_writers_exit(); 
    493484                    return $buffer; 
     485                } elseif ( ( !isset( $wp_cache_mfunc_enabled ) || $wp_cache_mfunc_enabled == 0 ) && $cache_compression ) { // don't want to store compressed files if using dynamic content 
     486                    $gz = @fopen( $tmp_cache_filename . ".gz", 'w'); 
     487                    if (!$gz) { 
     488                        if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $tmp_cache_filename ) . ".gz", 1 ); 
     489                        wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $tmp_cache_filename ) . ".gz" ); 
     490                        @fclose( $fr ); 
     491                        @unlink( $tmp_wpcache_filename ); 
     492                        @fclose( $fr2 ); 
     493                        @unlink( $tmp_cache_filename ); 
     494                        wp_cache_writers_exit(); 
     495                        return $buffer; 
     496                    } 
    494497                } 
    495498            } 
     
    499502    $added_cache = 0; 
    500503    $oc_key = get_oc_key(); 
    501     if ( preg_match( '/<!--mclude|<!--mfunc|<!--dynamic-cached-content-->/', $buffer ) ) { //Dynamic content 
    502         if ( !isset( $wp_cache_mfunc_enabled ) || $wp_cache_mfunc_enabled == 0 ) { 
    503             if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Dynamic content found in buffer but dynamic caching disabled on settings page.", 4 ); 
    504             wp_cache_add_to_buffer( $buffer, 'Super Cache dynamic page detected but dynamic caching disabled on the settings page.' ); 
    505             $buffer = preg_replace( '#(<!--\s*(mclude|mfunc|dynamic-cached-content).*<!-+\s*/\s*(mfunc|mclude|dynamic-cached-content)\s*-+>)#ism','', $buffer ); 
    506             $store = $buffer; 
    507             /* Clean function calls in tag */ 
    508             $store = apply_filters( 'wpsupercache_buffer', $store ); 
    509         } else { 
    510             if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Dynamic content found in buffer.", 4 ); 
    511             $store = preg_replace('|<!--mclude (.*?)-->(.*?)<!--/mclude-->|is', 
    512                 "<!--mclude-->\n<?php include_once('" . ABSPATH . "$1'); ?>\n<!--/mclude-->", $buffer); 
    513             $store = preg_replace('|<!--mfunc (.*?)-->(.*?)<!--/mfunc-->|is', 
    514                 "<!--mfunc-->\n<?php $1 ;?>\n<!--/mfunc-->", $store); 
    515             $store = preg_replace('|<!--dynamic-cached-content-->(.*?)<!--(.*?)--><!--/dynamic-cached-content-->|is', 
    516                 "<!--dynamic-cached-content-->\n<?php$2?>\n<!--/dynamic-cached-content-->", $store); 
    517             $wp_cache_meta[ 'dynamic' ] = true; 
    518             /* Clean function calls in tag */ 
    519             $buffer = preg_replace('|<!--mclude (.*?)-->|is', '<!--mclude-->', $buffer); 
    520             $buffer = preg_replace('|<!--mfunc (.*?)-->|is', '<!--mfunc-->', $buffer); 
    521             $buffer = preg_replace('|<!--dynamic-cached-content-->(.*?)<!--(.*?)--><!--/dynamic-cached-content-->|is', 
    522                 "<!--dynamic-cached-content-->$1<!--/dynamic-cached-content-->", $buffer); 
    523             $store = apply_filters( 'wpsupercache_buffer', $store ); 
    524         } 
    525         // Append WP Super Cache or Live page comment tag 
    526         wp_cache_append_tag($buffer); 
    527         wp_cache_append_tag($store); 
     504    $buffer = apply_filters( 'wpsupercache_buffer', $buffer ); 
     505    wp_cache_append_tag( $buffer ); 
     506 
     507    /* 
     508     * Dynamic content found: write the buffer to a file and then process any templates found using 
     509     * the wpsc_cachedata filter. Buffer is then returned to the visitor. 
     510     */ 
     511    if ( $wp_cache_mfunc_enabled == 1 ) { 
    528512        global $wp_super_cache_late_init; 
    529513        if ( false == isset( $wp_super_cache_late_init ) || ( isset( $wp_super_cache_late_init ) && $wp_super_cache_late_init == 0 ) ) 
    530514            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.' ); 
    531515 
    532         if ( false == $wp_cache_object_cache ) { 
    533             if( $fr ) { // legacy caching 
    534                 fputs($fr, $store); 
    535             } elseif ( isset( $fr2 ) ) { // supercache active 
    536                 $php_fname = "{$dir}" . supercache_filename() . ".php"; 
    537                 $tmp_php_filename = $dir . uniqid( mt_rand(), true ) . '.tmp'; 
    538                 $php_fd = @fopen( $tmp_php_filename, 'w' ); 
    539                 if ( !$php_fd ) { 
    540                     if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $tmp_php_filename ), 1 ); 
    541                     wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache couldn't write to: " . str_replace( ABSPATH, '', $tmp_php_filename ) ); 
    542                     @fclose( $php_fd ); 
    543                     @unlink( $tmp_php_filename ); 
    544                     wp_cache_writers_exit(); 
    545                     return $buffer; 
    546                 } 
    547                 fputs( $php_fd, $store ); 
    548             } 
    549         } else { 
    550             wp_cache_set( $oc_key, $store, 'supercache', $cache_max_time ); 
    551         } 
     516        if ( $fr ) { // legacy caching 
     517            if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing dynamic buffer to legacy file." ); 
     518            wp_cache_add_to_buffer( $buffer, "Legacy Super Cache" ); 
     519            fputs( $fr, $buffer ); 
     520        } elseif ( isset( $fr2 ) ) { // supercache active 
     521            if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing dynamic buffer to supercache file." ); 
     522            wp_cache_add_to_buffer( $buffer, "Dynamic Super Cache" ); 
     523            fputs( $fr2, $buffer ); 
     524        } elseif ( true == $wp_cache_object_cache ) { 
     525            wp_cache_set( $oc_key, $buffer, 'supercache', $cache_max_time ); 
     526        } 
     527        $buffer = do_cacheaction( 'wpsc_cachedata', $buffer ); // dynamic content for display 
     528 
    552529        if ( $cache_compression && $wp_cache_gzip_encoding ) { 
    553             if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Gzipping dynamic buffer.", 5 ); 
     530            if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Gzipping dynamic buffer for display.", 5 ); 
    554531            wp_cache_add_to_buffer( $buffer, "Compression = gzip" ); 
    555532            $gzdata = gzencode( $buffer, 6, FORCE_GZIP ); 
     
    557534        } 
    558535    } else { 
    559         $buffer = apply_filters( 'wpsupercache_buffer', $buffer ); 
    560         // Append WP Super Cache or Live page comment tag 
    561         wp_cache_append_tag($buffer); 
    562         if( $gz || $wp_cache_gzip_encoding ) { 
     536        if ( $gz || $wp_cache_gzip_encoding ) { 
    563537            if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Gzipping buffer.", 5 ); 
    564538            wp_cache_add_to_buffer( $buffer, "Compression = gzip" ); 
    565539            $gzdata = gzencode( $buffer, 6, FORCE_GZIP ); 
    566540            $gzsize = function_exists( 'mb_strlen' ) ? mb_strlen( $gzdata, '8bit' ) : strlen( $gzdata ); 
    567         } 
    568         if ($wp_cache_gzip_encoding) { 
     541 
    569542            $wp_cache_meta[ 'headers' ][ 'Content-Encoding' ] = 'Content-Encoding: ' . $wp_cache_gzip_encoding; 
    570543            $wp_cache_meta[ 'headers' ][ 'Vary' ] = 'Vary: Accept-Encoding, Cookie'; 
    571544            // Return uncompressed data & store compressed for later use 
    572             if ( false == $wp_cache_object_cache ) { 
    573                 if( $fr ) { 
    574                     if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing gzipped buffer to wp-cache cache file.", 5 ); 
    575                     fputs($fr, $gzdata); 
    576                 } 
    577             } elseif ( $cache_enabled ) { 
     545            if ( $fr ) { 
     546                if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing gzipped buffer to wp-cache cache file.", 5 ); 
     547                fputs($fr, $gzdata); 
     548            } elseif ( $cache_enabled && $wp_cache_object_cache ) { 
    578549                wp_cache_set( $oc_key . ".gz", $gzdata, 'supercache', $cache_max_time );  
    579550                $added_cache = 1; 
     
    581552        } else { // no compression 
    582553            $wp_cache_meta[ 'headers' ][ 'Vary' ] = 'Vary: Cookie'; 
    583             if ( false == $wp_cache_object_cache ) { 
    584                 if( $fr ) { 
    585                     if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing non-gzipped buffer to wp-cache cache file.", 5 ); 
    586                     fputs($fr, $buffer); 
    587                 } 
    588             } elseif ( $cache_enabled ) { 
     554            if ( $cache_enabled && $wp_cache_object_cache ) { 
    589555                wp_cache_set( $oc_key, $buffer, 'supercache', $cache_max_time );  
    590556                $added_cache = 1; 
    591             } 
    592         } 
    593         if ( false == $wp_cache_object_cache ) { 
    594             if( $fr2 ) { 
    595                 if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing non-gzipped buffer to supercache file.", 5 ); 
    596                 wp_cache_add_to_buffer( $buffer, "super cache" ); 
    597                 fputs($fr2, $buffer ); 
    598             } 
    599             if( $gz ) { 
    600                 if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing gzipped buffer to supercache file.", 5 ); 
    601                 fwrite($gz, $gzdata ); 
    602             } 
    603         } 
    604     } 
     557            } elseif ( $fr ) { 
     558                if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing non-gzipped buffer to wp-cache cache file." ); 
     559                fputs($fr, $buffer); 
     560            } 
     561        } 
     562        if ( $fr2 ) { 
     563            if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing non-gzipped buffer to supercache file." ); 
     564            wp_cache_add_to_buffer( $buffer, "super cache" ); 
     565            fputs($fr2, $buffer ); 
     566        }  
     567        if ( isset( $gzdata ) && $gz ) { 
     568            if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Writing gzipped buffer to supercache file." ); 
     569            fwrite($gz, $gzdata ); 
     570        } 
     571    } 
     572 
    605573    $new_cache = true; 
    606574    if ( false == $wp_cache_object_cache ) { 
     
    637605                } 
    638606                if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Renamed temp supercache file to $cache_fname", 5 ); 
    639                 $added_cache = 1; 
    640             } 
    641         } 
    642         if ( isset( $php_fd ) ) { 
    643             fclose( $php_fd ); 
    644             if ( $php_fname == $supercachedir . $home_url[ 'path' ] . supercache_filename() . '.php' && !( $wp_cache_is_home ) ) { 
    645                 wp_cache_writers_exit(); 
    646                 if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Warning! Not writing another page to front page cache.", 1 ); 
    647                 return $buffer; 
    648             } elseif ( filesize( $tmp_php_filename ) == 0 ) { 
    649                 if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Warning! The file $tmp_php_filename was empty. Did not rename to {$php_fname}", 5 ); 
    650                 @unlink( $tmp_php_filename ); 
    651             } else { 
    652                 if ( !@rename( $tmp_php_filename, $php_fname ) ) { 
    653                     @unlink( $php_fname ); 
    654                     @rename( $tmp_php_filename, $php_fname ); 
    655                 } 
    656                 if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Renamed temp supercache file to $php_fname", 5 ); 
    657607                $added_cache = 1; 
    658608            } 
Note: See TracChangeset for help on using the changeset viewer.