_options = &$nix_options; $this->processExport(); // Add WP hooks add_action('admin_head', array($this, 'addThemeScripts'), 2); add_action('admin_head', array($this, 'addThemeStyles'), 3); add_action('admin_menu', array($this, 'addMenuItem')); } /** * Admin modules - tabs on Customize page * * @access private * @var array */ private $_admin_modules = array(); /** * Add admin module - tabs on Customize page * * @param $id : string - Module id * @param $module : array - meta info * @access public */ static function addModule($id, $module) { $inst = self::getInstance(); if (array_key_exists($id, $inst->_admin_modules)) { throw new Exception('Module with same id already exists'); } $inst->_admin_modules[$id] = $module; } /** * Gets an instance of this singleton. If no instance exists, a new instance * is created and returned. If one does exist, then the existing instance is returned. */ public static function getInstance() { static $_instance = null; if ($_instance === null) { $class = __CLASS__; $_instance = new $class(); } return $_instance; } /** * add scripts by wp_head hook * * @return void */ function addThemeScripts() { wp_enqueue_script('jquery-ui', NIX_DIRECTORY_URI .'/admin/js/jquery-ui.js', 'jquery'); wp_enqueue_script('nix-settings', NIX_DIRECTORY_URI .'/admin/js/settings.js', 'jquery'); wp_enqueue_script('nix-messages', NIX_DIRECTORY_URI .'/admin/js/messages.js', 'jquery'); wp_enqueue_script('nix-colorpicker', NIX_DIRECTORY_URI .'/admin/js/jquery.nix-colorpicker.js', 'jquery'); wp_enqueue_script('js_quicktags', NIX_DIRECTORY_URI .'/admin/js/js_quicktags.js'); //wp_enqueue_script('quicktags'); wp_print_scripts(); } /** * add styles by wp_head hook * * @return void */ function addThemeStyles() { if (isset($_GET['page']) && ($_GET['page'] === 'functions.php')) { wp_enqueue_style('jquery-ui',NIX_DIRECTORY_URI .'/admin/css/jquery-ui.css'); } wp_enqueue_style('nix-settings', NIX_DIRECTORY_URI .'/admin/css/settings.css'); wp_enqueue_style('colorpicker', NIX_DIRECTORY_URI .'/admin/css/colorpicker.css'); wp_print_styles(); } /** * Add configuration page */ function addMenuItem() { session_start(); if ( isset( $_GET['page'] ) && $_GET['page'] == "functions.php" ) { if ( isset( $_REQUEST['action'] ) && 'save' == $_REQUEST['action'] ) { check_admin_referer('nix'); if (isset($_REQUEST['options']) || count($_FILES['options'])) { // Merge Configuration global $nix_options; $options = get_option(NIX_OPTION_KEY) or $options = $nix_options; $data = formsGenerator::save($options, 'options'); // Saving update_option(NIX_OPTION_KEY, $data); } // show text message $module = isset($_REQUEST['mod']) ? '&mod='.$_REQUEST['mod'] : ''; wp_redirect("themes.php?page=functions.php&saved=true$module"); die; } } add_theme_page(__('Customize Theme', 'nix'), __('Customize', 'nix'), 'edit_themes', 'functions.php', array($this, 'getAdminPage')); } /** * Render admin page * * @return string */ function getAdminPage() { require_once NIX_DIRECTORY . '/admin/modules/init.php'; /*@var $options array*/ $options = $this->_options; ?>

'.__('Options saved.').'

'; } if ( isset( $_SESSION['nix-errors']) && !empty ($_SESSION['nix-errors'])) { echo '
'; echo '

'.__('Errors', 'nix').'

'; foreach ($_SESSION['nix-errors'] as $error) { echo "

{$error}

"; } echo '
'; unset ($_SESSION['nix-errors']); } ?>
_admin_modules as $id => $module) : ?>
getAutosaveModule($id, $module); break; ?> getAutoformModule($id, $module); break; ?>
_options; ?>

_options; ?>

'wpnf-export', 'options' => $this->_options); echo serialize($res); exit; } } } }