laipower/wp-content/plugins/w3-total-cache/Extension_WordPressSeo_Plug...

130 lines
3.4 KiB
PHP

<?php
namespace W3TC;
class Extension_WordPressSeo_Plugin_Admin {
function run() {
add_filter( 'w3tc_extension_plugin_links_wordpress-seo', array( $this, 'remove_settings' ) );
add_action( 'w3tc_activate_extension_wordpress-seo', array( $this, 'activate' ) );
add_action( 'w3tc_deactivate_extension_wordpress-seo', array( $this, 'deactivate' ) );
}
/**
*
*
* @param unknown $links
* @return mixed
*/
public function remove_settings( $links ) {
array_pop( $links );
return $links;
}
/**
*
*
* @param unknown $extensions
* @param Config $config
* @return mixed
*/
static public function w3tc_extensions( $extensions, $config ) {
$message = array();
if ( !self::criteria_match() )
$message[] = 'Optimizes "Yoast SEO" plugin, which is not active';
$extensions['wordpress-seo'] = array (
'name' => 'Yoast SEO',
'author' => 'W3 EDGE',
'description' => __( 'Configures W3 Total Cache to comply with Yoast SEO requirements automatically.', 'w3-total-cache' ),
'author_uri' => 'https://www.w3-edge.com/',
'extension_uri' => 'https://www.w3-edge.com/',
'extension_id' => 'wordpress-seo',
'settings_exists' => true,
'version' => '0.1',
'enabled' => self::criteria_match(),
'requirements' => implode( ', ', $message ),
'path' => 'w3-total-cache/Extension_WordPressSeo_Plugin.php'
);
return $extensions;
}
/**
* called from outside, since can show notice even when extension is not active
*/
static public function w3tc_extensions_hooks( $hooks ) {
if ( !self::show_notice() )
return $hooks;
if ( !isset( $hooks['filters']['w3tc_notes'] ) )
$hooks['filters']['w3tc_notes'] = array();
$hooks['filters']['w3tc_notes'][] = 'w3tc_notes_wordpress_seo';
return $hooks;
}
static private function show_notice() {
$config = Dispatcher::config();
if ( $config->is_extension_active( 'wordpress-seo' ) )
return false;
if ( !self::criteria_match() )
return false;
$state = Dispatcher::config_state();
if ( $state->get_boolean( 'wordpress_seo.hide_note_suggest_activation' ) )
return false;
return true;
}
static public function w3tc_notes_wordpress_seo( $notes ) {
if ( !self::show_notice() )
return $notes;
$extension_id = 'wordpress-seo';
$notes[$extension_id] = sprintf(
__(
'Activating the <a href="%s">Yoast SEO</a> extension for W3 Total Cache may be helpful for your site. <a class="button" href="%s">Click here</a> to try it. %s',
'w3-total-cache'
),
Util_Ui::admin_url( 'admin.php?page=w3tc_extensions#' . $extension_id ),
Util_Ui::url( array( 'w3tc_extensions_activate' => $extension_id ) ),
Util_Ui::button_link(
__( 'Hide this message', 'w3-total-cache' ),
Util_Ui::url(
array(
'w3tc_default_config_state' => 'y',
'key' => 'wordpress_seo.hide_note_suggest_activation',
'value' => 'true'
)
)
)
);
return $notes;
}
static private function criteria_match() {
return defined( 'WPSEO_VERSION' );
}
public function activate() {
try {
$config = Dispatcher::config();
$config->set( 'pgcache.prime.enabled', true );
$config->set( 'pgcache.prime.sitemap', '/sitemap_index.xml' );
$config->save();
} catch ( \Exception $ex ) {}
}
public function deactivate() {
try {
$config = Dispatcher::config();
$config->set( 'pgcache.prime.enabled', false );
$config->save();
} catch ( \Exception $ex ) {}
}
}