*/ if ( ! function_exists( 'add_filter' ) ) { echo "Hi there! I'm just a part of plugin, not much I can do when called directly."; exit; } if ( ! class_exists( 'Adminimize_Eximport' ) ) : add_action( 'plugins_loaded', array( 'Adminimize_Eximport', 'get_object' ) ); class Adminimize_Eximport { protected static $classobj = NULL; // string for nonce fields static public $nonce_string; public function __construct() { if ( ! is_admin() ) return NULL; self::$nonce_string = '_mw_adminimize_nonce'; if ( isset( $_GET['_mw_adminimize_export'] ) && check_admin_referer( self::$nonce_string ) ) $this->get_export_file(); if ( isset( $_POST['_mw_adminimize_import'] ) && check_admin_referer( self::$nonce_string ) ) $this->import_file(); add_action( 'mw_adminimize_after_settings_form', array( $this, 'get_im_export_part' ) ); } /** * Handler for the action 'init'. Instantiates this class. * * @access public * @since 02/15/2013 * @return $classobj */ public static function get_object() { if ( NULL === self::$classobj ) { self::$classobj = new self; } return self::$classobj; } /** * get markup for ex- and import on settings page * * @access public * @since 2.0.0 * @uses wp_nonce_field * @return string */ public function get_im_export_part() { ?>

'; $xml .= "\n" . '' . "\n"; for ( $i = 0; $i < count( $options['buttons'] ); $i++ ) { $xml .= "\t" . '' . "\n"; foreach( $options['buttons'][$i] as $name => $value ) { $value = stripslashes( $value ); if ( empty( $value ) ) { $xml .= "\t\t" . '<' . $name . '/>' . "\n"; } elseif ( preg_match( '/^[0-9]*$/', $value ) ) { $xml .= "\t\t" . '<' . $name . '>' . $value . '' . "\n"; } else { $xml .= "\t\t" . '<' . $name . '>' . "\n"; } } $xml .= "\t" . '' . "\n"; } $xml .= ''; } else { $xml = 'We dont find settings in database'; } $filename = urlencode( 'addquicktag.' . date('Y-m-d') . '.xml' ); $filesize = strlen( $xml ); $this -> export_xml( $filename, $filesize, $filetype = 'text/xml' ); echo $xml; exit; } /** * Create download file * * @access public * @since 2.0.0 * @param string $filename * @param string $filesize * @param string $filetype * @uses get_option * @return void */ public function export_xml( $filename, $filesize, $filetype ) { header( 'Content-Description: File Transfer' ); header( 'Content-Disposition: attachment; filename=' . $filename ); header( 'Content-Length: ' . $filesize ); header( 'Content-type: ' . $filetype . '; charset=' . get_option('blog_charset'), TRUE ); flush(); } /** * 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!', FB_ADMINIMIZE_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 ); } } // end class endif;