示例#1
0
 function getImportArrFromXml($filename)
 {
     $res = array();
     require_once _base_ . '/lib/lib.domxml.php';
     $xml_doc = new DoceboDOMDocument();
     if (!$xml_doc) {
         return FALSE;
     }
     if ($xml_doc->load($filename)) {
         $xpath = new DoceboDOMXPath($xml_doc);
         $cat_info = array();
         $category_node = $xpath->query('/FAQCATEGORY');
         for ($i = 0; $i < $category_node->length; $i++) {
             $item = $category_node->item($i);
             $elem = $xpath->query('TITLE/text()', $item);
             $elemNode = $elem->item(0);
             $cat_info["title"] = urldecode($elemNode->textContent);
             $item = $category_node->item($i);
             $elem = $xpath->query('DESCRIPTION/text()', $item);
             $elemNode = $elem->item(0);
             $cat_info["description"] = urldecode($elemNode->textContent);
             $cat_items = $xpath->query('CATEGORYITEMS/faq', $item);
             $faq_list = array();
             $arr_id = 0;
             for ($iFaq = 0; $iFaq < $cat_items->length; $iFaq++) {
                 $faq = $cat_items->item($iFaq);
                 $elem = $xpath->query('title/text()', $faq);
                 $elemNode = $elem->item(0);
                 $faq_list[$arr_id]["title"] = urldecode($elemNode->textContent);
                 $faq = $cat_items->item($iFaq);
                 $elem = $xpath->query('question/text()', $faq);
                 $elemNode = $elem->item(0);
                 $faq_list[$arr_id]["question"] = urldecode($elemNode->textContent);
                 $faq = $cat_items->item($iFaq);
                 $elem = $xpath->query('keyword/text()', $faq);
                 $elemNode = $elem->item(0);
                 $faq_list[$arr_id]["keyword"] = urldecode($elemNode->textContent);
                 $faq = $cat_items->item($iFaq);
                 $elem = $xpath->query('answer/text()', $faq);
                 $elemNode = $elem->item(0);
                 $faq_list[$arr_id]["answer"] = urldecode($elemNode->textContent);
                 $arr_id++;
             }
         }
     } else {
         return FALSE;
     }
     $res["cat_info"] = $cat_info;
     $res["faq_list"] = $faq_list;
     return $res;
 }
示例#2
0
 function importQuestionFromXml($filename)
 {
     require_once _base_ . '/lib/lib.domxml.php';
     // initialize DOM class
     $xml_doc = new DoceboDOMDocument();
     if (!$xml_doc) {
         return false;
     }
     if (!$xml_doc->load($filename)) {
         return false;
     }
     if (!($xpath = new DoceboDOMXPath($xml_doc))) {
         return false;
     }
     // get all the question in the document
     $NodeList_question = $xpath->query('/question_collection/question');
     $seq = $this->getMaxSequence() + 1;
     $page = $this->_getPageNumber();
     for ($i = 0; $i < $NodeList_question->length; $i++) {
         $quest = $NodeList_question->item($i);
         // read text quest
         $xre_quest_text = $xpath->query('prompt/text()', $quest);
         $node_quest_text = $xre_quest_text->item(0);
         //$node_quest_text->textContent // contains the question
         //insert the new question
         $ins_query = "\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_testquest \r\n\t\t\t( idTest, idCategory, type_quest, title_quest, difficult, time_assigned, sequence, page ) VALUES \r\n\t\t\t( \t'" . $this->id_test . "', \r\n\t\t\t\t'0', \r\n\t\t\t\t'choice', \r\n\t\t\t\t'" . addslashes($node_quest_text->textContent) . "',\r\n\t\t\t\t'3', \r\n\t\t\t\t'0', \r\n\t\t\t\t'" . ($seq + $i) . "', \r\n\t\t\t\t'" . $page . "' ) ";
         if (!sql_query($ins_query)) {
             return false;
         }
         list($id_quest) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()"));
         if (!$id_quest) {
             return false;
         }
         $re = true;
         // find all the answer
         $NodeList_answer = $xpath->query('answers/answer', $quest);
         for ($j = 0; $j < $NodeList_answer->length; $j++) {
             $answer = $NodeList_answer->item($j);
             $is_correct = $answer->getAttribute('is_correct');
             $score_if_correct = $answer->getAttribute('score_if_correct');
             $score_if_error = $answer->getAttribute('score_if_error');
             //$answer->textContent
             $ins_answer_query = "\r\n\t\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_testquestanswer \r\n\t\t\t\t( idQuest, is_correct, answer, comment, score_correct, score_incorrect ) VALUES\r\n\t\t\t\t( \t'" . $id_quest . "', \r\n\t\t\t\t\t'" . ($is_correct == 'true' ? 1 : 0) . "', \r\n\t\t\t\t\t'" . addslashes($answer->textContent) . "', \r\n\t\t\t\t\t'', \r\n\t\t\t\t\t'" . (double) $score_if_correct . "', \r\n\t\t\t\t\t'" . (double) $score_if_error . "') ";
             if (!sql_query($ins_answer_query)) {
                 $re = false;
             }
         }
         echo '-------------------------------<br/><br/>';
     }
     return $re;
 }