1159 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1159 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * File: general.php
 | |
|  *
 | |
|  * @package W3TC
 | |
|  */
 | |
| 
 | |
| namespace W3TC;
 | |
| 
 | |
| if ( ! defined( 'W3TC' ) ) {
 | |
| 	die();
 | |
| }
 | |
| 
 | |
| require W3TC_INC_DIR . '/options/common/header.php';
 | |
| ?>
 | |
| 
 | |
| <p>
 | |
| 	<?php
 | |
| 	echo wp_kses(
 | |
| 		sprintf(
 | |
| 			// translators: 1 HTML span tag indicating plugin enabled/disabled.
 | |
| 			__(
 | |
| 				'The plugin is currently %1$s If an option is disabled it means that either your current installation is not compatible or software installation is required.',
 | |
| 				'w3-total-cache'
 | |
| 			),
 | |
| 			'<span class="w3tc-' . ( $enabled ? 'enabled">' . esc_html__( 'enabled', 'w3-total-cache' ) : 'disabled">' . esc_html__( 'disabled', 'w3-total-cache' ) ) . '</span>.'
 | |
| 		),
 | |
| 		array(
 | |
| 			'span' => array(
 | |
| 				'class' => array(),
 | |
| 			),
 | |
| 		)
 | |
| 	);
 | |
| 	?>
 | |
| </p>
 | |
| <form id="w3tc_form" action="admin.php?page=<?php echo esc_attr( $this->_page ); ?>" method="post">
 | |
| 	<div class="metabox-holder">
 | |
| 		<?php Util_Ui::postbox_header( esc_html__( 'General', 'w3-total-cache' ), '' ); ?>
 | |
| 		<table class="form-table">
 | |
| 			<tr>
 | |
| 				<th><?php esc_html_e( 'Preview mode:', 'w3-total-cache' ); ?></th>
 | |
| 				<td>
 | |
| 					<?php
 | |
| 					echo wp_kses(
 | |
| 						Util_Ui::nonce_field( 'w3tc' ),
 | |
| 						array(
 | |
| 							'input' => array(
 | |
| 								'type'  => array(),
 | |
| 								'name'  => array(),
 | |
| 								'value' => array(),
 | |
| 							),
 | |
| 						)
 | |
| 					);
 | |
| 					?>
 | |
| 					<?php if ( $this->_config->is_preview() ) : ?>
 | |
| 						<input type="submit" name="w3tc_config_preview_disable" class="button-primary" value="<?php esc_attr_e( 'Disable', 'w3-total-cache' ); ?>" />
 | |
| 						<?php
 | |
| 						echo wp_kses(
 | |
| 							Util_Ui::button_link(
 | |
| 								esc_html__( 'Deploy', 'w3-total-cache' ),
 | |
| 								esc_url( wp_nonce_url( sprintf( 'admin.php?page=%1$s&w3tc_config_preview_deploy', $this->_page ), 'w3tc' ) )
 | |
| 							),
 | |
| 							array(
 | |
| 								'input' => array(
 | |
| 									'type'    => array(),
 | |
| 									'name'    => array(),
 | |
| 									'class'   => array(),
 | |
| 									'value'   => array(),
 | |
| 									'onclick' => array(),
 | |
| 								),
 | |
| 							)
 | |
| 						);
 | |
| 						?>
 | |
| 						<p class="description">
 | |
| 							<?php
 | |
| 							echo wp_kses(
 | |
| 								sprintf(
 | |
| 									// translators: 1 HTML input submit to preview changes.
 | |
| 									__(
 | |
| 										'To preview any changed settings (without deploying): %1$s',
 | |
| 										'w3-total-cache'
 | |
| 									),
 | |
| 									Util_Ui::preview_link()
 | |
| 								),
 | |
| 								array(
 | |
| 									'input' => array(
 | |
| 										'type'    => array(),
 | |
| 										'name'    => array(),
 | |
| 										'class'   => array(),
 | |
| 										'value'   => array(),
 | |
| 										'onclick' => array(),
 | |
| 									),
 | |
| 								)
 | |
| 							);
 | |
| 							?>
 | |
| 						</p>
 | |
| 					<?php else : ?>
 | |
| 						<input type="submit" name="w3tc_config_preview_enable" class="button-primary" value="<?php esc_attr_e( 'Enable', 'w3-total-cache' ); ?>" />
 | |
| 					<?php endif; ?>
 | |
| 					<p class="description"><?php esc_html_e( 'Use preview mode to test configuration scenarios prior to releasing them (deploy) on the actual site. Preview mode remains active even after deploying settings until the feature is disabled.', 'w3-total-cache' ); ?></p>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php Util_Ui::button_config_save( 'general_general' ); ?>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::postbox_header( esc_html__( 'Page Cache', 'w3-total-cache' ), '', 'page_cache' );
 | |
| 		Util_Ui::config_overloading_button( array( 'key' => 'pgcache.configuration_overloaded' ) );
 | |
| 		?>
 | |
| 
 | |
| 		<p><?php esc_html_e( 'Enable page caching to decrease the response time of the site.', 'w3-total-cache' ); ?></p>
 | |
| 
 | |
| 		<table class="form-table">
 | |
| 			<?php
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'pgcache.enabled',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ),
 | |
| 					'description'    => esc_html__( 'Caching pages will reduce the response time of your site and increase the scale of your web server.', 'w3-total-cache' ),
 | |
| 				)
 | |
| 			);
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'                 => 'pgcache.engine',
 | |
| 					'control'             => 'selectbox',
 | |
| 					'selectbox_values'    => array(
 | |
| 						'file'            => array(
 | |
| 							'label'    => esc_html__( 'Disk: Basic', 'w3-total-cache' ),
 | |
| 							'optgroup' => 0,
 | |
| 						),
 | |
| 						'file_generic'    => array(
 | |
| 							'label'    => esc_html__( 'Disk: Enhanced', 'w3-total-cache' ),
 | |
| 							'optgroup' => 0,
 | |
| 						),
 | |
| 						'apc'             => array(
 | |
| 							'disabled' => ! Util_Installed::apc(),
 | |
| 							'label'    => esc_html__( 'Opcode: Alternative PHP Cache (APC / APCu)', 'w3-total-cache' ),
 | |
| 							'optgroup' => 1,
 | |
| 						),
 | |
| 						'eaccelerator'    => array(
 | |
| 							'disabled' => ! Util_Installed::eaccelerator(),
 | |
| 							'label'    => esc_html__( 'Opcode: eAccelerator', 'w3-total-cache' ),
 | |
| 							'optgroup' => 1,
 | |
| 						),
 | |
| 						'xcache'          => array(
 | |
| 							'disabled' => ! Util_Installed::xcache(),
 | |
| 							'label'    => esc_html__( 'Opcode: XCache', 'w3-total-cache' ),
 | |
| 							'optgroup' => 1,
 | |
| 						),
 | |
| 						'wincache'        => array(
 | |
| 							'disabled' => ! Util_Installed::wincache(),
 | |
| 							'label'    => esc_html__( 'Opcode: WinCache', 'w3-total-cache' ),
 | |
| 							'optgroup' => 1,
 | |
| 						),
 | |
| 						'memcached'       => array(
 | |
| 							'disabled' => ! Util_Installed::memcached(),
 | |
| 							'label'    => esc_html__( 'Memcached', 'w3-total-cache' ),
 | |
| 							'optgroup' => 2,
 | |
| 						),
 | |
| 						'nginx_memcached' => array(
 | |
| 							'disabled' => ! Util_Installed::memcached_memcached() || ! $is_pro,
 | |
| 							'label'    => esc_html__( 'Nginx + Memcached', 'w3-total-cache' ) . ( $is_pro ? '' : esc_html__( ' (available after upgrade)', 'w3-total-cache' ) ),
 | |
| 							'optgroup' => 2,
 | |
| 						),
 | |
| 						'redis'           => array(
 | |
| 							'disabled' => ! Util_Installed::redis(),
 | |
| 							'label'    => esc_html__( 'Redis', 'w3-total-cache' ),
 | |
| 							'optgroup' => 2,
 | |
| 						),
 | |
| 					),
 | |
