__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

root@216.73.217.120: ~ $
<?php

namespace Imagely\NGG\Settings;

/**
 * Base class for settings managers
 *
 * Provides common functionality for managing settings with dynamic option handlers,
 * default values, and array access capabilities.
 */
abstract class ManagerBase implements \ArrayAccess {

	/**
	 * The option name used for storing settings
	 *
	 * @var string
	 */
	protected static $option_name = 'ngg_options';

	/**
	 * Array of settings options
	 *
	 * @var array
	 */
	protected $_options = [];

	/**
	 * Array of default values for settings
	 *
	 * @var array
	 */
	protected $_defaults = [];

	/**
	 * Array of option handlers for dynamic options
	 *
	 * @var array
	 */
	protected $_option_handlers = [];

	/**
	 * Saves the settings
	 *
	 * @return void
	 */
	abstract public function save();

	/**
	 * Destroys the settings
	 *
	 * @return void
	 */
	abstract public function destroy();

	/**
	 * Loads the settings
	 *
	 * @return void
	 */
	abstract public function load();

	/**
	 * Constructor
	 */
	protected function __construct() {
		$this->load();
	}

	/**
	 * Adds a class to handle dynamic options
	 *
	 * @param string $klass The class name to handle the option.
	 * @param array  $options Array of option names to be handled by this class.
	 */
	public function add_option_handler( $klass, $options = [] ) {
		if ( ! is_array( $options ) ) {
			$options = [ $options ];
		}
		foreach ( $options as $option_name ) {
			$this->_option_handlers[ $option_name ] = $klass;
		}
	}

	/**
	 * Gets a handler used to provide a dynamic option
	 *
	 * @param string $option_name The option name to get the handler for.
	 * @param string $method The method to check for in the handler.
	 * @return null|mixed
	 */
	protected function _get_option_handler( $option_name, $method = 'get' ) {
		$retval = null;

		if ( isset( $this->_option_handlers[ $option_name ] ) ) {
			if ( ! is_object( $this->_option_handlers[ $option_name ] ) ) {
				$klass                                  = $this->_option_handlers[ $option_name ];
				$this->_option_handlers[ $option_name ] = new $klass();
			}

			$retval = $this->_option_handlers[ $option_name ];

			if ( ! method_exists( $retval, $method ) ) {
				$retval = null;
			}
		}

		return $retval;
	}

	/**
	 * Gets the value of a particular setting
	 *
	 * @param string $key The setting key to retrieve.
	 * @param mixed  $default_value The default value if the setting is not found.
	 * @return mixed
	 */
	public function get( $key, $default_value = null ) {
		$retval = $default_value;

		$handler = $this->_get_option_handler( $key, 'get' );
		if ( $handler ) {
			$retval = $handler->get( $key, $default_value );
		} elseif ( isset( $this->_options[ $key ] ) ) {
			$retval = $this->_options[ $key ];
		}

		// In case a stdObject has been passed in as a value, we want to only return scalar values or arrays.
		if ( is_object( $retval ) ) {
			$retval = (array) $retval;
		}

		return $retval;
	}

	/**
	 * Sets a setting to a particular value
	 *
	 * @param string $key The setting key or an array of key-value pairs.
	 * @param mixed  $value The value to set.
	 * @param bool   $skip_handlers Whether to skip option handlers.
	 * @return mixed
	 */
	public function set( $key, $value = null, $skip_handlers = false ) {
		if ( is_object( $value ) ) {
			$value = (array) $value;
		}

		if ( is_array( $key ) ) {
			foreach ( $key as $k => $v ) {
				$this->set( $k, $v );
			}
		} else {
			$handler = ! $skip_handlers ? $this->_get_option_handler( $key, 'set' ) : false;
			if ( $handler ) {
				$handler->set( $key, $value );
			} else {
				$this->_options[ $key ] = $value;
			}
		}

		return $this;
	}

	/**
	 * Deletes a setting
	 *
	 * @param string $key The setting key to delete.
	 */
	public function delete( $key ) {
		$handler = $this->_get_option_handler( $key, 'delete' );
		if ( $handler ) {
			$handler->delete( $key );
		} else {
			unset( $this->_options[ $key ] );
		}
	}

