plugin_url() . '/assets/js/admin/sportspress-admin.js', array( 'jquery', 'chosen', 'jquery-ui-core', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-sortable', 'jquery-tiptip', 'jquery-caret' ), SP_VERSION, true ); } /** * Registered callback function for the WordPress Importer * * Manages the three separate stages of the CSV import process */ function dispatch() { $this->header(); if ( ! empty( $_POST['delimiter'] ) ) $this->delimiter = stripslashes( trim( sanitize_text_field( $_POST['delimiter'] ) ) ); if ( ! $this->delimiter ) $this->delimiter = ','; $step = empty( $_GET['step'] ) ? 0 : (int) $_GET['step']; switch ( $step ): case 0: $this->greet(); break; case 1: check_admin_referer( 'import-upload' ); if ( $this->handle_upload() ): if ( $this->id ) $file = get_attached_file( $this->id ); else $file = ABSPATH . $this->file_url; add_filter( 'http_request_timeout', array( $this, 'bump_request_timeout' ) ); if ( function_exists( 'gc_enable' ) ) gc_enable(); @set_time_limit(0); @ob_flush(); @flush(); $this->table( $file ); endif; break; case 2: check_admin_referer( 'import-upload' ); if ( isset( $_POST['sp_import'] ) ): $columns = array_filter( sp_array_value( $_POST, 'sp_columns', array( 'post_title' ) ) ); $this->import( $_POST['sp_import'], array_values( $columns ) ); endif; break; endswitch; $this->footer(); } /** * dropdown function. * * @access public * @param mixed $file * @return void */ function dropdown( $selected ) { ?> imported = $this->skipped = 0; if ( ! is_file($file) ): $this->footer(); die(); endif; ini_set( 'auto_detect_line_endings', '1' ); if ( ( $handle = fopen( $file, "r" ) ) !== FALSE ): $header = fgetcsv( $handle, 0, $this->delimiter ); if ( sizeof( $header ) >= 1 ): $action = 'admin.php?import=' . $this->import_page . '&step=2'; ?>
options(); ?> columns as $key => $label ): ?> delimiter ) ) !== FALSE ): ?> columns as $key => $label ): $value = sp_array_value( $row, $index ); ?> imported++; endwhile; ?> columns as $key => $label ): ?>
dropdown( $key ); ?>
optionals ) ) { ?> placeholder="">

imported+1, $this->imported+1 ); ?>

' . __( 'Sorry, there has been an error.', 'sportspress' ) . '
'; _e( 'The CSV is invalid.', 'sportspress' ) . '

'; $this->footer(); die(); endif; fclose( $handle ); endif; } /** * format_data_from_csv function. * * @access public * @param mixed $data * @param string $enc * @return string */ function format_data_from_csv( $data, $enc ) { return ( $enc == 'UTF-8' ) ? $data : utf8_encode( $data ); } /** * Handles the CSV upload and initial parsing of the file to prepare for * displaying author import options * * @return bool False if error uploading or invalid file, true otherwise */ function handle_upload() { if ( empty( $_POST['file_url'] ) ) { $file = wp_import_handle_upload(); if ( isset( $file['error'] ) ) { echo '

' . __( 'Sorry, there has been an error.', 'sportspress' ) . '
'; echo esc_html( $file['error'] ) . '

'; return false; } $this->id = (int) $file['id']; } else { if ( file_exists( ABSPATH . $_POST['file_url'] ) ) { $this->file_url = esc_attr( $_POST['file_url'] ); } else { echo '

' . __( 'Sorry, there has been an error.', 'sportspress' ) . '

'; return false; } } return true; } /** * header function. * * @access public * @return void */ function header() { echo '

' . $this->import_label . '

'; } /** * footer function. * * @access public * @return void */ function footer() { echo '
'; } /** * options function. * * @access public * @return void */ function options() { } /** * Added to http_request_timeout filter to force timeout at 60 seconds during import * @param int $val * @return int 60 */ function bump_request_timeout( $val ) { return 60; } } }