diff --git a/main/exercise/Annotation.php b/main/exercise/Annotation.php index 3804336f1a..49c91690a3 100644 --- a/main/exercise/Annotation.php +++ b/main/exercise/Annotation.php @@ -34,7 +34,12 @@ class Annotation extends Question { parent::createForm($form, $fck_config); - $form->addElement('number', 'weighting', get_lang('Weighting'), ['step' => '0.1']); + $form->addElement( + 'number', + 'weighting', + get_lang('Weighting'), + ['step' => '0.1'] + ); if (!empty($this->id)) { $form->setDefaults(array('weighting' => float_format($this->weighting, 1))); @@ -55,14 +60,26 @@ class Annotation extends Question 'imageUpload', array( Display::img( - Display::return_icon('annotation.png', null, null, ICON_SIZE_BIG, false, true) + Display::return_icon( + 'annotation.png', + null, + null, + ICON_SIZE_BIG, + false, + true + ) ), get_lang('UploadJpgPicture'), ) ); $form->addButtonSave(get_lang('GoToQuestion'), 'submitQuestion'); - $form->addRule('imageUpload', get_lang('OnlyImagesAllowed'), 'filetype', array('jpg', 'jpeg', 'png', 'gif')); + $form->addRule( + 'imageUpload', + get_lang('OnlyImagesAllowed'), + 'filetype', + array('jpg', 'jpeg', 'png', 'gif') + ); $form->addRule('imageUpload', get_lang('NoImage'), 'uploadedfile'); } @@ -92,7 +109,7 @@ class Annotation extends Question /** * @param FormValidator $form */ - function createAnswersForm($form) + public function createAnswersForm($form) { // nothing } @@ -100,7 +117,7 @@ class Annotation extends Question /** * @param FormValidator $form */ - function processAnswersCreation($form) + public function processAnswersCreation($form) { $this->weighting = $form->getSubmitValue('weighting'); $this->save(); diff --git a/main/exercise/Draggable.php b/main/exercise/Draggable.php index c1eeb99b9a..1c19295a21 100644 --- a/main/exercise/Draggable.php +++ b/main/exercise/Draggable.php @@ -57,7 +57,6 @@ class Draggable extends Question if (count($answer->nbrAnswers) > 0) { $nb_matches = $nb_options = 0; - for ($i = 1; $i <= $answer->nbrAnswers; $i++) { if ($answer->isCorrect($i)) { $nb_matches++; @@ -107,7 +106,6 @@ class Draggable extends Question for ($i = 1; $i <= $nb_matches; ++$i) { $renderer = &$form->defaultRenderer(); - $renderer->setElementTemplate( '{error}{element}', "answer[$i]" diff --git a/main/exercise/adminhp.php b/main/exercise/adminhp.php index 6aaf5a5a2d..2ccb191b32 100755 --- a/main/exercise/adminhp.php +++ b/main/exercise/adminhp.php @@ -2,9 +2,9 @@ /* For licensing terms, see /license.txt */ /** -* HotPotatoes administration. -* @package chamilo.exercise -* @author Istvan Mandak + * HotPotatoes administration. + * @package chamilo.exercise + * @author Istvan Mandak */ require_once __DIR__.'/../inc/global.inc.php'; @@ -27,10 +27,10 @@ $is_allowedToEdit = api_is_allowed_to_edit(null, true); $documentPath=api_get_path(SYS_COURSE_PATH).$_course['path'].'/document'; // picture path -$picturePath=$documentPath.'/images'; +$picturePath = $documentPath.'/images'; // audio path -$audioPath=$documentPath.'/audio'; +$audioPath = $documentPath.'/audio'; // Database table definitions if (!$is_allowedToEdit) { @@ -56,13 +56,10 @@ Display::display_header($nameTools,"Exercise"); /** @todo probably wrong !!!! */ require_once api_get_path(SYS_CODE_PATH).'/exercise/hotpotatoes.lib.php'; - ?> -

- array_shift($parts) ]; - $data['answers']['texts'][] = $text + Geometry::decodePoint($parts[0]); break; } diff --git a/main/exercise/answer.class.php b/main/exercise/answer.class.php index a7878fc5f0..635fdfe67f 100755 --- a/main/exercise/answer.class.php +++ b/main/exercise/answer.class.php @@ -39,8 +39,8 @@ class Answer public $new_destination; // id of the next question if feedback option is set to Directfeedback public $course; //Course information public $iid; - public $questionJSId; - public $standalone; + public $questionJSId; + public $standalone; /** * constructor of the class @@ -186,34 +186,34 @@ class Answer } return $id; - } + } /** * Reads answer information from the data base ordered by parameter - * @param string Field we want to order by - * @param string DESC or ASC - * @param string $field - * @author Frederic Vauthier + * @param string $field Field we want to order by + * @param string $order DESC or ASC + * + * @author Frederic Vauthier */ public function readOrderedBy($field, $order = 'ASC') { - $field = Database::escape_string($field); - if (empty($field)) { - $field = 'position'; - } + $field = Database::escape_string($field); + if (empty($field)) { + $field = 'position'; + } - if ($order != 'ASC' && $order != 'DESC') { - $order = 'ASC'; - } + if ($order != 'ASC' && $order != 'DESC') { + $order = 'ASC'; + } - $TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER); - $TBL_QUIZ = Database::get_course_table(TABLE_QUIZ_QUESTION); - $questionId = intval($this->questionId); + $TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER); + $TBL_QUIZ = Database::get_course_table(TABLE_QUIZ_QUESTION); + $questionId = intval($this->questionId); - $sql = "SELECT type FROM $TBL_QUIZ - WHERE c_id = {$this->course_id} AND id = $questionId"; - $result_question = Database::query($sql); - $questionType = Database::fetch_array($result_question); + $sql = "SELECT type FROM $TBL_QUIZ + WHERE c_id = {$this->course_id} AND id = $questionId"; + $result_question = Database::query($sql); + $questionType = Database::fetch_array($result_question); if ($questionType['type'] == DRAGGABLE) { // Random is done by submit.js.tpl @@ -222,32 +222,32 @@ class Answer return true; } - $sql = "SELECT - answer, - correct, - comment, - ponderation, - position, - hotspot_coordinates, - hotspot_type, - destination, - id_auto, + $sql = "SELECT + answer, + correct, + comment, + ponderation, + position, + hotspot_coordinates, + hotspot_type, + destination, + id_auto, iid FROM $TBL_ANSWER WHERE c_id = {$this->course_id} AND question_id='".$questionId."' ORDER BY $field $order"; - $result = Database::query($sql); - - $i = 1; - // while a record is found - $doubt_data = null; - while ($object = Database::fetch_object($result)) { - if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && $object->position == 666) { - $doubt_data = $object; + $result = Database::query($sql); + + $i = 1; + // while a record is found + $doubt_data = null; + while ($object = Database::fetch_object($result)) { + if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && $object->position == 666) { + $doubt_data = $object; continue; - } + } $this->answer[$i] = $object->answer; $this->correct[$i] = $object->correct; $this->comment[$i] = $object->comment; @@ -259,9 +259,9 @@ class Answer $this->autoId[$i] = $object->id_auto; $this->iid[$i] = $object->iid; $i++; - } + } - if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && !empty($doubt_data)) { + if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && !empty($doubt_data)) { $this->answer[$i] = $doubt_data->answer; $this->correct[$i] = $doubt_data->correct; $this->comment[$i] = $doubt_data->comment; @@ -273,88 +273,88 @@ class Answer $this->autoId[$i] = $doubt_data->id_auto; $this->iid[$i] = $doubt_data->iid; $i++; - } + } $this->nbrAnswers = $i - 1; - } - - /** - * returns the autoincrement id identificator - * - * @author Juan Carlos Ra�a - * @return integer - answer num - */ + } + + /** + * returns the autoincrement id identificator + * + * @author Juan Carlos Ra�a + * @return integer - answer num + */ public function selectAutoId($id) { - return isset($this->autoId[$id]) ? $this->autoId[$id] : 0; - } - - /** - * returns the number of answers in this question - * - * @author Olivier Brouckaert - * @return integer - number of answers - */ - public function selectNbrAnswers() + return isset($this->autoId[$id]) ? $this->autoId[$id] : 0; + } + + /** + * returns the number of answers in this question + * + * @author Olivier Brouckaert + * @return integer - number of answers + */ + public function selectNbrAnswers() { - return $this->nbrAnswers; - } - - /** - * returns the question ID which the answers belong to - * - * @author Olivier Brouckaert - * @return integer - the question ID - */ - public function selectQuestionId() + return $this->nbrAnswers; + } + + /** + * returns the question ID which the answers belong to + * + * @author Olivier Brouckaert + * @return integer - the question ID + */ + public function selectQuestionId() { - return $this->questionId; - } - - /** - * returns the question ID of the destination question - * - * @author Julio Montoya - * @param integer $id - * @return integer - the question ID - */ - public function selectDestination($id) + return $this->questionId; + } + + /** + * returns the question ID of the destination question + * + * @author Julio Montoya + * @param integer $id + * @return integer - the question ID + */ + public function selectDestination($id) + { + return isset($this->destination[$id]) ? $this->destination[$id] : null; + } + + /** + * returns the answer title + * + * @author Olivier Brouckaert + * @param - integer $id - answer ID + * @return string - answer title + */ + public function selectAnswer($id) { - return isset($this->destination[$id]) ? $this->destination[$id] : null; - } + return isset($this->answer[$id]) ? $this->answer[$id] : null; + } /** - * returns the answer title - * - * @author Olivier Brouckaert - * @param - integer $id - answer ID - * @return string - answer title - */ - public function selectAnswer($id) - { - return isset($this->answer[$id]) ? $this->answer[$id] : null; - } - - /** - * return array answer by id else return a bool - * @param integer $auto_id - */ - public function selectAnswerByAutoId($auto_id) - { - $TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER); - - $auto_id = intval($auto_id); - $sql = "SELECT id, answer, id_auto FROM $TBL_ANSWER - WHERE c_id = {$this->course_id} AND id_auto='$auto_id'"; - $rs = Database::query($sql); - - if (Database::num_rows($rs) > 0) { - $row = Database::fetch_array($rs, 'ASSOC'); - - return $row; - } - - return false; - } + * return array answer by id else return a bool + * @param integer $auto_id + */ + public function selectAnswerByAutoId($auto_id) + { + $TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER); + + $auto_id = intval($auto_id); + $sql = "SELECT id, answer, id_auto FROM $TBL_ANSWER + WHERE c_id = {$this->course_id} AND id_auto='$auto_id'"; + $rs = Database::query($sql); + + if (Database::num_rows($rs) > 0) { + $row = Database::fetch_array($rs, 'ASSOC'); + + return $row; + } + + return false; + } /** * returns the answer title from an answer's position @@ -363,18 +363,18 @@ class Answer * @param - integer $id - answer ID * @return bool - answer title */ - public function selectAnswerIdByPosition($pos) - { - foreach ($this->position as $k => $v) { - if ($v != $pos) { - continue; - } + public function selectAnswerIdByPosition($pos) + { + foreach ($this->position as $k => $v) { + if ($v != $pos) { + continue; + } - return $k; - } + return $k; + } - return false; - } + return false; + } /** * Returns a list of answers @@ -383,18 +383,25 @@ class Answer * of (id, answer, comment, grade) and grade=weighting */ public function getAnswersList($decode = false) - { - $list = array(); - for ($i = 1; $i <= $this->nbrAnswers; $i++) { - if (!empty($this->answer[$i])) { - - //Avoid problems when parsing elements with accents - if ($decode) { - $this->answer[$i] = api_html_entity_decode($this->answer[$i], ENT_QUOTES, api_get_system_encoding()); - $this->comment[$i] = api_html_entity_decode($this->comment[$i], ENT_QUOTES, api_get_system_encoding()); - } - - $list[] = array( + { + $list = array(); + for ($i = 1; $i <= $this->nbrAnswers; $i++) { + if (!empty($this->answer[$i])) { + //Avoid problems when parsing elements with accents + if ($decode) { + $this->answer[$i] = api_html_entity_decode( + $this->answer[$i], + ENT_QUOTES, + api_get_system_encoding() + ); + $this->comment[$i] = api_html_entity_decode( + $this->comment[$i], + ENT_QUOTES, + api_get_system_encoding() + ); + } + + $list[] = array( 'id' => $i, 'answer' => $this->answer[$i], 'comment' => $this->comment[$i], @@ -402,138 +409,137 @@ class Answer 'hotspot_coord' => $this->hotspot_coordinates[$i], 'hotspot_type' => $this->hotspot_type[$i], 'correct' => $this->correct[$i], - 'destination' => $this->destination[$i] - ); + 'destination' => $this->destination[$i], + ); } - } + } - return $list; - } + return $list; + } - /** - * Returns a list of grades - * @author Yannick Warnier - * @return array List of grades where grade=weighting (?) - */ + /** + * Returns a list of grades + * @author Yannick Warnier + * @return array List of grades where grade=weighting (?) + */ public function getGradesList() - { - $list = array(); - for ($i = 0; $i < $this->nbrAnswers; $i++) { - if (!empty($this->answer[$i])) { - $list[$i] = $this->weighting[$i]; - } - } - return $list; - } - - /** - * Returns the question type - * @author Yannick Warnier - * @return integer The type of the question this answer is bound to - */ + { + $list = array(); + for ($i = 0; $i < $this->nbrAnswers; $i++) { + if (!empty($this->answer[$i])) { + $list[$i] = $this->weighting[$i]; + } + } + + return $list; + } + + /** + * Returns the question type + * @author Yannick Warnier + * @return integer The type of the question this answer is bound to + */ public function getQuestionType() - { - $TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION); - $sql = "SELECT type FROM $TBL_QUESTIONS - WHERE c_id = {$this->course_id} AND id = '".$this->questionId."'"; - $res = Database::query($sql); - if (Database::num_rows($res) <= 0) { - return null; - } - $row = Database::fetch_array($res); - - return $row['type']; - } - - - /** - * tells if answer is correct or not - * - * @author Olivier Brouckaert - * @param - integer $id - answer ID - * @return integer - 0 if bad answer, not 0 if good answer - */ + { + $TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION); + $sql = "SELECT type FROM $TBL_QUESTIONS + WHERE c_id = {$this->course_id} AND id = '".$this->questionId."'"; + $res = Database::query($sql); + if (Database::num_rows($res) <= 0) { + return null; + } + $row = Database::fetch_array($res); + + return $row['type']; + } + + + /** + * tells if answer is correct or not + * + * @author Olivier Brouckaert + * @param - integer $id - answer ID + * @return integer - 0 if bad answer, not 0 if good answer + */ public function isCorrect($id) - { - return isset($this->correct[$id]) ? $this->correct[$id] : null; - } - - /** - * returns answer comment - * - * @author Olivier Brouckaert - * @param - integer $id - answer ID - * @return string - answer comment - */ + { + return isset($this->correct[$id]) ? $this->correct[$id] : null; + } + + /** + * returns answer comment + * + * @author Olivier Brouckaert + * @param - integer $id - answer ID + * @return string - answer comment + */ public function selectComment($id) - { + { return isset($this->comment[$id]) ? $this->comment[$id] : null; - } - - /** - * returns answer weighting - * - * @author Olivier Brouckaert - * @param - integer $id - answer ID - * @param integer $id - * @return integer - answer weighting - */ + } + + /** + * returns answer weighting + * + * @author Olivier Brouckaert + * @param - integer $id - answer ID + * @param integer $id + * @return integer - answer weighting + */ public function selectWeighting($id) - { - return isset($this->weighting[$id]) ? $this->weighting[$id] : null; - } - - /** - * returns answer position - * - * @author Olivier Brouckaert - * @param - integer $id - answer ID - * @return integer - answer position - */ - function selectPosition($id) - { - return isset($this->position[$id]) ? $this->position[$id] : null; - } - - /** - * returns answer hotspot coordinates - * - * @author Olivier Brouckaert - * @param integer Answer ID - * @param integer $id - * @return integer Answer position - */ + { + return isset($this->weighting[$id]) ? $this->weighting[$id] : null; + } + + /** + * returns answer position + * + * @author Olivier Brouckaert + * @param - integer $id - answer ID + * @return integer - answer position + */ + function selectPosition($id) + { + return isset($this->position[$id]) ? $this->position[$id] : null; + } + + /** + * returns answer hotspot coordinates + * + * @author Olivier Brouckaert + * @param integer $id Answer ID + * @return integer Answer position + */ public function selectHotspotCoordinates($id) - { - return isset($this->hotspot_coordinates[$id]) ? $this->hotspot_coordinates[$id] : null; - } - - /** - * returns answer hotspot type - * - * @author Toon Keppens - * @param integer Answer ID - * @param integer $id - * @return integer Answer position - */ + { + return isset($this->hotspot_coordinates[$id]) ? $this->hotspot_coordinates[$id] : null; + } + + /** + * returns answer hotspot type + * + * @author Toon Keppens + * @param integer $id Answer ID + * @return integer Answer position + */ public function selectHotspotType($id) - { - return isset($this->hotspot_type[$id]) ? $this->hotspot_type[$id] : null; - } - - /** - * Creates a new answer - * - * @author Olivier Brouckaert - * @param string $answer answer title - * @param integer $correct 0 if bad answer, not 0 if good answer - * @param string $comment answer comment - * @param integer $weighting answer weighting - * @param integer $position answer position - * @param array $new_hotspot_coordinates Coordinates for hotspot exercises (optional) - * @param integer $new_hotspot_type Type for hotspot exercises (optional) + { + return isset($this->hotspot_type[$id]) ? $this->hotspot_type[$id] : null; + } + + /** + * Creates a new answer + * + * @author Olivier Brouckaert + * @param string $answer answer title + * @param integer $correct 0 if bad answer, not 0 if good answer + * @param string $comment answer comment + * @param integer $weighting answer weighting + * @param integer $position answer position + * @param array $new_hotspot_coordinates Coordinates for hotspot exercises (optional) + * @param integer $new_hotspot_type Type for hotspot exercises (optional) * @param string $destination - */ + */ public function createAnswer( $answer, $correct, @@ -544,7 +550,7 @@ class Answer $new_hotspot_type = null, $destination = '' ) { - $this->new_nbrAnswers++; + $this->new_nbrAnswers++; $id = $this->new_nbrAnswers; $this->new_answer[$id] = $answer; $this->new_correct[$id] = $correct; @@ -554,7 +560,7 @@ class Answer $this->new_hotspot_coordinates[$id] = $new_hotspot_coordinates; $this->new_hotspot_type[$id] = $new_hotspot_type; $this->new_destination[$id] = $destination; - } + } /** * Updates an answer @@ -597,32 +603,32 @@ class Answer $em->merge($quizAnswer); $em->flush(); - } + } - /** - * Records answers into the data base - * - * @author Olivier Brouckaert - */ + /** + * Records answers into the data base + * + * @author Olivier Brouckaert + */ public function save() { - $answerTable = Database::get_course_table(TABLE_QUIZ_ANSWER); + $answerTable = Database::get_course_table(TABLE_QUIZ_ANSWER); $em = Database::getManager(); - $questionId = intval($this->questionId); + $questionId = intval($this->questionId); - $c_id = $this->course['real_id']; + $c_id = $this->course['real_id']; $correctList = []; $answerList = []; - for ($i = 1; $i <= $this->new_nbrAnswers; $i++) { - $answer = $this->new_answer[$i]; - $correct = isset($this->new_correct[$i]) ? $this->new_correct[$i] : ''; - $comment = isset($this->new_comment[$i]) ? $this->new_comment[$i] : ''; - $weighting = isset($this->new_weighting[$i]) ? $this->new_weighting[$i] : ''; - $position = isset($this->new_position[$i]) ? $this->new_position[$i] : ''; - $hotspot_coordinates = isset($this->new_hotspot_coordinates[$i]) ? $this->new_hotspot_coordinates[$i] : ''; - $hotspot_type = isset($this->new_hotspot_type[$i]) ? $this->new_hotspot_type[$i] : ''; - $destination = isset($this->new_destination[$i]) ? $this->new_destination[$i] : ''; + for ($i = 1; $i <= $this->new_nbrAnswers; $i++) { + $answer = $this->new_answer[$i]; + $correct = isset($this->new_correct[$i]) ? $this->new_correct[$i] : ''; + $comment = isset($this->new_comment[$i]) ? $this->new_comment[$i] : ''; + $weighting = isset($this->new_weighting[$i]) ? $this->new_weighting[$i] : ''; + $position = isset($this->new_position[$i]) ? $this->new_position[$i] : ''; + $hotspot_coordinates = isset($this->new_hotspot_coordinates[$i]) ? $this->new_hotspot_coordinates[$i] : ''; + $hotspot_type = isset($this->new_hotspot_type[$i]) ? $this->new_hotspot_type[$i] : ''; + $destination = isset($this->new_destination[$i]) ? $this->new_destination[$i] : ''; $autoId = $this->selectAutoId($i); $iid = isset($this->iid[$i]) ? $this->iid[$i] : 0; @@ -664,11 +670,11 @@ class Answer $answer->read(); $correctAnswerId = $answer->selectAnswerIdByPosition($correct); - // Continue to avoid matching question bug if $correctAnswerId returns false - // See : https://support.chamilo.org/issues/8334 - if ($questionType == MATCHING && !$correctAnswerId) { - continue; - } + // Continue to avoid matching question bug if $correctAnswerId returns false + // See : https://support.chamilo.org/issues/8334 + if ($questionType == MATCHING && !$correctAnswerId) { + continue; + } $correctAnswerAutoId = $answer->selectAutoId($correct); $quizAnswer->setCorrect($correctAnswerAutoId ? $correctAnswerAutoId : 0); @@ -725,36 +731,36 @@ class Answer while ($this->position[$i]) { $position = $this->position[$i]; $sql = "DELETE FROM $answerTable - WHERE - c_id = {$this->course_id} AND - question_id = '".$questionId."' AND - position ='$position'"; + WHERE + c_id = {$this->course_id} AND + question_id = '".$questionId."' AND + position ='$position'"; Database::query($sql); $i++; } } - // moves $new_* arrays - $this->answer = $this->new_answer; - $this->correct = $this->new_correct; - $this->comment = $this->new_comment; - $this->weighting = $this->new_weighting; - $this->position = $this->new_position; - $this->hotspot_coordinates = $this->new_hotspot_coordinates; - $this->hotspot_type = $this->new_hotspot_type; - $this->nbrAnswers = $this->new_nbrAnswers; - $this->destination = $this->new_destination; - - $this->cancel(); - } - - /** - * Duplicates answers by copying them into another question - * - * @author Olivier Brouckaert - * @param Question $newQuestion + // moves $new_* arrays + $this->answer = $this->new_answer; + $this->correct = $this->new_correct; + $this->comment = $this->new_comment; + $this->weighting = $this->new_weighting; + $this->position = $this->new_position; + $this->hotspot_coordinates = $this->new_hotspot_coordinates; + $this->hotspot_type = $this->new_hotspot_type; + $this->nbrAnswers = $this->new_nbrAnswers; + $this->destination = $this->new_destination; + + $this->cancel(); + } + + /** + * Duplicates answers by copying them into another question + * + * @author Olivier Brouckaert + * @param Question $newQuestion * @param array $course_info destination course info (result of the function api_get_course_info() ) - */ + */ public function duplicate($newQuestion, $course_info = null) { $newQuestionId = $newQuestion->id; @@ -777,7 +783,7 @@ class Answer if (!empty($origin_options)) { foreach ($origin_options as $item) { - $new_option_list[] = $item['id']; + $new_option_list[] = $item['id']; } } @@ -794,15 +800,15 @@ class Answer } } - // if at least one answer - if ($this->nbrAnswers) { - // inserts new answers into data base - $courseId = $course_info['real_id']; - $correctAnswers = []; - $onlyAnswers = []; - $allAnswers = []; + // if at least one answer + if ($this->nbrAnswers) { + // inserts new answers into data base + $courseId = $course_info['real_id']; + $correctAnswers = []; + $onlyAnswers = []; + $allAnswers = []; - $em = Database::getManager(); + $em = Database::getManager(); if (in_array($newQuestion->type, [MATCHING, MATCHING_DRAGGABLE])) { $temp = array(); @@ -868,7 +874,7 @@ class Answer $correctAnswers[$answerId] = $answer['correct']; $onlyAnswers[$answerId] = $answer['answer']; } - } + } } else { for ($i = 1; $i <= $this->nbrAnswers; $i++) { if ($this->course['id'] != $course_info['id']) { @@ -945,7 +951,7 @@ class Answer } } } - } + } /** * Get the necessary JavaScript for some answers @@ -963,25 +969,24 @@ class Answer "; } - /** - * Check if a answer is correct by an answer auto id - * @param $needle int The answer auto id - * @return bool - */ - public function isCorrectByAutoId($needle) - { - $key = 0; - - foreach ($this->autoId as $autoIdKey => $autoId) { - if ($autoId == $needle) { - $key = $autoIdKey; - } - } - - if (!$key) { - return false; - } - - return $this->isCorrect($key) ? true : false; - } + /** + * Check if a answer is correct by an answer auto id + * @param $needle int The answer auto id + * @return bool + */ + public function isCorrectByAutoId($needle) + { + $key = 0; + foreach ($this->autoId as $autoIdKey => $autoId) { + if ($autoId == $needle) { + $key = $autoIdKey; + } + } + + if (!$key) { + return false; + } + + return $this->isCorrect($key) ? true : false; + } } diff --git a/main/exercise/calculated_answer.class.php b/main/exercise/calculated_answer.class.php index bfc7c514ca..f2c3dd0baf 100644 --- a/main/exercise/calculated_answer.class.php +++ b/main/exercise/calculated_answer.class.php @@ -31,7 +31,6 @@ class CalculatedAnswer extends Question public function createAnswersForm($form) { $defaults = array(); - if (!empty($this->id)) { $objAnswer = new Answer($this->id); $preArray = explode('@@', $objAnswer->selectAnswer(1)); @@ -125,9 +124,14 @@ class CalculatedAnswer extends Question Display::return_icon('fill_field.png'), array( 'id' => 'answer', - 'onkeyup' => 'javascript: updateBlanks(this);' + 'onkeyup' => 'javascript: updateBlanks(this);', ), - array('ToolbarSet' => 'TestQuestionDescription', 'Width' => '100%', 'Height' => '350')); + array( + 'ToolbarSet' => 'TestQuestionDescription', + 'Width' => '100%', + 'Height' => '350', + ) + ); $form->addRule('answer', get_lang('GiveText'), 'required'); $form->addRule('answer', get_lang('DefineBlanks'), 'regex', '/\[.*\]/'); diff --git a/main/exercise/exercise_admin.php b/main/exercise/exercise_admin.php index 35526cb62a..8243846ffe 100755 --- a/main/exercise/exercise_admin.php +++ b/main/exercise/exercise_admin.php @@ -109,11 +109,8 @@ $htmlHeadXtra[] = ''; // to correct #4029 Random and number of attempt menu empty added window.onload=advanced_parameters; @@ -153,9 +150,13 @@ $objExercise->createForm($form); if ($form->validate()) { $objExercise->processCreation($form); if ($form->getSubmitValue('edit') == 'true') { - Display::addFlash(Display::return_message(get_lang('ExerciseEdited'))); + Display::addFlash( + Display::return_message(get_lang('ExerciseEdited'), 'success') + ); } else { - Display::addFlash(Display::return_message(get_lang('ExerciseAdded'))); + Display::addFlash( + Display::return_message(get_lang('ExerciseAdded'), 'success') + ); } $exercise_id = $objExercise->id; Session::erase('objExercise'); @@ -168,7 +169,7 @@ if ($form->validate()) { } if (!empty($gradebook) && $gradebook=='view') { - $interbreadcrumb[]= array ( + $interbreadcrumb[]= array( 'url' => '../gradebook/'.$_SESSION['gradebook_dest'], 'name' => get_lang('ToolGradebook') ); @@ -191,8 +192,8 @@ if ($form->validate()) { echo '' . Display :: return_icon('back.png', get_lang('GoBackToQuestionList'), '', ICON_SIZE_MEDIUM).''; } else { - if (!empty($_GET['lp_id']) || !empty($_POST['lp_id'])){ - if (!empty($_POST['lp_id'])){ + if (!empty($_GET['lp_id']) || !empty($_POST['lp_id'])) { + if (!empty($_POST['lp_id'])) { $lp_id = intval($_POST['lp_id']); //TODO:this remains to be implemented after press the first post } else { @@ -207,12 +208,15 @@ if ($form->validate()) { } echo ''; - if ($objExercise->feedback_type == 1) + if ($objExercise->feedback_type == 1) { Display::display_normal_message( get_lang('DirectFeedbackCantModifyTypeQuestion') ); + } - if (api_get_setting('search_enabled')=='true' && !extension_loaded('xapian')) { + if (api_get_setting('search_enabled')=='true' && + !extension_loaded('xapian') + ) { Display::display_error_message(get_lang('SearchXapianModuleNotInstalled')); } diff --git a/main/exercise/exercise_history.php b/main/exercise/exercise_history.php index dfb14406cc..30cd81934d 100755 --- a/main/exercise/exercise_history.php +++ b/main/exercise/exercise_history.php @@ -2,13 +2,12 @@ /* For licensing terms, see /license.txt */ /** - * Exercise list: This script shows the list of exercises for administrators and students. - * @package chamilo.exercise - * @author Olivier Brouckaert, original author - * @author Denes Nagy, HotPotatoes integration - * @author Wolfgang Schneider, code/html cleanup + * Exercise list: This script shows the list of exercises for administrators and students. + * @package chamilo.exercise + * @author Olivier Brouckaert, original author + * @author Denes Nagy, HotPotatoes integration + * @author Wolfgang Schneider, code/html cleanup */ - require_once __DIR__.'/../inc/global.inc.php'; $this_section = SECTION_COURSES; api_protect_course_script(true); @@ -25,9 +24,18 @@ if (!$is_allowedToEdit) { exit; } -$interbreadcrumb[] = array('url' => 'exercise_report.php?'.api_get_cidreq(), 'name' => get_lang('Exercises')); -$interbreadcrumb[] = array('url' => 'exercise_report.php?filter=2&'.api_get_cidreq(), 'name' => get_lang('StudentScore')); -$interbreadcrumb[] = array('url' => 'exercise_history.php?exe_id='.intval($_GET['exe_id']).'&'.api_get_cidreq(), 'name' => get_lang('Details')); +$interbreadcrumb[] = array( + 'url' => 'exercise_report.php?'.api_get_cidreq(), + 'name' => get_lang('Exercises'), +); +$interbreadcrumb[] = array( + 'url' => 'exercise_report.php?filter=2&'.api_get_cidreq(), + 'name' => get_lang('StudentScore'), +); +$interbreadcrumb[] = array( + 'url' => 'exercise_history.php?exe_id='.intval($_GET['exe_id']).'&'.api_get_cidreq(), + 'name' => get_lang('Details'), +); $TBL_USER = Database::get_main_table(TABLE_MAIN_USER); $TBL_EXERCISES = Database::get_course_table(TABLE_QUIZ_TEST); @@ -86,6 +94,6 @@ while ($row = Database::fetch_array($query)) { echo ''.(empty($row['firstname']) && empty($row['lastname']) ? ''.get_lang('OriginalValue').'' : api_get_person_name($row['firstname'], $row['lastname'])).''; echo ''.api_convert_and_format_date($row['insert_date'], DATE_TIME_FORMAT_LONG).''; echo ''; - } +} echo ''; Display::display_footer(); diff --git a/main/exercise/exercise_reminder.php b/main/exercise/exercise_reminder.php index e1712ae555..8408d1a2ff 100755 --- a/main/exercise/exercise_reminder.php +++ b/main/exercise/exercise_reminder.php @@ -1,7 +1,7 @@ 0) { } // general parameters passed via POST/GET -if (empty ($origin)) { +if (empty($origin)) { if (!empty($_REQUEST['origin'])) { $origin = Security::remove_XSS($_REQUEST['origin']); } else { @@ -71,19 +71,23 @@ if (empty($objExercise)) { if (!$objExercise) { //Redirect to the exercise overview //Check if the exe_id exists - header("Location: overview.php?exerciseId=".$exerciseId); + header("Location: overview.php?exerciseId=".$exerciseId.'&'.api_get_cidreq()); exit; } $time_control = false; -$clock_expired_time = ExerciseLib::get_session_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id); +$clock_expired_time = ExerciseLib::get_session_time_control_key( + $objExercise->id, + $learnpath_id, + $learnpath_item_id +); if ($objExercise->expired_time != 0 && !empty($clock_expired_time)) { $time_control = true; } if ($time_control) { - // Get time left for exipiring time + // Get time left for expiring time $time_left = api_strtotime($clock_expired_time, 'UTC') - time(); $htmlHeadXtra[] = api_get_css(api_get_path(WEB_LIBRARY_PATH).'javascript/epiclock/stylesheet/jquery.epiclock.css'); $htmlHeadXtra[] = api_get_css(api_get_path(WEB_LIBRARY_PATH).'javascript/epiclock/renderers/minute/epiclock.minute.css'); @@ -93,7 +97,6 @@ if ($time_control) { $htmlHeadXtra[] = $objExercise->show_time_control_js($time_left); } - if (isset($_SESSION['exe_id'])) { $exe_id = intval($_SESSION['exe_id']); } @@ -132,7 +135,6 @@ if ($time_control) { } echo Display::div('', array('id'=>'message')); - echo ''; if ($origin != 'learnpath') { - // So we are not in learnpath tool - Display::display_header($nameTools, get_lang('Exercise')); + // So we are not in learnpath tool + Display::display_header($nameTools, get_lang('Exercise')); } else { $htmlHeadXtra[] = "