%PDF- %PDF-
| Direktori : /var/www/projetos/nossaradio.com.br/wp-content/plugins/otter-blocks/inc/plugins/ |
| Current File : /var/www/projetos/nossaradio.com.br/wp-content/plugins/otter-blocks/inc/plugins/class-dashboard.php |
<?php
/**
* Otter Dashboard.
*
* @package ThemeIsle\GutenbergBlocks\Plugins
*/
namespace ThemeIsle\GutenbergBlocks\Plugins;
use ThemeIsle\GutenbergBlocks\Pro;
/**
* Class Dashboard
*/
class Dashboard {
/**
* The main instance var.
*
* @var Dashboard
*/
protected static $instance = null;
/**
* Initialize the class
*/
public function init() {
add_action( 'admin_menu', array( $this, 'register_menu_page' ) );
add_action( 'admin_init', array( $this, 'maybe_redirect' ) );
}
/**
* Register Admin Page
*
* @since 1.7.1
* @access public
*/
public function register_menu_page() {
$page_hook_suffix = add_options_page(
__( 'Otter', 'otter-blocks' ),
__( 'Otter', 'otter-blocks' ),
'manage_options',
'otter',
array( $this, 'menu_callback' )
);
add_action( "admin_print_scripts-{$page_hook_suffix}", array( $this, 'enqueue_options_assets' ) );
}
/**
* Register Admin Page
*
* @since 1.7.1
* @access public
*/
public function menu_callback() {
echo '<div id="otter"></div>';
}
/**
* Load assets for option page.
*
* @since 1.7.1
* @access public
*/
public function enqueue_options_assets() {
$wp_upload_dir = wp_upload_dir( null, false );
$basedir = $wp_upload_dir['basedir'] . '/themeisle-gutenberg/';
$asset_file = include OTTER_BLOCKS_PATH . '/build/dashboard/index.asset.php';
wp_enqueue_style(
'otter-blocks-styles',
OTTER_BLOCKS_URL . 'build/dashboard/style-index.css',
array( 'wp-components' ),
$asset_file['version']
);
wp_enqueue_script(
'otter-blocks-scripts',
OTTER_BLOCKS_URL . 'build/dashboard/index.js',
$asset_file['dependencies'],
$asset_file['version'],
true
);
wp_set_script_translations( 'otter-blocks-scripts', 'otter-blocks' );
wp_localize_script(
'otter-blocks-scripts',
'otterObj',
apply_filters(
'otter_dashboard_data',
array(
'version' => OTTER_BLOCKS_VERSION,
'assetsPath' => OTTER_BLOCKS_URL . 'assets/',
'stylesExist' => is_dir( $basedir ) || boolval( get_transient( 'otter_animations_parsed' ) ),
'hasPro' => Pro::is_pro_installed(),
'upgradeLink' => tsdk_utmify( Pro::get_url(), 'options', Pro::get_reference() ),
'docsLink' => Pro::get_docs_url(),
'showFeedbackNotice' => $this->should_show_feedback_notice(),
)
)
);
}
/**
* Maybe redirect to dashboard page.
*
* @since 1.7.1
* @access public
*/
public function maybe_redirect() {
if ( ! get_option( 'themeisle_blocks_settings_redirect' ) ) {
return;
}
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
return;
}
if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) { // phpcs:ignore WordPress.VIP.SuperGlobalInputUsage.AccessDetected,WordPress.Security.NonceVerification.NoNonceVerification
return;
}
update_option( 'themeisle_blocks_settings_redirect', false );
wp_safe_redirect( admin_url( 'options-general.php?page=otter' ) );
exit;
}
/**
* Whether to show the feedback notice or not.
*
* @return bool
*/
private function should_show_feedback_notice() {
$installed = get_option( 'otter_blocks_install' );
return ! empty( $installed ) && $installed < strtotime( '-5 days' );
}
/**
* The instance method for the static class.
* Defines and returns the instance of the static class.
*
* @static
* @since 1.7.1
* @access public
* @return Dashboard
*/
public static function instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
self::$instance->init();
}
return self::$instance;
}
/**
* Throw error on object clone
*
* The whole idea of the singleton design pattern is that there is a single
* object therefore, we don't want the object to be cloned.
*
* @access public
* @since 1.7.1
* @return void
*/
public function __clone() {
// Cloning instances of the class is forbidden.
_doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'otter-blocks' ), '1.0.0' );
}
/**
* Disable unserializing of the class
*
* @access public
* @since 1.7.1
* @return void
*/
public function __wakeup() {
// Unserializing instances of the class is forbidden.
_doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'otter-blocks' ), '1.0.0' );
}
}