110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace W3TC;
 | 
						|
 | 
						|
/**
 | 
						|
 * Browsercache core
 | 
						|
 */
 | 
						|
class BrowserCache_Core {
 | 
						|
	/**
 | 
						|
	 * Returns replace extensions
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	public function get_replace_extensions( $config ) {
 | 
						|
		$types = array();
 | 
						|
		$extensions = array();
 | 
						|
 | 
						|
		if ( $config->get_boolean( 'browsercache.cssjs.replace' ) ) {
 | 
						|
			$types = array_merge( $types, array_keys( $this->_get_cssjs_types() ) );
 | 
						|
		}
 | 
						|
 | 
						|
		if ( $config->get_boolean( 'browsercache.html.replace' ) ) {
 | 
						|
			$types = array_merge( $types, array_keys( $this->_get_html_types() ) );
 | 
						|
		}
 | 
						|
 | 
						|
		if ( $config->get_boolean( 'browsercache.other.replace' ) ) {
 | 
						|
			$types = array_merge( $types, array_keys( $this->_get_other_types() ) );
 | 
						|
		}
 | 
						|
 | 
						|
		foreach ( $types as $type ) {
 | 
						|
			$extensions = array_merge( $extensions, explode( '|', $type ) );
 | 
						|
		}
 | 
						|
 | 
						|
		return $extensions;
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns replace extensions
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	public function get_replace_querystring_extensions( $config ) {
 | 
						|
		$extensions = array();
 | 
						|
 | 
						|
		if ( $config->get_boolean( 'browsercache.cssjs.replace' ) )
 | 
						|
			$this->_fill_extensions( $extensions, $this->_get_cssjs_types(), 'replace' );
 | 
						|
		if ( $config->get_boolean( 'browsercache.html.replace' ) )
 | 
						|
			$this->_fill_extensions( $extensions, $this->_get_html_types(), 'replace' );
 | 
						|
		if ( $config->get_boolean( 'browsercache.other.replace' ) )
 | 
						|
			$this->_fill_extensions( $extensions, $this->_get_other_types(), 'replace' );
 | 
						|
 | 
						|
		if ( $config->get_boolean( 'browsercache.cssjs.querystring' ) )
 | 
						|
			$this->_fill_extensions( $extensions, $this->_get_cssjs_types(), 'querystring' );
 | 
						|
		if ( $config->get_boolean( 'browsercache.html.querystring' ) )
 | 
						|
			$this->_fill_extensions( $extensions, $this->_get_html_types(), 'querystring' );
 | 
						|
		if ( $config->get_boolean( 'browsercache.other.querystring' ) )
 | 
						|
			$this->_fill_extensions( $extensions, $this->_get_other_types(), 'querystring' );
 | 
						|
 | 
						|
		return $extensions;
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	private function _fill_extensions( &$extensions, $types, $operation ) {
 | 
						|
		foreach ( array_keys( $types ) as $type ) {
 | 
						|
			$type_extensions = explode( '|', $type );
 | 
						|
			foreach ( $type_extensions as $ext ) {
 | 
						|
				if ( !isset( $extensions[$ext] ) )
 | 
						|
					$extensions[$ext] = array();
 | 
						|
				$extensions[$ext][$operation] = true;
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns CSS/JS mime types
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	private function _get_cssjs_types() {
 | 
						|
		$mime_types = include W3TC_INC_DIR . '/mime/cssjs.php';
 | 
						|
		return $mime_types;
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns HTML mime types
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	private function _get_html_types() {
 | 
						|
		$mime_types = include W3TC_INC_DIR . '/mime/html.php';
 | 
						|
		return $mime_types;
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns other mime types
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	private function _get_other_types() {
 | 
						|
		$mime_types = include W3TC_INC_DIR . '/mime/other.php';
 | 
						|
		return $mime_types;
 | 
						|
	}
 | 
						|
}
 |