139 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace W3TC;
 | |
| /**
 | |
|  * W3 GenesisExtension module
 | |
|  */
 | |
| 
 | |
| class Extension_Genesis_Plugin_Admin {
 | |
| 	function run() {
 | |
| 		add_action( 'w3tc_extension_page_genesis.theme', array(
 | |
| 				'\W3TC\Extension_Genesis_Page',
 | |
| 				'w3tc_extension_page_genesis_theme'
 | |
| 			) );
 | |
| 		add_filter( 'w3tc_errors', array( $this, 'w3tc_errors' ) );
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	/**
 | |
| 	 *
 | |
| 	 *
 | |
| 	 * @param unknown $extensions
 | |
| 	 * @param Config  $config
 | |
| 	 * @return mixed
 | |
| 	 */
 | |
| 	static public function w3tc_extensions( $extensions, $config ) {
 | |
| 		$requirements = array();
 | |
| 
 | |
| 		if ( !self::is_theme_found() )
 | |
| 			$requirements[] =
 | |
| 				'Optimizes "Genesis Framework" version >= 1.9.0, which is not active';
 | |
| 
 | |
| 		if ( !$config->is_extension_active( 'fragmentcache' ) )
 | |
| 			$requirements[] = 'Activate "Fragment Cache" extension first';
 | |
| 
 | |
| 		$extensions['genesis.theme'] = array (
 | |
| 			'name' => 'Genesis Framework by StudioPress',
 | |
| 			'author' => 'W3 EDGE',
 | |
| 			'description' => 'Provides 30-60% improvement in page generation time for the Genesis Framework by Copyblogger Media.',
 | |
| 			'author_uri' => 'https://www.w3-edge.com/',
 | |
| 			'extension_uri' => 'https://www.w3-edge.com/',
 | |
| 			'extension_id' => 'genesis.theme',
 | |
| 			'pro_feature' => true,
 | |
| 			'pro_excerpt' => __( 'Increase the performance of themes powered by the Genesis Theme Framework by up to 60%.', 'w3-total-cache'),
 | |
| 			'pro_description' => array(),
 | |
| 			'settings_exists' => true,
 | |
| 			'version' => '0.1',
 | |
| 			'enabled' => empty( $requirements ),
 | |
| 			'requirements' => implode( ', ', $requirements ),
 | |
| 			'path' => 'w3-total-cache/Extension_Genesis_Plugin.php'
 | |
| 		);
 | |
| 
 | |
| 		return $extensions;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	/**
 | |
| 	 * Show errors in wp-admin
 | |
| 	 */
 | |
| 	function w3tc_errors( $errors ) {
 | |
| 		$c = Dispatcher::config();
 | |
| 
 | |
| 		if ( !$c->is_extension_active_frontend( 'fragmentcache' ) ) {
 | |
| 			$errors['genesis_fragmentcache_disabled'] =
 | |
| 				__( 'Please enable <strong>Fragment Cache</strong> module to make sure <strong>Genesis extension</strong> works properly.',
 | |
| 				'w3-total-cache' );
 | |
| 		}
 | |
| 
 | |
| 		return $errors;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	static private function is_theme_found() {
 | |
| 		if ( !is_network_admin() )
 | |
| 			return ( defined( 'PARENT_THEME_NAME' ) &&
 | |
| 				PARENT_THEME_NAME == 'Genesis' );
 | |
| 
 | |
| 		$themes = Util_Theme::get_themes();
 | |
| 		$theme_found = false;
 | |
| 		foreach ( $themes as $theme ) {
 | |
| 			if ( strtolower( $theme->Template ) == 'genesis' )
 | |
| 				return true;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	/**
 | |
| 	 * 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_genesis_theme';
 | |
| 		return $hooks;
 | |
| 	}
 | |
| 
 | |
| 	static private function show_notice() {
 | |
| 		$config = Dispatcher::config();
 | |
| 		if ( $config->is_extension_active( 'genesis.theme' ) )
 | |
| 			return false;
 | |
| 
 | |
| 		if ( !self::is_theme_found() )
 | |
| 			return false;
 | |
| 
 | |
| 		$state = Dispatcher::config_state();
 | |
| 		if ( $state->get_boolean( 'genesis.theme.hide_note_suggest_activation' ) )
 | |
| 			return false;
 | |
| 
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	static public function w3tc_notes_genesis_theme( $notes ) {
 | |
| 		if ( !self::show_notice() )
 | |
| 			return $notes;
 | |
| 
 | |
| 		$extension_id = 'genesis.theme';
 | |
| 
 | |
| 		$notes[$extension_id] = sprintf(
 | |
| 			__( 'Activating the <a href="%s">Genesis Theme</a> extension for W3 Total Cache may be helpful for your site. <a 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' => 'genesis.theme.hide_note_suggest_activation',
 | |
| 						'value' => 'true' ) ) ) );
 | |
| 
 | |
| 		return $notes;
 | |
| 	}
 | |
| }
 |