120 lines
2.1 KiB
PHP
120 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* WP Multisite WaaS Customize/Add New Template Previewer Page.
|
|
*
|
|
* @package WP_Ultimo
|
|
* @subpackage Admin_Pages
|
|
* @since 2.0.0
|
|
*/
|
|
|
|
namespace WP_Ultimo\Admin_Pages;
|
|
|
|
// Exit if accessed directly
|
|
defined('ABSPATH') || exit;
|
|
|
|
/**
|
|
* WP Multisite WaaS Template Previewer Customize/Add New Admin Page.
|
|
*/
|
|
abstract class Customizer_Admin_Page extends Edit_Admin_Page {
|
|
|
|
/**
|
|
* Should we force the admin menu into a folded state?
|
|
*
|
|
* @since 2.0.0
|
|
* @var boolean
|
|
*/
|
|
protected $fold_menu = true;
|
|
|
|
/**
|
|
* The preview area height.
|
|
*
|
|
* @since 2.0.0
|
|
* @var string
|
|
*/
|
|
protected $preview_height = '120vh';
|
|
|
|
/**
|
|
* Returns the preview URL. This is then added to the iframe.
|
|
*
|
|
* @since 2.0.0
|
|
* @return string
|
|
*/
|
|
public function get_preview_url() {
|
|
|
|
return get_site_url(null);
|
|
}
|
|
|
|
/**
|
|
* Adds hooks when the page loads.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function page_loaded(): void {
|
|
|
|
/**
|
|
* Process save, if necessary
|
|
*/
|
|
$this->process_save();
|
|
|
|
$screen = get_current_screen();
|
|
|
|
add_action("wu_edit_{$screen->id}_after_normal", [$this, 'display_preview_window']);
|
|
}
|
|
|
|
/**
|
|
* Adds the preview window.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function display_preview_window(): void {
|
|
|
|
wu_get_template(
|
|
'base/edit/editor-customizer',
|
|
[
|
|
'preview_iframe_url' => $this->get_preview_url(),
|
|
'preview_height' => $this->preview_height,
|
|
]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Registers the necessary scripts and styles for this admin page.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function register_scripts(): void {
|
|
|
|
parent::register_scripts();
|
|
|
|
wp_enqueue_script('wu-customizer', wu_get_asset('customizer.js', 'js'), ['jquery', 'wu-vue', 'wu-block-ui'], \WP_Ultimo::VERSION, ['async' => true, 'in_footer' => true]);
|
|
|
|
wp_enqueue_style('wp-color-picker');
|
|
|
|
wp_enqueue_script('wp-color-picker');
|
|
|
|
wp_enqueue_media();
|
|
}
|
|
|
|
/**
|
|
* Checkout_Forms have titles.
|
|
*
|
|
* @since 2.0.0
|
|
* @return boolean
|
|
*/
|
|
public function has_title() {
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Not needed.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function get_object() {}
|
|
}
|