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