commit
d2c535cbf9
@ -0,0 +1,62 @@ |
||||
<?php //$id$
|
||||
/** |
||||
* This script contains the data to fill (or empty) the database with using |
||||
* the fillers in this directory. |
||||
* @author Yannick Warnier <yannick.warnier@dokeos.com> |
||||
* |
||||
*/ |
||||
/** |
||||
* Initialisation section |
||||
*/ |
||||
|
||||
$courses = array(); |
||||
$courses[] = array( |
||||
'code' => 'ENGLISH101', |
||||
'title' => 'English for beginners', |
||||
'description' => 'English course', |
||||
'category_code' => 'PROJ', |
||||
'course_language' => 'english', |
||||
'user_id' => 1, |
||||
'expiration_date' => '2020-09-01 00:00:00', |
||||
'exemplary_content' => true, |
||||
'exes' => array( |
||||
'exe' => array( |
||||
'title' => 'Demo', |
||||
'time' => 180, |
||||
'attempts' => 1, |
||||
'random' => 100, |
||||
'pass_percentage' => 70, |
||||
'review_answers' => 1, |
||||
), |
||||
), |
||||
); |
||||
$qst = array( |
||||
0 => array( |
||||
'title' => 'Demo question', |
||||
'desc' => 'What do you think about XYZ?', |
||||
'type' => 1, //1=Unique answer, see question.class.php |
||||
'answers' => array( |
||||
0 => array ( |
||||
'title' => 'A', |
||||
'correct' => 1, |
||||
'score' => 1, |
||||
), |
||||
1 => array ( |
||||
'title' => 'B', |
||||
'correct' => 0, |
||||
'score' => 0, |
||||
), |
||||
2 => array ( |
||||
'title' => 'C', |
||||
'correct' => 0, |
||||
'score' => 0, |
||||
), |
||||
3 => array ( |
||||
'title' => 'D', |
||||
'correct' => 0, |
||||
'score' => 0, |
||||
), |
||||
|
||||
), |
||||
), |
||||
); |
@ -0,0 +1,83 @@ |
||||
<?php |
||||
/** |
||||
* This script contains a data filling procedure for an exercise |
||||
* @author Yannick Warnier <yannick.warnier@beeznest.com> |
||||
* |
||||
*/ |
||||
/** |
||||
* Initialisation section |
||||
*/ |
||||
/** |
||||
* Loads the data and injects it into the Chamilo database, using the Chamilo |
||||
* internal functions. |
||||
* @return array List of user IDs for the users that have just been inserted |
||||
*/ |
||||
function fill_exe() { |
||||
$qc = 5000; //how many questions to create per exercise |
||||
$eol = PHP_EOL; |
||||
$courses = array(); //declare only to avoid parsing notice |
||||
$qst = array(); |
||||
require_once 'data_exe.php'; //fill the $users array |
||||
$output = array(); |
||||
$output[] = array('title'=>'Exe Filling Report: '); |
||||
$i = 1; |
||||
$lib = api_get_path(SYS_CODE_PATH); |
||||
require_once $lib.'exercice/exercise.class.php'; |
||||
require_once $lib.'exercice/question.class.php'; |
||||
require_once $lib.'exercice/answer.class.php'; |
||||
require_once $lib.'exercice/exercise.lib.php'; |
||||
foreach ($courses as $i => $course) { |
||||
$res = 0; |
||||
//first check that the first item doesn't exist already |
||||
$output[$i]['line-init'] = $course['title']; |
||||
$res = CourseManager::create_course($course); |
||||
$output[$i]['line-info'] = ($res ? $res : get_lang('NotInserted')); |
||||
$i++; |
||||
if (is_array($res)) { |
||||
//now insert an exercise |
||||
foreach ($course['exes'] as $exe) { |
||||
$objExercise = new Exercise(); |
||||
$objExercise->id = 0; |
||||
$objExercise->course_id = $res['real_id']; |
||||
$objExercise->exercise = $exe['title']; |
||||
$objExercise->type = 1; |
||||
$objExercise->attempts = $exe['attempts']; |
||||
$objExercise->random = $exe['random']; |
||||
$objExercise->active = 1; |
||||
$objExercise->propagate_neg = 0; |
||||
$objExercise->pass_percentage = $exe['pass_percentage']; |
||||
$objExercise->session_id = 0; |
||||
$objExercise->results_disabled = 0; |
||||
$objExercise->expired_time = $exe['time']; |
||||
$objExercise->review_answers = $exe['review_answers']; |
||||
$objExercise->save(); |
||||
$id = $objExercise->id; |
||||
if (!empty($id)) { |
||||
$qi = 0; |
||||
while ($qi < $qc) { |
||||
foreach ($qst as $q) { |
||||
error_log('Created '.$qi.' questions'); |
||||
$question = Question::getInstance($q['type']); |
||||
$question->id = 0; |
||||
$question->question = $q['title'].' '.$qi; |
||||
$question->description = $q['desc']; |
||||
$question->type = $q['type']; |
||||
$question->course = $res; |
||||
$r = $question->save($id); |
||||
if ($r === false) { continue; } |
||||
$qid = $question->id; |
||||
$aid = 1; |
||||
foreach ($q['answers'] as $asw) { |
||||
$answer = new UniqueAnswer($qid); |
||||
$answer->create_answer($aid,$qid,$asw['title'],'',$asw['score'],$asw['correct'], $res['real_id']); |
||||
$aid++; |
||||
} |
||||
$qi++; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
return $output; |
||||
} |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue