PHP 7.4.33
Preview: metabox.cls.php Size: 4.33 KB
/home/zcziejy/ryadselyen/src/metabox.cls.php
<?php
/**
 * The class to operate post editor metabox settings
 *
 * @since 		4.7
 * @package    	Core
 * @subpackage 	Core/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Metabox extends Root {
	const LOG_TAG = '📦';

	const POST_NONCE_ACTION = 'post_nonce_action';

	private $_postmeta_settings;

	/**
	 * Get the setting list
	 * @since 4.7
	 */
	public function __construct() {
		// Append meta box
		$this->_postmeta_settings = array(
			'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
	 */
	public function register_settings() {
		add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
		add_action( 'save_post', array( $this, 'save_meta_box_settings' ), 15, 2 );
		add_action( 'attachment_updated', array( $this, 'save_meta_box_settings' ), 15, 2 );
	}

	/**
	 * Regsiter meta box
	 * @since 4.7
	 */
	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 Options', 'litespeed-cache' ), array( $this, 'meta_box_options' ), $post_type, 'side', 'core' );
	}

	/**
	 * Show meta box content
	 * @since 4.7
	 */
	public function meta_box_options() {
		require_once LSCWP_DIR . 'tpl/inc/metabox.php';
	}

	/**
	 * Save settings
	 * @since 4.7
	 */
	public function save_meta_box_settings( $post_id, $post ) {
		global $pagenow;

		self::debug( 'Maybe save post2 [post_id] ' . $post_id );

		if ( $pagenow != 'post.php' || ! $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 ) {
			$val = isset( $_POST[ $k ] ) ? $_POST[ $k ] : false;
			$this->save( $post_id, $k, $val );
		}
	}

	/**
	 * Load setting per post
	 * @since 4.7
	 */
	public function setting( $conf, $post_id = false ) {
		// Check if has metabox non-cacheable setting or not
		if ( ! $post_id ) {
			$home_id = get_option( 'page_for_posts' );
			if ( is_singular() ) {
				$post_id = get_the_ID();
			} elseif ( $home_id > 0 && is_home() ) {
				$post_id = $home_id;
			}
		}

		if ( $post_id && $val = get_post_meta( $post_id, $conf, true ) ) {
			return $val;
		}

		return null;
	}

	/**
	 * Save a metabox value
	 * @since 4.7
	 */
	public function save( $post_id, $name, $val, $is_append = false ) {
		if( strpos( $name, 'litespeed_vpi_list' ) !== false ) {
			$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
	 */
	public function lazy_img_excludes( $list ) {
		$is_mobile = $this->_separate_mobile();
		$excludes = $this->setting( $is_mobile ? 'litespeed_vpi_list_mobile' : 'litespeed_vpi_list' );
		if ( $excludes !== null ) {
			$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( $list, $excludes );
				}
			}

			return $list;
		}

		$this->cls( 'VPI' )->add_to_queue();

		return $list;
	}
}

Directory Contents

