122 lines
2.4 KiB
PHP
122 lines
2.4 KiB
PHP
<?php
|
|
/**
|
|
* Class Google\Site_Kit\Core\Admin\Standalone
|
|
*
|
|
* @package Google\Site_Kit
|
|
* @copyright 2021 Google LLC
|
|
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
|
* @link https://sitekit.withgoogle.com
|
|
*/
|
|
|
|
namespace Google\Site_Kit\Core\Admin;
|
|
|
|
use Google\Site_Kit\Context;
|
|
use Google\Site_Kit\Core\Assets\Stylesheet;
|
|
|
|
/**
|
|
* Class managing standalone mode.
|
|
*
|
|
* @since 1.8.0
|
|
* @access private
|
|
* @ignore
|
|
*/
|
|
final class Standalone {
|
|
|
|
/**
|
|
* Plugin context.
|
|
*
|
|
* @since 1.8.0
|
|
*
|
|
* @var Context
|
|
*/
|
|
private $context;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @since 1.8.0
|
|
*
|
|
* @param Context $context Plugin context.
|
|
*/
|
|
public function __construct( Context $context ) {
|
|
|
|
$this->context = $context;
|
|
}
|
|
|
|
/**
|
|
* Standalone mode
|
|
*
|
|
* @since 1.8.0
|
|
*/
|
|
public function register() {
|
|
if ( ! $this->is_standalone() ) {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Appends the standalone admin body class.
|
|
*
|
|
* @since 1.8.0
|
|
*
|
|
* @param string $admin_body_classes Admin body classes.
|
|
* @return string Filtered admin body classes.
|
|
*/
|
|
add_filter(
|
|
'admin_body_class',
|
|
function ( $admin_body_classes ) {
|
|
return "{$admin_body_classes} googlesitekit-standalone";
|
|
}
|
|
);
|
|
|
|
remove_action( 'in_admin_header', 'wp_admin_bar_render', 0 );
|
|
|
|
add_filter( 'admin_footer_text', '__return_empty_string', PHP_INT_MAX );
|
|
add_filter( 'update_footer', '__return_empty_string', PHP_INT_MAX );
|
|
|
|
add_action(
|
|
'admin_head',
|
|
function () {
|
|
$this->print_standalone_styles();
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Detects if we are in Google Site Kit standalone mode.
|
|
*
|
|
* @since 1.8.0
|
|
*
|
|
* @return boolean True when in standalone mode, else false.
|
|
*/
|
|
public function is_standalone() {
|
|
global $pagenow;
|
|
|
|
$page = htmlspecialchars( $this->context->input()->filter( INPUT_GET, 'page' ) ?: '' );
|
|
$standalone = $this->context->input()->filter( INPUT_GET, 'googlesitekit-standalone', FILTER_VALIDATE_BOOLEAN );
|
|
|
|
return ( 'admin.php' === $pagenow && false !== strpos( $page, 'googlesitekit' ) && $standalone );
|
|
}
|
|
|
|
/**
|
|
* Enqueues styles for standalone mode.
|
|
*
|
|
* @since 1.8.0
|
|
*/
|
|
private function print_standalone_styles() {
|
|
?>
|
|
<style type="text/css">
|
|
html {
|
|
padding-top: 0 !important;
|
|
}
|
|
|
|
body.googlesitekit-standalone #adminmenumain {
|
|
display: none;
|
|
}
|
|
|
|
body.googlesitekit-standalone #wpcontent {
|
|
margin-left: 0;
|
|
}
|
|
</style>
|
|
<?php
|
|
}
|
|
}
|