133 lines
3.1 KiB
PHP
133 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* File: Extension_AlwaysCached_Plugin_Admin.php
|
|
*
|
|
* AlwaysCached plugin admin controller.
|
|
*
|
|
* @since 2.8.0
|
|
*
|
|
* @package W3TC
|
|
*/
|
|
|
|
namespace W3TC;
|
|
|
|
/**
|
|
* AlwaysCached Plugin Admin.
|
|
*
|
|
* @since 2.8.0
|
|
*/
|
|
class Extension_AlwaysCached_Plugin_Admin {
|
|
/**
|
|
* Adds the AlwaysCached extension to extensions list.
|
|
*
|
|
* @since 2.8.0
|
|
*
|
|
* @param array $extensions Extensions list.
|
|
* @param Config $config Config data.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function w3tc_extensions( $extensions, $config ) {
|
|
$requirements = array();
|
|
|
|
if ( ! Util_Environment::is_w3tc_pro( $config ) ) {
|
|
$requirements[] = __( 'Valid W3 Total Cache Pro license', 'w3-total-cache' );
|
|
}
|
|
|
|
$extensions['alwayscached'] = array(
|
|
'name' => 'Always Cached',
|
|
'author' => 'W3 EDGE',
|
|
'description' => __( 'Always cached.', 'w3-total-cache' ),
|
|
'author_uri' => 'https://www.w3-edge.com/',
|
|
'extension_uri' => 'https://www.w3-edge.com/',
|
|
'extension_id' => 'alwayscached',
|
|
'pro_feature' => true,
|
|
'pro_excerpt' => __( 'Prevents page/post updates from clearing corresponding cache entries and instead add them to a queue that can be manually cleared or scheduled to clear via cron.', 'w3-total-cache' ),
|
|
'pro_description' => array(),
|
|
'settings_exists' => true,
|
|
'version' => '1.0',
|
|
'enabled' => empty( $requirements ),
|
|
'requirements' => implode( ', ', $requirements ),
|
|
'path' => 'w3-total-cache/Extension_AlwaysCached_Plugin.php',
|
|
);
|
|
|
|
return $extensions;
|
|
}
|
|
|
|
/**
|
|
* Run method for AlwaysCached admin.
|
|
*
|
|
* @since 2.8.0
|
|
*
|
|
* @return void|null
|
|
*/
|
|
public function run() {
|
|
if ( ! Extension_AlwaysCached_Plugin::is_enabled() ) {
|
|
return null;
|
|
}
|
|
|
|
add_action(
|
|
'w3tc_extension_page_alwayscached',
|
|
array(
|
|
'\W3TC\Extension_AlwaysCached_Page',
|
|
'w3tc_extension_page_alwayscached',
|
|
)
|
|
);
|
|
|
|
add_action(
|
|
'admin_print_scripts',
|
|
array(
|
|
'\W3TC\Extension_AlwaysCached_Page',
|
|
'admin_print_scripts',
|
|
)
|
|
);
|
|
|
|
add_filter( 'w3tc_admin_actions', array( $this, 'w3tc_admin_actions' ) );
|
|
|
|
add_filter( 'w3tc_admin_menu', array( $this, 'w3tc_admin_menu' ) );
|
|
|
|
add_action(
|
|
'w3tc_ajax',
|
|
array(
|
|
'\W3TC\Extension_AlwaysCached_Page',
|
|
'w3tc_ajax',
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Adds admin actions for AlwaysCached.
|
|
*
|
|
* @since 2.8.0
|
|
*
|
|
* @param array $handlers Handlers array.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function w3tc_admin_actions( $handlers ) {
|
|
$handlers['alwayscached'] = 'Extension_AlwaysCached_AdminActions';
|
|
return $handlers;
|
|
}
|
|
|
|
/**
|
|
* Adds admin menu item for AlwaysCached.
|
|
*
|
|
* @since 2.8.0
|
|
*
|
|
* @param array $menu Menu array.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function w3tc_admin_menu( $menu ) {
|
|
if ( Extension_AlwaysCached_Plugin::is_enabled() ) {
|
|
$menu['w3tc_extensions&extension=alwayscached&action=view'] = array(
|
|
'page_title' => __( 'Page Cache Queue', 'w3-total-cache' ),
|
|
'menu_text' => __( 'Page Cache Queue', 'w3-total-cache' ),
|
|
'visible_always' => false,
|
|
'order' => 450,
|
|
);
|
|
}
|
|
|
|
return $menu;
|
|
}
|
|
}
|