Merge branch 'master' of git.beeznest.com:minedu-chamilo into origin/master

skala
Yannick Warnier 13 years ago
commit c759f31d0c
  1. 19
      main/exercice/admin.php
  2. 8
      main/exercice/question.class.php
  3. 1
      main/exercice/question_admin.inc.php
  4. 61
      main/exercice/unique_answer.class.php
  5. 20
      main/exercice/unique_answer_image.class.php

@ -84,6 +84,8 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
}
// get vars from GET
if (empty($exerciseId)) {
$exerciseId = isset($_GET['exerciseId'])?intval($_GET['exerciseId']):'0';
@ -181,7 +183,7 @@ if (!is_object($objExercise)) {
// creation of a new exercise if wrong or not specified exercise ID
if ($exerciseId) {
$objExercise->read($exerciseId);
$objExercise->read($exerciseId, false);
}
// saves the object into the session
Session::write('objExercise', $objExercise);
@ -194,8 +196,7 @@ if (!isset($fromExercise) or !$fromExercise) {
$modifyExercise = 'yes';
}
}
$nbrQuestions = $objExercise->selectNbrQuestions();
$nbrQuestions = $objExercise->getQuestionCount();
// Initializes the Question object
if ($editQuestion || $newQuestion || $modifyQuestion || $modifyAnswers) {
@ -563,6 +564,7 @@ if ($inATest) {
}
}
if (isset($_GET['message'])) {
if (in_array($_GET['message'], array('ExerciseStored', 'ItemUpdated', 'ItemAdded'))) {
Display::display_confirmation_message(get_lang($_GET['message']));
@ -581,17 +583,6 @@ if ($newQuestion || $editQuestion) {
// Create/Edit question.
require 'question_admin.inc.php';
}
/*
$q = new \Entity\CQuizQuestion();
$q->setQuestion('test');
$q->setCId(1);
$q->setPonderation(1);
$q->setPosition(1);
$q->setType(1);
$q->setLevel(1);
$q->setParentId(1);
$app['orm.em']->persist($q);
$app['orm.em']->flush();*/
if (isset($_GET['hotspotadmin'])) {
if (!is_object($objQuestion)) {

@ -1457,6 +1457,7 @@ abstract class Question
</script>';
$form->addElement('html', $js);
}
// question name
$form->addElement('text', 'questionName', get_lang('Question'), array('class' => 'span6'));
$form->addRule('questionName', get_lang('GiveQuestion'), 'required');
@ -1485,6 +1486,7 @@ abstract class Question
$form->addElement('hidden', 'myid', $my_id);
if ($this->type != MEDIA_QUESTION) {
if ($this->exercise->fastExerciseEdition == false) {
// Advanced parameters
$form->addElement('advanced_settings', '<a class="btn btn-show advanced_parameters" id="advanced_params" href="javascript://">'.get_lang('AdvancedParameters').'</a>');
@ -1496,11 +1498,13 @@ abstract class Question
$form->addElement('select', 'questionLevel', get_lang('Difficulty'), $select_level);
// Media question.
$course_medias = Question::prepare_course_media_select(api_get_course_int_id());
$form->addElement('select', 'parent_id', get_lang('AttachToMedia'), $course_medias, array('id' => 'parent_id'));
// Categories.
$categoryJS = null;
if (!empty($this->category_list)) {
$trigger = '';
foreach ($this->category_list as $category_id) {
@ -1523,6 +1527,8 @@ abstract class Question
array('id' => 'category_id')
);
// Extra fields. (Injecting question extra fields!)
$extraFields = new ExtraField('question');
$extraFields->addElements($form, $this->id);
@ -1532,6 +1538,7 @@ abstract class Question
}
}
// @todo why we need this condition??
if ($this->setDefaultQuestionValues) {
switch ($answerType) {
@ -1580,6 +1587,7 @@ abstract class Question
if ($this->setDefaultValues) {
$form->setDefaults($defaults);
}
}
/**

@ -59,6 +59,7 @@ if (is_object($objQuestion)) {
$form->freeze();
}
// Form validation
//$result = $objQuestion->allQuestionWithMediaHaveTheSameCategory($exerciseId, 100);

@ -44,22 +44,16 @@ class UniqueAnswer extends Question
*/
public function createAnswersForm($form)
{
// Getting the exercise list
$obj_ex = $this->exercise;
$editor_config = array('ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '125');
//this line define how many question by default appear when creating a choice question
$nb_answers = isset($_POST['nb_answers']) ? (int)$_POST['nb_answers'] : 4; // The previous default value was 2. See task #1759.
// The previous default value was 2. See task #1759.
$nb_answers = isset($_POST['nb_answers']) ? (int)$_POST['nb_answers'] : 4;
$nb_answers += (isset($_POST['lessAnswers']) ? -1 : (isset($_POST['moreAnswers']) ? 1 : 0));
/*
Types of Feedback
$feedback_option[0]=get_lang('Feedback');
$feedback_option[1]=get_lang('DirectFeedback');
$feedback_option[2]=get_lang('NoFeedback');
*/
$feedback_title = '';
$comment_title = '';
@ -73,6 +67,8 @@ class UniqueAnswer extends Question
$feedback_title = '<th width="350px" >'.get_lang('Scenario').'</th>';
}
$html = '<table class="data_table">
<tr style="text-align: center;">
<th width="10px">
@ -102,27 +98,10 @@ class UniqueAnswer extends Question
$nb_answers = $answer->nbrAnswers;
}
}
$form->addElement('hidden', 'nb_answers');
// Feedback SELECT
$question_list = $obj_ex->selectQuestionList();
$select_question = array();
$select_question[0] = get_lang('SelectTargetQuestion');
$form->addElement('hidden', 'nb_answers');
if (is_array($question_list)) {
foreach ($question_list as $key => $questionid) {
//To avoid warning messages
if (!is_numeric($questionid)) {
continue;
}
$question = Question::read($questionid);
if ($question) {
$select_question[$questionid] = 'Q'.$key.' :'.Text::cut($question->selectTitle(), 20);
}
}
}
$select_question[-1] = get_lang('ExitTest');
$list = new LearnpathList(api_get_user_id());
$flat_list = $list->get_flat_list();
@ -140,6 +119,8 @@ class UniqueAnswer extends Question
Display::display_normal_message(get_lang('YouHaveToCreateAtLeastOneAnswer'));
}
for ($i = 1; $i <= $nb_answers; ++$i) {
$form->addElement('html', '<tr>');
if (isset($answer) && is_object($answer)) {
@ -223,6 +204,9 @@ class UniqueAnswer extends Question
$form->addRule('answer['.$i.']', get_lang('ThisFieldIsRequired'), 'required');
if ($obj_ex->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_END) {
// feedback
$form->addElement(
'html_editor',
@ -232,6 +216,29 @@ class UniqueAnswer extends Question
$editor_config
);
} elseif ($obj_ex->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) {
// Feedback SELECT
$question_list = $obj_ex->selectQuestionList();
$select_question = array();
$select_question[0] = get_lang('SelectTargetQuestion');
// @todo improve this loop if you have 5000 questions it will blow!
if (is_array($question_list)) {
foreach ($question_list as $key => $questionid) {
//To avoid warning messages
if (!is_numeric($questionid)) {
continue;
}
$question = Question::read($questionid);
if ($question) {
$select_question[$questionid] = 'Q'.$key.' :'.Text::cut($question->selectTitle(), 20);
}
}
}
$select_question[-1] = get_lang('ExitTest');
$form->addElement(
'html_editor',
'comment['.$i.']',

@ -97,26 +97,6 @@ class UniqueAnswerImage extends UniqueAnswer
}
$form->addElement('hidden', 'nb_answers');
//Feedback SELECT
$question_list = $obj_ex->selectQuestionList();
$select_question = array();
$select_question[0] = get_lang('SelectTargetQuestion');
if (is_array($question_list)) {
foreach ($question_list as $key => $questionid) {
//To avoid warning messages
if (!is_numeric($questionid)) {
continue;
}
$question = Question::read($questionid);
if ($question) {
$select_question[$questionid] = 'Q'.$key.' :'.Text::cut($question->selectTitle(), 20);
}
}
}
$select_question[-1] = get_lang('ExitTest');
$list = new LearnpathList(api_get_user_id());
$flat_list = $list->get_flat_list();
$select_lp_id = array();

Loading…
Cancel
Save