-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexerciseExporter.class.php
executable file
·53 lines (43 loc) · 1.71 KB
/
exerciseExporter.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
require_once __DIR__ . '/../../claroline/exercise/lib/exercise.class.php';
require_once __DIR__ . '/../../claroline/exercise/lib/exercise.lib.php';
require_once __DIR__ . '/../../claroline/exercise/lib/question.class.php';
require_once __DIR__ . '/../../claroline/exercise/export/qti2/qti2_export.php';
require_once __DIR__ . '/utils.lib.php';
require_once __DIR__ . '/../../claroline/inc/lib/thirdparty/pclzip/pclzip.lib.php';
class ExerciseExporter
{
private $course;
public function __construct($course)
{
$this->course = $course;
}
public function exportQti(array $data)
{
$exercise = new Exercise();
$exercise->load($data['id']);
$questionList = $exercise->getQuestionList();
$filePathList = array();
//prepare xml file of each question
foreach ($questionList as $question)
{
$quId = $question['id'];
$questionObj = new Qti2Question();
$questionObj->load($quId);
$xml = $questionObj->export();
if (substr($questionObj->questionDirSys, -1) == '/') {
$questionObj->questionDirSys = substr($questionObj->questionDirSys, 0, -1);
}
//save question xml file
if (!file_exists($questionObj->questionDirSys)) {
claro_mkdir($questionObj->questionDirSys, CLARO_FILE_PERMISSIONS);
}
if ($fp = @fopen($questionObj->questionDirSys . "/question_" . $quRank . ".xml", 'w')) {
fwrite ($fp, $xml);
fclose ($fp);
}
$filePathList[] = $questionObj->questionDirSys;
}
return $filePathList;
}
}