Plugin Directory

Changeset 2352761


Ignore:
Timestamp:
08/04/2020 11:48:47 PM (6 years ago)
Author:
mdedev
Message:
  • Replaced the old import library with a newer Excel parsing library that is faster and has less bugs.
Location:
contest-code-checker
Files:
583 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • contest-code-checker/trunk/README.txt

    r2278925 r2352761  
    44Requires at least: 4.0
    55Tested up to: 5.4.0
    6 Stable tag: 1.1.7
     6Stable tag: 1.1.8
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    6565
    6666== Changelog ==
     67
     68= 1.1.8 =
     69* Replaced the old import library with a newer Excel parsing library that is faster and has less bugs.
    6770
    6871= 1.1.7 =
  • contest-code-checker/trunk/admin/class-contest-code-checker-admin-contest-codes.php

    r1786345 r2352761  
    11<?php
     2use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
     3use Box\Spout\Common\Type;
    24
    35/**
     
    1618 *
    1719 * @package    Contest_Code_Checker
    18  * @subpackage Contest_Code_Checker/admin
     20 * @subpackage Contest_Code_Checker/ad min
    1921 * @author     Mike de Libero <mikede@mde-dev.com>
    2022 */
     
    185187
    186188            set_time_limit(0); // Set the time limit to forever to handle large files being imported...
    187             require(plugin_dir_path( dirname( __FILE__ ) ).'includes/spreadsheet-reader/php-excel-reader/excel_reader2.php');
    188             require(plugin_dir_path( dirname( __FILE__ ) ).'includes/spreadsheet-reader/SpreadsheetReader.php');
    189 
    190             $data = new SpreadsheetReader($_FILES['importFile']['tmp_name'], $_FILES['importFile']['name']);
    191 
    192             foreach($data as $row) {
    193                 if((count($row) > 0) && !empty($row[0])) {
    194                     $code = new CCC_Contest_Codes();
    195                     $data = array();
    196 
    197                     $data['post_title'] = $row[0];
    198 
    199                     if(!empty($row[1])) {
    200                         $data['prize'] = $row[1];
     189
     190            $reader = $this->get_file_type_reader($_FILES['importFile']['name']);
     191            if ( null !== $reader ) {
     192                $reader->open( $_FILES['importFile']['tmp_name'] );
     193                foreach ( $reader->getSheetIterator() as $sheet ) {
     194                    foreach ( $sheet->getRowIterator() as $row ) {
     195                        $tmp_array = $row->getCells();
     196                        if((count($tmp_array) > 0) && !empty($tmp_array[0])) {
     197                            $code = new CCC_Contest_Codes();
     198                            $data = array();
     199
     200                            $data['post_title'] = $tmp_array[0];
     201
     202                            if(!empty($tmp_array[1])) {
     203                                $data['prize'] = $tmp_array[1];
     204                            }
     205
     206                            if(!empty($tmp_array[2])) {
     207                                $data['prizeInformation'] = $tmp_array[2];
     208                            }
     209
     210                            $code->save($data, true);
     211                        } // if ((count($row)...
    201212                    }
    202 
    203                     if(!empty($row[2])) {
    204                         $data['prizeInformation'] = $row[2];
    205                     }
    206 
    207                     $code->save($data, true);
    208                 } // if ((count($row)...
    209             } // foreach($data as $row..
     213                } // foreach ( $reader->getSheetIterator()...
     214            }
    210215        } // nonce check if-statement
    211216    }
     217
     218    /**
     219     * Gets the file type based on the users uploaded extension.
     220     *
     221     * @param  string $file_path The file name that the user uploaded for importing.
     222     * @return object            Null or the Spout type used for parsing the files.
     223     */
     224    private function get_file_type_reader( $file_path ) {
     225        $ext = strtolower( pathinfo( $file_path, PATHINFO_EXTENSION ) );
     226
     227        if ( 'csv' === $ext ) {
     228            return ReaderEntityFactory::createCSVReader();
     229        } elseif ( 'xlsx' === $ext ) {
     230            return ReaderEntityFactory::createXLSXReader();
     231        } elseif ( 'ods' === $ext ) {
     232            return ReaderEntityFactory::createODSReader();
     233        }
     234
     235        return null;
     236    }
    212237}
  • contest-code-checker/trunk/contest-code-checker.php

    r1887857 r2352761  
    44 * @since             1.0.0
    55 * @package           Contest_Code_Checker
    6  * @version 1.1.7
     6 * @version 1.1.8
    77 *
    88 * @wordpress-plugin
     
    1010 * Plugin URI:        https://wordpress.org/plugins/contest-code-checker/
    1111 * Description:       Maintain a list of contest codes and have users check to see if they have won anything
    12  * Version:           1.1.7
     12 * Version:           1.1.8
    1313 * Author:            Swim or Die Software
    1414 * Author URI:        http://www.swimordiesoftware.com
  • contest-code-checker/trunk/includes/class-contest-code-checker.php

    r1495440 r2352761  
    105105         */
    106106        require_once $pluginPath . 'includes/class-contest-code-checker-loader.php';
     107
     108        /* Excel file reader */
     109        require_once $pluginPath . 'includes/spout/src/Spout/Autoloader/autoload.php';
    107110
    108111        /* Data Classes */
Note: See TracChangeset for help on using the changeset viewer.