/** * Constructor, init on defined hooks of WP and include second class * * @access public * @since 0.0.2 * @uses register_activation_hook, register_uninstall_hook, add_action * @return \Add_Quicktag_Im_Export */ private function __construct() { // textdomain from parent class self::$textdomain = parent::get_textdomain(); self::$option_string = parent::get_option_string(); self::$plugin = parent::get_plugin_string(); self::$post_types_for_js = parent::get_post_types_for_js(); if (isset($_GET['addquicktag_download']) && check_admin_referer(parent::$nonce_string)) { $this->get_export_file(); } //add_action( 'init', array( $this, 'get_export_file' ) ); if (isset($_POST['addquicktag_import']) && check_admin_referer(parent::$nonce_string)) { $this->import_file(); } //add_action( 'init', array( $this, 'import_file' ) ); add_action('addquicktag_settings_page', array($this, 'get_im_export_part')); }
/** * Import XML and update settings * * @access public * @since 2.0.0 * @param string $filename * @uses current_user_can, wp_die, is_plugin_active_for_network, update_site_option, update_option * @return void */ public function import_file($filename = FALSE) { if (!current_user_can('manage_options')) { wp_die(__('Options not update - you don‘t have the privilidges to do this!', parent::get_textdomain())); } // use tmp file if (!$filename) { $filename = $_FILES['xml']['tmp_name']; } $filename = preg_replace("/\\<\\!\\[CDATA\\[(.*?)\\]\\]\\>/ies", "'[CDATA]' . base64_encode('\$1') . '[/CDATA]'", $filename); $filename = utf8_encode($filename); $matches = simplexml_load_file($filename); // create array from xml $button = array(); foreach ($matches->quicktag as $key) { foreach ($key as $value) { $buttons[$value->getName()] = $value; } $button[] = $buttons; } $options['buttons'] = $button; // validate the values from xml $options = parent::validate_settings($options); // update settings in database if (is_multisite() && is_plugin_active_for_network(parent::get_plugin_string())) { update_site_option(parent::get_option_string(), $options); } else { update_option(parent::get_option_string(), $options); } }