| 					'selectbox_optgroups' => array(
 | |
| 						esc_html__( 'Shared Server (disk enhanced is best):', 'w3-total-cache' ),
 | |
| 						esc_html__( 'Dedicated / Virtual Server:', 'w3-total-cache' ),
 | |
| 						esc_html__( 'Multiple Servers:', 'w3-total-cache' ),
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::button_config_save(
 | |
| 			'general_pagecache',
 | |
| 			'<input type="submit" name="w3tc_flush_pgcache" value="' .
 | |
| 				esc_attr__( 'Empty cache', 'w3-total-cache' ) . '"' .
 | |
| 				( $pgcache_enabled ? '' : ' disabled="disabled" ' ) .
 | |
| 				' class="button" />'
 | |
| 		);
 | |
| 		?>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::postbox_header( esc_html__( 'Minify', 'w3-total-cache' ), '', 'minify' );
 | |
| 		Util_Ui::config_overloading_button( array( 'key' => 'minify.configuration_overloaded' ) );
 | |
| 		?>
 | |
| 		<p>
 | |
| 			<?php
 | |
| 			w3tc_e(
 | |
| 				'minify.general.header',
 | |
| 				sprintf(
 | |
| 					// translators: 1 HTML acronym for Cascading Style Sheet (CSS), 2 HTML acronym for JavaScript (JS),
 | |
| 					// translators: 3 HTML acronym for Hypertext Markup Language (HTML).
 | |
| 					__( 'Reduce load time by decreasing the size and number of %1$s and %2$s files. Automatically remove unnecessary data from %1$s, %2$s, feed, page and post %3$s.', 'w3-total-cache' ),
 | |
| 					'<acronym title="' . __( 'Cascading Style Sheet', 'w3-total-cache' ) . '">' . __( 'CSS', 'w3-total-cache' ) . '</acronym>',
 | |
| 					'<acronym title="' . __( 'JavaScript', 'w3-total-cache' ) . '">' . __( 'JS', 'w3-total-cache' ) . '</acronym>',
 | |
| 					'<acronym title="' . __( 'Hypertext Markup Language', 'w3-total-cache' ) . '">' . __( 'HTML', 'w3-total-cache' ) . '</acronym>'
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</p>
 | |
| 
 | |
| 		<table class="form-table">
 | |
| 			<?php
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'minify.enabled',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ),
 | |
| 					'description'    => wp_kses(
 | |
| 						sprintf(
 | |
| 							// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag,
 | |
| 							// translators: 3 opening HTML acronym tag, 4 closing HTML acronym tag,
 | |
| 							// translators: 5 opening HTML acronym tag, 6 closing HTML acronym tag.
 | |
| 							__(
 | |
| 								'Minification can decrease file size of %1$sHTML%2$s, %3$sCSS%4$s, %5$sJS%6$s and feeds respectively by ~10%% on average.',
 | |
| 								'w3-total-cache'
 | |
| 							),
 | |
| 							'<acronym title="' . esc_attr__( 'Hypertext Markup Language', 'w3-total-cache' ) . '">',
 | |
| 							'</acronym>',
 | |
| 							'<acronym title="' . esc_attr__( 'Cascading Style Sheet', 'w3-total-cache' ) . '">',
 | |
| 							'</acronym>',
 | |
| 							'<acronym title="' . esc_attr__( 'JavaScript', 'w3-total-cache' ) . '">',
 | |
| 							'</acronym>'
 | |
| 						),
 | |
| 						array(
 | |
| 							'acronym' => array(
 | |
| 								'title' => array(),
 | |
| 							),
 | |
| 						)
 | |
| 					),
 | |
| 					'control_after'  => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/w3-total-cache-minify-faq/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=minify_faq' ) . '" title="' .
 | |
| 						esc_attr__( 'Minify frequently asked questions', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
 | |
| 						'<span class="dashicons dashicons-external"></span></a>',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'               => 'minify.auto',
 | |
| 					'value'             => ( $this->_config->get_boolean( 'minify.auto' ) ? 1 : 0 ),
 | |
| 					'control'           => 'radiogroup',
 | |
| 					'radiogroup_values' => array(
 | |
| 						'1' => esc_html__( 'Auto', 'w3-total-cache' ),
 | |
| 						'0' => esc_html__( 'Manual', 'w3-total-cache' ),
 | |
| 					),
 | |
| 					'description'       => esc_html__(
 | |
| 						'Select manual mode to use fields on the minify settings tab to specify files to be minified, otherwise files will be minified automatically.',
 | |
| 						'w3-total-cache'
 | |
| 					),
 | |
| 					'control_after'     => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/how-to-use-manual-minify-for-css-and-js/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=manual_minify#difference-between-auto-and-manual-minify' ) . '" title="'
 | |
| 						. esc_attr__( 'How to use manual minify', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
 | |
| 						'<span class="dashicons dashicons-external"></span></a>',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			Util_Ui::config_item_engine(
 | |
| 				array(
 | |
| 					'key'           => 'minify.engine',
 | |
| 					'control_after' => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/choosing-a-minification-method-for-w3-total-cache/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=minify_engine' ) . '" title="' .
 | |
| 						esc_attr__( 'Choosing a minification method', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
 | |
| 						'<span class="dashicons dashicons-external"></span></a>',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'              => 'minify.html.engine',
 | |
| 					'control'          => 'selectbox',
 | |
| 					'selectbox_values' => array(
 | |
| 						'html'     => esc_html__( 'Minify (default)', 'w3-total-cache' ),
 | |
| 						'htmltidy' => array(
 | |
| 							'disabled' => ! Util_Installed::tidy(),
 | |
| 							'label'    => esc_html__( 'HTML Tidy', 'w3-total-cache' ),
 | |
| 						),
 | |
| 					),
 | |
| 					'control_after'    => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/minify/html-minify-or-tidy/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=minify_html#minify-default' ) . '" title="' .
 | |
| 						esc_attr__( 'How to use minify HTML', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
 | |
| 						'<span class="dashicons dashicons-external"></span></a>',
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'              => 'minify.js.engine',
 | |
| 					'control'          => 'selectbox',
 | |
| 					'selectbox_values' => array(
 | |
| 						'js'         => esc_html__( 'JSMin (default)', 'w3-total-cache' ),
 | |
| 						'googleccjs' => esc_html__( 'Google Closure Compiler (Web Service)', 'w3-total-cache' ),
 | |
| 						'ccjs'       => esc_html__( 'Google Closure Compiler (Local Java)', 'w3-total-cache' ),
 | |
| 						'jsminplus'  => esc_html__( 'Narcissus', 'w3-total-cache' ),
 | |
| 						'yuijs'      => esc_html__( 'YUI Compressor', 'w3-total-cache' ),
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'              => 'minify.css.engine',
 | |
| 					'control'          => 'selectbox',
 | |
| 					'selectbox_values' => array(
 | |
| 						'css'     => esc_html__( 'Minify (default)', 'w3-total-cache' ),
 | |
| 						'csstidy' => array(
 | |
| 							'label'    => esc_html__( 'CSS Tidy', 'w3-total-cache' ),
 | |
| 							'disabled' => ( version_compare( PHP_VERSION, '5.4.0', '<' ) ? true : false ),
 | |
| 						),
 | |
| 						'cssmin'  => esc_html__( 'YUI Compressor (PHP)', 'w3-total-cache' ),
 | |
| 						'yuicss'  => esc_html__( 'YUI Compressor', 'w3-total-cache' ),
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::button_config_save(
 | |
| 			'general_minify',
 | |
| 			'<input type="submit" name="w3tc_flush_minify" value="' .
 | |
| 				esc_attr__( 'Empty cache', 'w3-total-cache' ) . '" ' .
 | |
| 				( $minify_enabled ? '' : ' disabled="disabled" ' ) .
 | |
| 				' class="button" />'
 | |
| 		);
 | |
| 		?>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 
 | |
| 		<?php do_action( 'w3tc_settings_general_boxarea_system_opcache' ); ?>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::postbox_header( esc_html__( 'Database Cache', 'w3-total-cache' ), '', 'database_cache' );
 | |
| 		Util_Ui::config_overloading_button( array( 'key' => 'dbcache.configuration_overloaded' ) );
 | |
| 		?>
 | |
| 
 | |
| 		<p><?php esc_html_e( 'Enable database caching to reduce post, page and feed creation time.', 'w3-total-cache' ); ?></p>
 | |
| 
 | |
| 		<table class="form-table">
 | |
| 			<?php
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'dbcache.enabled',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ),
 | |
| 					'description'    => esc_html__( 'Caching database objects decreases the response time of your site. Best used if object caching is not possible.', 'w3-total-cache' ),
 | |
| 				)
 | |
| 			);
 | |
| 			Util_Ui::config_item_engine( array( 'key' => 'dbcache.engine' ) );
 | |
| 			?>
 | |
| 
 | |
| 			<?php if ( Util_Environment::is_w3tc_pro() && is_network_admin() ) : ?>
 | |
| 				<?php require W3TC_INC_OPTIONS_DIR . '/enterprise/dbcluster_general_section.php'; ?>
 | |
| 			<?php endif; ?>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::button_config_save(
 | |
| 			'general_dbcache',
 | |
| 			'<input type="submit" name="w3tc_flush_dbcache" value="' .
 | |
| 				esc_html__( 'Empty cache', 'w3-total-cache' ) . '" ' .
 | |
| 				( $dbcache_enabled ? '' : ' disabled="disabled" ' ) .
 | |
| 				' class="button" />'
 | |
| 		);
 | |
| 		?>
 | |
| 
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::postbox_header( esc_html__( 'Object Cache', 'w3-total-cache' ), '', 'object_cache' );
 | |
| 		Util_Ui::config_overloading_button( array( 'key' => 'objectcache.configuration_overloaded' ) );
 | |
| 		?>
 | |
| 
 | |
| 		<p><?php esc_html_e( 'Enable object caching to further reduce execution time for common operations.', 'w3-total-cache' ); ?></p>
 | |
| 
 | |
| 		<table class="form-table">
 | |
| 			<?php
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'objectcache.enabled',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ),
 | |
| 					'description'    => wp_kses(
 | |
| 						sprintf(
 | |
| 							// translators: 1 opening HTML a tag to WordPress codex for WP Object Cache, 2 Opening HTML acronym tag,
 | |
| 							// translators: 3 closing HTML acronym tag, 4 closing HTML a tag.
 | |
| 							__(
 | |
| 								'Object caching greatly increases performance for highly dynamic sites that use the %1$sObject Cache %2$sAPI%3$s%4$s.',
 | |
| 								'w3-total-cache'
 | |
| 							),
 | |
| 							'<a href="' . esc_url( 'http://codex.wordpress.org/Class_Reference/WP_Object_Cache' ) . '" target="_blank">',
 | |
| 							'<acronym title="' . esc_attr__( 'Application Programming Interface', 'w3-total-cache' ) . '">',
 | |
| 							'</acronym>',
 | |
| 							'</a>'
 | |
| 						),
 | |
| 						array(
 | |
| 							'acronym' => array(
 | |
| 								'title' => array(),
 | |
| 							),
 | |
| 							'a'       => array(
 | |
| 								'href'   => array(),
 | |
| 								'target' => array(),
 | |
| 							),
 | |
| 						)
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 			Util_Ui::config_item_engine( array( 'key' => 'objectcache.engine' ) );
 | |
| 			?>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::button_config_save(
 | |
| 			'general_objectcache',
 | |
| 			'<input type="submit" name="w3tc_flush_objectcache" value="' .
 | |
| 				esc_attr__( 'Empty cache', 'w3-total-cache' ) . '" ' .
 | |
| 				( $objectcache_enabled ? '' : ' disabled="disabled" ' ) .
 | |
| 				' class="button" />'
 | |
| 		);
 | |
| 		?>
 | |
| 
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::postbox_header( esc_html__( 'Browser Cache', 'w3-total-cache' ), '', 'browser_cache' );
 | |
| 		Util_Ui::config_overloading_button( array( 'key' => 'browsercache.configuration_overloaded' ) );
 | |
| 		?>
 | |
| 
 | |
| 		<p><?php esc_html_e( 'Reduce server load and decrease response time by using the cache available in site visitor\'s web browser.', 'w3-total-cache' ); ?></p>
 | |
| 
 | |
| 		<table class="form-table">
 | |
| 			<?php
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'browsercache.enabled',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ),
 | |
| 					'description'    => wp_kses(
 | |
| 						sprintf(
 | |
| 							// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 							__(
 | |
| 								'Enable %1$sHTTP%2$s compression and add headers to reduce server load and decrease file load time.',
 | |
| 								'w3-total-cache'
 | |
| 							),
 | |
| 							'<acronym title="' . esc_attr__( 'Hypertext Transfer Protocol', 'w3-total-cache' ) . '">',
 | |
| 							'</acronym>'
 | |
| 						),
 | |
| 						array(
 | |
| 							'acronym' => array(
 | |
| 								'title' => array(),
 | |
| 							),
 | |
| 						)
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php Util_Ui::button_config_save( 'general_browsercache' ); ?>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php do_action( 'w3tc_settings_general_boxarea_cdn' ); ?>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::postbox_header( esc_html__( 'Reverse Proxy', 'w3-total-cache' ), '', 'reverse_proxy' );
 | |
| 		Util_Ui::config_overloading_button( array( 'key' => 'varnish.configuration_overloaded' ) );
 | |
| 		?>
 | |
| 
 | |
| 		<p>
 | |
| 			<?php
 | |
| 			echo wp_kses(
 | |
| 				sprintf(
 | |
| 					// translators: 1 opening HTML a tag to W3TC Page Cache admin page, 2 closing HTML a tag,
 | |
| 					// translators: 3 opening HTML a tag to W3TC Browsercache admin page, 4 closing HTML a tag.
 | |
| 					__(
 | |
| 						'A reverse proxy adds scale to an server by handling requests before WordPress does. Purge settings are set on the %1$sPage Cache settings%2$s page and %3$sBrowser Cache settings%4$s are set on the browser cache settings page.',
 | |
| 						'w3-total-cache'
 | |
| 					),
 | |
| 					'<a href="' . esc_url( self_admin_url( 'admin.php?page=w3tc_pgcache' ) ) . '">',
 | |
| 					'</a>',
 | |
| 					'<a href="' . esc_url( self_admin_url( 'admin.php?page=w3tc_browsercache' ) ) . '">',
 | |
| 					'</a>'
 | |
| 				),
 | |
| 				array(
 | |
| 					'a' => array(
 | |
| 						'href' => array(),
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</p>
 | |
| 		<table class="form-table">
 | |
| 			<tr>
 | |
| 				<th colspan="2">
 | |
| 					<?php $this->checkbox( 'varnish.enabled' ); ?> <?php Util_Ui::e_config_label( 'varnish.enabled' ); ?></label><br />
 | |
| 				</th>
 | |
| 			</tr>
 | |
| 			<tr>
 | |
| 				<th><label for="pgcache_varnish_servers"><?php Util_Ui::e_config_label( 'varnish.servers' ); ?></label></th>
 | |
| 				<td>
 | |
| 					<textarea id="pgcache_varnish_servers" name="varnish__servers"
 | |
| 						cols="40" rows="5" <?php Util_Ui::sealing_disabled( 'varnish.' ); ?>><?php echo esc_textarea( implode( "\r\n", $this->_config->get_array( 'varnish.servers' ) ) ); ?></textarea>
 | |
| 					<p class="description">
 | |
| 						<?php
 | |
| 						echo wp_kses(
 | |
| 							sprintf(
 | |
| 								// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag,
 | |
| 								// translators: 3 opening HTML acronym tag, 4 closing HTML acronym tag.
 | |
| 								__(
 | |
| 									'Specify the IP addresses of your varnish instances above. The %1$sVCL%2$s\'s %3$sACL%4$s must allow this request.',
 | |
| 									'w3-total-cache'
 | |
| 								),
 | |
| 								'<acronym title="' . esc_attr__( 'Varnish Configuration Language', 'w3-total-cache' ) . '">',
 | |
| 								'</acronym>',
 | |
| 								'<acronym title="' . esc_attr__( 'Access Control List', 'w3-total-cache' ) . '">',
 | |
| 								'</acronym>'
 | |
| 							),
 | |
| 							array(
 | |
| 								'acronym' => array(
 | |
| 									'title' => array(),
 | |
| 								),
 | |
| 							)
 | |
| 						);
 | |
| 						?>
 | |
| 					</p>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php
 | |
| 		Util_Ui::button_config_save(
 | |
| 			'general_varnish',
 | |
| 			'<input type="submit" name="w3tc_flush_varnish" value="' .
 | |
| 				esc_attr__( 'Purge cache', 'w3-total-cache' ) . '"' .
 | |
| 				( $varnish_enabled ? '' : ' disabled="disabled" ' ) .
 | |
| 				' class="button" />'
 | |
| 		);
 | |
| 		?>
 | |
| 
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php if ( $is_pro ) : ?>
 | |
| 			<?php Util_Ui::postbox_header( esc_html__( 'Message Bus', 'w3-total-cache' ), '', 'amazon_sns' ); ?>
 | |
| 			<p>
 | |
| 				<?php esc_html_e( 'Allows policy management to be shared between a dynamic pool of servers. For example, each server in a pool to use opcode caching (which is not a shared resource) and purging is then syncronized between any number of servers in real-time; each server therefore behaves identically even though resources are not shared.', 'w3-total-cache' ); ?>
 | |
| 			</p>
 | |
| 			<table class="form-table">
 | |
| 				<tr>
 | |
| 					<th colspan="2">
 | |
| 						<input type="hidden" name="cluster__messagebus__enabled" value="0" />
 | |
| 						<label><input class="enabled" type="checkbox" name="cluster__messagebus__enabled" value="1"<?php checked( $this->_config->get_boolean( 'cluster.messagebus.enabled' ), true ); ?> /> <?php Util_Ui::e_config_label( 'cluster.messagebus.enabled' ); ?></label><br />
 | |
| 					</th>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th><label for="cluster_messagebus_sns_region"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.region' ); ?></label></th>
 | |
| 					<td>
 | |
| 						<input id="cluster_messagebus_sns_region"
 | |
| 							class="w3tc-ignore-change" type="text"
 | |
| 							name="cluster__messagebus__sns__region"
 | |
| 							value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.region' ) ); ?>" size="60" />
 | |
| 						<p class="description">
 | |
| 							<?php
 | |
| 							echo wp_kses(
 | |
| 								sprintf(
 | |
| 									// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 									__(
 | |
| 										'Specify the Amazon %1$sSNS%2$s service endpoint hostname. If empty, then default "sns.us-east-1.amazonaws.com" will be used.',
 | |
| 										'w3-total-cache'
 | |
| 									),
 | |
| 									'<acronym title="' . esc_attr__( 'Simple Notification Service', 'w3-total-cache' ) . '">',
 | |
| 									'</acronym>'
 | |
| 								),
 | |
| 								array(
 | |
| 									'acronym' => array(
 | |
| 										'title' => array(),
 | |
| 									),
 | |
| 								)
 | |
| 							);
 | |
| 							?>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th><label for="cluster_messagebus_sns_api_key"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.api_key' ); ?></label></th>
 | |
| 					<td>
 | |
| 						<input id="cluster_messagebus_sns_api_key"
 | |
| 							class="w3tc-ignore-change" type="text"
 | |
| 							name="cluster__messagebus__sns__api_key"
 | |
| 							value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.api_key' ) ); ?>" size="60" />
 | |
| 						<p class="description">
 | |
| 							<?php
 | |
| 							echo wp_kses(
 | |
| 								sprintf(
 | |
| 									// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 									__(
 | |
| 										'Specify the %1$sAPI%2$s Key.',
 | |
| 										'w3-total-cache'
 | |
| 									),
 | |
| 									'<acronym title="' . esc_attr__( 'Application Programming Interface', 'w3-total-cache' ) . '">',
 | |
| 									'</acronym>'
 | |
| 								),
 | |
| 								array(
 | |
| 									'acronym' => array(
 | |
| 										'title' => array(),
 | |
| 									),
 | |
| 								)
 | |
| 							);
 | |
| 							?>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th><label for="cluster_messagebus_sns_api_secret"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.api_secret' ); ?></label></th>
 | |
| 					<td>
 | |
| 						<input id="cluster_messagebus_sns_api_secret"
 | |
| 							class="w3tc-ignore-change" type="text"
 | |
| 							name="cluster__messagebus__sns__api_secret"
 | |
| 							value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.api_secret' ) ); ?>" size="60" />
 | |
| 						<p class="description">
 | |
| 							<?php
 | |
| 							echo wp_kses(
 | |
| 								sprintf(
 | |
| 									// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 									__(
 | |
| 										'Specify the %1$sAPI%2$s secret.',
 | |
| 										'w3-total-cache'
 | |
| 									),
 | |
| 									'<acronym title="' . esc_attr__( 'Application Programming Interface', 'w3-total-cache' ) . '">',
 | |
| 									'</acronym>'
 | |
| 								),
 | |
| 								array(
 | |
| 									'acronym' => array(
 | |
| 										'title' => array(),
 | |
| 									),
 | |
| 								)
 | |
| 							);
 | |
| 							?>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th><label for="cluster_messagebus_sns_topic_arn"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.topic_arn' ); ?></label></th>
 | |
| 					<td>
 | |
| 						<input id="cluster_messagebus_sns_topic_arn"
 | |
| 							class="w3tc-ignore-change" type="text"
 | |
| 							name="cluster__messagebus__sns__topic_arn"
 | |
| 							value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.topic_arn' ) ); ?>" size="60" />
 | |
| 						<p class="description">
 | |
| 							<?php
 | |
| 							echo wp_kses(
 | |
| 								sprintf(
 | |
| 									// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 									__(
 | |
| 										'Specify the %1$sSNS%2$s topic.',
 | |
| 										'w3-total-cache'
 | |
| 									),
 | |
| 									'<acronym title="' . esc_attr__( 'Simple Notification Service', 'w3-total-cache' ) . '">',
 | |
| 									'</acronym>'
 | |
| 								),
 | |
| 								array(
 | |
| 									'acronym' => array(
 | |
| 										'title' => array(),
 | |
| 									),
 | |
| 								)
 | |
| 							);
 | |
| 							?>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 			</table>
 | |
| 
 | |
| 			<?php Util_Ui::button_config_save( 'general_dbcluster' ); ?>
 | |
| 			<?php Util_Ui::postbox_footer(); ?>
 | |
| 		<?php endif; ?>
 | |
| 
 | |
| 		<?php Util_Ui::postbox_header( __( 'Google PageSpeed', 'w3-total-cache' ), '', 'google_page_speed' ); ?>
 | |
| 		<?php
 | |
| 		$access_token_json = ( ! empty( $this->_config->get_string( 'widget.pagespeed.access_token' ) ) ? $this->_config->get_string( 'widget.pagespeed.access_token' ) : '' );
 | |
| 		$w3_pagespeed      = new PageSpeed_Api( $access_token_json );
 | |
| 
 | |
| 		$site_id            = Util_Http::generate_site_id();
 | |
| 		$return_url         = Util_Ui::admin_url( 'admin.php?page=w3tc_general' );
 | |
| 		$w3tc_pagespeed_key = ! empty( $this->_config->get_string( 'widget.pagespeed.w3tc_pagespeed_key' ) ) ? $this->_config->get_string( 'widget.pagespeed.w3tc_pagespeed_key' ) : '';
 | |
| 		$auth_url           = $w3_pagespeed->client->createAuthUrl();
 | |
| 
 | |
| 		$new_gacode             = Util_Request::get( 'w3tc_new_gacode' );
 | |
| 		$new_w3tc_pagespeed_key = Util_Request::get( 'w3tc_new_w3tc_pagespeed_key' );
 | |
| 		$authorize_error        = Util_Request::get( 'w3tc_authorize_error' );
 | |
| 		$deauthorize            = Util_Request::get( 'w3tc_deauthorize' );
 | |
| 
 | |
| 		if ( ! empty( $new_gacode ) && ! empty( $new_w3tc_pagespeed_key ) ) {
 | |
| 			$response = json_decode( $w3_pagespeed->process_authorization_response( $new_gacode, $new_w3tc_pagespeed_key ), true );
 | |
| 
 | |
| 			if ( isset( $response['error']['code'] ) && 200 !== $response['error']['code'] ) {
 | |
| 				$response_error = sprintf(
 | |
| 					// translators: 1 Request response code, 2 Error message.
 | |
| 					__(
 | |
| 						'Response Code: %1$s<br/>Response Message: %2$s',
 | |
| 						'w3-total-cache'
 | |
| 					),
 | |
| 					! empty( $response['error']['code'] ) ? $response['error']['code'] : 'N/A',
 | |
| 					! empty( $response['error']['message'] ) ? $response['error']['message'] : 'N/A'
 | |
| 				);
 | |
| 
 | |
| 				update_option(
 | |
| 					'w3tcps_authorize_fail',
 | |
| 					__( 'Google PageSpeed Insights API authorization failed.', 'w3-total-cache' )
 | |
| 				);
 | |
| 				update_option(
 | |
| 					'w3tcps_authorize_fail_message',
 | |
| 					$response_error
 | |
| 				);
 | |
| 			} elseif ( ! empty( $response['refresh_token'] ) ) {
 | |
| 				update_option(
 | |
| 					'w3tcps_authorize_success',
 | |
| 					__( 'Google PageSpeed Insights API authorization successfull.', 'w3-total-cache' )
 | |
| 				);
 | |
| 			} else {
 | |
| 				update_option(
 | |
| 					'w3tcps_authorize_fail',
 | |
| 					__( 'Google PageSpeed Insights API authorization failed.', 'w3-total-cache' )
 | |
| 				);
 | |
| 				update_option(
 | |
| 					'w3tcps_authorize_fail_message',
 | |
| 					__( 'Missing refresh token.', 'w3-totoal-cache' )
 | |
| 				);
 | |
| 			}
 | |
| 
 | |
| 			wp_safe_redirect( $return_url );
 | |
| 			exit;
 | |
| 		} elseif ( $deauthorize ) {
 | |
| 			$w3_pagespeed->reset();
 | |
| 			update_option(
 | |
| 				'w3tcps_authorize_success',
 | |
| 				__( 'Google PageSpeed Insights API authorization successfully reset.', 'w3-total-cache' )
 | |
| 			);
 | |
| 			wp_safe_redirect( $return_url );
 | |
| 			exit;
 | |
| 		} elseif ( ! empty( $authorize_error ) ) {
 | |
| 			$authorize_error = json_decode( $authorize_error );
 | |
| 
 | |
| 			if ( 'authorize-in-missing-site-id' === $authorize_error->error->id ) {
 | |
| 				$message = __( 'Unique site ID missing for authorize request!', 'w3-total-cache' );
 | |
| 			} elseif ( 'authorize-in-missing-auth-url' === $authorize_error->error->id ) {
 | |
| 				$message = __( 'Authorize URL missing for authorize request!', 'w3-total-cache' );
 | |
| 			} elseif ( 'authorize-in-missing-return-url' === $authorize_error->error->id ) {
 | |
| 				$message = __( 'Return URL missing for authorize request!', 'w3-total-cache' );
 | |
| 			} elseif ( 'authorize-in-failed' === $authorize_error->error->id ) {
 | |
| 				$message = __( 'Failed to process authorize request!', 'w3-total-cache' );
 | |
| 			}
 | |
| 
 | |
| 			if ( 'authorize-out-code-missing' === $authorize_error->error->id ) {
 | |
| 				$message = __( 'No authorize code returned to W3-API from Google!', 'w3-total-cache' );
 | |
| 			} elseif ( 'authorize-out-w3tc-pagespeed-key-missing' === $authorize_error->error->id ) {
 | |
| 				$message = __( 'No W3Key return to W3-API from Google!', 'w3-total-cache' );
 | |
| 			} elseif ( 'authorize-out-not-found' === $authorize_error->error->id ) {
 | |
| 				$message = __( 'No W3-API matching record found during Google authorization return processing!', 'w3-total-cache' );
 | |
| 			}
 | |
| 
 | |
| 			update_option(
 | |
| 				'w3tcps_authorize_fail',
 | |
| 				__( 'Google PageSpeed Insights API authorization failed.', 'w3-total-cache' )
 | |
| 			);
 | |
| 			update_option(
 | |
| 				'w3tcps_authorize_fail_message',
 | |
| 				$message
 | |
| 			);
 | |
| 
 | |
| 			wp_safe_redirect( $return_url );
 | |
| 			exit;
 | |
| 		}
 | |
| 		?>
 | |
| 		<table class="form-table">
 | |
| 			<?php
 | |
| 			$access_token_json = ( ! empty( $w3_pagespeed->client->getAccessToken() ) ? $w3_pagespeed->client->getAccessToken() : '' );
 | |
| 			if ( ! $w3_pagespeed->client->isAccessTokenExpired() && ! empty( $access_token_json ) ) {
 | |
| 				?>
 | |
| 				<tr>
 | |
| 					<th>
 | |
| 						<label for="widget_pagespeed_access_token"><?php Util_Ui::e_config_label( 'widget.pagespeed.access_token', 'general' ); ?> <?php esc_html_e( 'Valid', 'w3-total-cache' ); ?></label>
 | |
| 					</th>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th>
 | |
| 						<a id="w3tc-google-deauthorize-button" class="w3tc-button-save button-primary" href="<?php echo esc_url( $return_url . '&w3tc_deauthorize=1' ); ?>"><?php esc_html_e( 'Deauthorize' ); ?></a>
 | |
| 					</th>
 | |
| 				</tr>
 | |
| 				<?php
 | |
| 			} else {
 | |
| 				?>
 | |
| 				<tr>
 | |
| 					<th>
 | |
| 						<label for="widget_pagespeed_token"><?php Util_Ui::e_config_label( 'widget.pagespeed.access_token', 'general' ); ?></label>
 | |
| 					</th>
 | |
| 					<td>
 | |
| 						<a id="w3tc-google-authorize-button" class="w3tc-button-save button-primary" href="<?php echo esc_url( $w3_pagespeed->get_w3tc_api_url( 'google/authorize-in' ) . '/' . rawurlencode( $site_id ) . '/' . rawurlencode( $auth_url ) . '/' . rawurlencode( $return_url ) ); ?>"><?php esc_html_e( 'Authorize' ); ?></a>
 | |
| 						<p><?php esc_html_e( 'Allow W3 Total Cache to connect to the PageSpeed Insights API on your behalf.', 'w3-total-cache' ); ?></p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<?php
 | |
| 			}
 | |
| 
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'widget.pagespeed.enabled',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => __( 'Enable Google PageSpeed dashboard widget', 'w3-total-cache' ),
 | |
| 					'description'    => __( 'Display Google PageSpeed results on the WordPress dashboard.', 'w3-total-cache' ),
 | |
| 					'label_class'    => 'w3tc_single_column',
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php Util_Ui::button_config_save( 'general_google_page_speed' ); ?>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php
 | |
| 		foreach ( $custom_areas as $area ) {
 | |
| 			do_action( 'w3tc_settings_general_boxarea_' . $area['id'] );
 | |
| 		}
 | |
| 		?>
 | |
| 
 | |
| 		<?php if ( $licensing_visible ) : ?>
 | |
| 			<?php Util_Ui::postbox_header( __( 'Licensing', 'w3-total-cache' ), '', 'licensing' ); ?>
 | |
| 			<table class="form-table">
 | |
| 					<tr>
 | |
| 						<th>
 | |
| 							<label for="plugin_license_key"><?php Util_Ui::e_config_label( 'plugin.license_key' ); ?></label>
 | |
| 						</th>
 | |
| 						<td>
 | |
| 							<input id="plugin_license_key" name="plugin__license_key" type="text" value="<?php echo esc_attr( $this->_config->get_string( 'plugin.license_key' ) ); ?>" size="45"/>
 | |
| 							<input id="plugin_license_key_verify" type="button" class="button" value="<?php esc_attr_e( 'Verify license key', 'w3-total-cache' ); ?>"/>
 | |
| 							<span class="w3tc_license_verification"></span>
 | |
| 							<p class="description">
 | |
| 								<?php
 | |
| 								echo wp_kses(
 | |
| 									sprintf(
 | |
| 										// translators: 1 HTML a tag to trigger W3TC licence upgrade.
 | |
| 										__(
 | |
| 											'Please enter the license key provided after %1$s.',
 | |
| 											'w3-total-cache'
 | |
| 										),
 | |
| 										'<a class="button-buy-plugin" data-src="generic_license" href="#">' . esc_html__( 'upgrading', 'w3-total-cache' ) . '</a>'
 | |
| 									),
 | |
| 									array(
 | |
| 										'a' => array(
 | |
| 											'class'    => array(),
 | |
| 											'data-src' => array(),
 | |
| 											'href'     => array(),
 | |
| 										),
 | |
| 									)
 | |
| 								);
 | |
| 								?>
 | |
| 							</p>
 | |
| 						</td>
 | |
| 					</tr>
 | |
| 
 | |
| 			</table>
 | |
| 			<?php Util_Ui::button_config_save( 'general_licensing' ); ?>
 | |
| 			<?php Util_Ui::postbox_footer(); ?>
 | |
| 		<?php endif; ?>
 | |
| 
 | |
| 		<?php Util_Ui::postbox_header( esc_html__( 'Miscellaneous', 'w3-total-cache' ), '', 'miscellaneous' ); ?>
 | |
| 		<table class="form-table">
 | |
| 			<?php if ( is_network_admin() ) : ?>
 | |
| 			<tr>
 | |
| 				<th colspan="2">
 | |
| 					<?php $this->checkbox( 'common.force_master' ); ?> <?php Util_Ui::e_config_label( 'common.force_master' ); ?></label>
 | |
| 					<p class="description"><?php esc_html_e( 'Only one configuration file for whole network will be created and used. Recommended if all sites have the same configuration.', 'w3-total-cache' ); ?></p>
 | |
| 				</th>
 | |
| 			</tr>
 | |
| 			<?php endif; ?>
 | |
| 			<?php if ( Util_Environment::is_nginx() ) : ?>
 | |
| 			<tr>
 | |
| 				<th><?php Util_Ui::e_config_label( 'config.path' ); ?></th>
 | |
| 				<td>
 | |
| 					<input type="text" name="config__path" value="<?php echo esc_attr( $this->_config->get_string( 'config.path' ) ); ?>" size="80" <?php Util_Ui::sealing_disabled( 'common.' ); ?>/>
 | |
| 					<p class="description"><?php esc_html_e( 'If empty the default path will be used..', 'w3-total-cache' ); ?></p>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 			<?php endif; ?>
 | |
| 			<tr>
 | |
| 				<th colspan="2">
 | |
| 					<input type="hidden" name="config__check" value="0" <?php Util_Ui::sealing_disabled( 'common.' ); ?> />
 | |
| 					<label><input type="checkbox" name="config__check" value="1" <?php checked( $this->_config->get_boolean( 'config.check' ), true ); ?> <?php Util_Ui::sealing_disabled( 'common.' ); ?> /> <?php Util_Ui::e_config_label( 'config.check' ); ?></label>
 | |
| 					<p class="description">
 | |
| 						<?php
 | |
| 						echo wp_kses(
 | |
| 							sprintf(
 | |
| 								// translators: 1 opening HTML a tag to W3TC install admin page.
 | |
| 								__(
 | |
| 									'Notify of server configuration errors, if this option is disabled, the server configuration for active settings can be found on the %1$sinstall%2$s tab.',
 | |
| 									'w3-total-cache'
 | |
| 								),
 | |
| 								'<a href="' . esc_url( Util_Ui::admin_url( 'admin.php?page=w3tc_install' ) ) . '">',
 | |
| 								'</a>'
 | |
| 							),
 | |
| 							array(
 | |
| 								'a' => array(
 | |
| 									'href' => array(),
 | |
| 								),
 | |
| 							)
 | |
| 						);
 | |
| 						?>
 | |
| 					</p>
 | |
| 				</th>
 | |
| 			</tr>
 | |
| 			<tr>
 | |
| 				<th colspan="2">
 | |
| 					<input type="hidden" name="file_locking" value="0"<?php Util_Ui::sealing_disabled( 'common.' ); ?>  />
 | |
| 					<label><input type="checkbox" name="file_locking" value="1" <?php checked( $file_locking, true ); ?> <?php Util_Ui::sealing_disabled( 'common.' ); ?>  /> <?php esc_html_e( 'Enable file locking', 'w3-total-cache' ); ?></label>
 | |
| 					<p class="description">
 | |
| 						<?php
 | |
| 						echo wp_kses(
 | |
| 							sprintf(
 | |
| 								// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 								__(
 | |
| 									'Not recommended for %1$sNFS%2$s systems.',
 | |
| 									'w3-total-cache'
 | |
| 								),
 | |
| 								'<acronym title="' . esc_attr__( 'Network File System', 'w3-total-cache' ) . '">',
 | |
| 								'</acronym>'
 | |
| 							),
 | |
| 							array(
 | |
| 								'acronym' => array(
 | |
| 									'title' => array(),
 | |
| 								),
 | |
| 							)
 | |
| 						);
 | |
| 						?>
 | |
| 					</p>
 | |
| 				</th>
 | |
| 			</tr>
 | |
| 			<tr>
 | |
| 				<th colspan="2">
 | |
| 					<input type="hidden" name="file_nfs" value="0" <?php Util_Ui::sealing_disabled( 'common.' ); ?> />
 | |
| 					<label>
 | |
| 						<input type="checkbox" name="file_nfs" value="1" <?php checked( $file_nfs, true ); ?><?php Util_Ui::sealing_disabled( 'common.' ); ?> />
 | |
| 						<?php
 | |
| 						echo wp_kses(
 | |
| 							sprintf(
 | |
| 								// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 								__(
 | |
| 									'Optimize disk enhanced page and minify disk caching for %1$sNFS%2$s',
 | |
| 									'w3-total-cache'
 | |
| 								),
 | |
| 								'<acronym title="' . esc_attr__( 'Network File System', 'w3-total-cache' ) . '">',
 | |
| 								'</acronym>'
 | |
| 							),
 | |
| 							array(
 | |
| 								'acronym' => array(
 | |
| 									'title' => array(),
 | |
| 								),
 | |
| 							)
 | |
| 						);
 | |
| 						?>
 | |
| 					</label>
 | |
| 					<p class="description"><?php esc_html_e( 'Try this option if your hosting environment uses a network based file system for a possible performance improvement.', 'w3-total-cache' ); ?></p>
 | |
| 				</th>
 | |
| 			</tr>
 | |
| 			<?php
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'docroot_fix.enable',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => esc_html__( 'Fix document root path', 'w3-total-cache' ),
 | |
| 					'label_class'    => 'w3tc_single_column',
 | |
| 					'description'    => sprintf(
 | |
| 						// translators: 1: WordPress ABSPATH value, 2: Server document root value.
 | |
| 						esc_html__( 'Fix incorrect server document root path.  Uses the WordPress ABSPATH ("%1$s") in place of the current server document root ("%2$s").', 'w3-total-cache' ),
 | |
| 						esc_attr( untrailingslashit( ABSPATH ) ),
 | |
| 						esc_attr( ! empty( $_SERVER['DOCUMENT_ROOT'] ) ? esc_url_raw( wp_unslash( $_SERVER['DOCUMENT_ROOT'] ) ) : '' )
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 
 | |
| 			Util_Ui::config_item(
 | |
| 				array(
 | |
| 					'key'            => 'common.track_usage',
 | |
| 					'control'        => 'checkbox',
 | |
| 					'checkbox_label' => esc_html__( 'Anonymously track usage to improve product quality', 'w3-total-cache' ),
 | |
| 					'label_class'    => 'w3tc_single_column',
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</table>
 | |
| 
 | |
| 		<?php Util_Ui::button_config_save( 'general_misc' ); ?>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 
 | |
| 		<?php Util_Ui::postbox_header( esc_html__( 'Debug', 'w3-total-cache' ), '', 'debug' ); ?>
 | |
| 		<p>
 | |
| 			<?php
 | |
| 			echo wp_kses(
 | |
| 				sprintf(
 | |
| 					// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 					__(
 | |
| 						'Detailed information about each cache will be appended in (publicly available) %1$sHTML%2$s comments in the page\'s source code. Performance in this mode will not be optimal, use sparingly and disable when not in use.',
 | |
| 						'w3-total-cache'
 | |
| 					),
 | |
| 					'<acronym title="' . esc_attr__( 'Hypertext Markup Language', 'w3-total-cache' ) . '">',
 | |
| 					'</acronym>'
 | |
| 				),
 | |
| 				array(
 | |
| 					'acronym' => array(
 | |
| 						'title' => array(),
 | |
| 					),
 | |
| 				)
 | |
| 			);
 | |
| 			?>
 | |
| 		</p>
 | |
| 
 | |
| 		<table class="form-table">
 | |
| 			<tr>
 | |
| 				<th><?php esc_html_e( 'Debug mode:', 'w3-total-cache' ); ?></th>
 | |
| 				<td>
 | |
| 					<?php $this->checkbox_debug( 'pgcache.debug' ); ?> <?php Util_Ui::e_config_label( 'pgcache.debug' ); ?></label><br />
 | |
| 					<?php $this->checkbox_debug( 'minify.debug' ); ?> <?php Util_Ui::e_config_label( 'minify.debug' ); ?></label><br />
 | |
| 					<?php $this->checkbox_debug( 'dbcache.debug' ); ?> <?php Util_Ui::e_config_label( 'dbcache.debug' ); ?></label><br />
 | |
| 					<?php $this->checkbox_debug( 'objectcache.debug' ); ?> <?php Util_Ui::e_config_label( 'objectcache.debug' ); ?></label><br />
 | |
| 					<?php if ( Util_Environment::is_w3tc_pro( $this->_config ) ) : ?>
 | |
| 						<?php $this->checkbox_debug( array( 'fragmentcache', 'debug' ) ); ?> <?php esc_html_e( 'Fragment Cache', 'w3-total-cache' ); ?></label><br />
 | |
| 					<?php endif; ?>
 | |
| 					<?php $this->checkbox_debug( 'cdn.debug' ); ?> <?php Util_Ui::e_config_label( 'cdn.debug' ); ?></label><br />
 | |
| 					<?php $this->checkbox_debug( 'cdnfsd.debug' ); ?> <?php Util_Ui::e_config_label( 'cdnfsd.debug' ); ?></label><br />
 | |
| 					<?php $this->checkbox_debug( 'varnish.debug' ); ?> <?php Util_Ui::e_config_label( 'varnish.debug' ); ?></label>
 | |
| 					<?php if ( Util_Environment::is_w3tc_pro() ) : ?>
 | |
| 						<br />
 | |
| 						<?php $this->checkbox_debug( 'cluster.messagebus.debug' ); ?> <?php Util_Ui::e_config_label( 'cluster.messagebus.debug' ); ?></label>
 | |
| 					<?php endif ?>
 | |
| 					<p class="description">
 | |
| 						<?php
 | |
| 						echo wp_kses(
 | |
| 							sprintf(
 | |
| 								// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
 | |
| 								__(
 | |
| 									'If selected, detailed caching information will appear at the end of each page in a %1$sHTML%2$s comment. View a page\'s source code to review.',
 | |
| 									'w3-total-cache'
 | |
| 								),
 | |
| 								'<acronym title="' . esc_attr__( 'Hypertext Markup Language', 'w3-total-cache' ) . '">',
 | |
| 								'</acronym>'
 | |
| 							),
 | |
| 							array(
 | |
| 								'acronym' => array(
 | |
| 									'title' => array(),
 | |
| 								),
 | |
| 							)
 | |
| 						);
 | |
| 						?>
 | |
| 					</p>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 		</table>
 | |
| 		<table class="<?php echo esc_attr( Util_Ui::table_class() ); ?>">
 | |
| 			<tr>
 | |
| 				<th><?php esc_html_e( 'Purge Logs:', 'w3-total-cache' ); ?></th>
 | |
| 				<td>
 | |
| 					<?php \W3TC\Util_Ui::pro_wrap_maybe_start(); ?>
 | |
| 
 | |
| 					<?php
 | |
| 					$this->checkbox_debug_pro(
 | |
| 						'pgcache.debug_purge',
 | |
| 						__( 'Page Cache Purge Log', 'w3-total-cache' ),
 | |
| 						' (<a href="?page=w3tc_general&view=purge_log&module=pagecache">' . __( 'view log', 'w3-total-cache' ) . '</a>)'
 | |
| 					);
 | |
| 					?>
 | |
| 					<br />
 | |
| 
 | |
| 					<?php
 | |
| 					$this->checkbox_debug_pro(
 | |
| 						'dbcache.debug_purge',
 | |
| 						__( 'Database Cache Purge Log', 'w3-total-cache' ),
 | |
| 						' (<a href="?page=w3tc_general&view=purge_log&module=dbcache">' . __( 'view log', 'w3-total-cache' ) . '</a>)'
 | |
| 					);
 | |
| 					?>
 | |
| 					<br />
 | |
| 
 | |
| 					<?php
 | |
| 					$this->checkbox_debug_pro(
 | |
| 						'objectcache.debug_purge',
 | |
| 						__( 'Object Cache Purge Log', 'w3-total-cache' ),
 | |
| 						' (<a href="?page=w3tc_general&view=purge_log&module=objectcache">' . __( 'view log', 'w3-total-cache' ) . '</a>)'
 | |
| 					);
 | |
| 					?>
 | |
| 					<br />
 | |
| 
 | |
| 					<?php
 | |
| 					\W3TC\Util_Ui::pro_wrap_description(
 | |
| 						esc_html__( 'Purge Logs provide information on when your cache has been purged and what triggered it.', 'w3-total-cache' ),
 | |
| 						array(
 | |
| 							esc_html__( 'Sometimes, you\'ll encounter a complex issue involving your cache being purged for an unknown reason. The Purge Logs functionality can help you easily resolve those issues.', 'w3-total-cache' ),
 | |
| 						),
 | |
| 						'general-purge-log'
 | |
| 					);
 | |
| 					?>
 | |
| 					<?php \W3TC\Util_Ui::pro_wrap_maybe_end( 'debug_purge' ); ?>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 
 | |
| 		</table>
 | |
| 
 | |
| 		<?php Util_Ui::button_config_save( 'general_debug' ); ?>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 	</div>
 | |
| </form>
 | |
| 
 | |
| <form action="admin.php?page=<?php echo esc_attr( $this->_page ); ?>" method="post" enctype="multipart/form-data">
 | |
| 	<div class="metabox-holder">
 | |
| 		<?php Util_Ui::postbox_header( esc_html__( 'Import / Export Settings', 'w3-total-cache' ), '', 'settings' ); ?>
 | |
| 		<?php
 | |
| 		echo wp_kses(
 | |
| 			Util_Ui::nonce_field( 'w3tc' ),
 | |
| 			array(
 | |
| 				'input' => array(
 | |
| 					'type'  => array(),
 | |
| 					'name'  => array(),
 | |
| 					'value' => array(),
 | |
| 				),
 | |
| 			)
 | |
| 		);
 | |
| 		?>
 | |
| 		<table class="form-table">
 | |
| 			<tr>
 | |
| 				<th><?php esc_html_e( 'Import configuration:', 'w3-total-cache' ); ?></th>
 | |
| 				<td>
 | |
| 					<input type="file" name="config_file" />
 | |
| 					<input type="submit" name="w3tc_config_import" class="w3tc-button-save button" value="<?php esc_attr_e( 'Upload', 'w3-total-cache' ); ?>" />
 | |
| 					<p class="description"><?php esc_html_e( 'Upload and replace the active settings file.', 'w3-total-cache' ); ?></p>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 			<tr>
 | |
| 				<th><?php esc_html_e( 'Export configuration:', 'w3-total-cache' ); ?></th>
 | |
| 				<td>
 | |
| 					<input type="submit" name="w3tc_config_export" class="button" value="<?php esc_attr_e( 'Download', 'w3-total-cache' ); ?>" />
 | |
| 					<p class="description"><?php esc_html_e( 'Download the active settings file.', 'w3-total-cache' ); ?></p>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 			<tr>
 | |
| 				<th><?php esc_html_e( 'Reset configuration:', 'w3-total-cache' ); ?></th>
 | |
| 				<td>
 | |
| 					<input type="submit" name="w3tc_config_reset" class="button" value="<?php esc_attr_e( 'Restore Default Settings', 'w3-total-cache' ); ?>" />
 | |
| 					<p class="description"><?php esc_html_e( 'Revert all settings to the defaults. Any settings staged in preview mode will not be modified.', 'w3-total-cache' ); ?></p>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 		</table>
 | |
| 		<?php Util_Ui::postbox_footer(); ?>
 | |
| 	</div>
 | |
| </form>
 | |
| <?php require W3TC_INC_DIR . '/options/common/footer.php'; ?>
 |