!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\cumbreclima\wp-content\plugins\w3-total-cache\extensions\   drwxrwxrwx
Free 4.13 GB of 39.52 GB (10.45%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Genesis.php (11.51 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

class W3_Genesis {
    
/**
     * Request URI
     * @var string
     */
    
private $_request_uri '';
    
/**
     * @var W3_Config $_config
     */
    
private $_config;

    function 
run() {
        
add_action('w3tc_register_fragment_groups', array($this'register_groups'));
        
$this->_config w3_instance('W3_Config');
        if ((
w3_is_pro($this->_config) || w3_is_enterprise($this->_config)) && 
                
$this->_config->get_boolean('fragmentcache.enabled')) {
            if (!
is_admin()) {
                
/**
                 * Register the caching of content to specific hooks
                 */
                
foreach(array('genesis_header''genesis_footer''genesis_sidebar''genesis_loop''wp_head''wp_footer''genesis_comments''genesis_pings') as $hook) {
                    
add_action($hook, array($this'cache_genesis_start'),-999999999);
                    
add_action($hook, array($this'cache_genesis_end'), 999999999);
                }
                foreach(array(
'genesis_do_subnav''genesis_do_nav') as $filter) {
                    
add_filter($filter, array($this'cache_genesis_filter_start'),-999999999);
                    
add_filter($filter, array($this'cache_genesis_filter_end'), 999999999);
                }
            }

            
/**
             * Since posts pages etc are cached individually need to be able to flush just those and not all fragment
             */
            
add_action('clean_post_cache', array($this'flush_post_fragment'));
            
add_action('clean_post_cache', array($this'flush_terms_fragment'), 00);

            
$this->_request_uri $_SERVER['REQUEST_URI'];
        }
    }

    
/**
     * Start outputbuffering or return fragment on a per page/hook basis
     */
    
function cache_genesis_start() {
        
$hook current_filter();
        
$keys $this->_get_id_group($hook);
        if (
is_null($keys))
            return;
        list(
$id$group) = $keys;
        
w3tc_fragmentcache_start($id$group$hook);
    }

    
/**
     * Store the output buffer per page/post hook basis.
     */
    
function cache_genesis_end() {
        
$keys $this->_get_id_group(current_filter());
        if (
is_null($keys))
            return;
        list(
$id$group) = $keys;
        
w3tc_fragmentcache_end($id$group$this->_config->get_boolean('fragmentcache.debug'));
    }

    
/**
     * Start filter buffering and return filter result
     */
    
function cache_genesis_filter_start($data) {
        
$hook current_filter();
        
$keys $this->_get_id_group($hookstrpos($data,'current')!==false);
        if (
is_null($keys))
            return 
$data;
        list(
$id$group) = $keys;
        return 
w3tc_fragmentcache_filter_start($id$group$hook$data);
    }

    
/**
     * Store the filter result and return filter result.
     */
    
function cache_genesis_filter_end($data) {
        
$keys $this->_get_id_group(current_filter(), strpos($data,'current')!==false);
        if (
is_null($keys))
            return 
$data;
        list(
$id$group) = $keys;
        return 
w3tc_fragmentcache_filter_end($id$group$data);
    }

    
/**
     * Constructs the fragment grouping for a subgroup
     * @param $subgroup
     * @param $state
     * @return string
     */
    
private function _genesis_group($subgroup$state false) {
        
$postfix '';
        if (
$state && is_user_logged_in())
            
$postfix 'logged_in_';
        return (
$subgroup "genesis_fragment_{$subgroup}_" 'genesis_fragment_') . $postfix;
    }

    
/**
     * Constructs the correct fragment group and id for the hook
     * @param $hook
     * @param bool $current_menu
     * @return array|null
     */
    
private function _get_id_group($hook$current_menu false) {
        if (
$this->cannot_cache_current_hook()) {
            return 
null;
        }
        switch (
true) {
            case 
$keys $this->generate_sidebar_keys():
                list(
$group$genesis_id) = $keys;
                break;
            case 
$keys $this->generate_genesis_loop_keys():
                list(
$group$genesis_id) = $keys;
                break;
            case 
$keys $this->generate_genesis_comments_pings_keys():
                list(
$group$genesis_id) = $keys;
                break;
            case 
$keys $this->generate_genesis_navigation_keys($current_menu):
                list(
$group$genesis_id) = $keys;
                break;
            default:
                
$group $hook;
                
$genesis_id $this->get_page_slug();
                if (
is_paged())
                    
$genesis_id .= $this->get_paged_page_key();
                break;
        }

        if (
$this->_cache_group($group) && !$this->_exclude_page($group)) {
            return array(
$genesis_id$this->_genesis_group($grouptrue));
        }

        return 
null;
    }

    
/**
     * Checks if the fragment group should be cached
     *
     * @param $group
     * @return array|bool|int|null|string
     */
    
private function _cache_group($group) {
        return  
w3tc_get_extension_config('genesis.theme'$group);
    }

    
/**
     * Checks if current page is excluded from caching
     *
     * @param $group
     * @return bool
     */
    
private function _exclude_page($group) {
        
$reject_uri  w3tc_get_extension_config('genesis.theme'"{$group}_excluded");
        if (
$reject_uri)
            
$reject_uri explode("\n"$reject_uri);

        if (
is_null($reject_uri) || !is_array($reject_uri) || empty($reject_uri)) {
            return 
false;
        }

        
$auto_reject_uri = array(
            
'wp-login',
            
'wp-register'
        
);
        foreach (
$auto_reject_uri as $uri) {
            if (
strstr($this->_request_uri$uri) !== false) {
                return 
true;
            }
        }

        
$reject_uri array_map('w3_parse_path'$reject_uri);

        foreach (
$reject_uri as $expr) {
            
$expr trim($expr);
            if (
$expr != '' && preg_match('~' $expr '~i'$this->_request_uri)) {
                return 
true;
            }
        }

        return 
false;
    }

    
/**
     * Register the various fragments groups to be used. no_action is used since fragments requires actions.
     */
    
function register_groups() {
        
//blog specific group and an array of actions that will trigger a flush of the group
        
$groups = array (
            
$this->_genesis_group('') => array(
                
'clean_post_cache'
                
'update_option_sidebars_widgets'
                
'wp_update_nav_menu_item'),
            
$this->_genesis_group('sidebar') => array(
                
'update_option_sidebars_widgets'),
            
$this->_genesis_group('loop_single') => array(
                
'no_action'),
            
$this->_genesis_group('loop_front_page') => array(
                
'clean_post_cache'),
            
$this->_genesis_group('loop_terms') => array(
                
'no_action')
        );
        foreach(
$groups as $group => $actions)
            
w3tc_register_fragment_group($group$actions3600);
    }

    
/**
     * Flush the fragments connected to a post id
     * @param $post_ID
     */
    
function flush_post_fragment($post_ID) {
        
/**
         * @var W3_SharedPageUrls $W3_SharedPageUrls
         */
        
$W3_SharedPageUrls w3_instance('W3_SharedPageUrls');
        
$page_slug $this->get_page_slug($post_ID);
        
$urls $W3_SharedPageUrls->get_post_urls($post_ID);
        
$hooks = array('genesis_loop''genesis_comments''genesis_pings');
        foreach(
$hooks as $hook) {
            
$genesis_id $page_slug;
            
$genesis_id "{$hook}_{$genesis_id}";

            
w3tc_fragmentcache_flush_fragment($genesis_id$this->_genesis_group('loop_single_logged_in'));
            
w3tc_fragmentcache_flush_fragment($genesis_id$this->_genesis_group('loop_single'));
            for(
$page 0$page<=sizeof($urls); $page++) {
                
$genesis_id $page_slug;
                
$genesis_id .= $this->get_paged_page_key($page);
                
$genesis_id "{$hook}_{$genesis_id}";

                
w3tc_fragmentcache_flush_fragment($genesis_id$this->_genesis_group('loop_single_logged_in'));
                
w3tc_fragmentcache_flush_fragment($genesis_id$this->_genesis_group('loop_single'));
            }
        }
    }

    public function 
flush_terms_fragment() {
        if (
w3tc_get_extension_config('genesis.theme''flush_terms')) {
            
w3tc_fragmentcache_flush_group('loop_terms');
        }
    }

    
/**
     * @return bool
     */
    
private function cannot_cache_current_hook() {
        if (
is_user_logged_in() && w3tc_get_extension_config('genesis.theme''reject_logged_roles')) {
            
$roles w3tc_get_extension_config('genesis.theme''reject_roles');
            if (
$roles) {
                
$hooks w3tc_get_extension_config('genesis.theme''reject_logged_roles_on_actions');
                
$hook current_filter();
                foreach (
$roles as $role) {
                    if (
$hooks && current_user_can($role) && in_array($hook$hooks)) {
                        return 
true;
                    }
                }
            }
        }
        return 
false;
    }

    
/**
     * @return array
     */
    
private function generate_genesis_loop_keys() {
        if ((
$hook current_filter()) != 'genesis_loop')
            return 
null;

        if (
is_front_page()) {
            
$group 'loop_front_page';
        } elseif (
is_single()) {
            
$group 'loop_single';
        } else {
            
$group 'loop_terms';
        }
        
$genesis_id $this->get_page_slug();
        if (
is_paged())
            
$genesis_id .= $this->get_paged_page_key();
        
$genesis_id "{$hook}_{$genesis_id}";

        return array(
$group$genesis_id);
    }

    
/**
     * @return array
     */
    
private function generate_sidebar_keys() {
        if (
strpos($hook current_filter(), 'sidebar') !== true)
            return 
null;

        
$genesis_id $hook;
        
$group 'sidebar';
        return array(
$group$genesis_id);
    }

    
/**
     * @return array|null
     */
    
private function generate_genesis_comments_pings_keys() {
        if ((
$hook current_filter()) != 'genesis_comments')
            return 
null;
        
$group 'loop_single';

        
$genesis_id $this->get_page_slug();
        if (
is_paged())
            
$genesis_id .= $this->get_paged_page_key();
        
$genesis_id "{$hook}_{$genesis_id}";

        return array(
$group$genesis_id);
    }

    
/**
     * @param string $current_menu
     * @return array|null
     */
    
private function generate_genesis_navigation_keys($current_menu) {
        if (!(
strpos(($hook current_filter()), '_nav') && $current_menu))
            return 
null;

        
$genesis_id $this->get_page_slug();
        if (
is_paged())
            
$genesis_id .= $this->get_paged_page_key();
        return array(
$hook$genesis_id);
    }

    private function 
get_page_slug($post_ID null) {
        if (
$post_ID) {
            
$purl get_permalink($post_ID);
            return 
str_replace('/','-'trim(str_replace(home_url(), ''$purl),"/"));
        }
        if (
is_front_page())
            return 
'front_page';
        return 
str_replace('/','-'trim($_SERVER['REQUEST_URI'],"/"));
    }

    
/**
     * @param int|null $page
     * @return string _pagenumber_
     */
    
private function get_paged_page_key($page=null) {
        if (
is_null($page)) {
            global 
$wp_query;
            return 
'_' $wp_query->query_vars['paged'] . '_';
        }

        return 
'_' $page '_';
    }
}

$ext = new W3_Genesis();
$ext->run();

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--