Dirs: 40 × Files: 97
Name Size Perms Modified Actions
admin DIR
- drwxr-xr-x 2026-01-23 16:32:03
Edit Download
ajax DIR
- drwxr-xr-x 2026-01-23 16:32:03
Edit Download
api DIR
- drwxr-xr-x 2026-01-23 16:32:03
Edit Download
Auth DIR
- drwxr-xr-x 2026-01-23 01:50:42
Edit Download
Cache DIR
- drwxr-xr-x 2026-01-23 01:50:42
Edit Download
cdn DIR
- drwxr-xr-x 2026-01-23 16:31:45
Edit Download
cli DIR
- drwxr-xr-x 2026-01-23 16:32:03
Edit Download
compat DIR
- drwxr-xr-x 2026-01-23 16:32:03
Edit Download
- drwxr-xr-x 2026-01-23 16:24:44
Edit Download
compose DIR
- drwxr-xr-x 2026-01-23 16:24:44
Edit Download
config DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
Content DIR
- drwxr-xr-x 2026-01-23 01:50:42
Edit Download
Cookie DIR
- drwxr-xr-x 2026-01-23 01:50:42
Edit Download
Core DIR
- drwxr-xr-x 2026-01-23 01:50:42
Edit Download
Core32 DIR
- drwxr-xr-x 2026-01-23 01:50:42
Edit Download
data DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
- drwxr-xr-x 2026-01-23 16:31:45
Edit Download
error DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
Exception DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
fs DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
gettext DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
hoc DIR
- drwxr-xr-x 2026-01-23 16:24:44
Edit Download
hooks DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
HTTP DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
js DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
modules DIR
- drwxr-xr-x 2026-01-23 16:24:44
Edit Download
mvc DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
Net DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
output DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
package DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
Parse DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
PHP52 DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
Proxy DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
Response DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
scss DIR
- drwxr-xr-x 2026-01-23 16:24:44
Edit Download
test DIR
- drwxr-xr-x 2026-01-23 16:32:04
Edit Download
Transport DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
Utility DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
utils DIR
- drwxr-xr-x 2026-01-23 16:24:44
Edit Download
XML DIR
- drwxr-xr-x 2026-01-23 01:50:43
Edit Download
420 B lrw-r--r-- 2026-01-09 04:01:57
Edit Download
15.43 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
34.00 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
9.52 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
4.60 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
11.28 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
832 B lrw-r--r-- 2023-11-20 18:20:20
Edit Download
875 B lrw-r--r-- 2023-11-20 18:20:20
Edit Download
860 B lrw-r--r-- 2023-03-29 23:36:03
Edit Download
1.86 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
9.12 KB lrw-r--r-- 2023-08-08 23:44:46
Edit Download
6.26 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
30.86 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
3.17 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
652 B lrw-r--r-- 2023-08-08 23:44:46
Edit Download
3.03 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
2.41 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
9.78 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
13.53 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
40.02 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
160.83 KB lrw-r--r-- 2025-12-02 22:36:58
Edit Download
19.14 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
21.01 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
15.03 KB lrw-r--r-- 2024-07-16 23:33:44
Edit Download
1.67 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
19.56 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
2.18 KB lrw-r--r-- 2024-11-12 22:37:31
Edit Download
13.17 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
32.16 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
2.09 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
53.68 KB lrw-r--r-- 2025-12-02 22:36:58
Edit Download
53.83 KB lrw-r--r-- 2023-01-10 22:50:43
Edit Download
12.79 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
17.30 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
22.31 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
9.16 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
11.82 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
4.66 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
31.39 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
6.38 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
26.37 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
355 B lrw-r--r-- 2025-12-02 22:36:59
Edit Download
10.47 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
18.94 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
27.87 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
8.31 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
3.00 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
709 B lrw-r--r-- 2023-03-29 23:36:03
Edit Download
2.96 KB lrw-r--r-- 2023-10-12 23:34:25
Edit Download
24.29 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
12.14 KB lrw-r--r-- 2023-08-08 23:44:46
Edit Download
4.32 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
153 B lrw-r--r-- 2023-11-20 18:29:11
Edit Download
5.51 KB lrw-r--r-- 2023-03-29 23:36:03
Edit Download
33.99 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
28.93 KB lrw-r--r-- 2023-10-12 23:34:25
Edit Download
128.54 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
15.79 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
18.01 KB lrw-r--r-- 2023-11-20 18:21:42
Edit Download
3.53 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
16.31 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
26.58 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
4.33 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
68.16 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
16.03 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
34.40 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
36.42 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
8.97 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
34.05 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
14.53 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
1.47 KB lrw-r--r-- 2023-03-29 23:36:03
Edit Download
5.56 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
867 B lrw-r--r-- 2023-03-29 23:36:03
Edit Download
30.57 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
1.75 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
7.71 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
447 B lrw-r--r-- 2025-12-02 22:36:59
Edit Download
5.43 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
33.20 KB lrw-r--r-- 2024-07-16 23:33:44
Edit Download
4.18 KB lrw-r--r-- 2023-08-08 23:44:46
Edit Download
7.73 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
2.31 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
12.90 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
17.82 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
29.64 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
8.89 KB lrw-r--r-- 2023-10-12 23:34:25
Edit Download
125.05 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
158 B lrw-r--r-- 2023-01-10 22:50:43
Edit Download
23.18 KB lrw-r--r-- 2025-12-02 22:36:59
Edit Download
5.30 KB lrw-r--r-- 2023-03-29 23:36:03
Edit Download
1.19 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
8.78 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
5.30 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
3.41 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
1.51 KB lrw-r--r-- 2023-03-29 23:36:03
Edit Download
21.36 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
19.15 KB lrw-r--r-- 2023-11-20 18:29:11
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).