!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\wcp-contact-form\agp-core\classes\config\   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:     Agp_SettingsAbstract.class.php (8.67 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Webcodin\WCPContactForm\Core;

/**
 * Settings page abstract class
 */
abstract class Agp_SettingsAbstract extends Agp_ConfigAbstract {
    
    
/**
     * Current page
     * 
     * @var striqng 
     */
    
private $page;
    
    
/** 
     * Tabs
     * 
     * @var array
     */
    
private $tabs;
    
    
/**
     * Fields 
     * 
     * @var array
     */
    
private $fields;
    
    
/**
     * Field Sets
     * 
     * @var array
     */
    
private $fieldSet;
    
    
/**
     * Current plugin settings
     * 
     * @var array
     */
    
private $settings;
    
    
    
/**
     * Constructor
     */
    
public function __construct$data ) {    
        
parent::__construct($data);
        
        
$this->refreshConfig();
        
        
add_action'admin_init', array( $this'registerSettings' ) );        
        
add_action'admin_menu', array( $this'adminMenu' ) ); 
        
add_action'admin_notices', array( $this'customAdminNotices' ) ); 
    }

    
/**
     * Create menu
     */
    
public function adminMenu() {
        if (!empty(
$this->getConfig()->admin->menu)) {
            foreach (
$this->getConfig()->admin->menu as $menu_slug => $page) {
                
                
add_menu_page$page->page_title$page->menu_title$page->capability$menu_slug$page->function$page->icon_url$page->position);
                
                if (!empty(
$page->submenu)) {
                    foreach (
$page->submenu as $submenu_slug => $subpage) {                    
                        
add_submenu_page$menu_slug$subpage->page_title$subpage->menu_title$subpage->capability$submenu_slug$subpage->function );
                    }
                }

                if (!empty(
$page->hideInSubMenu)) {
                    
remove_submenu_page$menu_slug$menu_slug );            
                }                
            }
        }
    }
    
    
/**
     * Register settings
     * 
     * @global string $pagenow
     */
    
public function registerSettings () {
        if (
$this->getTabs()) {        
            foreach (
$this->getTabs() as $key => $value) {
                
$function = !empty($value['sanitize']) ? $value['sanitize'] : array($this'sanitizeSettings');
                
register_setting$key$key$function ); 
            }    
        }    
        
        global 
$pagenow;
        if(
$pagenow == 'admin.php' && !empty($_REQUEST['page']) && $_REQUEST['page'] == $this->page && !empty($_REQUEST['reset-settings'])) {
            
$this->resetSettings();
            
wp_redirect(add_query_arg(array('is-reset' => 'true'), remove_query_arg('reset-settings')));
        }
    }
    
    public function 
refreshConfig() {
        if (!empty(
$this->getConfig()->admin->options->page)) {        
            
$this->page $this->getConfig()->admin->options->page;
        }
        
        if (!empty(
$this->getConfig()->admin->options->tabs)) {        
            
$this->tabs $this->objectToArray($this->getConfig()->admin->options->tabs);
        }            
        
        if (!empty(
$this->getConfig()->admin->options->fields)) {        
            
$this->fields $this->objectToArray($this->getConfig()->admin->options->fields);
        }                    
        
        if (!empty(
$this->getConfig()->admin->options->fieldSet)) {        
            
$this->fieldSet $this->objectToArray($this->getConfig()->admin->options->fieldSet);
        }                            
       
        
$this->settings $this->getOptions();
    }
    
    
/**
     * Recursive callable apply 
     * 
     * @param mix $value
     * @return mix
     */
    
public function getRecursiveCallable ($value) {
        
$result $value;
        if (
is_callable($value) && is_array($value)) {
            
$result =  call_user_func($value);
        } elseif (
is_array($value)) {
            foreach (
$value as $k => $v) {
                
$result[$k] = $this->getRecursiveCallable($v);
            }
        }
        return 
$result;
    }            
    
    
/**
     * Sanitixe settings
     * 
     * @param array $input
     * @return array
     */
    
