403Webshell
Server IP : 172.67.159.97  /  Your IP : 216.73.217.154
Web Server : nginx/1.24.0
System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/rebeccaone.com/wp-content/plugins/envira-gallery/src/Compress/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/rebeccaone.com/wp-content/plugins/envira-gallery/src/Compress/Settings.php
<?php
/**
 * Envira Compression Settings
 *
 * @since 1.9.2
 *
 * @package Envira Gallery
 */

namespace Envira\Compress;

/**
 * Compression Settings Class
 *
 * @since 1.9.2
 */
final class Settings {

	/**
	 * Class Constructor
	 *
	 * @since 1.9.2
	 */
	public function __construct() {
		$this->hooks();
	}

	/**
	 * Settings Init
	 *
	 * @since 1.9.2
	 *
	 * @return void
	 */
	public function hooks() {
		if ( 'pro' !== envira_get_license_level() ) {
			return;
		}

		add_filter( 'envira_gallery_settings_tab_nav', [ $this, 'tab_nav' ], 10, 1 );
		add_action( 'envira_gallery_tab_settings_compression', [ $this, 'tab_output' ] );

		add_action( 'init', [ &$this, 'save_settings' ] );
	}

	/**
	 * Helper method to get compression levels.
	 *
	 * @since 1.9.4
	 *
	 * @return array
	 */
	public function get_compression_levels() {

		$levels = [
			[
				'value' => 'lossy',
				'name'  => __( 'Lossy', 'envira-gallery' ),
			],
			[
				'value' => 'glossy',
				'name'  => __( 'Glossy', 'envira-gallery' ),
			],
			[
				'value' => 'lossless',
				'name'  => __( 'Lossless', 'envira-gallery' ),
			],
		];

		return apply_filters( 'envira_compression_levels', $levels );
	}

	/**
	 * Helper method to get compression enabled for.
	 *
	 * @since 1.9.4
	 *
	 * @return array
	 */
	public function get_compression_enabled() {

		$enabled = [
			[
				'value' => 'disabled',
				'name'  => __( 'Disabled', 'envira-gallery' ),
			],
			[
				'value' => 'envira',
				'name'  => __( 'Only Envira Gallery Images', 'envira-gallery' ),
			],
			[
				'value' => 'all_media',
				'name'  => __( 'All Media Library Images', 'envira-gallery' ),
			],
		];

		return $enabled;
	}
	/**
	 * Adds a Settings Tab
	 *
	 * @since 1.9.2
	 *
	 * @param array $tabs Settings Tabs.
	 * @return array Envira settings tabs.
	 */
	public function tab_nav( $tabs ) {

		$tabs['compression'] = __( 'Compression <span class="beta-feature">Beta</span>', 'envira-gallery' );

		return $tabs;
	}

