Sindbad~EG File Manager

Current Path : /home/frekansk/.trash/wp-content/plugins/wp-ultimate-review/app/
Upload File :
Current File : /home/frekansk/.trash/wp-content/plugins/wp-ultimate-review/app/settings.php

<?php

namespace WurReview\App;

defined('ABSPATH') || exit;

use WurReview\App\Cpt;

/**
 * Class Name : Settings - This access for admin
 * Class Type : Normal class
 *
 * initiate all necessary classes, hooks, configs
 *
 * @since 1.0.0
 * @access Public
 */
class Settings {

	private $post_type;
	private $review_type;
	private $review_style;
	private $page_enable;
	private $settingsName = 'Settings';
	private $settingsTitle = 'Review Settings';


	/**
	 * Construct the cpt object
	 * @since 1.0.0
	 * @access public
	 */
	public function __construct(array $controls, $post_type, array $review_type, array $review_style, array $page_enable) {
		// Declear public controls
		$this->controls = $controls;

		// Declear public post type
		$this->post_type = $post_type;

		// Declear public review type
		$this->review_type = $review_type;

		// Declear public review type 
		$this->review_style = $review_style;

		// Declear publicpage enable

		$this->page_enable = $page_enable;

		// add admin menu of settings
		add_action('admin_menu', [$this, 'wur_add_admin_menu_settings']);

		// Load css file for settings page
		add_action('admin_enqueue_scripts', [$this, 'wur_settings_css_loader']);

		// Load script file for settings page
		add_action('admin_enqueue_scripts', [$this, 'wur_settings_script_loader']);
	}


	/**
	 * Review wur_add_admin_menu_settings
	 * Method Description: Added admin menu for settings page
	 * @since 1.0.0
	 * @access public
	 */
	public function wur_add_admin_menu_settings() {
		// added new sub menu in custom post type
		add_submenu_page(
			'edit.php?post_type=' . $this->post_type . '',
			esc_html__('Review Settings', 'wp-ultimate-review'),
			esc_html__('Settings', 'wp-ultimate-review'),
			'manage_options',
			'xs_settings',
			[$this, 'wur_settings_view']
		);

	}


	/**
	 * Review wur_settings_view.
	 * Method Description: Settings template view page
	 * @since 1.0.0
	 * @access public
	 */
	public function wur_settings_view() {
		$getAdminEmail = get_option('admin_email');

		$message_status = 'hide';
		$message_text   = '';

		/**
		 * Global Setting Section
		 * Global Options Key : xs_review_global
		 * Save data 'wp_options' table
		 */
		$global_setting_optionKey = 'xs_review_global';
		if(isset($_POST['global_setting_review_form'])) {
			$option_value_global_setting = isset($_POST[$global_setting_optionKey]) ? $_POST[$global_setting_optionKey] : array();
			$option_value_global_setting = self::sanitize($option_value_global_setting);
			if(update_option($global_setting_optionKey, $option_value_global_setting, 'Yes')) {
				$message_status = 'show';
				$message_text   = esc_html__('Global Settings', 'wp-ultimate-review');
			}
		}
		// output for global settings
		$return_data_global_setting = get_option($global_setting_optionKey);

		/**
		 * Display Setting Section
		 * Global Options Key : xs_review_display
		 * Save data 'wp_options' table
		 */
		$display_setting_optionKey = 'xs_review_display';
		if(isset($_POST['display_setting_review_form'])) {
			$option_value_global_setting = isset($_POST[$display_setting_optionKey]) ? $_POST[$display_setting_optionKey] : array();
			$option_value_global_setting = self::sanitize($option_value_global_setting);
			if(update_option($display_setting_optionKey, $option_value_global_setting, 'Yes')) {
				$message_status = 'show';
				$message_text   = esc_html__('Display Settings', 'wp-ultimate-review');
			}
		}

		$return_data_display_setting = get_option($display_setting_optionKey, '');

		require_once(WUR_REVIEW_PLUGIN_PATH . 'views/admin/global-settings-html.php');
	}


	/**
	 * Review wur_settings_css_loader .
	 * Method Description: Settings Css Loader
	 * @since 1.0.0
	 * @access public
	 */
	public function wur_settings_css_loader() {
		wp_enqueue_style( 'wur-wp-dashboard', WUR_REVIEW_PLUGIN_URL . 'assets/admin/css/wur-wp-dashboard.css', [], WUR_REVIEW_VERSION );

		wp_enqueue_style('wur_font_style_css', WUR_REVIEW_PLUGIN_URL . 'assets/admin/css/font-style.css');
		wp_register_style('wur_settings_css', WUR_REVIEW_PLUGIN_URL . 'assets/admin/css/admin-settings.css');
		wp_enqueue_style('wur_settings_css');
		wp_enqueue_style('wp-color-picker');
	}


