/plugins/all-in-one-seo-pack/aioseop_performance.php
PHP | 242 lines | 212 code | 24 blank | 6 comment | 59 complexity | 40c576d0b3bb6309315095a99b6811cd MD5 | raw file
- <?php
- /**
- * @package All-in-One-SEO-Pack
- */
- /**
- * The Performance class.
- */
- if ( !class_exists( 'All_in_One_SEO_Pack_Performance' ) ) {
- class All_in_One_SEO_Pack_Performance extends All_in_One_SEO_Pack_Module {
- protected $module_info = Array( );
- function All_in_One_SEO_Pack_Performance( $mod ) {
- $this->name = __('Performance', 'all_in_one_seo_pack'); // Human-readable name of the plugin
- $this->prefix = 'aiosp_performance_'; // option prefix
- $this->file = __FILE__; // the current file
- parent::__construct();
- $this->default_options = array(
- 'memory_limit' => Array( 'name' => __( 'Raise memory limit', 'all_in_one_seo_pack' ),
- 'help_text' => __( 'Allows you to raise your PHP memory limit to a reasonable value. Note: WordPress core and other WordPress plugins may also change the value of the memory limit.', 'all_in_one_seo_pack' ),
- 'default' => '256M',
- 'type' => 'select',
- 'initial_options' => Array( 0 => __( "Use the system default", 'all_in_one_seo_pack' ), '32M' => '32MB', '64M' => '64MB', '128M' => '128MB', '256M' => '256MB' ) ),
- 'execution_time' => Array( 'name' => __( 'Raise execution time', 'all_in_one_seo_pack' ),
- 'help_text' => __( 'Allows you to raise your PHP execution time to a reasonable value.', 'all_in_one_seo_pack' ),
- 'default' => '',
- 'type' => 'select',
- 'initial_options' => Array( '' => __( "Use the system default", 'all_in_one_seo_pack' ), 30 => '30s', 60 => '1m', 120 => '2m', 300 => '5m', 0 => __( 'No limit', 'all_in_one_seo_pack' ) ) )
- );
-
- global $aiosp, $aioseop_options;
- if ( aioseop_option_isset( 'aiosp_rewrite_titles' ) && $aioseop_options['aiosp_rewrite_titles'] ) {
- $this->default_options['force_rewrites'] = Array(
- 'name' => __( 'Force Rewrites:', 'all_in_one_seo_pack' ),
- 'help_text' => __( "Use output buffering to ensure that the title gets rewritten.", 'all_in_one_seo_pack' ),
- 'default' => 1,
- 'type' => 'radio',
- 'initial_options' => Array( 1 => __( 'Enabled', 'all_in_one_seo_pack' ),
- 0 => __( 'Disabled', 'all_in_one_seo_pack' ) )
- );
- }
-
- $this->layout = Array(
- 'default' => Array(
- 'name' => $this->name,
- 'options' => array_keys( $this->default_options )
- )
- );
-
- $system_status = Array(
- 'status' => Array( 'default' => '', 'type' => 'html', 'label' => 'none', 'save' => false ),
- );
-
- $this->layout['system_status'] = Array(
- 'name' => __( 'System Status', 'all_in_one_seo_pack' ),
- 'options' => array_keys( $system_status )
- );
-
- $this->default_options = array_merge( $this->default_options, $system_status );
-
- add_filter( $this->prefix . 'display_options', Array( $this, 'display_options_filter' ), 10, 2 );
- add_filter( $this->prefix . 'update_options', Array( $this, 'update_options_filter' ), 10, 2 );
- add_action( $this->prefix . 'settings_update', Array( $this, 'settings_update_action' ), 10, 2 );
- }
-
- function update_options_filter( $options, $location ) {
- if ( $location == null ) {
- if ( isset( $options[ $this->prefix . 'force_rewrites' ] ) )
- unset( $options[ $this->prefix . 'force_rewrites' ] );
- }
- return $options;
- }
-
- function display_options_filter( $options, $location ) {
- if ( $location == null ) {
- $options[ $this->prefix . 'force_rewrites' ] = 1;
- global $aiosp;
- if ( aioseop_option_isset( 'aiosp_rewrite_titles' ) ) {
- $opts = $aiosp->get_current_options( Array(), null );
- $options[ $this->prefix . 'force_rewrites' ] = $opts['aiosp_force_rewrites'];
- }
- }
- return $options;
- }
-
- function settings_update_action( $options, $location ) {
- if ( $location == null ) {
- if ( isset( $_POST[ $this->prefix . 'force_rewrites' ] ) ) {
- $force_rewrites = $_POST[ $this->prefix . 'force_rewrites' ];
- if ( ( $force_rewrites == 0 ) || ( $force_rewrites == 1 ) ) {
- global $aiosp;
- $opts = $aiosp->get_current_options( Array(), null );
- $opts['aiosp_force_rewrites'] = $force_rewrites;
- $aiosp->update_class_option( $opts );
- wp_cache_flush();
- }
- }
- }
- }
-
- function add_page_hooks() {
- $memory_usage = memory_get_peak_usage() / 1024 / 1024;
- if ( $memory_usage > 32 ) {
- unset( $this->default_options['memory_limit']['initial_options']['32M'] );
- if ( $memory_usage > 64 ) unset( $this->default_options['memory_limit']['initial_options']['64M'] );
- if ( $memory_usage > 128 ) unset( $this->default_options['memory_limit']['initial_options']['128M'] );
- if ( $memory_usage > 256 ) unset( $this->default_options['memory_limit']['initial_options']['256M'] );
- }
- $this->update_options();
- parent::add_page_hooks();
- }
-
- function settings_page_init() {
- $this->default_options['status']['default'] = $this->get_serverinfo();
- }
-
- function menu_order() {
- return 7;
- }
-
- function get_serverinfo() {
- global $wpdb;
- global $wp_version;
- $sqlversion = $wpdb->get_var("SELECT VERSION() AS version");
- $mysqlinfo = $wpdb->get_results("SHOW VARIABLES LIKE 'sql_mode'");
- if (is_array($mysqlinfo)) $sql_mode = $mysqlinfo[0]->Value;
- if (empty($sql_mode)) $sql_mode = __('Not set', 'all_in_one_seo_pack' );
- if(ini_get('safe_mode')) $safe_mode = __('On', 'all_in_one_seo_pack' );
- else $safe_mode = __('Off', 'all_in_one_seo_pack' );
- if(ini_get('allow_url_fopen')) $allow_url_fopen = __('On', 'all_in_one_seo_pack' );
- else $allow_url_fopen = __('Off', 'all_in_one_seo_pack' );
- if(ini_get('upload_max_filesize')) $upload_max = ini_get('upload_max_filesize');
- else $upload_max = __('N/A', 'all_in_one_seo_pack' );
- if(ini_get('post_max_size')) $post_max = ini_get('post_max_size');
- else $post_max = __('N/A', 'all_in_one_seo_pack' );
- if(ini_get('max_execution_time')) $max_execute = ini_get('max_execution_time');
- else $max_execute = __('N/A', 'all_in_one_seo_pack' );
- if(ini_get('memory_limit')) $memory_limit = ini_get('memory_limit');
- else $memory_limit = __('N/A', 'all_in_one_seo_pack' );
- if (function_exists('memory_get_usage')) $memory_usage = round(memory_get_usage() / 1024 / 1024, 2) . __(' MByte', 'all_in_one_seo_pack' );
- else $memory_usage = __('N/A', 'all_in_one_seo_pack' );
- if (is_callable('exif_read_data')) $exif = __('Yes', 'all_in_one_seo_pack' ). " ( V" . substr(phpversion('exif'),0,4) . ")" ;
- else $exif = __('No', 'all_in_one_seo_pack' );
- if (is_callable('iptcparse')) $iptc = __('Yes', 'all_in_one_seo_pack' );
- else $iptc = __('No', 'all_in_one_seo_pack' );
- if (is_callable('xml_parser_create')) $xml = __('Yes', 'all_in_one_seo_pack' );
- else $xml = __('No', 'all_in_one_seo_pack' );
- if ( function_exists( 'wp_get_theme' ) ) {
- $theme = wp_get_theme();
- } else {
- $theme = get_theme( get_current_theme() );
- }
- if ( function_exists( 'is_multisite' ) ) {
- if ( is_multisite() ) {
- $ms = __('Yes', 'all_in_one_seo_pack' );
- } else {
- $ms = __('No', 'all_in_one_seo_pack' );
- }
- } else $ms = __('N/A', 'all_in_one_seo_pack' );
- $siteurl = get_option('siteurl');
- $homeurl = get_option('home');
- $db_version = get_option('db_version');
- $debug_info = Array(
- __('Operating System', 'all_in_one_seo_pack' ) => PHP_OS,
- __('Server', 'all_in_one_seo_pack' ) => $_SERVER["SERVER_SOFTWARE"],
- __('Memory usage', 'all_in_one_seo_pack' ) => $memory_usage,
- __('MYSQL Version', 'all_in_one_seo_pack' ) => $sqlversion,
- __('SQL Mode', 'all_in_one_seo_pack' ) => $sql_mode,
- __('PHP Version', 'all_in_one_seo_pack' ) => PHP_VERSION,
- __('PHP Safe Mode', 'all_in_one_seo_pack' ) => $safe_mode,
- __('PHP Allow URL fopen', 'all_in_one_seo_pack' ) => $allow_url_fopen,
- __('PHP Memory Limit', 'all_in_one_seo_pack' ) => $memory_limit,
- __('PHP Max Upload Size', 'all_in_one_seo_pack' ) => $upload_max,
- __('PHP Max Post Size', 'all_in_one_seo_pack' ) => $post_max,
- __('PHP Max Script Execute Time', 'all_in_one_seo_pack' ) => $max_execute,
- __('PHP Exif support', 'all_in_one_seo_pack' ) => $exif,
- __('PHP IPTC support', 'all_in_one_seo_pack' ) => $iptc,
- __('PHP XML support', 'all_in_one_seo_pack' ) => $xml,
- __('Site URL', 'all_in_one_seo_pack' ) => $siteurl,
- __('Home URL', 'all_in_one_seo_pack' ) => $homeurl,
- __('WordPress Version', 'all_in_one_seo_pack' ) => $wp_version,
- __('WordPress DB Version', 'all_in_one_seo_pack' ) => $db_version,
- __('Multisite', 'all_in_one_seo_pack' ) => $ms,
- __('Active Theme', 'all_in_one_seo_pack' ) => $theme['Name'].' '.$theme['Version']
- );
- $debug_info['Active Plugins'] = null;
- $active_plugins = $inactive_plugins = Array();
- $plugins = get_plugins();
- foreach ($plugins as $path => $plugin) {
- if ( is_plugin_active( $path ) ) {
- $debug_info[$plugin['Name']] = $plugin['Version'];
- } else {
- $inactive_plugins[$plugin['Name']] = $plugin['Version'];
- }
- }
- $debug_info['Inactive Plugins'] = null;
- $debug_info = array_merge( $debug_info, (array)$inactive_plugins );
- $mail_text = __( "All in One SEO Pack Pro Debug Info", 'all_in_one_seo_pack' ) . "\r\n------------------\r\n\r\n";
- $page_text = "";
- if ( !empty( $debug_info ) )
- foreach($debug_info as $name => $value) {
- if ($value !== null) {
- $page_text .= "<li><strong>$name</strong> $value</li>";
- $mail_text .= "$name: $value\r\n";
- } else {
- $page_text .= "</ul><h2>$name</h2><ul class='sfwd_debug_settings'>";
- $mail_text .= "\r\n$name\r\n----------\r\n";
- }
- }
- do if ( !empty( $_REQUEST['sfwd_debug_submit'] ) ) {
- $nonce=$_REQUEST['sfwd_debug_nonce'];
- if (! wp_verify_nonce($nonce, 'sfwd-debug-nonce') ) {
- echo "<div class='sfwd_debug_error'>" . __( "Form submission error: verification check failed.", 'all_in_one_seo_pack' ) . "</div>";
- break;
- }
- if ($_REQUEST['sfwd_debug_send_email']) {
- if (wp_mail($_REQUEST['sfwd_debug_send_email'], sprintf( __( "SFWD Debug Mail From Site %s.", 'all_in_one_seo_pack'), $siteurl), $mail_text ) ) {
- echo "<div class='sfwd_debug_mail_sent'>" . sprintf( __( "Sent to %s.", 'all_in_one_seo_pack' ), $_REQUEST['sfwd_debug_send_email'] ) . "</div>";
- } else {
- echo "<div class='sfwd_debug_error'>" . sprintf( __( "Failed to send to %s.", 'all_in_one_seo_pack' ), $_REQUEST['sfwd_debug_send_email'] ) . "</div>";
- }
- } else {
- echo "<div class='sfwd_debug_error'>" . __( 'Error: please enter an e-mail address before submitting.', 'all_in_one_seo_pack' ) . "</div>";
- }
- } while(0); // control structure for use with break
- $nonce = wp_create_nonce('sfwd-debug-nonce');
- $buf = "<ul class='sfwd_debug_settings'>\n{$page_text}\n</ul>\n<p>\n" .
- '<input name="sfwd_debug_send_email" type="text" value="" placeholder="' . __( "E-mail debug information", 'all_in_one_seo_pack' ) . '"><input name="sfwd_debug_nonce" type="hidden" value="' .
- $nonce . '"><input name="sfwd_debug_submit" type="submit" value="' . __( 'Submit', 'all_in_one_seo_pack' ) . '" class="button-primary"><p>';
- return $buf;
- }
- }
- }