WordPress.org

Plugin Directory

Changeset 959436


Ignore:
Timestamp:
08/03/14 04:00:26 (3 years ago)
Author:
krazybean
Message:

adding all the things for 0.2

Location:
wp-redis-cache/trunk
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • wp-redis-cache/trunk/rc_core.php

    r948500 r959436  
    55    Description: Caching using redis, simple 
    66    Author: Juanito 
    7     Version: 0.1 
     7    Version: 0.2 
    88    Author URI: http://juan 
    99    Requirements: Redis, derp 
    1010*/ 
     11require_once('functions.php'); 
     12define('LOAD_FIRST',1); 
     13define('LOAD_LAST',999999); 
     14register_activation_hook( __FILE__, 'ajc_activate' ); 
     15function ajc_activate(){ 
     16    if (get_option('minify_enabled_check')===FALSE){ 
     17        update_option('minify_enabled_check',                           'on'); 
     18        update_option('minify_css_on',                      'on'); 
     19        update_option('head_detect',    'on'); 
     20        update_option('foot_detect',    'on'); 
     21        update_option('css_load_type',          'inline_header'); 
     22        update_option('css_minify',                     'on'); 
     23    } 
     24} 
     25 
     26 
     27    function cssmin_init(){          
     28    $minify_enabled_check                           = get_option('minify_enabled_check'); 
     29    $minify_css_on                          = get_option('minify_css_on'); 
     30    $head_detect    = get_option('head_detect'); 
     31    $foot_detect    = get_option('foot_detect'); 
     32    $css_load_type              = get_option('css_load_type'); 
     33    if ($minify_css_on =="on"){ 
     34        add_action('wp_print_styles','ajc_print_styles'); 
     35    } 
     36} 
     37     
     38add_action('init',                  'cssmin_init'); 
     39 
     40 function ajc_print_styles(){ 
     41    global $css_styles_are_minified; 
     42    global $all_styles; 
     43  
     44    if ( is_admin() || !empty($css_styles_are_minified) ) { 
     45        return; 
     46    } 
     47  
     48    $css_styles_are_minified = true; 
     49  
     50    $all_styles = get_styles_list(); 
     51  
     52    //~ dump(get_option('css_load_type')); 
     53    if (get_option('css_load_type')=='inline_header'){ 
     54        $not_inlined = array(); 
     55        $minify = get_option('cssminify_enabled'); 
     56                 //~ $ajc_styles = array_reverse($ajc_styles,true); 
     57        foreach ($all_styles as $style){ 
     58            echo "<style type=\"text/css\" ".($style['media'] ? "media=\"{$style['media']}\"" : '' ).">"; 
     59            if (!inline_css($style['src'],$minify)){ 
     60                $not_inlined[] = $style; 
     61            } 
     62            echo "</style>"; 
     63        } 
     64        if (!empty($not_inlined)){ 
     65            foreach ($not_inlined as $style){ 
     66                ?><link rel="stylesheet"  href="<?php echo $style['src']?>" type="text/css" <?php echo $style['media'] ? "media=\"{$style['media']}\"" : ''?> /><?php 
     67            } 
     68        } 
     69    } 
     70  
     71    unregister_all_styles(); 
     72 } 
     73  
     74  
     75 function ajc_print_delayed_styles(){ 
     76    global $all_styles; 
     77  
     78    $css_load_type              = get_option('css_load_type'); 
     79  
     80    switch ($css_load_type){ 
     81        case "import":{ 
     82            echo "<style type=\"text/css\">"; 
     83            foreach ($all_styles as $style){ 
     84                echo "@import url(\"{$style['src']}\")".($style['media'] ? " ".$style['media'] : '').";"; 
     85            } 
     86            echo "</style>"; 
     87            break; 
     88        } 
     89        case "inline": 
     90        case "inline_footer": { 
     91            $not_inlined = array(); 
     92            $minify = get_option('css_minify'); 
     93                         //~ $ajc_styles = array_reverse($ajc_styles,true); 
     94            foreach ($all_styles as $style){ 
     95                echo "<style type=\"text/css\" ".($style['media'] ? "media=\"{$style['media']}\"" : '' ).">"; 
     96                if (!inline_css($style['src'],$minify)){ 
     97                    $not_inlined[] = $style; 
     98                } 
     99                echo "</style>"; 
     100            } 
     101            if (!empty($not_inlined)){ 
     102                foreach ($not_inlined as $style){ 
     103                    ?><link rel="stylesheet"  href="<?php echo $style['src']?>" type="text/css" <?php echo $style['media'] ? "media=\"{$style['media']}\"" : ''?> /><?php 
     104                } 
     105            } 
     106            break; 
     107        } 
     108        case "link":{ 
     109            foreach ($all_styles as $style){ 
     110                ?><link rel="stylesheet"  href="<?php echo $style['src']?>" type="text/css" <?php echo $style['media'] ? "media=\"{$style['media']}\"" : ''?> /><?php 
     111            } 
     112        } 
     113    } 
     114 }  
     115 
    11116error_reporting(E_ALL);  
    12117if ( !class_exists( 'AdminPageFramework' ) )  
     
    19124    protected $default_pass = ''; 
    20125    protected $default_database = '0'; 
     126    protected $default_ttl = '3600'; 
    21127 
    22128    public function setUp() { 
     
    25131         
    26132        $this->addSubMenuPage( 
    27             'Redis Cache',    // page and menu title 
    28             'redis_cache_setting'     // page slug 
     133            'Redis Cache', 
     134            'redis_cache_setting' 
    29135        );  
    30136         
     
    44150         
    45151    // setup wp_options elements on activation  
    46     add_option('rediscache_enabled', 'no', '', 'no'); 
    47     add_option('rediscache_server', $this->encrypt($default_server), '', 'no'); 
     152        add_option('rediscache_enabled', 'no', '', 'no'); 
     153        add_option('cssminify_enabled', 'on'); 
     154        update_option('minify_css_on',                      'on'); 
     155        update_option('css_load_type',          'inline_header'); 
     156        update_option('head_detect',    'on'); 
     157        add_option('rediscache_enabled', 'no', '', 'no'); 
     158        add_option('rediscache_server', $this->encrypt($default_server), '', 'no'); 
    48159        add_option('rediscache_port', $this->encrypt($default_port), '', 'no'); 
    49160        add_option('rediscache_pass', $this->encrypt($default_pass), '', 'no'); 
    50161        add_option('rediscache_database', $this->encrypt($default_database), '', 'no'); 
     162        add_option('rediscache_ttl', $this->encrypt($default_ttl), '', 'no'); 
    51163    } 
    52164 
     
    56168        delete_option('rediscache_server'); 
    57169        delete_option('rediscache_database'); 
    58     delete_option('rediscache_port'); 
    59     delete_option('rediscache_pass'); 
     170        delete_option('rediscache_port'); 
     171        delete_option('rediscache_pass'); 
     172        delete_option('rediscache_ttl'); 
    60173    } 
    61174 
     
    77190    $pass = $this->decrypt(get_option('rediscache_pass')); 
    78191    $database = $this->decrypt(get_option('rediscache_database')); 
     192    $ttl = $this->decrypt(get_option('rediscache_ttl')); 
     193 
    79194        if(strlen($pass) >= 1){ 
    80195        $params = array( 
     
    98213        $domain = $_SERVER['HTTP_HOST']; 
    99214        $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
    100     $dkey = md5($domain); 
    101     $ukey = md5($url); 
     215        $dkey = md5($domain); 
     216        $ukey = md5($url); 
    102217        (isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] == 'max-age=0') ? $submit = 1 : $submit = 0; 
    103218        $cookie = var_export($_COOKIE, true); 
     
    124239            ob_start(); 
    125240            include( get_home_path() .'./wp-blog-header.php'); 
     241            if (get_option('minify_css_on')=="on"){ 
     242                add_action('wp_print_styles',       'ajc_print_styles'); 
     243            }else{} 
    126244            $html = ob_get_contents(); 
    127245            ob_end_clean(); 
    128246            if(!is_404() && !is_search()) { 
    129247                $redis->hset($dkey, $ukey, $html); 
     248                $redis->expire($dkey, $ttl); 
     249                $ttlremain = $redis->ttl($dkey); 
    130250                $msg = 'cache is set'; 
    131251            } 
    132252        } 
    133253        if(strlen($html_cache) >= 1){ 
    134             ob_flush(); 
     254            @ob_flush(); 
    135255            echo $html_cache; 
    136256            $end = microtime(); 
    137257            echo "\n<!-- redis cache key: $dkey was used. -->\n"; 
    138258            echo "<!-- redis cache time: ".$this->t_exec($start, $end)." -->\n"; 
     259            //echo "<!-- redis ttl remaining: ".$this->$ttlremain.". -->\n"; 
    139260            die(); 
    140261        }elseif(strlen($html) >= 1){ 
     
    162283 
    163284 
    164     private function buffer_start() { 
    165         /* 
    166         ob_start(); 
    167         include('./wp-blog-header.php'); 
    168         $html = ob_get_contents(); 
    169         ob_end_clean(); 
    170         $this->callback_contents($html); 
    171         */ 
     285    private function buffer_start() { 
     286        //More will be placed here 
    172287    } 
    173288 
    174289    private function buffer_end() { 
    175         /*$html = ob_get_contents(); 
    176         $this->callback_content($html); 
    177         print_r($html); */ 
    178         //ob_end_clean( $this->callback_content( $html )); 
     290        //Unweildy termination of page at the end of cache results 
    179291        die(); 
    180292    } 
     
    205317        $dkey = md5($domain); 
    206318        $ukey = md5($url); 
    207         if(!is_404() && !is_search()) { 
    208             //$redis->hset($dkey, $ukey, $html); 
    209             //$msg = 'cache is set'; 
    210         } 
    211     } 
     319        if(!is_404() && !is_search()) { 
     320            continue; 
     321        } 
     322    } 
     323 
     324   private function flush_db() {                                 
     325        $host = $this->decrypt(get_option('rediscache_server'));                 
     326        $port = $this->decrypt(get_option('rediscache_port'));                   
     327        $pass = $this->decrypt(get_option('rediscache_pass'));                   
     328        $database = $this->decrypt(get_option('rediscache_database'));           
     329        if(strlen($pass) >= 1){                                                  
     330            $params = array(                                                     
     331                'host' => "$host",                                               
     332                'port' => $port,                                                 
     333                'password' => $pass,                                             
     334                'database' => $database                                          
     335            );                                                                   
     336        }else{                                                                   
     337            $params = array(                                                     
     338                'host' => "$host",                                               
     339                'port' => $port,                                                 
     340                'database' => $database                                          
     341            );                                                                   
     342        }                                                                        
     343                                                                                 
     344        $redis = new Predis\Client($params); 
     345        $count = $redis->info(); 
     346        $redis->flushdb(); 
     347        return $count; 
     348    }     
    212349 
    213350    public function t_exec($start, $end) { 
     
    248385        <h2>Settings</h2> 
    249386        <form action="" method="post"> 
    250     <input type="hidden" name="action" value="save_settings"> 
     387        <input type="hidden" name="action" value="save_settings"> 
    251388    <?php if (function_exists('wp_nonce_field')){wp_nonce_field();} ?> 
    252389        <p><label for="server">Redis Server</label> 
    253         <input type="text" name="server" value="<?php echo $this->decrypt(get_option('rediscache_server'));?>" placeholder="localhost"></p> 
    254     <p><label for="database">Redis Instance</label> 
    255         <input type="text" name="database" value="<?php echo $this->decrypt(get_option('rediscache_database'));?>" placeholder="0"></p> 
     390           <input type="text" name="server" value="<?php echo $this->decrypt(get_option('rediscache_server'));?>" placeholder="localhost"></p> 
     391        <p><label for="database">Redis Instance</label> 
     392           <input type="text" name="database" value="<?php echo $this->decrypt(get_option('rediscache_database'));?>" placeholder="0"></p> 
    256393        <p><label for="port">Redis Port</label> 
    257     <input type="text" name="port" value="<?php echo $this->decrypt(get_option('rediscache_port'));?>" placeholder="6379"></p> 
     394           <input type="text" name="port" value="<?php echo $this->decrypt(get_option('rediscache_port'));?>" placeholder="6379"></p> 
    258395        <p><label for="password">Redis Password</label> 
    259         <input type="password" name="password" value="<?php echo $this->decrypt(get_option('rediscache_pass'));?>" placeholder="password"></p> 
    260     <input type="submit" value="Save Settings" class="button button-primary"> 
     396           <input type="password" name="password" value="<?php echo $this->decrypt(get_option('rediscache_pass'));?>" placeholder="password"></p> 
     397        <p><label for="ttlset">Cache Expiration (in seconds)</label> 
     398           <input type="text" name="ttlset" value="<?php echo $this->decrypt(get_option('rediscache_ttl'));?>" placeholder="3600"></p> 
     399        <input type="submit" value="Save Settings" class="button button-primary"> 
    261400        </form> 
    262  
     401    <hr> 
     402<h3>Minify CSS</h3> 
     403<?php if(get_option('cssminify_enabled') == 'off'){$status='off';}else{$status='on';}  
     404        if($status == 'off'){?> 
     405    <form action="" method="post"> 
     406        <input type="hidden" name="action" value="cssminify_enable"> 
     407        <?php if (function_exists('wp_nonce_field')){wp_nonce_field();} ?> 
     408        <input type="submit" value="Enable" class="button button-primary"> 
     409        </form> 
     410    <?php }elseif($status == 'on'){?> 
     411        <form action="" method="post"> 
     412        <input type="hidden" name="action" value="cssminify_disable"> 
     413        <?php if (function_exists('wp_nonce_field')){wp_nonce_field();} ?> 
     414        <input type="submit" value="Disable" class="button button-primay"> 
     415        </form> 
     416    <?php }?> 
     417    <h2>Flush Cache</h2> 
     418        <form action="" method="post"> 
     419            <?php if (function_exists('wp_nonce_field')){wp_nonce_field();} ?> 
     420            <input type="hidden" name="action" value="flush_db"> 
     421            <p><input type="submit" value="Clear Cache" class="button button-primary"></p> 
     422        </form> 
    263423        <?php 
    264424    if($_POST){ 
    265425    $action = $_POST['action']; 
     426    if($action == 'cssminify_enable'){ 
     427            if(check_admin_referer()){ 
     428                update_option('cssminify_enabled', 'on'); 
     429                update_option('minify_enabled_check',                           'on'); 
     430                update_option('minify_css_on',                      'on'); 
     431                update_option('head_detect',    'on'); 
     432                update_option('foot_detect',    'on'); 
     433                update_option('css_load_type',          'inline_header'); 
     434                update_option('css_minify',                     'on'); 
     435                echo "<meta http-equiv=\"refresh\" content=\"0\">";                  
     436                } 
     437        }elseif($action == 'cssminify_disable'){ 
     438            if(check_admin_referer()){ 
     439                update_option('cssminify_enabled', 'off'); 
     440                update_option('minify_enabled_check', 'off'); 
     441                update_option('minify_css_on', 'off'); 
     442                update_option('head_detect', 'off'); 
     443                update_option('foot_detect', 'off'); 
     444                update_option('css_load_type', 'js'); 
     445                update_option('css_minify',                     'off');  
     446                echo "<meta http-equiv=\"refresh\" content=\"0\">";              
     447                    } 
     448                }                            
    266449            if($action == 'cache_enable'){ 
    267450                if(check_admin_referer()){ 
     
    280463            }elseif($action == 'save_settings'){ 
    281464                if(!empty($_POST)){ 
    282         $server = $_POST['server']; $database=$_POST['database']; $port=$_POST['port']; $pass=$_POST['password']; 
     465                    $server = $_POST['server']; 
     466                    $database=$_POST['database']; 
     467                    $port=$_POST['port']; 
     468                    $pass=$_POST['password']; 
     469                    $ttlset=$_POST['ttlset']; 
    283470                if(check_admin_referer()){ 
    284471                    update_option('rediscache_server', $this->encrypt($server), '', 'no'); 
    285             update_option('rediscache_database', $this->encrypt($database), '', 'no'); 
     472                    update_option('rediscache_database', $this->encrypt($database), '', 'no'); 
    286473                    update_option('rediscache_port', $this->encrypt($port), '', 'no'); 
    287474                    update_option('rediscache_pass', $this->encrypt($pass), '', 'no'); 
     475                    update_option('rediscache_ttl', $this->encrypt($ttlset), '', 'no'); 
     476                    echo "<meta http-equiv=\"refresh\" content=\"0\">"; 
    288477                 }} 
    289             } 
    290         } 
    291  
    292  
    293  
     478            }elseif($action == 'flush_db'){ 
     479                if(check_admin_referer()){ 
     480                $count_purged = print_r($this->flush_db()); 
     481                //echo "<meta http-equiv=\"refresh\" content=\"0\">"; 
     482                echo "<div class='updated'> Message: Cache purged -> ($count_purged)</div>"; 
     483            }} 
     484        } 
    294485    } 
    295486     
    296487} 
    297  
    298488 
    299489// Instantiate the class object. 
    300490$rcplugin = new APF_rediscache; 
    301491if(get_option('rediscache_enabled') == 'yes'){ 
    302         add_action('init', array($rcplugin, 'redis_init'), 10, 1); 
    303     add_action('wp_head', array($rcplugin, 'buffer_start')); 
    304         add_action('wp_footer', array($rcplugin, 'buffer_end')); 
    305     }elseif(get_option('rediscache_enabled') == 'no'){ 
    306         remove_action('init', array($rcplugin, 'redis_init'), 10, 1); 
     492    add_action('init', array($rcplugin, 'redis_init'), 10, 1); 
     493    add_action('wp_head', array($rcplugin, 'buffer_start')); 
     494    add_action('wp_footer', array($rcplugin, 'buffer_end')); 
     495}elseif(get_option('rediscache_enabled') == 'no'){ 
     496    remove_action('init', array($rcplugin, 'redis_init'), 10, 1); 
    307497}else{} 
    308498    register_activation_hook( __FILE__, array( $rcplugin, 'installation' ) ); 
  • wp-redis-cache/trunk/readme.txt

    r945956 r959436  
    11=== wp-redis-cache === 
    2 Contributors: krazybean 
     2Contributors: krazybean, antpb 
    33Donate link:  
    44Tags: redis, cache, beta 
    55Requires at least: 3.0.1 
    66Tested up to: 3.4 
    7 Stable tag: 0.1 
     7Stable tag: 0.2 
     8Version: 0.2 
    89License: GPLv2 or later 
    910License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    1920Expected features: 
    2021 
    21 *   TTL for self expiring keys 
    22 *   Flush cache 
     22*   Image Compression 
     23*   .htaccess rule appending 
    2324 
    2425Requires: 
     
    5960* Use at your own risk 
    6061 
     62= 0.2 = 
     63* Still beta, please report any bugs 
     64* Added TTL key flushing 
     65* Added Flush DB function 
     66* Added css minification ability 
    6167 
    6268== Upgrade Notice == 
     
    6470= 0.1 = 
    6571Barebones upload 
    66  
     72= 0.2 = 
     73Added new features! 
    6774 
    6875== Arbitrary section == 
     
    7279  [1]: http://profiles.wordpress.org/krazybean 
    7380  [2]: /assets/screenshot-1.jpg 
     81 
Note: See TracChangeset for help on using the changeset viewer.