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 );
 | |
| 	}
 | |
| }
 |