153 lines
3.2 KiB
PHP
153 lines
3.2 KiB
PHP
<?php
|
|
/**
|
|
* Lazy load & Preload page.
|
|
*
|
|
* @package Smush\App\Pages
|
|
*/
|
|
|
|
namespace Smush\App\Pages;
|
|
|
|
use Smush\App\Abstract_Summary_Page;
|
|
use Smush\App\Interface_Page;
|
|
use WP_Smush;
|
|
|
|
if ( ! defined( 'WPINC' ) ) {
|
|
die;
|
|
}
|
|
|
|
/**
|
|
* Class Lazy_Preload
|
|
*/
|
|
class Lazy_Preload extends Abstract_Summary_Page implements Interface_Page {
|
|
|
|
public function on_load() {
|
|
parent::on_load();
|
|
// Init the tabs.
|
|
$this->tabs = array(
|
|
'lazy_load' => __( 'Lazy Load', 'wp-smushit' ),
|
|
'preload' => __( 'Preload', 'wp-smushit' ),
|
|
);
|
|
|
|
add_action( 'wp_smush_admin_after_tab_smush-lazy-preload', array( $this, 'lazy_preload_add_new_tag' ) );
|
|
add_action( 'wp_smush_admin_page_before_sidenav', array( $this, 'render_summary_meta_box' ) );
|
|
}
|
|
|
|
public function render_summary_meta_box() {
|
|
$this->do_meta_boxes( 'main' );
|
|
}
|
|
|
|
/**
|
|
* Register meta boxes.
|
|
*/
|
|
public function register_meta_boxes() {
|
|
parent::register_meta_boxes();
|
|
|
|
$this->add_meta_box(
|
|
'preload',
|
|
__( 'Preload Critical Images', 'wp-smushit' ),
|
|
array( $this, 'preload_meta_box' ),
|
|
array( $this, 'preload_header_meta_box' ),
|
|
array( $this, 'common_meta_box_footer' ),
|
|
'preload',
|
|
array(
|
|
'box_class' => 'sui-box sui-no-padding',
|
|
)
|
|
);
|
|
|
|
if ( ! $this->settings->get( 'lazy_load' ) ) {
|
|
$this->add_meta_box(
|
|
'lazyload/disabled',
|
|
__( 'Lazy Load', 'wp-smushit' ),
|
|
null,
|
|
null,
|
|
null,
|
|
'lazy_load',
|
|
array(
|
|
'box_class' => 'sui-box sui-message sui-no-padding',
|
|
)
|
|
);
|
|
|
|
return;
|
|
}
|
|
|
|
$this->add_meta_box(
|
|
'lazyload',
|
|
__( 'Lazy Load', 'wp-smushit' ),
|
|
array( $this, 'lazy_load_meta_box' ),
|
|
null,
|
|
array( $this, 'common_meta_box_footer' ),
|
|
'lazy_load'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Common footer meta box.
|
|
*
|
|
* @since 3.2.0
|
|
*/
|
|
public function common_meta_box_footer() {
|
|
$current_tab = $this->get_current_tab();
|
|
$is_submit_enabled = 'lazy_load' === $current_tab;
|
|
$this->view(
|
|
'meta-box-footer',
|
|
array(
|
|
'is_submit_enabled' => $is_submit_enabled,
|
|
),
|
|
'common'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Lazy loading meta box.
|
|
*
|
|
* @since 3.2.0
|
|
*/
|
|
public function lazy_load_meta_box() {
|
|
$this->view(
|
|
'lazyload/meta-box',
|
|
array(
|
|
'conflicts' => get_transient( 'wp-smush-conflict_check' ),
|
|
'settings' => $this->settings->get_setting( 'wp-smush-lazy_load' ),
|
|
'cpts' => get_post_types( // custom post types.
|
|
array(
|
|
'public' => true,
|
|
'_builtin' => false,
|
|
),
|
|
'objects'
|
|
),
|
|
)
|
|
);
|
|
}
|
|
|
|
public function preload_meta_box() {
|
|
$this->view(
|
|
'preload/meta-box',
|
|
array(
|
|
'lcp_preload_enabled' => false,
|
|
'preload_settings' => array(),
|
|
)
|
|
);
|
|
}
|
|
|
|
public function lazy_preload_add_new_tag( $tab_id ) {
|
|
if ( 'preload' !== $tab_id ) {
|
|
return $this->lazyload_add_new_tag();
|
|
}
|
|
|
|
echo '<span class="sui-tag sui-tag-pro" style="right:11px; top:11px">' . esc_html__( 'Pro', 'wp-smushit' ) . '</span>';
|
|
}
|
|
|
|
public function lazyload_add_new_tag() {
|
|
if ( ! self::should_show_new_feature_hotspot() ) {
|
|
return;
|
|
}
|
|
echo '<span class="smush-new-feature-dot" style="transform: translate(-8px, -21px);"></span>';
|
|
}
|
|
|
|
public function preload_header_meta_box() {
|
|
$this->view(
|
|
'preload/meta-box-header'
|
|
);
|
|
}
|
|
}
|