	/**
	 * Settings Output
	 *
	 * @since 1.9.2
	 *
	 * @return void
	 */
	public function tab_output() {

		$compression_enabled  = envira_get_setting( 'compression_setting', 'disabled' );
		$compression_metadata = envira_get_setting( 'compression_preserve_metadata' );
		$compression_level    = envira_get_setting( 'compression_level', 'lossless' );
		$compression_sizes    = envira_get_setting( 'compression_sizes', [] );

		ob_start(); ?>

		<div id="envira-settings-compression">

			<!-- Settings Form -->
			<form id="envira-media-delete" method="post">
				<table class="form-table">
					<tbody>

						<!-- Title -->
						<tr id="envira-image-gallery-compression-title" class="title">
							<th scope="row" colspan="2">
								<label for="envira-image-compression"><?php esc_html_e( 'Compression', 'envira-gallery' ); ?></label>
							</th>
						</tr>

						<tr id="nvira-enable-compression-box">
							<th scope="row">
								<label for="envira-enable-compression"><?php esc_html_e( 'Enable Image Compression', 'envira-gallery' ); ?></label>
							</th>
							<td>
							<select id="envira-config-image-sort" name="envira_compression_setting" class="envira-chosen" data-envira-chosen-options='{ "disable_search":"true", "width": "100%" }'>
								<?php foreach ( (array) $this->get_compression_enabled() as $i => $data ) : ?>
									<option value="<?php echo esc_html( $data['value'] ); ?>" <?php selected( $data['value'], $compression_enabled ); ?>><?php echo esc_html( $data['name'] ); ?></option>
								<?php endforeach; ?>
							</select>
							</td>
						</tr>

						<tr id="envira-compression-level-box">
							<th scope="row">
								<label for="envira-enable-beta"><?php esc_html_e( 'Compression Levels', 'envira-gallery' ); ?></label>
							</th>
							<td>
								<select id="envira-config-image-sort-dir" name="envira_compression_levels" class="envira-chosen" data-envira-chosen-options='{ "disable_search":"true", "width": "100%" }'>
									<?php foreach ( (array) $this->get_compression_levels() as $i => $data ) : ?>
										<option value="<?php echo esc_html( $data['value'] ); ?>" <?php selected( $data['value'], $compression_level ); ?>><?php echo esc_html( $data['name'] ); ?></option>
									<?php endforeach; ?>
								</select>
								<ul>
									<li><strong>Lossy compression:</strong> Offers the highest level of compression.</li>
									<li><strong>Glossy compression:</strong> Offers an even balance of compression and image quality.</li>
									<li><strong>Lossless compression:</strong> Offers minimal compression for the best image quality.</li>
								</ul>
							</td>
						</tr>
						<tr id="envira-enable-beta-box">
							<th scope="row">
								<label for="envira-enable-compression"><?php esc_html_e( 'Preserve Metadata', 'envira-gallery' ); ?></label>
							</th>
							<td>
								<input name="compression_preserve_metadata" label="envira-enable-compression" type="checkbox" value="1" <?php checked( true, $compression_metadata ); ?> ><label><p class="description"><?php esc_html_e( 'This refers to EXIF/ITPC in your image files, like copyright, camera and lens model, etc.', 'envira-gallery' ); ?></p></label>
							</td>
						</tr>
						<tr id="envira-enable-beta-box">
							<th scope="row">
								<label for="envira-compression-image-sizes"><?php esc_html_e( 'Image Sizes', 'envira-gallery' ); ?></label>
							</th>
							<td>
								<?php
								foreach ( (array) envira_get_image_sizes() as $i => $data ) {

									// Default is a value for dyanmic sizes.
									if ( 'default' === $data['value'] ) {
										continue;
									}

									?>

									<input type="checkbox" name="envira_compression_size[<?php echo esc_html( $data['value'] ); ?>]" <?php checked( true, array_key_exists( $data['value'], $compression_sizes ) ); ?> /><label><?php echo esc_html( $data['name'] ); ?></label>
								<?php } ?>

							</td>
						</tr>

						<?php do_action( 'envira_gallery_settings_compression_box' ); ?>

					</tbody>
				</table>

				<?php wp_nonce_field( 'envira-gallery-compression-nonce', 'envira-gallery-compression-nonce' ); ?>
				<?php submit_button( __( 'Save Settings', 'envira-gallery' ), 'primary', 'envira-gallery-compression-submit', false ); ?>
			</form>
		</div>
		<?php

	  	// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Output already escaped.
		echo ob_get_clean();
	}

	/**
	 * Save Compression Settings
	 *
	 * @since 1.9.2
	 *
	 * @return void
	 */
	public function save_settings() {

		// Check nonce is valid.
		if ( ! isset( $_POST['envira-gallery-compression-nonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['envira-gallery-compression-nonce'] ) ), 'envira-gallery-compression-nonce' ) ) {
			return;
		}

		envira_update_setting( 'compression_setting', isset( $_POST['envira_compression_setting'] ) ? sanitize_text_field( wp_unslash( $_POST['envira_compression_setting'] ) ) : 'disabled' );
		envira_update_setting( 'compression_level', isset( $_POST['envira_compression_levels'] ) ? sanitize_text_field( wp_unslash( $_POST['envira_compression_levels'] ) ) : 'lossless' );
		envira_update_setting( 'compression_preserve_metadata', isset( $_POST['compression_preserve_metadata'] ) ? 1 : 0 );
		envira_update_setting( 'compression_sizes', isset( $_POST['envira_compression_size'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['envira_compression_size'] ) ) : [] );
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit