WordPress.org

Plugin Directory

Changeset 620006


Ignore:
Timestamp:
11/01/12 21:20:08 (18 months ago)
Author:
ericmann
Message:

Add new version (0.4).

Location:
minipress/trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • minipress/trunk/README.md

    r618297 r620006  
    3838**What about stylesheets?** 
    3939 
    40 For now they're left alone. This will (hopefully) come in a later version. 
     40Yep, they're concatenated and minified now, too. To turn this functionality off, declare `STYLE_DEBUG` in `wp-config.php` and set it to true. 
    4141 
    4242Changelog 
    4343--------- 
     44 
     45**0.4** 
     46 
     47- Add CSS minification. 
     48 
     49**0.3** 
     50 
     51- Update documentation before release to WordPress.org. 
    4452 
    4553**0.2** 
     
    6169------------ 
    6270 
     71**0.4** 
     72 
     73- None at this time. 
     74 
    6375**0.3** 
     76 
    6477- If two scripts declare the same dependencies, that dependency will be included twice in the concatenated file. 
    6578 
     
    8598**Tested up to:** 3.5 
    8699 
    87 **Stable tag:** 0.3 
     100**Stable tag:** 0.4 
    88101 
    89102**License:** GPLv2 or later 
  • minipress/trunk/lib/class.minipress.php

    r618297 r620006  
    6262     * @param string $location Location to print HTML output - header or footer. 
    6363     */ 
    64     private static function queue_file( $queue, $handle, &$handles = array(), $type = 'scripts', $location = 'header' ) { 
     64    private static function queue_file( $queue, $handle, &$handles = array(), $type = 'scripts', $location = 'header', $force = false ) { 
     65        /* Exclude already processed files */ 
     66        if ( in_array( $handle, $queue->done ) ) 
     67            return; 
     68 
    6569        /* Exclusions for Styles */ 
    66         if ($type == 'styles' ) { 
     70        if ( $type == 'styles' ) { 
    6771            // Exclude if doesn't end in .css because it may be dynamic (uncacheable) 
    6872            if (substr( $queue->registered[$handle]->src, -3) != 'css' ) 
     
    7175 
    7276        /* Exclusions for Scripts */ 
    73         if ($type == 'scripts') { 
     77        if ( $type == 'scripts' ) { 
    7478            // If this is a footer script, and we're not in the footer, skip. 
    75             if ( isset( $queue->registered[$handle]->extra['group'] ) && $location != 'footer' ) { 
     79            if ( isset( $queue->registered[$handle]->extra['group'] ) && $location != 'footer' && ! $force ) { 
    7680                return; 
    7781            } 
    7882 
    79             if ( ! isset( $queue->registered[$handle]->extra['group'] ) && $location == 'footer' ) { 
     83            if ( ! isset( $queue->registered[$handle]->extra['group'] ) && $location == 'footer' && ! $force ) { 
    8084                return; 
    8185            } 
    8286        } 
     87 
    8388 
    8489        // Handle any dependencies 
    8590        foreach ( $queue->registered[$handle]->deps as $dependency ) { 
    86             self::queue_file( $queue, $dependency, $handles, $type, $location ); 
     91            self::queue_file( $queue, $dependency, $handles, $type, $location, true ); 
    8792        } 
    8893 
    8994        // If we didn't skip over this item, we can assume we need to concat this handle. 
     95        $queue->done[] = $handle; 
    9096        $handles[] = $handle; 
    9197    } 
     
    107113        if ( substr( $src, 0, 1 ) == '/' ) { 
    108114            $src = home_url() . $src; 
     115        } 
     116 
     117        // Handle script dependencies 
     118        if ( is_a( $queue, 'WP_Scripts' ) ) { 
     119            if ( $output = $queue->get_data( $handle, 'data' ) ) { 
     120                $concatenated .= $output; 
     121            } 
    109122        } 
    110123 
     
    244257        update_option( "minipress_$hash", $concatenated_list ); 
    245258 
    246         // If we're debugging, don't minify anything. Otherwise, minify all the things! 
    247         if ( ! defined( 'SCRIPT_DEBUG' ) || SCRIPT_DEBUG == false ) { 
    248             $concatenated = JSMin::minify( $concatenated ); 
     259        switch( $args['queue'] ) { 
     260            case 'scripts': 
     261                $concatenated = JSMin::minify( $concatenated ); 
     262                break; 
     263            case 'styles': 
     264                $concatenated = Minify_CSS_Compressor::process( $concatenated ); 
     265                break; 
    249266        } 
    250267 
     
    259276     */ 
    260277    public static function concat_scripts() { 
     278        // If we're debugging, bail 
     279        if ( defined( 'SCRIPT_DEBUG' ) && true == SCRIPT_DEBUG ) 
     280            return; 
     281 
    261282        // If we can't use the filesystem, bail. 
    262283        if ( false === ( $filesystem = self::get_filesystem() ) ) 
     
    269290        $cache_url = content_url( 'uploads/cache' ); 
    270291 
    271         // If SCRIPT_DEBUG is turned on, don't do anything to scripts 
    272         if ( ! defined( 'SCRIPT_DEBUG' ) || false == SCRIPT_DEBUG ) { 
    273             //script handles in head. 
    274             $head_handles = self::get_queued_handles( 
     292        //script handles in head. 
     293        $head_handles = self::get_queued_handles( 
    275294                array( 
    276295                     'queue'    => 'scripts', 
     
    279298            ); 
    280299 
    281             if ( count( $head_handles ) > 0 ) { 
    282                 $head_filename = self::concat_queued_files( 
    283                     array( 
    284                          'queue'   => 'scripts', 
    285                          'handles' => $head_handles, 
    286                     ) 
    287                 ); 
    288  
    289                 // Queue up the header scripts 
    290                 if ( $head_filename && $filesystem->exists( "$cache_dir/$head_filename" ) ) { 
    291                     $hash = substr( $head_filename, 7 ); 
    292                     $hashes = explode( '.', $hash ); 
    293                     $hash = $hashes[0]; 
    294                     self::remove_queued_files( $hash, 'scripts' ); 
    295                     wp_enqueue_script( 'cached-script-header', "$cache_url/$head_filename", '', '' ); 
    296                 } 
    297             } 
    298  
    299             //script handles in footer. 
    300             $footer_handles = self::get_queued_handles( 
     300        if ( count( $head_handles ) > 0 ) { 
     301            $head_filename = self::concat_queued_files( 
     302                array( 
     303                     'queue'   => 'scripts', 
     304                     'handles' => $head_handles, 
     305                ) 
     306            ); 
     307 
     308            // Queue up the header scripts 
     309            if ( $head_filename && $filesystem->exists( "$cache_dir/$head_filename" ) ) { 
     310                $hash = substr( $head_filename, 7 ); 
     311                $hashes = explode( '.', $hash ); 
     312                $hash = $hashes[0]; 
     313                self::remove_queued_files( $hash, 'scripts' ); 
     314                wp_enqueue_script( 'cached-script-header', "$cache_url/$head_filename", '', '' ); 
     315            } 
     316        } 
     317 
     318        //script handles in footer. 
     319        $footer_handles = self::get_queued_handles( 
    301320                array( 
    302321                     'queue'    => 'scripts', 
     
    305324            ); 
    306325 
    307             if ( count( $footer_handles ) > 0 ) { 
     326        if ( count( $footer_handles ) > 0 ) { 
    308327                $foot_filename = self::concat_queued_files( 
    309328                    array( 
     
    322341                } 
    323342            } 
    324         } 
    325  
    326         // If WP_DEBUG is turned on, don't do anything to styles 
    327         if ( ! defined( 'WP_DEBUG' ) || false == WP_DEBUG ) { 
    328  
     343    } 
     344 
     345    public static function concat_styles() { 
     346        // If we're debugging, bail 
     347        if ( defined( 'STYLE_DEBUG' ) && true == STYLE_DEBUG ) 
     348            return; 
     349 
     350        // If we can't use the filesystem, bail. 
     351        if ( false === ( $filesystem = self::get_filesystem() ) ) 
     352            return; 
     353 
     354        $cache_dir = wp_upload_dir(); 
     355 
     356        $cache_dir = trailingslashit( $cache_dir['basedir'] ) . "cache"; 
     357 
     358        $cache_url = content_url( 'uploads/cache' ); 
     359 
     360        //style handles in head. 
     361        $handles = self::get_queued_handles( 
     362            array( 
     363                 'queue' => 'styles', 
     364            ) 
     365        ); 
     366 
     367        if ( count( $handles ) > 0 ) { 
     368            $style_filename = self::concat_queued_files( 
     369                array( 
     370                     'queue'   => 'styles', 
     371                     'handles' => $handles, 
     372                ) 
     373            ); 
     374 
     375            // Queue up the header scripts 
     376            if ( $style_filename && $filesystem->exists( "$cache_dir/$style_filename" ) ) { 
     377                $hash = substr( $style_filename, 7 ); 
     378                $hashes = explode( '.', $hash ); 
     379                $hash = $hashes[0]; 
     380                self::remove_queued_files( $hash, 'styles' ); 
     381                wp_enqueue_style( 'cached-styles', "$cache_url/$style_filename", '', '' ); 
     382            } 
    329383        } 
    330384    } 
  • minipress/trunk/minipress.php

    r618297 r620006  
    44 * Plugin URI: http://jumping-duck.com/wordpress/plugins/minipress 
    55 * Description: Automatically concatenates and minifies all enqueued scripts upon pageload. 
    6  * Version: 0.3 
     6 * Version: 0.4 
    77 * Author: Eric Mann 
    88 * Author URI: http://eamann.com 
     
    4343add_action( 'init',               'minipress_init' ); 
    4444add_action( 'wp_enqueue_scripts', array( 'MiniPress', 'concat_scripts' ), '99' ); 
     45add_action( 'wp_enqueue_scripts', array( 'MiniPress', 'concat_styles' ),  '99' ); 
    4546?> 
  • minipress/trunk/readme.txt

    r618297 r620006  
    55Requires at least: 3.4.2 
    66Tested up to: 3.5 
    7 Stable tag: 0.3 
     7Stable tag: 0.4 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    4242= What about stylesheets? = 
    4343 
    44 For now they're left alone. This will (hopefully) come in a later version. 
     44Yep, they're concatenated and minified now, too. To turn this functionality off, declare `STYLE_DEBUG` in `wp-config.php` and set it to true. 
    4545 
    4646== Changelog == 
     47 
     48= 0.4 = 
     49* Add CSS minification. 
    4750 
    4851= 0.3 = 
     
    6265== Known Issues == 
    6366 
     67= 0.4 = 
     68* None at this time. 
     69 
    6470= 0.3 = 
    6571* If two scripts declare the same dependencies, that dependency will be included twice in the concatenated file. 
Note: See TracChangeset for help on using the changeset viewer.