Example #1
0
function watupro_import_questions()
{
    global $wpdb;
    $row = 0;
    ini_set("auto_detect_line_endings", true);
    if (($handle = fopen($_FILES['csv']['tmp_name'], "r")) !== FALSE) {
        // select all current questions and answers in the exam. it's required to make fast checks
        // if a given ID exists or not
        $questions = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . WATUPRO_QUESTIONS . " WHERE exam_id=%d", $_GET['quiz']));
        $qids = array(0);
        foreach ($questions as $question) {
            $qids[] = $question->ID;
        }
        $qid_sql = implode(",", $qids);
        // select all answers in the exam
        $answers = $wpdb->get_results("SELECT * FROM " . WATUPRO_ANSWERS . " WHERE question_id IN ({$qid_sql})");
        // select all categories so we can see if given one exists or not
        $cats = $wpdb->get_results("SELECT * FROM " . WATUPRO_QCATS);
        $delimiter = $_POST['delimiter'];
        if ($delimiter == "tab") {
            $delimiter = "\t";
        }
        $csvtype = 'short';
        if (empty($_POST['import_fails'])) {
            while (($data = fgetcsv($handle, 10000, $delimiter)) !== FALSE) {
                $row++;
                if (empty($data)) {
                    continue;
                }
                if (!empty($_POST['skip_title_row']) and $row == 1) {
                    continue;
                }
                watupro_import_question($data, $cats);
            }
            // end while
        } else {
            // the customer says that import fails - let's try the handmade import function
            while (($csv_line = fgets($handle, 10000)) !== FALSE) {
                $row++;
                if (empty($csv_line)) {
                    continue;
                }
                if (!empty($_POST['skip_title_row']) and $row == 1) {
                    continue;
                }
                $data = watupro_parse_csv_line($csv_line);
                watupro_import_question($data, $cats);
            }
            // end while
        }
        fclose($handle);
    }
    // end open file
    wp_redirect("admin.php?page=watupro_questions&quiz={$_GET['quiz']}");
}
Example #2
0
 static function dispatch()
 {
     global $wpdb;
     // select the quiz
     $quiz = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $_GET['id']));
     if (!empty($_POST['watupro_import'])) {
         if (empty($_FILES['csv']['name'])) {
             wp_die(__('Please upload file', 'watupro'));
         }
         $cats = $wpdb->get_results("SELECT * FROM " . WATUPRO_QCATS);
         switch ($_POST['import_format']) {
             case 'simple':
             case 'advanced':
                 $row = 0;
                 ini_set("auto_detect_line_endings", true);
                 $delimiter = $_POST['delimiter'];
                 if ($delimiter == "tab") {
                     $delimiter = "\t";
                 }
                 if (($handle = fopen($_FILES['csv']['tmp_name'], "r")) !== FALSE) {
                     if (empty($_POST['import_fails'])) {
                         while (($data = fgetcsv($handle, 10000, $delimiter)) !== FALSE) {
                             $row++;
                             if (empty($data)) {
                                 continue;
                             }
                             if (!empty($_POST['skip_title_row']) and $row == 1) {
                                 continue;
                             }
                             self::import_question_dispatcher($data, $quiz, $cats);
                         }
                         // end while
                     } else {
                         // the customer says that import fails - let's try the handmade import function
                         while (($csv_line = fgets($handle, 10000)) !== FALSE) {
                             $row++;
                             if (empty($csv_line)) {
                                 continue;
                             }
                             if (!empty($_POST['skip_title_row']) and $row == 1) {
                                 continue;
                             }
                             $data = watupro_parse_csv_line($csv_line);
                             self::import_question_dispatcher($data, $quiz, $cats);
                         }
                         // end while
                     }
                     // end alternate CSV parsing
                     $result = true;
                 } else {
                     $result = false;
                 }
                 break;
             case 'aiken':
                 $row = 0;
                 ini_set("auto_detect_line_endings", true);
                 if (($handle = fopen($_FILES['csv']['tmp_name'], "r")) !== FALSE) {
                     $result = true;
                     self::import_questions_aiken($quiz, $handle);
                 } else {
                     $result = false;
                 }
                 break;
         }
     }
     if (@file_exists(get_stylesheet_directory() . '/watupro/advanced-import.html.php')) {
         require get_stylesheet_directory() . '/watupro/advanced-import.html.php';
     } else {
         require WATUPRO_PATH . "/views/advanced-import.html.php";
     }
 }