/home/arranoyd/.trash/otours_b/wp-content/plugins/reamaze/includes/admin/reamaze-admin-settings.php
<?php
/**
 * Reamaze Admin Settings.
 *
 * @author      Reamaze
 * @category    Admin
 * @package     Reamaze/Admin
 * @version     1.1.0
 */

if (!defined('ABSPATH')) {
	exit; // Exit if accessed directly
}

if (!class_exists('Reamaze_Admin_Settings')) :

/**
 * Reamaze_Admin_Settings
 */
class Reamaze_Admin_Settings {
	private static $settings = array();
	private static $errors   = array();
	private static $messages = array();

	/**
	 * Get settings pages
	 */
	public static function get_settings_pages() {
		if (empty(self::$settings)) {
			$settings = array();

			include_once('settings/reamaze-settings-page.php');

			$settings[] = include('settings/reamaze-settings-account.php');
			$settings[] = include('settings/reamaze-settings-widget.php');
			$settings[] = include('settings/reamaze-settings-personal.php');

			self::$settings = $settings;
		}

		return self::$settings;
	}

	/**
	 * Save settings
	 */
	public static function save() {
		global $current_tab;

		if (empty($_REQUEST['_wpnonce']) || ! wp_verify_nonce($_REQUEST['_wpnonce'], 'reamaze-settings')) {
			die(__('Something went wrong. Please try again.', 'reamaze'));
		}

		// Trigger actions
		do_action('reamaze_settings_save_' . $current_tab);
//		do_action('reamaze_update_options_' . $current_tab);
//		do_action('reamaze_update_options');

		self::add_message(__('Settings saved.', 'reamaze'));

//		do_action('reamaze_settings_saved');
	}

	/**
	 * Add a message
	 * @param string $text
	 */
	public static function add_message($text) {
		self::$messages[] = $text;
	}

	/**
	 * Add an error
	 * @param string $text
	 */
	public static function add_error($text) {
		self::$errors[] = $text;
	}

	/**
	 * Output messages + errors
	 * @return string
	 */
	public static function show_messages() {
		if (sizeof(self::$errors) > 0) {
			foreach (self::$errors as $error) {
				echo '<div id="message" class="error fade"><p><strong>' . esc_html($error) . '</strong></p></div>';
			}
		} elseif (sizeof(self::$messages) > 0) {
			foreach (self::$messages as $message) {
				echo '<div id="message" class="updated fade"><p><strong>' . esc_html($message) . '</strong></p></div>';
			}
		}
	}

	/**
	 * Settings page.
	 *
	 * Displays Reamaze Settings Page
	 */
	public static function output() {
		global $current_tab;

		// Include settings pages
		self::get_settings_pages();

		// Get current tab/section
		$current_tab     = empty($_GET['tab']) ? 'account' : sanitize_title($_GET['tab']);

		// Save settings if data has been posted
		if (! empty($_POST)) {
			self::save();
		}

		// Add any posted messages
		if (! empty($_GET['reamaze_error'])) {
			self::add_error(stripslashes($_GET['reamaze_error']));
		}

		if (! empty($_GET['reamaze_message'])) {
			self::add_message(stripslashes($_GET['reamaze_message']));
		}

		self::show_messages();

		// Get tabs for the settings page
		$tabs = apply_filters('reamaze_settings_tabs_array', array());

		include 'views/admin-settings.php';
	}
}

endif;