|
| __construct ($a_xml_file, &$test_object) |
| Constructor. More...
|
|
| getQuestionIdMapping () |
|
| setQuestionIdMapping ($question_id_mapping) |
|
| getSrcPoolDefIdMapping () |
|
| setSrcPoolDefIdMapping ($src_pool_def_id_mapping) |
|
| setHandlers ($a_xml_parser) |
| set event handler should be overwritten by inherited class private More...
|
|
| handlerBeginTag ($a_xml_parser, $a_name, $a_attribs) |
| handler for begin of element parser More...
|
|
| handlerEndTag ($a_xml_parser, $a_name) |
| handler for end of element More...
|
|
| handlerParseCharacterData ($a_xml_parser, $a_data) |
| handler for character data More...
|
|
| __construct ($a_xml_file='', $throwException=false) |
| Constructor setup ILIAS global object public. More...
|
|
| setXMLContent ($a_xml_content) |
|
| getXMLContent () |
|
| getInputType () |
|
| startParsing () |
| stores xml data in array More...
|
|
| createParser () |
| create parser More...
|
|
| setOptions ($a_xml_parser) |
| set parser options More...
|
|
| setHandlers ($a_xml_parser) |
| set event handler should be overwritten by inherited class private More...
|
|
| openXMLFile () |
| open xml file More...
|
|
| parse ($a_xml_parser, $a_fp=null) |
| parse xml file More...
|
|
| freeParser ($a_xml_parser) |
| free xml parser handle More...
|
|
| setThrowException ($throwException) |
| set error handling More...
|
|
| __construct ($error_class=null) |
| Constructor. More...
|
|
| _PEAR () |
| Destructor (the emulated type of...). More...
|
|
| registerShutdownFunc ($func, $args=array()) |
| Use this function to register a shutdown method for static classes. More...
|
|
| isError ($data, $code=null) |
| Tell whether a value is a PEAR error. More...
|
|
| expectError ($code=' *') |
| This method is used to tell which errors you expect to get. More...
|
|
| popExpect () |
| This method pops one element off the expected error codes stack. More...
|
|
| _checkDelExpect ($error_code) |
| This method checks unsets an error code if available. More...
|
|
| delExpect ($error_code) |
| This method deletes all occurences of the specified element from the expected error codes stack. More...
|
|
& | raiseError ($message=null, $code=null, $mode=null, $options=null, $userinfo=null, $error_class=null, $skipmsg=false) |
| This method is a wrapper that returns an instance of the configured error class with this object's default error handling applied. More...
|
|
& | throwError ($message=null, $code=null, $userinfo=null) |
| Simpler form of raiseError with fewer options. More...
|
|
| staticPushErrorHandling ($mode, $options=null) |
|
| staticPopErrorHandling () |
|
| pushErrorHandling ($mode, $options=null) |
| Push a new error handler on top of the error handler options stack. More...
|
|
| popErrorHandling () |
| Pop the last error handler used. More...
|
|
| loadExtension ($ext) |
| OS independant PHP extension load. More...
|
|
Test results import parser.
- Author
- Helmut Schottmüller ilias.nosp@m.@aur.nosp@m.ealis.nosp@m..de
- Version
- $Id$
Definition at line 13 of file class.ilTestResultsImportParser.php.
ilTestResultsImportParser::handlerBeginTag |
( |
|
$a_xml_parser, |
|
|
|
$a_name, |
|
|
|
$a_attribs |
|
) |
| |
handler for begin of element parser
Definition at line 86 of file class.ilTestResultsImportParser.php.
References $DIC, $ilDB, $info, $result, $row, fetchAttribute(), fetchLastFinishedPass(), and fetchLastStartedPass().
91 $this->sametag =
false;
92 $this->characterbuffer =
"";
93 $this->depth[$a_xml_parser]++;
94 $this->path[$this->depth[$a_xml_parser]] = strtolower($a_name);
95 $this->qti_element = $a_name;
97 switch (strtolower($a_name)) {
101 switch ($this->table) {
103 if (!$this->user_criteria_checked) {
104 $this->user_criteria_checked =
true;
105 if (
$ilDB->tableColumnExists(
'usr_data', $a_attribs[
'user_criteria'])) {
106 include_once
'./Services/Database/classes/class.ilDBAnalyzer.php';
108 $info = $analyzer->getFieldInformation(
'usr_data');
109 $this->user_criteria_field = $a_attribs[
'user_criteria'];
110 $this->user_criteria_type =
$info[$a_attribs[
'user_criteria']][
'type'];
113 $usr_id = ANONYMOUS_USER_ID;
114 if (strlen($this->user_criteria_field)) {
116 "SELECT usr_id FROM usr_data WHERE " . $this->user_criteria_field .
" = %s",
117 array($this->user_criteria_type),
118 array($a_attribs[$this->user_criteria_field])
122 $usr_id =
$row[
'usr_id'];
125 $next_id =
$ilDB->nextId(
'tst_active');
127 $ilDB->insert(
'tst_active', array(
128 'active_id' => array(
'integer', $next_id),
129 'user_fi' => array(
'integer', $usr_id),
130 'anonymous_id' => array(
'text', strlen($a_attribs[
'anonymous_id']) ? $a_attribs[
'anonymous_id'] : null),
131 'test_fi' => array(
'integer', $this->tst_obj->getTestId()),
132 'lastindex' => array(
'integer', $a_attribs[
'lastindex']),
133 'tries' => array(
'integer', $a_attribs[
'tries']),
134 'submitted' => array(
'integer', $a_attribs[
'submitted']),
135 'submittimestamp' => array(
'timestamp', strlen($a_attribs[
'submittimestamp']) ? $a_attribs[
'submittimestamp'] : null),
136 'tstamp' => array(
'integer', $a_attribs[
'tstamp']),
137 'importname' => array(
'text', $a_attribs[
'fullname']),
140 'answerstatusfilter' => array(
'integer', $this->
fetchAttribute($a_attribs,
'answer_status_filter')),
141 'objective_container' => array(
'integer', $this->
fetchAttribute($a_attribs,
'objective_container'))
143 $this->active_id_mapping[$a_attribs[
'active_id']] = $next_id;
145 case 'tst_test_rnd_qst':
146 $nextId =
$ilDB->nextId(
'tst_test_rnd_qst');
147 $newActiveId = $this->active_id_mapping[$a_attribs[
'active_fi']];
148 $newQuestionId = $this->question_id_mapping[$a_attribs[
'question_fi']];
149 $newSrcPoolDefId = $this->src_pool_def_id_mapping[$a_attribs[
'src_pool_def_fi']];
150 $ilDB->insert(
'tst_test_rnd_qst', array(
151 'test_random_question_id' => array(
'integer', $nextId),
152 'active_fi' => array(
'integer', $newActiveId),
153 'question_fi' => array(
'integer', $newQuestionId),
154 'sequence' => array(
'integer', $a_attribs[
'sequence']),
155 'pass' => array(
'integer', $a_attribs[
'pass']),
156 'tstamp' => array(
'integer', $a_attribs[
'tstamp']),
157 'src_pool_def_fi' => array(
'integer', $newSrcPoolDefId)
160 case 'tst_pass_result':
161 $affectedRows =
$ilDB->manipulateF(
162 "INSERT INTO tst_pass_result (active_fi, pass, points, maxpoints, questioncount, answeredquestions, workingtime, tstamp) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)",
174 $this->active_id_mapping[$a_attribs[
'active_fi']],
175 strlen($a_attribs[
'pass']) ? $a_attribs[
'pass'] : 0,
176 ($a_attribs[
"points"]) ? $a_attribs[
"points"] : 0,
177 ($a_attribs[
"maxpoints"]) ? $a_attribs[
"maxpoints"] : 0,
178 $a_attribs[
"questioncount"],
179 $a_attribs[
"answeredquestions"],
180 ($a_attribs[
"workingtime"]) ? $a_attribs[
"workingtime"] : 0,
185 case 'tst_result_cache':
186 $affectedRows =
$ilDB->manipulateF(
187 "INSERT INTO tst_result_cache (active_fi, pass, max_points, reached_points, mark_short, mark_official, passed, failed, tstamp) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)",
200 $this->active_id_mapping[$a_attribs[
'active_fi']],
201 strlen($a_attribs[
'pass']) ? $a_attribs[
'pass'] : 0,
202 ($a_attribs[
"max_points"]) ? $a_attribs[
"max_points"] : 0,
203 ($a_attribs[
"reached_points"]) ? $a_attribs[
"reached_points"] : 0,
204 strlen($a_attribs[
"mark_short"]) ? $a_attribs[
"mark_short"] :
" ",
205 strlen($a_attribs[
"mark_official"]) ? $a_attribs[
"mark_official"] :
" ",
206 ($a_attribs[
"passed"]) ? 1 : 0,
207 ($a_attribs[
"failed"]) ? 1 : 0,
213 $affectedRows =
$ilDB->insert(
"tst_sequence", array(
214 "active_fi" => array(
"integer", $this->active_id_mapping[$a_attribs[
'active_fi']]),
215 "pass" => array(
"integer", $a_attribs[
'pass']),
216 "sequence" => array(
"clob", $a_attribs[
'sequence']),
217 "postponed" => array(
"text", (strlen($a_attribs[
'postponed'])) ? $a_attribs[
'postponed'] : null),
218 "hidden" => array(
"text", (strlen($a_attribs[
'hidden'])) ? $a_attribs[
'hidden'] : null),
219 "tstamp" => array(
"integer", $a_attribs[
'tstamp'])
222 case 'tst_solutions':
223 $next_id =
$ilDB->nextId(
'tst_solutions');
224 $affectedRows =
$ilDB->insert(
"tst_solutions", array(
225 "solution_id" => array(
"integer", $next_id),
226 "active_fi" => array(
"integer", $this->active_id_mapping[$a_attribs[
'active_fi']]),
227 "question_fi" => array(
"integer", $this->question_id_mapping[$a_attribs[
'question_fi']]),
228 "value1" => array(
"clob", (strlen($a_attribs[
'value1'])) ? $a_attribs[
'value1'] : null),
229 "value2" => array(
"clob", (strlen($a_attribs[
'value2'])) ? $a_attribs[
'value2'] : null),
230 "pass" => array(
"integer", $a_attribs[
'pass']),
231 "tstamp" => array(
"integer", $a_attribs[
'tstamp'])
234 case 'tst_test_result':
235 $next_id =
$ilDB->nextId(
'tst_test_result');
236 $affectedRows =
$ilDB->manipulateF(
237 "INSERT INTO tst_test_result (test_result_id, active_fi, question_fi, points, pass, manual, tstamp) VALUES (%s, %s, %s, %s, %s, %s, %s)",
238 array(
'integer',
'integer',
'integer',
'float',
'integer',
'integer',
'integer'),
239 array($next_id, $this->active_id_mapping[$a_attribs[
'active_fi']], $this->question_id_mapping[$a_attribs[
'question_fi']], $a_attribs[
'points'], $a_attribs[
'pass'], (strlen($a_attribs[
'manual'])) ? $a_attribs[
'manual'] : 0, $a_attribs[
'tstamp'])
243 $next_id =
$ilDB->nextId(
'tst_times');
244 $affectedRows =
$ilDB->manipulateF(
245 "INSERT INTO tst_times (times_id, active_fi, started, finished, pass, tstamp) VALUES (%s, %s, %s, %s, %s, %s)",
246 array(
'integer',
'integer',
'timestamp',
'timestamp',
'integer',
'integer'),
247 array($next_id, $this->active_id_mapping[$a_attribs[
'active_fi']], $a_attribs[
'started'], $a_attribs[
'finished'], $a_attribs[
'pass'], $a_attribs[
'tstamp'])
253 $this->table = $a_name;
fetchLastFinishedPass($attribs)
fetchLastStartedPass($attribs)
fetchAttribute($attributes, $name)
This class gives all kind of DB information using the database manager and reverse module...