<?php
namespace skip\v1_0_0;
class Import_Button extends WP_Fileuploader{
function __construct( $name, $args = array() ) {
global $post, $skip_form_instance_option_group;
$defaults = array(
'id' => substr( md5 ( time() * rand() ), 0, 10 ),
'extra' => '',
'before_element' => '',
'uploader' => 'file',
'after_element' => '',
'option_group' => $skip_form_instance_option_group
);
$args = wp_parse_args( $args, $defaults );
extract( $args , EXTR_SKIP );
$this->id = $id;
$this->delete = TRUE;
$this->insert_attachement = FALSE;
$this->done_import = FALSE;
parent::__construct( $name, $args );
}
function validate_actions( $input ) {
global $skip_form_instance_option_group;
if( $_FILES[ $skip_form_instance_option_group . '_values' ][ 'error' ][ $this->wp_name ] != 0 ) {
$input[ $this->wp_name ] = $this->value;
}else{
$file[ 'tmp_name' ] = $_FILES[ $skip_form_instance_option_group . '_values' ][ 'tmp_name' ][ $this->wp_name ];
$input = import_values( $skip_form_instance_option_group, $file[ 'tmp_name' ] );
}
return $input;
}
function get_html() {
$import_button = form_button( __( 'Import settings', 'skip_framework' ), array( 'name' => 'import_settings' ) );
$this->after_element = $import_button . $this->after_element;
$html = parent::get_html();
return $html;
}
}
function import_values( $option_group, $file_name ) {
if( !file_exists( $file_name ) )
return FALSE;
$file_data = implode ( '', file ( $file_name ) );
$values = unserialize( $file_data );
return $values;
}
function import_button( $name, $args, $return = 'echo' ) {
$import_button = new Import_Button( $name, $args );
return element_return( $import_button, $return );
}