Current File : /home/aventura/www/site/wp-content/plugins/w3-total-cache/Root_AdminActivation.php |
<?php
namespace W3TC;
/**
* W3 Total Cache plugin
*/
/**
* class Root_AdminActivation
*/
class Root_AdminActivation {
/**
* Activate plugin action
*
* @param bool $network_wide
* @return void
*/
static public function activate( $network_wide ) {
// decline non-network activation at WPMU
if ( Util_Environment::is_wpmu() ) {
if ( $network_wide ) {
// we are in network activation
} else if ( $_GET['action'] == 'error_scrape' &&
strpos( $_SERVER['REQUEST_URI'], '/network/' ) !== false ) {
// workaround for error_scrape page called after error
// really we are in network activation and going to throw some error
} else {
echo 'Please <a href="' . network_admin_url( 'plugins.php' ) . '">network activate</a> W3 Total Cache when using WordPress Multisite.';
die;
}
}
try {
$e = Dispatcher::component( 'Root_Environment' );
$config = Dispatcher::config();
$e->fix_on_event( $config, 'activate' );
Generic_AdminLinks::link_update( $config );
// try to save config file if needed, optional thing so exceptions
// hidden
if ( !ConfigUtil::is_item_exists( 0, false ) ) {
try {
// create folders
$e->fix_in_wpadmin( $config );
} catch ( \Exception $ex ) {
}
try {
Util_Admin::config_save( Dispatcher::config(), $config );
} catch ( \Exception $ex ) {
}
}
} catch ( \Exception $e ) {
Util_Activation::error_on_exception( $e );
}
}
/**
* Deactivate plugin action
*
* @return void
*/
static public function deactivate() {
try {
Util_Activation::enable_maintenance_mode();
} catch ( \Exception $ex ) {
}
try {
$e = Dispatcher::component( 'Root_Environment' );
$e->fix_after_deactivation();
Generic_AdminLinks::link_delete();
} catch ( Util_Environment_Exceptions $exs ) {
$r = Util_Activation::parse_environment_exceptions( $exs );
if ( strlen( $r['required_changes'] ) > 0 ) {
$changes_style = 'border: 1px solid black; ' .
'background: white; ' .
'margin: 10px 30px 10px 30px; ' .
'padding: 10px;';
$error = '<strong>W3 Total Cache Error:</strong> ' .
'Files and directories could not be automatically ' .
'removed to complete the deactivation. ' .
'<br />Please execute commands manually:<br />' .
'<div style="' . $changes_style . '">' .
$r['required_changes'] . '</div>';
// this is not shown since wp redirects from that page
// not solved now
echo '<div class="error"><p>' . $error . '</p></div>';
}
}
try {
Util_Activation::disable_maintenance_mode();
} catch ( \Exception $ex ) {
}
}
}