File "class-eig-module-gutenframe.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/.wp-cli/wp-content/plugins/mojo-marketplace-wp-plugin/vendor/bluehost/endurance-wp-module-gutenframe/src/class-eig-module-gutenframe.php
File size: 3.72 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Main Class powering Gutenframe Functionality.
*/
class EIG_Module_Gutenframe {
/**
* This method effectively fires at 'init' priority 10, so earlier actions cannot be used.
* It's also instantiated inside an is_user_logged_in(), so no further auth checks are needed.
*/
public function __construct() {
// write css
add_action( 'admin_print_styles-post.php', array( $this, 'maybe_hide_core_admin_styles' ) );
add_action( 'admin_print_styles-post-new.php', array( $this, 'maybe_hide_core_admin_styles' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'register_and_maybe_enqueue_pymjs' ) );
if ( self::is_gutenframe() ) {
// remove X-Frame_Options: sameorigin header in Core
// original added in /wp-includes/default-filters.php
remove_action( 'admin_init', 'send_frame_options_header', 10 );
}
}
/**
* Use CSS to Hide Left-Menu & Admin Bar
* Tweak Gutenberg to fill all available space that was reserved for the above.
*/
public function maybe_hide_core_admin_styles() {
if ( self::is_gutenframe() ) {
?>
<style type="text/css">
#adminmenumain,
#wpadminbar {
display: none !important; /* Hide Left Menu & Admin Bar */
}
#wpcontent {
margin-left: 0px !important; /* nudge main content container to fill available space */
}
.edit-post-header {
top: 0 !important;
left: 0 !important;
}
.edit-post-layout__content {
margin-left: 0px !important;
}
@media screen and (max-width: 600px) {
#wpbody { /* override additional real estate for larger mobile admin bar */
padding-top: 0px !important;
}
}
@media (min-width: 782px) {
/* both normally 88px; Admin Bar is 32px at this breakpoint. 88 - 56 */
.edit-post-sidebar {
top: 56px !important;
}
.edit-post-layout__content {
top: 56px !important;
}
}
@media (min-width: 601px) and (max-width:781px) {
.edit-post-layout__content {
margin-top: -46px !important; /* tuck extra whitespace in middle media query */
}
.edit-post-sidebar {
margin-top: -47px !important; /* same as above, 1 extra px to prevent double border in UI */
}
}
/* Override Menu Items: Fullscreen and Manage All Reusable Blocks Menu Items */
.components-popover__content > div:first-of-type > div[role="menu"] > button:nth-of-type(3),
.components-popover__content a[href="edit.php?post_type=wp_block"] {
display: none !important;
}
</style>
<?php
} // end gutenframe conditional
}
/**
* Registers pym.js to allow for responsive <iframe> embeds.
*
* @see http://blog.apps.npr.org/pym.js/
* @return void
*/
public function register_and_maybe_enqueue_pymjs() {
wp_register_script(
'gutenframe-pym',
EIG_GUTENFRAME_PYM_URL,
array(),
'1.3.2',
true
);
wp_add_inline_script(
'gutenframe-pym',
"var pymChild = new pym.Child({ xdomain: '\\\*\\.bluehost.com' });"
);
if ( self::is_gutenframe() ) {
wp_enqueue_script( 'gutenframe-pym' );
}
}
/**
* Test for query parameter gutenframe=bluehost and post.php
*
* @return boolean
*/
public static function is_gutenframe() {
if ( self::is_create_or_edit_screen()
&& ! empty( $_GET['gutenframe'] )
&& 'bluehost' === sanitize_text_field( $_GET['gutenframe'] )
) {
return true;
}
return false;
}
/**
* This function cannot be used before muplugins_loaded. It must be loaded on 'plugins_loaded' or later.
*
* @return boolean
*/
public static function is_create_or_edit_screen() {
global $pagenow;
if ( ! empty( $pagenow )
&& is_string( $pagenow )
&& ( false !== strpos( $pagenow, 'post.php' ) || false !== strpos( $pagenow, 'post-new.php' ) )
) {
return true;
}
return false;
}
}