	/**
	 * Review wur_settings_script_loader .
	 * Method Description: Settings Script Loader
	 * @since 1.0.0
	 * @access public
	 */
	public function wur_settings_script_loader() {

		wp_register_script('wur_settings_script1', WUR_REVIEW_PLUGIN_URL . 'assets/admin/script/jquery.form-repeater.js', array('jquery'));
		wp_enqueue_script('wur_settings_script1');

		wp_register_script('wur_settings_script', WUR_REVIEW_PLUGIN_URL . 'assets/admin/script/admin-settings.js', array(
			'jquery',
			'wp-color-picker',
		));
		wp_enqueue_script('wur_settings_script');


	}


	public static function sanitize($value, $senitize_func = 'sanitize_text_field') {
		$senitize_func = (in_array($senitize_func, [
			'sanitize_email',
			'sanitize_file_name',
			'sanitize_hex_color',
			'sanitize_hex_color_no_hash',
			'sanitize_html_class',
			'sanitize_key',
			'sanitize_meta',
			'sanitize_mime_type',
			'sanitize_sql_orderby',
			'sanitize_option',
			'sanitize_text_field',
			'sanitize_title',
			'sanitize_title_for_query',
			'sanitize_title_with_dashes',
			'sanitize_user',
			'esc_url_raw',
			'wp_filter_nohtml_kses',
		])) ? $senitize_func : 'sanitize_text_field';

		if(!is_array($value)) {
			return $senitize_func($value);
		} else {
			return array_map(function($inner_value) use ($senitize_func) {
				return self::sanitize($inner_value, $senitize_func);
			}, $value);
		}
	}


	public static function kses($raw) {

		$allowed_tags = array(
			'a'                             => array(
				'class' => array(),
				'href'  => array(),
				'rel'   => array(),
				'title' => array(),
			),
			'abbr'                          => array(
				'title' => array(),
			),
			'b'                             => array(),
			'blockquote'                    => array(
				'cite' => array(),
			),
			'cite'                          => array(
				'title' => array(),
			),
			'code'                          => array(),
			'del'                           => array(
				'datetime' => array(),
				'title'    => array(),
			),
			'dd'                            => array(),
			'div'                           => array(
				'class' => array(),
				'title' => array(),
				'style' => array(),
			),
			'dl'                            => array(),
			'dt'                            => array(),
			'em'                            => array(),
			'h1'                            => array(
				'class' => array(),
			),
			'h2'                            => array(
				'class' => array(),
			),
			'h3'                            => array(
				'class' => array(),
			),
			'h4'                            => array(
				'class' => array(),
			),
			'h5'                            => array(
				'class' => array(),
			),
			'h6'                            => array(
				'class' => array(),
			),
			'i'                             => array(
				'class' => array(),
			),
			'img'                           => array(
				'alt'    => array(),
				'class'  => array(),
				'height' => array(),
				'src'    => array(),
				'width'  => array(),
			),
			'li'                            => array(
				'class' => array(),
			),
			'ol'                            => array(
				'class' => array(),
			),
			'p'                             => array(
				'class' => array(),
			),
			'q'                             => array(
				'cite'  => array(),
				'title' => array(),
			),
			'span'                          => array(
				'class' => array(),
				'title' => array(),
				'style' => array(),
			),
			'iframe'                        => array(
				'width'       => array(),
				'height'      => array(),
				'scrolling'   => array(),
				'frameborder' => array(),
				'allow'       => array(),
				'src'         => array(),
			),
			'strike'                        => array(),
			'br'                            => array(),
			'strong'                        => array(),
			'data-wow-duration'             => array(),
			'data-wow-delay'                => array(),
			'data-wallpaper-options'        => array(),
			'data-stellar-background-ratio' => array(),
			'ul'                            => array(
				'class' => array(),
			),
		);

		if(function_exists('wp_kses')) { // WP is here
			return wp_kses($raw, $allowed_tags);
		} else {
			return $raw;
		}
	}


	public static function _encode_json($str = '') {
		return json_encode($str, JSON_UNESCAPED_UNICODE);
	}
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists