82 lines
2.3 KiB
PHP
82 lines
2.3 KiB
PHP
<?php
|
|
namespace W3TC;
|
|
|
|
class ConfigUtil {
|
|
static public function is_item_exists( $blog_id, $preview ) {
|
|
if ( defined( 'W3TC_CONFIG_DATABASE' ) && W3TC_CONFIG_DATABASE ) {
|
|
return ConfigDbStorage::is_item_exists( $blog_id, $preview );
|
|
}
|
|
|
|
return file_exists( Config::util_config_filename( 0, false ) );
|
|
}
|
|
|
|
|
|
|
|
static public function remove_item( $blog_id, $preview ) {
|
|
if ( defined( 'W3TC_CONFIG_DATABASE' ) && W3TC_CONFIG_DATABASE ) {
|
|
ConfigDbStorage::remove_item( $blog_id, $preview );
|
|
} else {
|
|
$filename = Config::util_config_filename( $blog_id, $preview );
|
|
@unlink( $filename );
|
|
}
|
|
|
|
if ( defined( 'W3TC_CONFIG_CACHE_ENGINE' ) ) {
|
|
ConfigCache::remove_item( $blog_id, $preview );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Deploys the config file from a preview config file
|
|
*
|
|
* @param integer $direction +1: preview->production
|
|
* -1: production->preview
|
|
* @param boolean $remove_source remove source file
|
|
*/
|
|
static public function preview_production_copy( $blog_id, $direction ) {
|
|
if ( defined( 'W3TC_CONFIG_DATABASE' ) && W3TC_CONFIG_DATABASE ) {
|
|
ConfigDbStorage::preview_production_copy( $blog_id, $direction );
|
|
} else {
|
|
$preview_filename = Config::util_config_filename( $blog_id, true );
|
|
$production_filename = Config::util_config_filename( $blog_id, false );
|
|
|
|
if ( $direction > 0 ) {
|
|
$src = $preview_filename;
|
|
$dest = $production_filename;
|
|
} else {
|
|
$src = $production_filename;
|
|
$dest = $preview_filename;
|
|
}
|
|
|
|
if ( !@copy( $src, $dest ) ) {
|
|
Util_Activation::throw_on_write_error( $dest );
|
|
}
|
|
}
|
|
|
|
if ( defined( 'W3TC_CONFIG_CACHE_ENGINE' ) ) {
|
|
ConfigCache::remove_item( $blog_id, $preview );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static public function save_item( $blog_id, $preview, $data ) {
|
|
if ( defined( 'W3TC_CONFIG_DATABASE' ) && W3TC_CONFIG_DATABASE ) {
|
|
ConfigDbStorage::save_item( $blog_id, $preview, $data );
|
|
} else {
|
|
$filename = Config::util_config_filename( $blog_id, $preview );
|
|
if ( defined( 'JSON_PRETTY_PRINT' ) )
|
|
$config = json_encode( $data, JSON_PRETTY_PRINT );
|
|
else // for older php versions
|
|
$config = json_encode( $data );
|
|
|
|
Util_File::file_put_contents_atomic( $filename, '<?php exit; ?>' . $config );
|
|
}
|
|
|
|
if ( defined( 'W3TC_CONFIG_CACHE_ENGINE' ) ) {
|
|
ConfigCache::remove_item( $blog_id, $preview );
|
|
}
|
|
}
|
|
}
|