	/**
	 * Determines if a setting exists or not
	 *
	 * @param string $key The setting key to check.
	 * @return bool
	 */
	public function is_set( $key ) {
		return array_key_exists( $key, $this->_options );
	}

	/**
	 * Alias to is_set()
	 *
	 * @param string $key The setting key to check.
	 * @return bool
	 */
	public function exists( $key ) {
		return $this->is_set( $key );
	}

	/**
	 * Checks if a setting does not exist
	 *
	 * @param string $key The setting key to check.
	 * @return bool
	 */
	public function does_not_exist( $key ) {
		return ! $this->exists( $key );
	}

	/**
	 * Resets all settings and defaults
	 *
	 * @return void
	 */
	public function reset() {
		$this->_options  = [];
		$this->_defaults = [];
	}

	/**
	 * This function does two things:
	 * a) If a value hasn't been set for the specified key, or it's been set to a previously set
	 *    default value, then set this key to the value specified
	 * b) Sets a new default value for this key
	 *
	 * @param string $key The setting key.
	 * @param mixed  $default_value The default value to set.
	 * @return mixed
	 */
	public function set_default_value( $key, $default_value ) {
		if ( ! isset( $this->_defaults[ $key ] ) ) {
			$this->_defaults[ $key ] = $default_value;
		}

		if ( is_null( $this->get( $key, null ) ) || $this->get( $key ) == $this->_defaults[ $key ] ) {
			$this->set( $key, $default_value );
		}

		$this->_defaults[ $key ] = $default_value;

		return $this->get( $key );
	}

	/**
	 * Checks if an offset exists (ArrayAccess implementation)
	 *
	 * @param string $key The offset to check.
	 * @return bool
	 */
	#[\ReturnTypeWillChange]
	public function offsetExists( $key ) {
		return $this->is_set( $key );
	}

	/**
	 * Gets an offset (ArrayAccess implementation)
	 *
	 * @param string $key The offset to retrieve.
	 * @return mixed
	 */
	#[\ReturnTypeWillChange]
	public function offsetGet( $key ) {
		return $this->get( $key );
	}

	/**
	 * Sets an offset (ArrayAccess implementation)
	 *
	 * @param string $key The offset to set.
	 * @param mixed  $value The value to set.
	 * @return mixed
	 */
	#[\ReturnTypeWillChange]
	public function offsetSet( $key, $value ) {
		return $this->set( $key, $value );
	}

	/**
	 * Unsets an offset (ArrayAccess implementation)
	 *
	 * @param string $key The offset to unset.
	 * @return void
	 */
	#[\ReturnTypeWillChange]
	public function offsetUnset( $key ) {
		$this->delete( $key );
	}

	/**
	 * Magic method to get a setting
	 *
	 * @param string $key The setting key.
	 * @return mixed
	 */
	public function __get( $key ) {
		return $this->get( $key );
	}

	/**
	 * Magic method to set a setting
	 *
	 * @param string $key The setting key.
	 * @param mixed  $value The value to set.
	 * @return mixed
	 */
	public function __set( $key, $value ) {
		return $this->set( $key, $value );
	}

	/**
	 * Magic method to check if a setting is set
	 *
	 * @param string $key The setting key.
	 * @return bool
	 */
	public function __isset( $key ) {
		return $this->is_set( $key );
	}

	/**
	 * Converts the settings to a JSON string
	 *
	 * @return string
	 */
	public function __toString() {
		return wp_json_encode( $this->_options );
	}

	/**
	 * Converts the settings to an array
	 *
	 * @return array
	 */
	public function to_array() {
		ksort( $this->_options );
		return $this->_options;
	}

	/**
	 * Converts the settings to a JSON string
	 *
	 * @return string
	 */
	public function to_json() {
		return wp_json_encode( $this->_options );
	}

	/**
	 * Loads settings from a JSON string
	 *
	 * @param string $json The JSON string to load.
	 * @return void
	 */
	public function from_json( $json ) {
		$this->_options = (array) json_decode( $json );
	}
}

Filemanager

Name Type Size Permission Actions
GalleryPathValidation.php File 2.04 KB 0644
GlobalSettings.php File 1.21 KB 0644
Installer.php File 10.42 KB 0644
ManagerBase.php File 7.46 KB 0644
Settings.php File 2.07 KB 0644
Filemanager