public function sanitizeSettings($input) {
        if (!empty(
$input) && is_array($input)) {
            foreach (
$input as $key => $value) {
                
$field $this->getFieldByName($key);
                if (!empty(
$field['type'])) {
                    switch (
$field['type']) {
                        case 
'checkbox':
                            
$input[$key] = !empty($value) ? 0;    
                            break;
                        case 
'text':
                        case 
'colorpicker':
                            
$input[$key] = stripslashes(esc_attr(trim($value)));    
                            break;                        
                        default:
                            
$input[$key] = $value;
                            break;
                    }
                }
            }            
        }
        return 
$input;
    }
    
    
/**
     * Get field settings by name
     * 
     * @param string $fieldName
     * @return array
     */
    
public function getFieldByName ($fieldName) {
        foreach(
$this->fields as $tab => $settings) {
            if (!empty(
$settings['fields'][$fieldName])) {
                return 
$settings['fields'][$fieldName];    
            }
        }
    }
    
    
/**
     * Reset settings to default values
     */
    
public function resetSettings () {
        if (
$this->getTabs()) {        
            foreach (
$this->getTabs() as $key => $value) {
                
delete_option($key);
            }    
        }         
    }
    
    
/**
     * Gets saved or default options
     * 
     * @return array
     */
    
public function getOptions() {
        
$fields $this->getFields();        
        
        
$result = array();
        if (
$this->getTabs()) {        
            foreach (
$this->getTabs() as $k => $v) {
                if (!empty(
$fields[$k])) {
                    
$options get_option$k );                    
                    foreach (
$fields[$k]['fields'] as $dk => $dv) {
                        if (!empty(
$options)) {
                            if ( isset( 
$options[$dk] ) ) {
                                
$result[$k][$dk] = $options[$dk];                                
                            } 
                        } else {
                            if ( isset ( 
$dv['default'] ) ) {
                                
$result[$k][$dk] = $dv['default'];
                            }                               
                        }
                    }                    
                }
            }    
        } 
        return 
$this->getRecursiveCallable$result );
    }
    
    
/**
     * Page getter
     * 
     * @return string
     */
    
public function getPage() {
        return 
$this->page;
    }

    
/**
     * Tabs getter
     * 
     * @return array
     */
    
public function getTabs() {
        return 
$this->tabs;
    }

    
/**
     * Fields getter
     * 
     * @param string $key
     * @return array
     */
    
public function getFields($key NULL) {
        if (!empty(
$key)) {
            if (!empty(
$this->fields[$key])) {
                return 
$this->getRecursiveCallable$this->fields[$key] );
            }
        } else {
            return 
$this->getRecursiveCallable$this->fields );
        }                
    }

    
/**
     * FielSet getter 
     * 
     * @param string $key
     * @return array
     */
    
public function getFieldSet($key NULL) {
        if (!empty(
$key)) {
            if (!empty(
$this->fieldSet[$key])) {
                return 
$this->getRecursiveCallable$this->fieldSet[$key] );
            }
        } else {
            return 
$this->getRecursiveCallable$this->fieldSet );
        }                        
    }

    
/**
     * Settings getter
     * 
     * @param string $key
     * @return array
     */
    
public function getSettings($key NULL) {
        if (!empty(
$key)) {
            if (!empty(
$this->settings[$key])) {
                return 
$this->getRecursiveCallable$this->settings[$key] );
            }
        } else {
            return 
$this->getRecursiveCallable$this->settings );
        }        
    }
    
    
/**
     * Custom Notices
     * 
     * @global string $pagenow
     */
    
public function customAdminNotices() {

        global 
$pagenow;

        if ( 
$pagenow == 'admin.php' && isset($_REQUEST['is-reset']) && !isset($_REQUEST['settings-updated']) && $_REQUEST['page'] == $this->page) {
            
$message 'Settings reset to default values';
            echo 
'<div class="updated settings-error" id="setting-error-settings_updated"><p><strong>'.$message.'</strong></p></div>';            
        }
    }        

}

:: 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 ]--