File Manager Lite
Dir:
/home/atomylvb/jarangomd.com/wp-content/plugins/litespeed-cache/src
Upload
[..]
admin.cls.php (6.13 KB)
Edit
Rename
Del
cdn/
Rename
Del
cloud-auth.trait.php (9.38 KB)
Edit
Rename
Del
conf.cls.php (19.53 KB)
Edit
Rename
Del
css.cls.php (17.77 KB)
Edit
Rename
Del
data.cls.php (22.21 KB)
Edit
Rename
Del
data_structure/
Rename
Del
db-optm.cls.php (15.35 KB)
Edit
Rename
Del
error.cls.php (7.35 KB)
Edit
Rename
Del
health.cls.php (2.83 KB)
Edit
Rename
Del
img-optm.cls.php (5.26 KB)
Edit
Rename
Del
metabox.cls.php (5.29 KB)
Edit
Rename
Del
optimize.cls.php (38.64 KB)
Edit
Rename
Del
optimizer.cls.php (10.5 KB)
Edit
Rename
Del
placeholder.cls.php (17.93 KB)
Edit
Rename
Del
purge.cls.php (34.41 KB)
Edit
Rename
Del
tag.cls.php (9.26 KB)
Edit
Rename
Del
task.cls.php (7.05 KB)
Edit
Rename
Del
vary.cls.php (21.33 KB)
Edit
Rename
Del
Edit: admin.cls.php
<?php /** * The admin-panel specific functionality of the plugin. * * @since 1.0.0 * @package LiteSpeed_Cache */ namespace LiteSpeed; defined( 'WPINC' ) || exit(); /** * Class Admin * * Wires admin-side hooks, actions, and safe redirects. */ class Admin extends Root { const LOG_TAG = '👮'; const PAGE_EDIT_HTACCESS = 'litespeed-edit-htaccess'; /** * Initialize the class and set its properties. * Runs in hook `after_setup_theme` when is_admin(). * * @since 1.0.0 */ public function __construct() { // Define LSCWP_MU_PLUGIN if in mu-plugins. if ( defined( 'WPMU_PLUGIN_DIR' ) && dirname( LSCWP_DIR ) === WPMU_PLUGIN_DIR && ! defined( 'LSCWP_MU_PLUGIN' ) ) { define( 'LSCWP_MU_PLUGIN', true ); } self::debug( 'No cache due to Admin page' ); if ( ! defined( 'DONOTCACHEPAGE' ) ) { define( 'DONOTCACHEPAGE', true ); } // Additional LiteSpeed assets on admin display (also registers menus). $this->cls( 'Admin_Display' ); // Initialize admin actions. add_action( 'admin_init', [ $this, 'admin_init' ] ); // Add link to plugin list page. add_filter( 'plugin_action_links_' . LSCWP_BASENAME, [ $this->cls( 'Admin_Display' ), 'add_plugin_links' ] ); } /** * Callback that initializes the admin options for LiteSpeed Cache. * * @since 1.0.0 * @return void */ public function admin_init() { // Hook to reset optimization data when image is replaced. add_filter( 'wp_generate_attachment_metadata', [ $this, 'wp_generate_attachment_metadata' ], 10, 3 ); // Hook attachment upload auto optimization. if ( $this->conf( Base::O_IMG_OPTM_AUTO ) ) { add_filter( 'wp_update_attachment_metadata', [ $this, 'wp_update_attachment_metadata' ], 9999, 2 ); } $this->_proceed_admin_action(); // Terminate if user doesn't have access to settings. $capability = is_network_admin() ? 'manage_network_options' : 'manage_options'; if ( ! current_user_can( $capability ) ) { return; } // Add privacy policy (since 2.2.6). if ( function_exists( 'wp_add_privacy_policy_content' ) ) { wp_add_privacy_policy_content( Core::NAME, Doc::privacy_policy() ); } $this->cls( 'Media' )->after_admin_init(); do_action( 'litespeed_after_admin_init' ); if ( $this->cls( 'Router' )->esi_enabled() ) { add_action( 'in_widget_form', [ $this->cls( 'Admin_Display' ), 'show_widget_edit' ], 100, 3 ); add_filter( 'widget_update_callback', __NAMESPACE__ . '\Admin_Settings::validate_widget_save', 10, 4 ); } } /** * Handle attachment metadata generation. * Reset optimization data if this is a replaced image (has existing optimization records). * * @since 7.8 * * @param array $metadata Attachment metadata. * @param int $attachment_id Attachment ID. * @param string $context Context: 'create' or 'update'. * @return array Filtered metadata. */ public function wp_generate_attachment_metadata( $metadata, $attachment_id, $context = 'create' ) { // Only process on 'create' context (replacement also uses 'create') if ( 'create' !== $context ) { return $metadata; } $img_optm = $this->cls( 'Img_Optm' ); // Check if has existing optimization records, if so it's a replacement if ( $img_optm->has_optm_record( $attachment_id, $metadata ) ) { self::debug( 'Image replaced, resetting optimization data [pid] ' . $attachment_id ); $img_optm->reset_row( $attachment_id, true ); } return $metadata; } /** * Handle attachment metadata update. * * @since 4.0 * * @param array $data Attachment meta. * @param int $post_id Attachment ID. * @return array Filtered meta. */ public function wp_update_attachment_metadata( $data, $post_id ) { $this->cls( 'Img_Optm' )->wp_update_attachment_metadata( $data, $post_id ); return $data; } /** * Run LiteSpeed admin actions routed via Router. * * @since 1.1.0 * @return void */ private function _proceed_admin_action() { $action = Router::get_action(); switch ( $action ) { case Router::ACTION_SAVE_SETTINGS: $this->cls( 'Admin_Settings' )->save( wp_unslash( $_POST ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing break; case Router::ACTION_SAVE_SETTINGS_NETWORK: $this->cls( 'Admin_Settings' )->network_save( wp_unslash( $_POST ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing break; default: break; } } /** * Clean up the input (array or scalar) of any extra slashes/spaces. * * @since 1.0.4 * * @param mixed $input The input value to clean. * @return mixed Cleaned value. */ public static function cleanup_text( $input ) { if ( is_array( $input ) ) { return array_map( __CLASS__ . '::cleanup_text', $input ); } return stripslashes(trim($input)); } /** * After a LSCWP_CTRL action, redirect back to same page * without nonce and action in the query string. * * If the redirect URL cannot be determined, redirects to the homepage. * * @since 1.0.12 * * @param string|false $url Optional destination URL. * @return void */ public static function redirect( $url = false ) { global $pagenow; // If originated, go back to referrer or home. if ( ! empty( $_GET['_litespeed_ori'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $ref = wp_get_referer(); wp_safe_redirect( $ref ? $ref : get_home_url() ); exit; } if ( ! $url ) { $clean = []; // Sanitize current query args while removing our internals. if ( ! empty( $_GET ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended foreach ( $_GET as $k => $v ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( in_array( $k, [ Router::ACTION, Router::NONCE, Router::TYPE, 'litespeed_i', 'litespeed_tb' ], true ) ) { continue; } // Normalize to string for URL building. $clean[ $k ] = is_array( $v ) ? array_map( 'sanitize_text_field', wp_unslash( $v ) ) : sanitize_text_field( wp_unslash( $v ) ); } } $qs = ''; if ( ! empty( $clean ) ) { $qs = '?' . http_build_query( $clean ); } $url = is_network_admin() ? network_admin_url( $pagenow . $qs ) : admin_url( $pagenow . $qs ); } wp_safe_redirect( $url ); exit; } }
Simpan