96 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace W3TC;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* todo - sort by name
 | 
						|
function extensions_sort_cmp_name($a, $b)
 | 
						|
{
 | 
						|
	if ($a['name'] == $b['name']) {
 | 
						|
		return 0;
 | 
						|
	}
 | 
						|
	return ($a['name'] < $b['name']) ? -1 : 1;
 | 
						|
}*/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class Extensions_Page extends Base_Page_Settings {
 | 
						|
	/**
 | 
						|
	 * Current page
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	protected $_page = 'w3tc_extensions';
 | 
						|
	protected $_active_tab;
 | 
						|
	protected $_config_settings = array();
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Extensions view
 | 
						|
	 *
 | 
						|
	 * @return void
 | 
						|
	 */
 | 
						|
	function render_content() {
 | 
						|
		$extension_status     = 'all';
 | 
						|
		$extension_status_val = Util_Request::get_string( 'extension_status' );
 | 
						|
		if ( ! empty( $extension_status_val ) ) {
 | 
						|
			if ( in_array( $extension_status_val, array( 'all', 'active', 'inactive', 'core' ), true ) ) {
 | 
						|
				$extension_status = $extension_status_val;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		$extension     = '';
 | 
						|
		$extension_val = Util_Request::get_string( 'extension' );
 | 
						|
		if ( ! empty( $extension_val ) ) {
 | 
						|
			$extension = esc_attr( $extension_val );
 | 
						|
		}
 | 
						|
 | 
						|
		$action_val = Util_Request::get_string( 'action' );
 | 
						|
		$view       = ( ! empty( $action_val ) && 'view' === $action_val );
 | 
						|
 | 
						|
		$extensions_active = Extensions_Util::get_active_extensions( $this->_config );
 | 
						|
 | 
						|
		if ( $extension && $view ) {
 | 
						|
			$all_settings = $this->_config->get_array( 'extensions.settings' );
 | 
						|
			$meta = $extensions_active[$extension];
 | 
						|
			$sub_view = 'settings';
 | 
						|
		} else {
 | 
						|
			$extensions_all = Extensions_Util::get_extensions( $this->_config );
 | 
						|
			$extensions_inactive = Extensions_Util::get_inactive_extensions( $this->_config );
 | 
						|
			$var = "extensions_{$extension_status}";
 | 
						|
			$extensions = $$var;
 | 
						|
			$extension_keys = array_keys($extensions);
 | 
						|
			sort($extension_keys);
 | 
						|
 | 
						|
			$sub_view = 'list';
 | 
						|
			$page = 1;
 | 
						|
		}
 | 
						|
 | 
						|
		$config = Dispatcher::config();
 | 
						|
		include W3TC_INC_OPTIONS_DIR . '/extensions.php';
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Sets default values for lacking extension meta keys
 | 
						|
	 *
 | 
						|
	 * @param unknown $meta
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	function default_meta( $meta ) {
 | 
						|
		$default = array (
 | 
						|
			'name' => '',
 | 
						|
			'author' => '',
 | 
						|
			'description' => '',
 | 
						|
			'author_uri' => '',
 | 
						|
			'extension_uri' => '',
 | 
						|
			'extension_id' => '',
 | 
						|
			'version' => '',
 | 
						|
			'enabled' => true,
 | 
						|
			'requirements' => array(),
 | 
						|
			'core' => false,
 | 
						|
			'public' => true,
 | 
						|
			'path' => ''
 | 
						|
		);
 | 
						|
		return array_merge( $default, $meta );
 | 
						|
	}
 | 
						|
}
 |