@@ -13,11 +13,11 @@ discard block |
||
13 | 13 | public $name; |
14 | 14 | public $description; |
15 | 15 | |
16 | - /** |
|
17 | - * Constructor of the class Category |
|
18 | - * If you give an in_id and no in_name, you get info concerning the category of id=in_id |
|
19 | - * otherwise, you've got an category objet avec your in_id, in_name, in_descr |
|
20 | - * |
|
16 | + /** |
|
17 | + * Constructor of the class Category |
|
18 | + * If you give an in_id and no in_name, you get info concerning the category of id=in_id |
|
19 | + * otherwise, you've got an category objet avec your in_id, in_name, in_descr |
|
20 | + * |
|
21 | 21 | * @param int $id |
22 | 22 | * @param string $name |
23 | 23 | * @param string $description |
@@ -61,9 +61,9 @@ discard block |
||
61 | 61 | } |
62 | 62 | } |
63 | 63 | |
64 | - /** |
|
64 | + /** |
|
65 | 65 | * add TestCategory in the database if name doesn't already exists |
66 | - */ |
|
66 | + */ |
|
67 | 67 | public function addCategoryInBDD() |
68 | 68 | { |
69 | 69 | $table = Database :: get_course_table(TABLE_QUIZ_QUESTION_CATEGORY); |
@@ -108,12 +108,12 @@ discard block |
||
108 | 108 | |
109 | 109 | return false; |
110 | 110 | } |
111 | - } |
|
111 | + } |
|
112 | 112 | |
113 | - /** |
|
113 | + /** |
|
114 | 114 | * Removes the category from the database |
115 | 115 | * if there were question in this category, the link between question and category is removed |
116 | - */ |
|
116 | + */ |
|
117 | 117 | public function removeCategory() |
118 | 118 | { |
119 | 119 | $table = Database :: get_course_table(TABLE_QUIZ_QUESTION_CATEGORY); |
@@ -143,11 +143,11 @@ discard block |
||
143 | 143 | |
144 | 144 | return true; |
145 | 145 | } |
146 | - } |
|
146 | + } |
|
147 | 147 | |
148 | - /** |
|
148 | + /** |
|
149 | 149 | * Modify category name or description of category with id=in_id |
150 | - */ |
|
150 | + */ |
|
151 | 151 | public function modifyCategory() |
152 | 152 | { |
153 | 153 | $table = Database :: get_course_table(TABLE_QUIZ_QUESTION_CATEGORY); |
@@ -175,40 +175,40 @@ discard block |
||
175 | 175 | |
176 | 176 | return true; |
177 | 177 | } |
178 | - } |
|
178 | + } |
|
179 | 179 | |
180 | - /** |
|
180 | + /** |
|
181 | 181 | * Gets the number of question of category id=in_id |
182 | - */ |
|
182 | + */ |
|
183 | 183 | public function getCategoryQuestionsNumber() |
184 | 184 | { |
185 | - $table = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); |
|
186 | - $in_id = intval($this->id); |
|
187 | - $sql = "SELECT count(*) AS nb |
|
185 | + $table = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); |
|
186 | + $in_id = intval($this->id); |
|
187 | + $sql = "SELECT count(*) AS nb |
|
188 | 188 | FROM $table |
189 | 189 | WHERE category_id=$in_id AND c_id=".api_get_course_int_id(); |
190 | - $res = Database::query($sql); |
|
191 | - $row = Database::fetch_array($res); |
|
190 | + $res = Database::query($sql); |
|
191 | + $row = Database::fetch_array($res); |
|
192 | 192 | |
193 | - return $row['nb']; |
|
194 | - } |
|
193 | + return $row['nb']; |
|
194 | + } |
|
195 | 195 | |
196 | 196 | /** |
197 | 197 | * @param string $in_color |
198 | 198 | */ |
199 | 199 | public function display($in_color="#E0EBF5") |
200 | 200 | { |
201 | - echo "<textarea style='background-color:$in_color; width:60%; height:100px;'>"; |
|
202 | - print_r($this); |
|
203 | - echo "</textarea>"; |
|
204 | - } |
|
201 | + echo "<textarea style='background-color:$in_color; width:60%; height:100px;'>"; |
|
202 | + print_r($this); |
|
203 | + echo "</textarea>"; |
|
204 | + } |
|
205 | 205 | |
206 | - /** |
|
206 | + /** |
|
207 | 207 | * Return an array of all Category objects in the database |
208 | - * If in_field=="" Return an array of all category objects in the database |
|
209 | - * Otherwise, return an array of all in_field value |
|
210 | - * in the database (in_field = id or name or description) |
|
211 | - */ |
|
208 | + * If in_field=="" Return an array of all category objects in the database |
|
209 | + * Otherwise, return an array of all in_field value |
|
210 | + * in the database (in_field = id or name or description) |
|
211 | + */ |
|
212 | 212 | public static function getCategoryListInfo($in_field = "", $courseId = "") |
213 | 213 | { |
214 | 214 | if (empty($courseId) || $courseId=="") { |
@@ -239,8 +239,8 @@ discard block |
||
239 | 239 | } |
240 | 240 | } |
241 | 241 | |
242 | - return $tabres; |
|
243 | - } |
|
242 | + return $tabres; |
|
243 | + } |
|
244 | 244 | |
245 | 245 | /** |
246 | 246 | * Return the TestCategory id for question with question_id = $questionId |
@@ -251,196 +251,196 @@ discard block |
||
251 | 251 | * |
252 | 252 | * @return int |
253 | 253 | */ |
254 | - public static function getCategoryForQuestion($questionId, $courseId ="") |
|
254 | + public static function getCategoryForQuestion($questionId, $courseId ="") |
|
255 | 255 | { |
256 | - $result = 0; |
|
256 | + $result = 0; |
|
257 | 257 | if (empty($courseId) || $courseId == "") { |
258 | 258 | $courseId = api_get_course_int_id(); |
259 | 259 | } |
260 | - $table = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); |
|
260 | + $table = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); |
|
261 | 261 | $questionId = intval($questionId); |
262 | - $sql = "SELECT category_id |
|
262 | + $sql = "SELECT category_id |
|
263 | 263 | FROM $table |
264 | 264 | WHERE question_id = $questionId AND c_id = $courseId"; |
265 | - $res = Database::query($sql); |
|
266 | - if (Database::num_rows($res) > 0) { |
|
265 | + $res = Database::query($sql); |
|
266 | + if (Database::num_rows($res) > 0) { |
|
267 | 267 | $data = Database::fetch_array($res); |
268 | - $result = $data['category_id']; |
|
269 | - } |
|
268 | + $result = $data['category_id']; |
|
269 | + } |
|
270 | 270 | |
271 | - return $result; |
|
272 | - } |
|
271 | + return $result; |
|
272 | + } |
|
273 | 273 | |
274 | - /** |
|
275 | - * true if question id has a category |
|
276 | - */ |
|
277 | - public static function isQuestionHasCategory($questionId) |
|
274 | + /** |
|
275 | + * true if question id has a category |
|
276 | + */ |
|
277 | + public static function isQuestionHasCategory($questionId) |
|
278 | 278 | { |
279 | - if (TestCategory::getCategoryForQuestion($questionId) > 0) { |
|
280 | - return true; |
|
281 | - } |
|
282 | - return false; |
|
283 | - } |
|
279 | + if (TestCategory::getCategoryForQuestion($questionId) > 0) { |
|
280 | + return true; |
|
281 | + } |
|
282 | + return false; |
|
283 | + } |
|
284 | 284 | |
285 | - /** |
|
285 | + /** |
|
286 | 286 | Return the category name for question with question_id = $questionId |
287 | 287 | In this version, a question has only 1 category. |
288 | 288 | Return the category id, "" if none |
289 | - */ |
|
289 | + */ |
|
290 | 290 | public static function getCategoryNameForQuestion( |
291 | 291 | $questionId, |
292 | 292 | $courseId = "" |
293 | 293 | ) { |
294 | - if (empty($courseId) || $courseId=="") { |
|
295 | - $courseId = api_get_course_int_id(); |
|
296 | - } |
|
297 | - $catid = TestCategory::getCategoryForQuestion($questionId, $courseId); |
|
298 | - $result = ""; // result |
|
299 | - $table = Database::get_course_table(TABLE_QUIZ_QUESTION_CATEGORY); |
|
300 | - $catid = intval($catid); |
|
301 | - $sql = "SELECT title FROM $table |
|
294 | + if (empty($courseId) || $courseId=="") { |
|
295 | + $courseId = api_get_course_int_id(); |
|
296 | + } |
|
297 | + $catid = TestCategory::getCategoryForQuestion($questionId, $courseId); |
|
298 | + $result = ""; // result |
|
299 | + $table = Database::get_course_table(TABLE_QUIZ_QUESTION_CATEGORY); |
|
300 | + $catid = intval($catid); |
|
301 | + $sql = "SELECT title FROM $table |
|
302 | 302 | WHERE id = $catid AND c_id = $courseId"; |
303 | - $res = Database::query($sql); |
|
304 | - $data = Database::fetch_array($res); |
|
305 | - if (Database::num_rows($res) > 0) { |
|
306 | - $result = $data['title']; |
|
307 | - } |
|
308 | - |
|
309 | - return $result; |
|
310 | - } |
|
311 | - |
|
312 | - /** |
|
313 | - * Return the list of differents categories ID for a test in the current course |
|
314 | - * input : test_id |
|
315 | - * return : array of category id (integer) |
|
316 | - * hubert.borderiou 07-04-2011 |
|
317 | - */ |
|
318 | - public static function getListOfCategoriesIDForTest($in_testid) |
|
303 | + $res = Database::query($sql); |
|
304 | + $data = Database::fetch_array($res); |
|
305 | + if (Database::num_rows($res) > 0) { |
|
306 | + $result = $data['title']; |
|
307 | + } |
|
308 | + |
|
309 | + return $result; |
|
310 | + } |
|
311 | + |
|
312 | + /** |
|
313 | + * Return the list of differents categories ID for a test in the current course |
|
314 | + * input : test_id |
|
315 | + * return : array of category id (integer) |
|
316 | + * hubert.borderiou 07-04-2011 |
|
317 | + */ |
|
318 | + public static function getListOfCategoriesIDForTest($in_testid) |
|
319 | 319 | { |
320 | - // parcourir les questions d'un test, recup les categories uniques dans un tableau |
|
321 | - $result = array(); |
|
322 | - $quiz = new Exercise(); |
|
323 | - $quiz->read($in_testid); |
|
324 | - $tabQuestionList = $quiz->selectQuestionList(); |
|
325 | - // the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ??? |
|
326 | - for ($i=1; $i <= count($tabQuestionList); $i++) { |
|
327 | - if (!in_array(TestCategory::getCategoryForQuestion($tabQuestionList[$i]), $result)) { |
|
328 | - $result[] = TestCategory::getCategoryForQuestion($tabQuestionList[$i]); |
|
329 | - } |
|
330 | - } |
|
331 | - |
|
332 | - return $result; |
|
333 | - } |
|
334 | - |
|
335 | - /** |
|
336 | - * return the list of different categories NAME for a test |
|
337 | - * input : test_id |
|
338 | - * return : array of string |
|
339 | - * hubert.borderiou 07-04-2011 |
|
320 | + // parcourir les questions d'un test, recup les categories uniques dans un tableau |
|
321 | + $result = array(); |
|
322 | + $quiz = new Exercise(); |
|
323 | + $quiz->read($in_testid); |
|
324 | + $tabQuestionList = $quiz->selectQuestionList(); |
|
325 | + // the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ??? |
|
326 | + for ($i=1; $i <= count($tabQuestionList); $i++) { |
|
327 | + if (!in_array(TestCategory::getCategoryForQuestion($tabQuestionList[$i]), $result)) { |
|
328 | + $result[] = TestCategory::getCategoryForQuestion($tabQuestionList[$i]); |
|
329 | + } |
|
330 | + } |
|
331 | + |
|
332 | + return $result; |
|
333 | + } |
|
334 | + |
|
335 | + /** |
|
336 | + * return the list of different categories NAME for a test |
|
337 | + * input : test_id |
|
338 | + * return : array of string |
|
339 | + * hubert.borderiou 07-04-2011 |
|
340 | 340 | * @author function rewrote by jmontoya |
341 | - */ |
|
342 | - public static function getListOfCategoriesNameForTest($in_testid) |
|
341 | + */ |
|
342 | + public static function getListOfCategoriesNameForTest($in_testid) |
|
343 | 343 | { |
344 | - $tabcatName = array(); |
|
345 | - $tabcatID = self::getListOfCategoriesIDForTest($in_testid); |
|
346 | - for ($i=0; $i < count($tabcatID); $i++) { |
|
347 | - $cat = new TestCategory($tabcatID[$i]); |
|
348 | - $tabcatName[$cat->id] = $cat->name; |
|
349 | - } |
|
350 | - return $tabcatName; |
|
351 | - } |
|
352 | - |
|
353 | - /** |
|
354 | - * return the number of differents categories for a test |
|
355 | - * input : test_id |
|
356 | - * return : integer |
|
357 | - * hubert.borderiou 07-04-2011 |
|
358 | - */ |
|
359 | - public static function getNumberOfCategoriesForTest($in_testid) |
|
344 | + $tabcatName = array(); |
|
345 | + $tabcatID = self::getListOfCategoriesIDForTest($in_testid); |
|
346 | + for ($i=0; $i < count($tabcatID); $i++) { |
|
347 | + $cat = new TestCategory($tabcatID[$i]); |
|
348 | + $tabcatName[$cat->id] = $cat->name; |
|
349 | + } |
|
350 | + return $tabcatName; |
|
351 | + } |
|
352 | + |
|
353 | + /** |
|
354 | + * return the number of differents categories for a test |
|
355 | + * input : test_id |
|
356 | + * return : integer |
|
357 | + * hubert.borderiou 07-04-2011 |
|
358 | + */ |
|
359 | + public static function getNumberOfCategoriesForTest($in_testid) |
|
360 | 360 | { |
361 | - return count(TestCategory::getListOfCategoriesIDForTest($in_testid)); |
|
362 | - } |
|
361 | + return count(TestCategory::getListOfCategoriesIDForTest($in_testid)); |
|
362 | + } |
|
363 | 363 | |
364 | - /** |
|
365 | - * return the number of question of a category id in a test |
|
366 | - * @param int $exerciseId |
|
364 | + /** |
|
365 | + * return the number of question of a category id in a test |
|
366 | + * @param int $exerciseId |
|
367 | 367 | * @param int $categoryId |
368 | 368 | * |
369 | - * @return integer |
|
369 | + * @return integer |
|
370 | 370 | * |
371 | - * @author hubert.borderiou 07-04-2011 |
|
372 | - */ |
|
373 | - public static function getNumberOfQuestionsInCategoryForTest($exerciseId, $categoryId) |
|
371 | + * @author hubert.borderiou 07-04-2011 |
|
372 | + */ |
|
373 | + public static function getNumberOfQuestionsInCategoryForTest($exerciseId, $categoryId) |
|
374 | 374 | { |
375 | - $nbCatResult = 0; |
|
376 | - $quiz = new Exercise(); |
|
377 | - $quiz->read($exerciseId); |
|
378 | - $tabQuestionList = $quiz->selectQuestionList(); |
|
379 | - // the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ? ? ? |
|
380 | - for ($i=1; $i <= count($tabQuestionList); $i++) { |
|
381 | - if (TestCategory::getCategoryForQuestion($tabQuestionList[$i]) == $categoryId) { |
|
382 | - $nbCatResult++; |
|
383 | - } |
|
384 | - } |
|
385 | - |
|
386 | - return $nbCatResult; |
|
387 | - } |
|
388 | - |
|
389 | - /** |
|
390 | - * return the number of question for a test using random by category |
|
391 | - * input : test_id, number of random question (min 1) |
|
392 | - * hubert.borderiou 07-04-2011 |
|
393 | - * question without categories are not counted |
|
394 | - */ |
|
395 | - public static function getNumberOfQuestionRandomByCategory($exerciseId, $in_nbrandom) |
|
375 | + $nbCatResult = 0; |
|
376 | + $quiz = new Exercise(); |
|
377 | + $quiz->read($exerciseId); |
|
378 | + $tabQuestionList = $quiz->selectQuestionList(); |
|
379 | + // the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ? ? ? |
|
380 | + for ($i=1; $i <= count($tabQuestionList); $i++) { |
|
381 | + if (TestCategory::getCategoryForQuestion($tabQuestionList[$i]) == $categoryId) { |
|
382 | + $nbCatResult++; |
|
383 | + } |
|
384 | + } |
|
385 | + |
|
386 | + return $nbCatResult; |
|
387 | + } |
|
388 | + |
|
389 | + /** |
|
390 | + * return the number of question for a test using random by category |
|
391 | + * input : test_id, number of random question (min 1) |
|
392 | + * hubert.borderiou 07-04-2011 |
|
393 | + * question without categories are not counted |
|
394 | + */ |
|
395 | + public static function getNumberOfQuestionRandomByCategory($exerciseId, $in_nbrandom) |
|
396 | 396 | { |
397 | - $nbquestionresult = 0; |
|
398 | - $tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId); |
|
399 | - for ($i=0; $i < count($tabcatid); $i++) { |
|
400 | - if ($tabcatid[$i] > 0) { // 0 = no category for this questio |
|
401 | - $nbQuestionInThisCat = TestCategory::getNumberOfQuestionsInCategoryForTest($exerciseId, $tabcatid[$i]); |
|
402 | - if ($nbQuestionInThisCat > $in_nbrandom) { |
|
403 | - $nbquestionresult += $in_nbrandom; |
|
404 | - } |
|
405 | - else { |
|
406 | - $nbquestionresult += $nbQuestionInThisCat; |
|
407 | - } |
|
408 | - } |
|
409 | - } |
|
410 | - return $nbquestionresult; |
|
411 | - } |
|
412 | - |
|
413 | - /** |
|
414 | - * Return an array (id=>name) |
|
415 | - * tabresult[0] = get_lang('NoCategory'); |
|
397 | + $nbquestionresult = 0; |
|
398 | + $tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId); |
|
399 | + for ($i=0; $i < count($tabcatid); $i++) { |
|
400 | + if ($tabcatid[$i] > 0) { // 0 = no category for this questio |
|
401 | + $nbQuestionInThisCat = TestCategory::getNumberOfQuestionsInCategoryForTest($exerciseId, $tabcatid[$i]); |
|
402 | + if ($nbQuestionInThisCat > $in_nbrandom) { |
|
403 | + $nbquestionresult += $in_nbrandom; |
|
404 | + } |
|
405 | + else { |
|
406 | + $nbquestionresult += $nbQuestionInThisCat; |
|
407 | + } |
|
408 | + } |
|
409 | + } |
|
410 | + return $nbquestionresult; |
|
411 | + } |
|
412 | + |
|
413 | + /** |
|
414 | + * Return an array (id=>name) |
|
415 | + * tabresult[0] = get_lang('NoCategory'); |
|
416 | 416 | * |
417 | 417 | * @param int $courseId |
418 | 418 | * |
419 | 419 | * @return array |
420 | - * |
|
421 | - */ |
|
420 | + * |
|
421 | + */ |
|
422 | 422 | public static function getCategoriesIdAndName($courseId = "") |
423 | 423 | { |
424 | - if (empty($courseId)) { |
|
425 | - $courseId = api_get_course_int_id(); |
|
426 | - } |
|
427 | - $tabcatobject = TestCategory::getCategoryListInfo("", $courseId); |
|
428 | - $tabresult = array("0"=>get_lang('NoCategorySelected')); |
|
429 | - for ($i=0; $i < count($tabcatobject); $i++) { |
|
430 | - $tabresult[$tabcatobject[$i]->id] = $tabcatobject[$i]->name; |
|
431 | - } |
|
432 | - return $tabresult; |
|
433 | - } |
|
424 | + if (empty($courseId)) { |
|
425 | + $courseId = api_get_course_int_id(); |
|
426 | + } |
|
427 | + $tabcatobject = TestCategory::getCategoryListInfo("", $courseId); |
|
428 | + $tabresult = array("0"=>get_lang('NoCategorySelected')); |
|
429 | + for ($i=0; $i < count($tabcatobject); $i++) { |
|
430 | + $tabresult[$tabcatobject[$i]->id] = $tabcatobject[$i]->name; |
|
431 | + } |
|
432 | + return $tabresult; |
|
433 | + } |
|
434 | 434 | |
435 | 435 | /** |
436 | - * return an array of question_id for each category |
|
437 | - * tabres[0] = array of question id with category id = 0 (i.e. no category) |
|
438 | - * tabres[24] = array of question id with category id = 24 |
|
439 | - * In this version, a question has 0 or 1 category |
|
440 | - * |
|
441 | - * @param int $exerciseId |
|
442 | - * @return array |
|
443 | - */ |
|
436 | + * return an array of question_id for each category |
|
437 | + * tabres[0] = array of question id with category id = 0 (i.e. no category) |
|
438 | + * tabres[24] = array of question id with category id = 24 |
|
439 | + * In this version, a question has 0 or 1 category |
|
440 | + * |
|
441 | + * @param int $exerciseId |
|
442 | + * @return array |
|
443 | + */ |
|
444 | 444 | public static function getQuestionsByCat($exerciseId) |
445 | 445 | { |
446 | 446 | $em = Database::getManager(); |
@@ -469,29 +469,29 @@ discard block |
||
469 | 469 | } |
470 | 470 | $list[$data['categoryId']][] = $data['questionId']; |
471 | 471 | } |
472 | - return $list; |
|
473 | - } |
|
472 | + return $list; |
|
473 | + } |
|
474 | 474 | |
475 | - /** |
|
476 | - * return a tab of $in_number random elements of $in_tab |
|
477 | - */ |
|
475 | + /** |
|
476 | + * return a tab of $in_number random elements of $in_tab |
|
477 | + */ |
|
478 | 478 | public static function getNElementsFromArray($in_tab, $in_number) |
479 | 479 | { |
480 | - $tabres = $in_tab; |
|
481 | - shuffle($tabres); |
|
482 | - if ($in_number < count($tabres)) { |
|
483 | - $tabres = array_slice($tabres, 0, $in_number); |
|
484 | - } |
|
485 | - return $tabres; |
|
486 | - } |
|
487 | - |
|
488 | - /** |
|
489 | - * display the category |
|
490 | - */ |
|
491 | - public static function displayCategoryAndTitle($questionId, $in_display_category_name = 1) |
|
480 | + $tabres = $in_tab; |
|
481 | + shuffle($tabres); |
|
482 | + if ($in_number < count($tabres)) { |
|
483 | + $tabres = array_slice($tabres, 0, $in_number); |
|
484 | + } |
|
485 | + return $tabres; |
|
486 | + } |
|
487 | + |
|
488 | + /** |
|
489 | + * display the category |
|
490 | + */ |
|
491 | + public static function displayCategoryAndTitle($questionId, $in_display_category_name = 1) |
|
492 | 492 | { |
493 | 493 | echo self::returnCategoryAndTitle($questionId, $in_display_category_name); |
494 | - } |
|
494 | + } |
|
495 | 495 | |
496 | 496 | /** |
497 | 497 | * @param int $questionId |
@@ -507,71 +507,71 @@ discard block |
||
507 | 507 | $in_display_category_name = $objExercise->display_category_name; |
508 | 508 | } |
509 | 509 | $content = null; |
510 | - if (TestCategory::getCategoryNameForQuestion($questionId) != "" && ($in_display_category_name == 1 || !$is_student)) { |
|
510 | + if (TestCategory::getCategoryNameForQuestion($questionId) != "" && ($in_display_category_name == 1 || !$is_student)) { |
|
511 | 511 | $content .= '<div class="page-header">'; |
512 | 512 | $content .= '<h4>'.get_lang('Category').": ".TestCategory::getCategoryNameForQuestion($questionId).'</h4>'; |
513 | 513 | $content .= "</div>"; |
514 | - } |
|
514 | + } |
|
515 | 515 | return $content; |
516 | - } |
|
516 | + } |
|
517 | 517 | |
518 | 518 | /** |
519 | - * Display signs [+] and/or (>0) after question title if question has options |
|
520 | - * scoreAlwaysPositive and/or uncheckedMayScore |
|
521 | - */ |
|
519 | + * Display signs [+] and/or (>0) after question title if question has options |
|
520 | + * scoreAlwaysPositive and/or uncheckedMayScore |
|
521 | + */ |
|
522 | 522 | public function displayQuestionOption($in_objQuestion) |
523 | 523 | { |
524 | - if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->scoreAlwaysPositive) { |
|
525 | - echo "<span style='font-size:75%'> (>0)</span>"; |
|
526 | - } |
|
527 | - if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->uncheckedMayScore) { |
|
528 | - echo "<span style='font-size:75%'> [+]</span>"; |
|
529 | - } |
|
530 | - } |
|
531 | - |
|
532 | - /** |
|
533 | - * sortTabByBracketLabel ($tabCategoryQuestions) |
|
534 | - * key of $tabCategoryQuestions are the category id (0 for not in a category) |
|
535 | - * value is the array of question id of this category |
|
536 | - * Sort question by Category |
|
537 | - */ |
|
524 | + if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->scoreAlwaysPositive) { |
|
525 | + echo "<span style='font-size:75%'> (>0)</span>"; |
|
526 | + } |
|
527 | + if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->uncheckedMayScore) { |
|
528 | + echo "<span style='font-size:75%'> [+]</span>"; |
|
529 | + } |
|
530 | + } |
|
531 | + |
|
532 | + /** |
|
533 | + * sortTabByBracketLabel ($tabCategoryQuestions) |
|
534 | + * key of $tabCategoryQuestions are the category id (0 for not in a category) |
|
535 | + * value is the array of question id of this category |
|
536 | + * Sort question by Category |
|
537 | + */ |
|
538 | 538 | public static function sortTabByBracketLabel($in_tab) |
539 | 539 | { |
540 | - $tabResult = array(); |
|
541 | - $tabCatName = array(); // tab of category name |
|
542 | - while (list($cat_id, $tabquestion) = each($in_tab)) { |
|
543 | - $catTitle = new TestCategory($cat_id); |
|
544 | - $tabCatName[$cat_id] = $catTitle->name; |
|
545 | - } |
|
546 | - reset($in_tab); |
|
547 | - // sort table by value, keeping keys as they are |
|
548 | - asort($tabCatName); |
|
549 | - // keys of $tabCatName are keys order for $in_tab |
|
550 | - while (list($key, $val) = each($tabCatName)) { |
|
551 | - $tabResult[$key] = $in_tab[$key]; |
|
552 | - } |
|
553 | - return $tabResult; |
|
554 | - } |
|
540 | + $tabResult = array(); |
|
541 | + $tabCatName = array(); // tab of category name |
|
542 | + while (list($cat_id, $tabquestion) = each($in_tab)) { |
|
543 | + $catTitle = new TestCategory($cat_id); |
|
544 | + $tabCatName[$cat_id] = $catTitle->name; |
|
545 | + } |
|
546 | + reset($in_tab); |
|
547 | + // sort table by value, keeping keys as they are |
|
548 | + asort($tabCatName); |
|
549 | + // keys of $tabCatName are keys order for $in_tab |
|
550 | + while (list($key, $val) = each($tabCatName)) { |
|
551 | + $tabResult[$key] = $in_tab[$key]; |
|
552 | + } |
|
553 | + return $tabResult; |
|
554 | + } |
|
555 | 555 | |
556 | 556 | /** |
557 | 557 | * return the number max of question in a category |
558 | 558 | * count the number of questions in all categories, and return the max |
559 | 559 | * @param int $exerciseId |
560 | 560 | * @author - hubert borderiou |
561 | - */ |
|
561 | + */ |
|
562 | 562 | public static function getNumberMaxQuestionByCat($exerciseId) |
563 | 563 | { |
564 | 564 | $res_num_max = 0; |
565 | 565 | // foreach question |
566 | - $tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId); |
|
567 | - for ($i=0; $i < count($tabcatid); $i++) { |
|
568 | - if ($tabcatid[$i] > 0) { // 0 = no category for this question |
|
569 | - $nbQuestionInThisCat = TestCategory::getNumberOfQuestionsInCategoryForTest($exerciseId, $tabcatid[$i]); |
|
566 | + $tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId); |
|
567 | + for ($i=0; $i < count($tabcatid); $i++) { |
|
568 | + if ($tabcatid[$i] > 0) { // 0 = no category for this question |
|
569 | + $nbQuestionInThisCat = TestCategory::getNumberOfQuestionsInCategoryForTest($exerciseId, $tabcatid[$i]); |
|
570 | 570 | if ($nbQuestionInThisCat > $res_num_max) { |
571 | 571 | $res_num_max = $nbQuestionInThisCat; |
572 | 572 | } |
573 | - } |
|
574 | - } |
|
573 | + } |
|
574 | + } |
|
575 | 575 | return $res_num_max; |
576 | 576 | } |
577 | 577 | |
@@ -677,8 +677,8 @@ discard block |
||
677 | 677 | * @param int $categoryId |
678 | 678 | * @param int $questionId |
679 | 679 | * @param int $courseId |
680 | - * |
|
681 | - * @return int |
|
680 | + * |
|
681 | + * @return int |
|
682 | 682 | */ |
683 | 683 | public static function add_category_for_question_id($categoryId, $questionId, $courseId) |
684 | 684 | { |
@@ -686,18 +686,18 @@ discard block |
||
686 | 686 | // if question doesn't have a category |
687 | 687 | // @todo change for 1.10 when a question can have several categories |
688 | 688 | if (TestCategory::getCategoryForQuestion($questionId, $courseId) == 0 && |
689 | - $questionId > 0 && |
|
690 | - $courseId > 0 |
|
689 | + $questionId > 0 && |
|
690 | + $courseId > 0 |
|
691 | 691 | ) { |
692 | 692 | $sql = "INSERT INTO $table (c_id, question_id, category_id) |
693 | 693 | VALUES (".intval($courseId).", ".intval($questionId).", ".intval($categoryId).")"; |
694 | 694 | Database::query($sql); |
695 | - $id = Database::insert_id(); |
|
695 | + $id = Database::insert_id(); |
|
696 | 696 | |
697 | - return $id; |
|
697 | + return $id; |
|
698 | 698 | } |
699 | 699 | |
700 | - return false; |
|
700 | + return false; |
|
701 | 701 | } |
702 | 702 | |
703 | 703 | /** |
@@ -92,7 +92,7 @@ discard block |
||
92 | 92 | $locked = api_resource_is_locked_by_gradebook($exercise_id, LINK_EXERCISE); |
93 | 93 | |
94 | 94 | if (empty($objExercise)) { |
95 | - $objExercise = new Exercise(); |
|
95 | + $objExercise = new Exercise(); |
|
96 | 96 | $objExercise->read($exercise_id); |
97 | 97 | } |
98 | 98 | $feedback_type = $objExercise->feedback_type; |
@@ -100,16 +100,16 @@ discard block |
||
100 | 100 | //Only users can see their own results |
101 | 101 | if (!$is_allowedToEdit) { |
102 | 102 | if ($student_id != $current_user_id) { |
103 | - api_not_allowed(true); |
|
103 | + api_not_allowed(true); |
|
104 | 104 | } |
105 | 105 | } |
106 | 106 | |
107 | 107 | if (isset($_SESSION['gradebook'])) { |
108 | - $gradebook= Security::remove_XSS($_SESSION['gradebook']); |
|
108 | + $gradebook= Security::remove_XSS($_SESSION['gradebook']); |
|
109 | 109 | } |
110 | 110 | |
111 | 111 | if (!empty($gradebook) && $gradebook=='view') { |
112 | - $interbreadcrumb[]= array ('url' => '../gradebook/'.$_SESSION['gradebook_dest'],'name' => get_lang('ToolGradebook')); |
|
112 | + $interbreadcrumb[]= array ('url' => '../gradebook/'.$_SESSION['gradebook_dest'],'name' => get_lang('ToolGradebook')); |
|
113 | 113 | } |
114 | 114 | |
115 | 115 | $fromlink = ''; |
@@ -124,14 +124,14 @@ discard block |
||
124 | 124 | $htmlHeadXtra[] = '<script src="' . api_get_path(WEB_LIBRARY_JS_PATH) . 'hotspot/js/hotspot.js"></script>'; |
125 | 125 | |
126 | 126 | if ($origin != 'learnpath') { |
127 | - Display::display_header(''); |
|
127 | + Display::display_header(''); |
|
128 | 128 | } else { |
129 | 129 | $htmlHeadXtra[] = " |
130 | 130 | <style> |
131 | 131 | body { background: none;} |
132 | 132 | </style> |
133 | 133 | "; |
134 | - Display::display_reduced_header(); |
|
134 | + Display::display_reduced_header(); |
|
135 | 135 | } |
136 | 136 | ?> |
137 | 137 | <script> |
@@ -210,12 +210,12 @@ discard block |
||
210 | 210 | } |
211 | 211 | } |
212 | 212 | } else { |
213 | - Display::display_warning_message(get_lang('CantViewResults')); |
|
214 | - $show_results = false; |
|
213 | + Display::display_warning_message(get_lang('CantViewResults')); |
|
214 | + $show_results = false; |
|
215 | 215 | } |
216 | 216 | |
217 | 217 | if ($origin == 'learnpath' && !isset($_GET['fb_type']) ) { |
218 | - $show_results = false; |
|
218 | + $show_results = false; |
|
219 | 219 | } |
220 | 220 | |
221 | 221 | if ($show_results || $show_only_total_score) { |
@@ -260,13 +260,13 @@ discard block |
||
260 | 260 | $exerciseResult = array(); |
261 | 261 | |
262 | 262 | while ($row = Database::fetch_array($result)) { |
263 | - $question_list_from_database[] = $row['question_id']; |
|
264 | - $exerciseResult[$row['question_id']] = $row['answer']; |
|
263 | + $question_list_from_database[] = $row['question_id']; |
|
264 | + $exerciseResult[$row['question_id']] = $row['answer']; |
|
265 | 265 | } |
266 | 266 | |
267 | 267 | //Fixing #2073 Fixing order of questions |
268 | 268 | if (!empty($track_exercise_info['data_tracking'])) { |
269 | - $temp_question_list = explode(',', $track_exercise_info['data_tracking']); |
|
269 | + $temp_question_list = explode(',', $track_exercise_info['data_tracking']); |
|
270 | 270 | |
271 | 271 | // Getting question list from data_tracking |
272 | 272 | if (!empty($temp_question_list)) { |
@@ -306,64 +306,64 @@ discard block |
||
306 | 306 | |
307 | 307 | foreach ($questionList as $questionId) { |
308 | 308 | |
309 | - $choice = $exerciseResult[$questionId]; |
|
310 | - // destruction of the Question object |
|
311 | - unset($objQuestionTmp); |
|
309 | + $choice = $exerciseResult[$questionId]; |
|
310 | + // destruction of the Question object |
|
311 | + unset($objQuestionTmp); |
|
312 | 312 | |
313 | - // creates a temporary Question object |
|
314 | - $objQuestionTmp = Question::read($questionId); |
|
315 | - $questionWeighting = $objQuestionTmp->selectWeighting(); |
|
316 | - $answerType = $objQuestionTmp->selectType(); |
|
313 | + // creates a temporary Question object |
|
314 | + $objQuestionTmp = Question::read($questionId); |
|
315 | + $questionWeighting = $objQuestionTmp->selectWeighting(); |
|
316 | + $answerType = $objQuestionTmp->selectType(); |
|
317 | 317 | |
318 | - // Start buffer |
|
318 | + // Start buffer |
|
319 | 319 | ob_start(); |
320 | 320 | |
321 | 321 | /* Use switch |
322 | 322 | switch ($answerType) { |
323 | 323 | }*/ |
324 | 324 | |
325 | - if ($answerType == MULTIPLE_ANSWER || $answerType == MULTIPLE_ANSWER_TRUE_FALSE) { |
|
325 | + if ($answerType == MULTIPLE_ANSWER || $answerType == MULTIPLE_ANSWER_TRUE_FALSE) { |
|
326 | 326 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
327 | 327 | $questionScore = $question_result['score']; |
328 | 328 | $totalScore += $question_result['score']; |
329 | - } elseif ($answerType == MULTIPLE_ANSWER_COMBINATION || $answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE) { |
|
330 | - $choice = array(); |
|
329 | + } elseif ($answerType == MULTIPLE_ANSWER_COMBINATION || $answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE) { |
|
330 | + $choice = array(); |
|
331 | + $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
|
332 | + $questionScore = $question_result['score']; |
|
333 | + $totalScore += $question_result['score']; |
|
334 | + } elseif ($answerType == UNIQUE_ANSWER || $answerType == UNIQUE_ANSWER_NO_OPTION) { |
|
331 | 335 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
332 | 336 | $questionScore = $question_result['score']; |
333 | 337 | $totalScore += $question_result['score']; |
334 | - } elseif ($answerType == UNIQUE_ANSWER || $answerType == UNIQUE_ANSWER_NO_OPTION) { |
|
338 | + echo '</table>'; |
|
339 | + } elseif ($answerType == FILL_IN_BLANKS) { |
|
335 | 340 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
336 | 341 | $questionScore = $question_result['score']; |
337 | 342 | $totalScore += $question_result['score']; |
338 | - echo '</table>'; |
|
339 | - } elseif ($answerType == FILL_IN_BLANKS) { |
|
343 | + } elseif ($answerType == GLOBAL_MULTIPLE_ANSWER) { |
|
340 | 344 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
341 | 345 | $questionScore = $question_result['score']; |
342 | 346 | $totalScore += $question_result['score']; |
343 | - } elseif ($answerType == GLOBAL_MULTIPLE_ANSWER) { |
|
347 | + } elseif ($answerType == FREE_ANSWER) { |
|
348 | + $answer = $str; |
|
344 | 349 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
345 | 350 | $questionScore = $question_result['score']; |
346 | 351 | $totalScore += $question_result['score']; |
347 | - } elseif ($answerType == FREE_ANSWER) { |
|
352 | + } elseif ($answerType == ORAL_EXPRESSION) { |
|
348 | 353 | $answer = $str; |
349 | 354 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
350 | 355 | $questionScore = $question_result['score']; |
351 | 356 | $totalScore += $question_result['score']; |
352 | - } elseif ($answerType == ORAL_EXPRESSION) { |
|
353 | - $answer = $str; |
|
354 | - $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
|
355 | - $questionScore = $question_result['score']; |
|
356 | - $totalScore += $question_result['score']; |
|
357 | 357 | } elseif (in_array($answerType, [MATCHING, DRAGGABLE, MATCHING_DRAGGABLE])) { |
358 | 358 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
359 | 359 | $questionScore = $question_result['score']; |
360 | 360 | $totalScore += $question_result['score']; |
361 | - } elseif ($answerType == HOT_SPOT) { |
|
362 | - if ($show_results) { |
|
363 | - echo '<table width="500" border="0"><tr> |
|
361 | + } elseif ($answerType == HOT_SPOT) { |
|
362 | + if ($show_results) { |
|
363 | + echo '<table width="500" border="0"><tr> |
|
364 | 364 | <td valign="top" align="center" style="padding-left:0px;" > |
365 | 365 | <table border="1" bordercolor="#A4A4A4" style="border-collapse: collapse;" width="552">'; |
366 | - } |
|
366 | + } |
|
367 | 367 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
368 | 368 | $questionScore = $question_result['score']; |
369 | 369 | $totalScore += $question_result['score']; |
@@ -392,7 +392,7 @@ discard block |
||
392 | 392 | <br> |
393 | 393 | "; |
394 | 394 | } |
395 | - } else if($answerType == HOT_SPOT_DELINEATION) { |
|
395 | + } else if($answerType == HOT_SPOT_DELINEATION) { |
|
396 | 396 | |
397 | 397 | $question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg(), 'database'); |
398 | 398 | |
@@ -535,15 +535,15 @@ discard block |
||
535 | 535 | </table> |
536 | 536 | "; |
537 | 537 | } |
538 | - } |
|
538 | + } |
|
539 | 539 | |
540 | - if ($show_results) { |
|
541 | - if ($answerType != HOT_SPOT) { |
|
542 | - echo '</table>'; |
|
543 | - } |
|
544 | - } |
|
540 | + if ($show_results) { |
|
541 | + if ($answerType != HOT_SPOT) { |
|
542 | + echo '</table>'; |
|
543 | + } |
|
544 | + } |
|
545 | 545 | |
546 | - $comnt = null; |
|
546 | + $comnt = null; |
|
547 | 547 | |
548 | 548 | if ($show_results) { |
549 | 549 | if ( |
@@ -560,40 +560,40 @@ discard block |
||
560 | 560 | |
561 | 561 | $marksname = ''; |
562 | 562 | |
563 | - if ($isFeedbackAllowed) { |
|
564 | - $name = "fckdiv".$questionId; |
|
565 | - $marksname = "marksName".$questionId; |
|
566 | - if (in_array($answerType, array(FREE_ANSWER, ORAL_EXPRESSION))) { |
|
567 | - $url_name = get_lang('EditCommentsAndMarks'); |
|
568 | - } else { |
|
569 | - if ($action=='edit') { |
|
570 | - $url_name = get_lang('EditIndividualComment'); |
|
571 | - } else { |
|
572 | - $url_name = get_lang('AddComments'); |
|
573 | - } |
|
574 | - } |
|
563 | + if ($isFeedbackAllowed) { |
|
564 | + $name = "fckdiv".$questionId; |
|
565 | + $marksname = "marksName".$questionId; |
|
566 | + if (in_array($answerType, array(FREE_ANSWER, ORAL_EXPRESSION))) { |
|
567 | + $url_name = get_lang('EditCommentsAndMarks'); |
|
568 | + } else { |
|
569 | + if ($action=='edit') { |
|
570 | + $url_name = get_lang('EditIndividualComment'); |
|
571 | + } else { |
|
572 | + $url_name = get_lang('AddComments'); |
|
573 | + } |
|
574 | + } |
|
575 | 575 | echo '<br />'; |
576 | 576 | echo Display::url($url_name, 'javascript://', array('class' => 'btn', 'onclick'=>"showfck('".$name."', '".$marksname."');")); |
577 | - echo '<br />'; |
|
577 | + echo '<br />'; |
|
578 | 578 | |
579 | 579 | echo '<div id="feedback_'.$name.'" style="width:100%">'; |
580 | - $comnt = trim(Event::get_comments($id, $questionId)); |
|
581 | - if (empty($comnt)) { |
|
582 | - echo '<br />'; |
|
583 | - } else { |
|
584 | - echo '<div id="question_feedback">'.$comnt.'</div>'; |
|
585 | - } |
|
586 | - echo '</div>'; |
|
580 | + $comnt = trim(Event::get_comments($id, $questionId)); |
|
581 | + if (empty($comnt)) { |
|
582 | + echo '<br />'; |
|
583 | + } else { |
|
584 | + echo '<div id="question_feedback">'.$comnt.'</div>'; |
|
585 | + } |
|
586 | + echo '</div>'; |
|
587 | 587 | |
588 | 588 | echo '<div id="'.$name.'" style="display:none">'; |
589 | - $arrid[] = $questionId; |
|
590 | - $feedback_form = new FormValidator('frmcomments'.$questionId,'post',''); |
|
591 | - $feedback_form->addElement('html','<br>'); |
|
592 | - $renderer =& $feedback_form->defaultRenderer(); |
|
593 | - $renderer->setFormTemplate('<form{attributes}><div align="left">{content}</div></form>'); |
|
594 | - $renderer->setCustomElementTemplate('<div align="left">{element}</div>'); |
|
595 | - $comnt = Event::get_comments($id, $questionId); |
|
596 | - $default = array('comments_'.$questionId => $comnt); |
|
589 | + $arrid[] = $questionId; |
|
590 | + $feedback_form = new FormValidator('frmcomments'.$questionId,'post',''); |
|
591 | + $feedback_form->addElement('html','<br>'); |
|
592 | + $renderer =& $feedback_form->defaultRenderer(); |
|
593 | + $renderer->setFormTemplate('<form{attributes}><div align="left">{content}</div></form>'); |
|
594 | + $renderer->setCustomElementTemplate('<div align="left">{element}</div>'); |
|
595 | + $comnt = Event::get_comments($id, $questionId); |
|
596 | + $default = array('comments_'.$questionId => $comnt); |
|
597 | 597 | |
598 | 598 | if ($useAdvancedEditor) { |
599 | 599 | $feedback_form->addElement( |
@@ -610,52 +610,52 @@ discard block |
||
610 | 610 | } else { |
611 | 611 | $feedback_form->addElement('textarea', 'comments_' . $questionId); |
612 | 612 | } |
613 | - $feedback_form->addElement('html','<br>'); |
|
614 | - $feedback_form->setDefaults($default); |
|
615 | - $feedback_form->display(); |
|
616 | - echo '</div>'; |
|
617 | - |
|
618 | - } else { |
|
619 | - $comnt = Event::get_comments($id, $questionId); |
|
620 | - echo '<br />'; |
|
621 | - if (!empty($comnt)) { |
|
622 | - echo '<b>'.get_lang('Feedback').'</b>'; |
|
623 | - echo '<div id="question_feedback">'.$comnt.'</div>'; |
|
624 | - } |
|
625 | - } |
|
626 | - |
|
627 | - if ($is_allowedToEdit && $isFeedbackAllowed) { |
|
628 | - if (in_array($answerType, array(FREE_ANSWER, ORAL_EXPRESSION))) { |
|
629 | - $marksname = "marksName".$questionId; |
|
613 | + $feedback_form->addElement('html','<br>'); |
|
614 | + $feedback_form->setDefaults($default); |
|
615 | + $feedback_form->display(); |
|
616 | + echo '</div>'; |
|
617 | + |
|
618 | + } else { |
|
619 | + $comnt = Event::get_comments($id, $questionId); |
|
620 | + echo '<br />'; |
|
621 | + if (!empty($comnt)) { |
|
622 | + echo '<b>'.get_lang('Feedback').'</b>'; |
|
623 | + echo '<div id="question_feedback">'.$comnt.'</div>'; |
|
624 | + } |
|
625 | + } |
|
626 | + |
|
627 | + if ($is_allowedToEdit && $isFeedbackAllowed) { |
|
628 | + if (in_array($answerType, array(FREE_ANSWER, ORAL_EXPRESSION))) { |
|
629 | + $marksname = "marksName".$questionId; |
|
630 | 630 | echo '<div id="'.$marksname.'" style="display:none">'; |
631 | 631 | echo '<form name="marksform_'.$questionId.'" method="post" action="">'; |
632 | - $arrmarks[] = $questionId; |
|
633 | - echo get_lang("AssignMarks"); |
|
634 | - echo " <select name='marks' id='marks'>"; |
|
635 | - for ($i=0;$i<=$questionWeighting;$i++) { |
|
636 | - echo '<option '.(($i==$questionScore)?"selected='selected'":'').'>'.$i.'</option>'; |
|
637 | - } |
|
638 | - echo '</select>'; |
|
639 | - echo '</form><br /></div>'; |
|
640 | - |
|
641 | - if ($questionScore == -1 ) { |
|
642 | - $questionScore = 0; |
|
643 | - echo Display::return_message(get_lang('notCorrectedYet')); |
|
644 | - } |
|
645 | - } else { |
|
646 | - $arrmarks[] = $questionId; |
|
647 | - echo '<div id="'.$marksname.'" style="display:none"><form name="marksform_'.$questionId.'" method="post" action=""> |
|
632 | + $arrmarks[] = $questionId; |
|
633 | + echo get_lang("AssignMarks"); |
|
634 | + echo " <select name='marks' id='marks'>"; |
|
635 | + for ($i=0;$i<=$questionWeighting;$i++) { |
|
636 | + echo '<option '.(($i==$questionScore)?"selected='selected'":'').'>'.$i.'</option>'; |
|
637 | + } |
|
638 | + echo '</select>'; |
|
639 | + echo '</form><br /></div>'; |
|
640 | + |
|
641 | + if ($questionScore == -1 ) { |
|
642 | + $questionScore = 0; |
|
643 | + echo Display::return_message(get_lang('notCorrectedYet')); |
|
644 | + } |
|
645 | + } else { |
|
646 | + $arrmarks[] = $questionId; |
|
647 | + echo '<div id="'.$marksname.'" style="display:none"><form name="marksform_'.$questionId.'" method="post" action=""> |
|
648 | 648 | <select name="marks" id="marks" style="display:none;"><option>'.$questionScore.'</option></select></form><br/ ></div>'; |
649 | - } |
|
650 | - } else { |
|
651 | - if ($questionScore == -1) { |
|
652 | - $questionScore = 0; |
|
653 | - } |
|
654 | - } |
|
655 | - } |
|
649 | + } |
|
650 | + } else { |
|
651 | + if ($questionScore == -1) { |
|
652 | + $questionScore = 0; |
|
653 | + } |
|
654 | + } |
|
655 | + } |
|
656 | 656 | |
657 | 657 | $my_total_score = $questionScore; |
658 | - $my_total_weight = $questionWeighting; |
|
658 | + $my_total_weight = $questionWeighting; |
|
659 | 659 | $totalWeighting += $questionWeighting; |
660 | 660 | $category_was_added_for_this_test = false; |
661 | 661 | |
@@ -701,7 +701,7 @@ discard block |
||
701 | 701 | |
702 | 702 | $score = array(); |
703 | 703 | if ($show_results) { |
704 | - $score['result'] = get_lang('Score')." : ".ExerciseLib::show_score($my_total_score, $my_total_weight, false, false); |
|
704 | + $score['result'] = get_lang('Score')." : ".ExerciseLib::show_score($my_total_score, $my_total_weight, false, false); |
|
705 | 705 | $score['pass'] = $my_total_score >= $my_total_weight ? true : false; |
706 | 706 | $score['type'] = $answerType; |
707 | 707 | $score['score'] = $my_total_score; |
@@ -709,18 +709,18 @@ discard block |
||
709 | 709 | $score['comments'] = isset($comnt) ? $comnt : null; |
710 | 710 | } |
711 | 711 | |
712 | - unset($objAnswerTmp); |
|
713 | - $i++; |
|
712 | + unset($objAnswerTmp); |
|
713 | + $i++; |
|
714 | 714 | |
715 | 715 | $contents = ob_get_clean(); |
716 | 716 | |
717 | 717 | $question_content = '<div class="question_row">'; |
718 | 718 | |
719 | - if ($show_results) { |
|
719 | + if ($show_results) { |
|
720 | 720 | //Shows question title an description |
721 | - $question_content .= $objQuestionTmp->return_header(null, $counter, $score); |
|
722 | - } |
|
723 | - $counter++; |
|
721 | + $question_content .= $objQuestionTmp->return_header(null, $counter, $score); |
|
722 | + } |
|
723 | + $counter++; |
|
724 | 724 | $question_content .= $contents; |
725 | 725 | $question_content .= '</div>'; |
726 | 726 | $exercise_content .= $question_content; |
@@ -730,12 +730,12 @@ discard block |
||
730 | 730 | |
731 | 731 | //Total score |
732 | 732 | if ($origin!='learnpath' || ($origin == 'learnpath' && isset($_GET['fb_type']))) { |
733 | - if ($show_results || $show_only_total_score) { |
|
733 | + if ($show_results || $show_only_total_score) { |
|
734 | 734 | $total_score_text .= '<div class="question_row">'; |
735 | 735 | $my_total_score_temp = $totalScore; |
736 | - if ($objExercise->selectPropagateNeg() == 0 && $my_total_score_temp < 0) { |
|
737 | - $my_total_score_temp = 0; |
|
738 | - } |
|
736 | + if ($objExercise->selectPropagateNeg() == 0 && $my_total_score_temp < 0) { |
|
737 | + $my_total_score_temp = 0; |
|
738 | + } |
|
739 | 739 | $total_score_text .= ExerciseLib::get_question_ribbon( |
740 | 740 | $objExercise, |
741 | 741 | $my_total_score_temp, |
@@ -743,7 +743,7 @@ discard block |
||
743 | 743 | true |
744 | 744 | ); |
745 | 745 | $total_score_text .= '</div>'; |
746 | - } |
|
746 | + } |
|
747 | 747 | } |
748 | 748 | |
749 | 749 | if (!empty($category_list) && ($show_results || $show_only_total_score)) { |
@@ -767,25 +767,25 @@ discard block |
||
767 | 767 | } |
768 | 768 | |
769 | 769 | if ($isFeedbackAllowed) { |
770 | - if (in_array($origin, array('tracking_course','user_course','correct_exercise_in_lp'))) { |
|
771 | - echo '<form name="myform" id="myform" action="'.api_get_path(WEB_CODE_PATH).'exercice/exercise_report.php?'.api_get_cidreq().'&exerciseId='.$exercise_id.'&filter=2&comments=update&exeid='.$id.'&origin='.$origin.'&details=true&course='.Security::remove_XSS($_GET['cidReq']).$fromlink.'" method="post">'; |
|
772 | - echo '<input type = "hidden" name="lp_item_id" value="'.$learnpath_id.'">'; |
|
773 | - echo '<input type = "hidden" name="lp_item_view_id" value="'.$lp_item_view_id.'">'; |
|
774 | - echo '<input type = "hidden" name="student_id" value="'.$student_id.'">'; |
|
775 | - echo '<input type = "hidden" name="total_score" value="'.$totalScore.'"> '; |
|
776 | - echo '<input type = "hidden" name="my_exe_exo_id" value="'.$exercise_id.'"> '; |
|
777 | - } else { |
|
778 | - echo ' <form name="myform" id="myform" action="'.api_get_path(WEB_CODE_PATH).'exercice/exercise_report.php?'.api_get_cidreq().'&exerciseId='.$exercise_id.'&filter=1&comments=update&exeid='.$id.'" method="post">'; |
|
779 | - } |
|
780 | - if ($origin !='learnpath' && $origin!='student_progress') { |
|
770 | + if (in_array($origin, array('tracking_course','user_course','correct_exercise_in_lp'))) { |
|
771 | + echo '<form name="myform" id="myform" action="'.api_get_path(WEB_CODE_PATH).'exercice/exercise_report.php?'.api_get_cidreq().'&exerciseId='.$exercise_id.'&filter=2&comments=update&exeid='.$id.'&origin='.$origin.'&details=true&course='.Security::remove_XSS($_GET['cidReq']).$fromlink.'" method="post">'; |
|
772 | + echo '<input type = "hidden" name="lp_item_id" value="'.$learnpath_id.'">'; |
|
773 | + echo '<input type = "hidden" name="lp_item_view_id" value="'.$lp_item_view_id.'">'; |
|
774 | + echo '<input type = "hidden" name="student_id" value="'.$student_id.'">'; |
|
775 | + echo '<input type = "hidden" name="total_score" value="'.$totalScore.'"> '; |
|
776 | + echo '<input type = "hidden" name="my_exe_exo_id" value="'.$exercise_id.'"> '; |
|
777 | + } else { |
|
778 | + echo ' <form name="myform" id="myform" action="'.api_get_path(WEB_CODE_PATH).'exercice/exercise_report.php?'.api_get_cidreq().'&exerciseId='.$exercise_id.'&filter=1&comments=update&exeid='.$id.'" method="post">'; |
|
779 | + } |
|
780 | + if ($origin !='learnpath' && $origin!='student_progress') { |
|
781 | 781 | echo '<label><input type= "checkbox" name="send_notification"> '.get_lang('SendEmail').'</label>'; |
782 | - ?> |
|
782 | + ?> |
|
783 | 783 | <button type="submit" class="btn btn-primary" value="<?php echo get_lang('Ok'); ?>" onclick="getFCK('<?php echo $strids; ?>','<?php echo $marksid; ?>');"> |
784 | 784 | <?php echo get_lang('CorrectTest'); ?> |
785 | 785 | </button> |
786 | 786 | </form> |
787 | 787 | <?php |
788 | - } |
|
788 | + } |
|
789 | 789 | } |
790 | 790 | |
791 | 791 | //Came from lpstats in a lp |
@@ -802,21 +802,21 @@ discard block |
||
802 | 802 | } |
803 | 803 | |
804 | 804 | if ($origin != 'learnpath') { |
805 | - //we are not in learnpath tool |
|
806 | - Display::display_footer(); |
|
805 | + //we are not in learnpath tool |
|
806 | + Display::display_footer(); |
|
807 | 807 | } else { |
808 | - if (!isset($_GET['fb_type'])) { |
|
809 | - $lp_mode = $_SESSION['lp_mode']; |
|
810 | - $url = '../newscorm/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exeId.'&fb_type='.$feedback_type; |
|
811 | - $href = ($lp_mode == 'fullscreen')?' window.opener.location.href="'.$url.'" ':' top.location.href="'.$url.'" '; |
|
812 | - echo '<script type="text/javascript">'.$href.'</script>'; |
|
813 | - // Record the results in the learning path, using the SCORM interface (API) |
|
814 | - echo "<script>window.parent.API.void_save_asset('$totalScore', '$totalWeighting', 0, 'completed'); </script>"; |
|
815 | - echo '</body></html>'; |
|
816 | - } else { |
|
817 | - Display::display_normal_message(get_lang('ExerciseFinished').' '.get_lang('ToContinueUseMenu')); |
|
808 | + if (!isset($_GET['fb_type'])) { |
|
809 | + $lp_mode = $_SESSION['lp_mode']; |
|
810 | + $url = '../newscorm/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exeId.'&fb_type='.$feedback_type; |
|
811 | + $href = ($lp_mode == 'fullscreen')?' window.opener.location.href="'.$url.'" ':' top.location.href="'.$url.'" '; |
|
812 | + echo '<script type="text/javascript">'.$href.'</script>'; |
|
813 | + // Record the results in the learning path, using the SCORM interface (API) |
|
814 | + echo "<script>window.parent.API.void_save_asset('$totalScore', '$totalWeighting', 0, 'completed'); </script>"; |
|
815 | + echo '</body></html>'; |
|
816 | + } else { |
|
817 | + Display::display_normal_message(get_lang('ExerciseFinished').' '.get_lang('ToContinueUseMenu')); |
|
818 | 818 | echo '<br />'; |
819 | - } |
|
819 | + } |
|
820 | 820 | } |
821 | 821 | |
822 | 822 | // Destroying the session |
@@ -178,9 +178,9 @@ discard block |
||
178 | 178 | } |
179 | 179 | |
180 | 180 | /** |
181 | - * abstract function which creates the form to create/edit the answers of the question |
|
182 | - * @param FormValidator $form |
|
183 | - */ |
|
181 | + * abstract function which creates the form to create/edit the answers of the question |
|
182 | + * @param FormValidator $form |
|
183 | + */ |
|
184 | 184 | public function processAnswersCreation($form) |
185 | 185 | { |
186 | 186 | $questionWeighting = $nbrGoodAnswers = 0; |
@@ -221,7 +221,7 @@ discard block |
||
221 | 221 | // sets the total weighting of the question |
222 | 222 | $this->updateWeighting($questionWeighting); |
223 | 223 | $this->save(); |
224 | - } |
|
224 | + } |
|
225 | 225 | |
226 | 226 | function return_header($feedback_type = null, $counter = null, $score = null) |
227 | 227 | { |
@@ -17,7 +17,7 @@ |
||
17 | 17 | $result = $objExercise->read($exercise_id); |
18 | 18 | |
19 | 19 | if (!$result) { |
20 | - api_not_allowed(true); |
|
20 | + api_not_allowed(true); |
|
21 | 21 | } |
22 | 22 | |
23 | 23 | $interbreadcrumb[] = array( |
@@ -13,14 +13,14 @@ discard block |
||
13 | 13 | $nameTools=get_lang('ExerciseManagement'); |
14 | 14 | |
15 | 15 | if (isset($_SESSION['gradebook'])){ |
16 | - $gradebook= $_SESSION['gradebook']; |
|
16 | + $gradebook= $_SESSION['gradebook']; |
|
17 | 17 | } |
18 | 18 | |
19 | 19 | if (!empty($gradebook) && $gradebook=='view') { |
20 | - $interbreadcrumb[]= array ( |
|
21 | - 'url' => '../gradebook/'.$_SESSION['gradebook_dest'], |
|
22 | - 'name' => get_lang('ToolGradebook') |
|
23 | - ); |
|
20 | + $interbreadcrumb[]= array ( |
|
21 | + 'url' => '../gradebook/'.$_SESSION['gradebook_dest'], |
|
22 | + 'name' => get_lang('ToolGradebook') |
|
23 | + ); |
|
24 | 24 | } |
25 | 25 | |
26 | 26 | $interbreadcrumb[]=array("url" => "exercise.php","name" => get_lang('Exercises')); |
@@ -31,24 +31,24 @@ discard block |
||
31 | 31 | <?php echo "Add Feedback"; ?> |
32 | 32 | </h4> |
33 | 33 | <?php |
34 | - $id = $_REQUEST['question']; |
|
35 | - $objQuestionTmp = Question::read($id); |
|
36 | - echo "<tr><td><b>".get_lang('Question')." : </b>"; |
|
37 | - echo $objQuestionTmp->selectTitle(); |
|
38 | - echo "</td></tr>"; |
|
39 | - echo " <br><tr><td><b><br>".get_lang('Answer')." : </b></td></tr>"; |
|
40 | - $objAnswerTmp=new Answer($id); |
|
41 | - $num = $objAnswerTmp->selectNbrAnswers(); |
|
42 | - $objAnswerTmp->read(); |
|
43 | - for($i=1;$i<=$num;$i++) |
|
44 | - { |
|
45 | - echo "<tr><td width='10%'> "; |
|
46 | - $ans = $objAnswerTmp->answer[$i]; |
|
34 | + $id = $_REQUEST['question']; |
|
35 | + $objQuestionTmp = Question::read($id); |
|
36 | + echo "<tr><td><b>".get_lang('Question')." : </b>"; |
|
37 | + echo $objQuestionTmp->selectTitle(); |
|
38 | + echo "</td></tr>"; |
|
39 | + echo " <br><tr><td><b><br>".get_lang('Answer')." : </b></td></tr>"; |
|
40 | + $objAnswerTmp=new Answer($id); |
|
41 | + $num = $objAnswerTmp->selectNbrAnswers(); |
|
42 | + $objAnswerTmp->read(); |
|
43 | + for($i=1;$i<=$num;$i++) |
|
44 | + { |
|
45 | + echo "<tr><td width='10%'> "; |
|
46 | + $ans = $objAnswerTmp->answer[$i]; |
|
47 | 47 | |
48 | - $form = new FormValidator('feedbackform','post',api_get_self()."?".api_get_cidreq()."&modifyQuestion=".$modifyQuestion."&newQuestion=".$newQuestion); |
|
49 | - $obj_registration_form = new HTML_QuickForm('frmRegistration', 'POST'); |
|
50 | - $renderer =& $obj_registration_form->defaultRenderer(); |
|
51 | - $renderer->setCustomElementTemplate( |
|
48 | + $form = new FormValidator('feedbackform','post',api_get_self()."?".api_get_cidreq()."&modifyQuestion=".$modifyQuestion."&newQuestion=".$newQuestion); |
|
49 | + $obj_registration_form = new HTML_QuickForm('frmRegistration', 'POST'); |
|
50 | + $renderer =& $obj_registration_form->defaultRenderer(); |
|
51 | + $renderer->setCustomElementTemplate( |
|
52 | 52 | '<tr> |
53 | 53 | <td align="left" style="" valign="top" width=30%>{label} |
54 | 54 | <!-- BEGIN required --><span style="color: #ff0000">*</span><!-- END required --> |
@@ -57,10 +57,10 @@ discard block |
||
57 | 57 | <!-- BEGIN error --><br /><span style="color: #ff0000;font-size:10px">{error}</span><!-- END error --> |
58 | 58 | </td> |
59 | 59 | </tr>'); |
60 | - $form->addHtmlEditor('Feedback', $i.'.'.$ans, false, false, array('ToolbarSet' => 'TestAnswerFeedback', 'Width' => '600', 'Height' => '200')); |
|
61 | - $form->display(); |
|
62 | - echo "</td>"; |
|
63 | - }?> |
|
60 | + $form->addHtmlEditor('Feedback', $i.'.'.$ans, false, false, array('ToolbarSet' => 'TestAnswerFeedback', 'Width' => '600', 'Height' => '200')); |
|
61 | + $form->display(); |
|
62 | + echo "</td>"; |
|
63 | + }?> |
|
64 | 64 | <form name="frm" action="javascript: void(0);" method="post"> |
65 | 65 | Click Ok to finish <input type="submit" value="Ok" /> |
66 | 66 | </form> |
@@ -12,7 +12,7 @@ discard block |
||
12 | 12 | $result = $objExercise->read($exercise_id); |
13 | 13 | |
14 | 14 | if (!$result) { |
15 | - api_not_allowed(true); |
|
15 | + api_not_allowed(true); |
|
16 | 16 | } |
17 | 17 | |
18 | 18 | $sessionId = api_get_session_id(); |
@@ -29,17 +29,17 @@ discard block |
||
29 | 29 | $data = array(); |
30 | 30 | // Question title # of students who tool it Lowest score Average Highest score Maximum score |
31 | 31 | $headers = array( |
32 | - get_lang('Question'), |
|
32 | + get_lang('Question'), |
|
33 | 33 | get_lang('QuestionType'), |
34 | 34 | get_lang('NumberStudentWhoSelectedIt'), |
35 | - get_lang('LowestScore'), |
|
36 | - get_lang('AverageScore'), |
|
37 | - get_lang('HighestScore'), |
|
38 | - get_lang('Weighting') |
|
35 | + get_lang('LowestScore'), |
|
36 | + get_lang('AverageScore'), |
|
37 | + get_lang('HighestScore'), |
|
38 | + get_lang('Weighting') |
|
39 | 39 | ); |
40 | 40 | |
41 | 41 | if (!empty($question_list)) { |
42 | - foreach ($question_list as $question_id) { |
|
42 | + foreach ($question_list as $question_id) { |
|
43 | 43 | $question_obj = Question::read($question_id); |
44 | 44 | |
45 | 45 | $exercise_stats = ExerciseLib::get_student_stats_by_question( |
@@ -73,7 +73,7 @@ discard block |
||
73 | 73 | $data[$question_id]['average_score'] = round($exercise_stats['average'], 2); |
74 | 74 | $data[$question_id]['highest_score'] = round($exercise_stats['max'], 2); |
75 | 75 | $data[$question_id]['max_score'] = round($question_obj->weighting, 2); |
76 | - } |
|
76 | + } |
|
77 | 77 | } |
78 | 78 | |
79 | 79 | // Format A table |
@@ -81,37 +81,37 @@ discard block |
||
81 | 81 | $row = 0; |
82 | 82 | $column = 0; |
83 | 83 | foreach ($headers as $header) { |
84 | - $table->setHeaderContents($row, $column, $header); |
|
85 | - $column++; |
|
84 | + $table->setHeaderContents($row, $column, $header); |
|
85 | + $column++; |
|
86 | 86 | } |
87 | 87 | $row++; |
88 | 88 | foreach ($data as $row_table) { |
89 | - $column = 0; |
|
90 | - foreach ($row_table as $cell) { |
|
91 | - $table->setCellContents($row, $column, $cell); |
|
92 | - $table->updateCellAttributes($row, $column, 'align="center"'); |
|
93 | - $column++; |
|
94 | - } |
|
95 | - $table->updateRowAttributes($row, $row % 2 ? 'class="row_even"' : 'class="row_odd"', true); |
|
96 | - $row++; |
|
89 | + $column = 0; |
|
90 | + foreach ($row_table as $cell) { |
|
91 | + $table->setCellContents($row, $column, $cell); |
|
92 | + $table->updateCellAttributes($row, $column, 'align="center"'); |
|
93 | + $column++; |
|
94 | + } |
|
95 | + $table->updateRowAttributes($row, $row % 2 ? 'class="row_even"' : 'class="row_odd"', true); |
|
96 | + $row++; |
|
97 | 97 | } |
98 | 98 | $content = $table->toHtml(); |
99 | 99 | |
100 | 100 | // Format B |
101 | 101 | |
102 | 102 | $headers = array( |
103 | - get_lang('Question'), |
|
104 | - get_lang('Answer'), |
|
105 | - get_lang('Correct'), |
|
106 | - get_lang('NumberStudentWhoSelectedIt') |
|
103 | + get_lang('Question'), |
|
104 | + get_lang('Answer'), |
|
105 | + get_lang('Correct'), |
|
106 | + get_lang('NumberStudentWhoSelectedIt') |
|
107 | 107 | ); |
108 | 108 | |
109 | 109 | $data = array(); |
110 | 110 | |
111 | 111 | if (!empty($question_list)) { |
112 | 112 | $id = 0; |
113 | - foreach ($question_list as $question_id) { |
|
114 | - $question_obj = Question::read($question_id); |
|
113 | + foreach ($question_list as $question_id) { |
|
114 | + $question_obj = Question::read($question_id); |
|
115 | 115 | $exercise_stats = ExerciseLib::get_student_stats_by_question( |
116 | 116 | $question_id, |
117 | 117 | $exercise_id, |
@@ -120,7 +120,7 @@ discard block |
||
120 | 120 | ); |
121 | 121 | |
122 | 122 | $answer = new Answer($question_id); |
123 | - $answer_count = $answer->selectNbrAnswers(); |
|
123 | + $answer_count = $answer->selectNbrAnswers(); |
|
124 | 124 | |
125 | 125 | for ($answer_id = 1; $answer_id <= $answer_count; $answer_id++) { |
126 | 126 | $answer_info = $answer->selectAnswer($answer_id); |
@@ -175,11 +175,11 @@ discard block |
||
175 | 175 | $correct = ''; |
176 | 176 | |
177 | 177 | for ($i = 1; $i <= $answer_count; $i++) { |
178 | - $is_correct_i = $answer->isCorrect($i); |
|
179 | - if ($is_correct_i != 0 && $is_correct_i == $answer_id) { |
|
180 | - $correct = $answer->selectAnswer($i); |
|
181 | - break; |
|
182 | - } |
|
178 | + $is_correct_i = $answer->isCorrect($i); |
|
179 | + if ($is_correct_i != 0 && $is_correct_i == $answer_id) { |
|
180 | + $correct = $answer->selectAnswer($i); |
|
181 | + break; |
|
182 | + } |
|
183 | 183 | } |
184 | 184 | $data[$id]['answer'] = $correct; |
185 | 185 | $data[$id]['correct'] = $answer_info; |
@@ -245,7 +245,7 @@ discard block |
||
245 | 245 | } |
246 | 246 | $id++; |
247 | 247 | } |
248 | - } |
|
248 | + } |
|
249 | 249 | } |
250 | 250 | |
251 | 251 | // Format A table |
@@ -253,19 +253,19 @@ discard block |
||
253 | 253 | $row = 0; |
254 | 254 | $column = 0; |
255 | 255 | foreach ($headers as $header) { |
256 | - $table->setHeaderContents($row, $column, $header); |
|
257 | - $column++; |
|
256 | + $table->setHeaderContents($row, $column, $header); |
|
257 | + $column++; |
|
258 | 258 | } |
259 | 259 | $row++; |
260 | 260 | foreach ($data as $row_table) { |
261 | - $column = 0; |
|
262 | - foreach ($row_table as $cell) { |
|
263 | - $table->setCellContents($row, $column, $cell); |
|
264 | - $table->updateCellAttributes($row, $column, 'align="center"'); |
|
265 | - $column++; |
|
266 | - } |
|
267 | - $table->updateRowAttributes($row, $row % 2 ? 'class="row_even"' : 'class="row_odd"', true); |
|
268 | - $row++; |
|
261 | + $column = 0; |
|
262 | + foreach ($row_table as $cell) { |
|
263 | + $table->setCellContents($row, $column, $cell); |
|
264 | + $table->updateCellAttributes($row, $column, 'align="center"'); |
|
265 | + $column++; |
|
266 | + } |
|
267 | + $table->updateRowAttributes($row, $row % 2 ? 'class="row_even"' : 'class="row_odd"', true); |
|
268 | + $row++; |
|
269 | 269 | } |
270 | 270 | $content .= $table->toHtml(); |
271 | 271 |
@@ -1,14 +1,14 @@ |
||
1 | 1 | <?php |
2 | 2 | /* For licensing terms, see /license.txt */ |
3 | 3 | /** |
4 | - * Code for Qti2 import integration. |
|
5 | - * @package chamilo.exercise |
|
6 | - * @author Ronny Velasquez |
|
7 | - * @version $Id: qti2.php 2010-03-12 12:14:25Z $ |
|
8 | - */ |
|
4 | + * Code for Qti2 import integration. |
|
5 | + * @package chamilo.exercise |
|
6 | + * @author Ronny Velasquez |
|
7 | + * @version $Id: qti2.php 2010-03-12 12:14:25Z $ |
|
8 | + */ |
|
9 | 9 | /** |
10 | - * Code |
|
11 | - */ |
|
10 | + * Code |
|
11 | + */ |
|
12 | 12 | // including the global Chamilo file |
13 | 13 | require_once '../inc/global.inc.php'; |
14 | 14 |
@@ -241,13 +241,13 @@ discard block |
||
241 | 241 | } |
242 | 242 | |
243 | 243 | /** |
244 | - * abstract function which creates the form to create / edit the answers of the question |
|
245 | - * @param FormValidator $form |
|
246 | - */ |
|
244 | + * abstract function which creates the form to create / edit the answers of the question |
|
245 | + * @param FormValidator $form |
|
246 | + */ |
|
247 | 247 | public function processAnswersCreation($form) |
248 | 248 | { |
249 | - $questionWeighting = $nbrGoodAnswers = 0; |
|
250 | - $objAnswer = new Answer($this->id); |
|
249 | + $questionWeighting = $nbrGoodAnswers = 0; |
|
250 | + $objAnswer = new Answer($this->id); |
|
251 | 251 | $nb_answers = $form->getSubmitValue('nb_answers'); |
252 | 252 | //$options_count = $form->getSubmitValue('options_count'); |
253 | 253 | $course_id = api_get_course_int_id(); |
@@ -269,7 +269,7 @@ discard block |
||
269 | 269 | $course_id, |
270 | 270 | $i |
271 | 271 | ); |
272 | - $correct[$i] = $last_id; |
|
272 | + $correct[$i] = $last_id; |
|
273 | 273 | } |
274 | 274 | } |
275 | 275 | |
@@ -280,7 +280,7 @@ discard block |
||
280 | 280 | |
281 | 281 | $sorted_by_position = array(); |
282 | 282 | foreach ($new_options as $item) { |
283 | - $sorted_by_position[$item['position']] = $item; |
|
283 | + $sorted_by_position[$item['position']] = $item; |
|
284 | 284 | } |
285 | 285 | |
286 | 286 | /* Saving quiz_question.extra values that has the correct scores of |
@@ -293,7 +293,7 @@ discard block |
||
293 | 293 | } |
294 | 294 | $this->setExtra(implode(':', $extra_values)); |
295 | 295 | |
296 | - for ($i = 1; $i <= $nb_answers; $i++) { |
|
296 | + for ($i = 1; $i <= $nb_answers; $i++) { |
|
297 | 297 | $answer = trim($form->getSubmitValue('answer['.$i.']')); |
298 | 298 | $comment = trim($form->getSubmitValue('comment['.$i.']')); |
299 | 299 | $goodAnswer = trim($form->getSubmitValue('correct['.$i.']')); |
@@ -302,18 +302,18 @@ discard block |
||
302 | 302 | // change the default values from the form 1 and 2 by the correct "option id" registered |
303 | 303 | $goodAnswer = $sorted_by_position[$goodAnswer]['id']; |
304 | 304 | } |
305 | - $questionWeighting += $extra_values[0]; //By default 0 has the correct answers |
|
305 | + $questionWeighting += $extra_values[0]; //By default 0 has the correct answers |
|
306 | 306 | |
307 | - $objAnswer->createAnswer($answer, $goodAnswer, $comment,'',$i); |
|
307 | + $objAnswer->createAnswer($answer, $goodAnswer, $comment,'',$i); |
|
308 | 308 | } |
309 | 309 | |
310 | - // saves the answers into the data base |
|
310 | + // saves the answers into the data base |
|
311 | 311 | $objAnswer->save(); |
312 | 312 | |
313 | 313 | // sets the total weighting of the question |
314 | 314 | $this->updateWeighting($questionWeighting); |
315 | 315 | $this->save(); |
316 | - } |
|
316 | + } |
|
317 | 317 | |
318 | 318 | /** |
319 | 319 | * @param int $feedback_type |
@@ -324,17 +324,17 @@ discard block |
||
324 | 324 | function return_header($feedback_type = null, $counter = null, $score = null) |
325 | 325 | { |
326 | 326 | $header = parent::return_header($feedback_type, $counter, $score); |
327 | - $header .= '<table class="'.$this->question_table_class .'"> |
|
327 | + $header .= '<table class="'.$this->question_table_class .'"> |
|
328 | 328 | <tr> |
329 | 329 | <th>'.get_lang("Choice").'</th> |
330 | 330 | <th>'. get_lang("ExpectedChoice").'</th> |
331 | 331 | <th>'. get_lang("Answer").'</th>'; |
332 | - if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { |
|
333 | - $header .= '<th>'.get_lang("Comment").'</th>'; |
|
334 | - } else { |
|
335 | - $header .= '<th> </th>'; |
|
336 | - } |
|
332 | + if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { |
|
333 | + $header .= '<th>'.get_lang("Comment").'</th>'; |
|
334 | + } else { |
|
335 | + $header .= '<th> </th>'; |
|
336 | + } |
|
337 | 337 | $header .= '</tr>'; |
338 | 338 | return $header; |
339 | - } |
|
339 | + } |
|
340 | 340 | } |
@@ -15,24 +15,24 @@ |
||
15 | 15 | $answerId = intval($_GET['answerId']); |
16 | 16 | |
17 | 17 | if ($_GET['type'] == "square" || $_GET['type'] == "circle") { |
18 | - $hotspot_type = $_GET['type']; |
|
19 | - $hotspot_coordinates = $_GET['x'].";".$_GET['y']."|".$_GET['width']."|".$_GET['height']; |
|
18 | + $hotspot_type = $_GET['type']; |
|
19 | + $hotspot_coordinates = $_GET['x'].";".$_GET['y']."|".$_GET['width']."|".$_GET['height']; |
|
20 | 20 | } |
21 | 21 | if ($_GET['type'] == "poly" || $_GET['type'] == "delineation" || $_GET['type'] == "oar") { |
22 | - $hotspot_type = $_GET['type']; |
|
23 | - $tmp_coord = explode(",",$_GET['co']); |
|
24 | - $i = 0; |
|
25 | - $hotspot_coordinates = ""; |
|
26 | - foreach ($tmp_coord as $coord) { |
|
27 | - if ($i%2 == 0) { |
|
28 | - $delimiter = ";"; |
|
29 | - } else { |
|
30 | - $delimiter = "|"; |
|
31 | - } |
|
32 | - $hotspot_coordinates .= $coord.$delimiter; |
|
33 | - $i++; |
|
34 | - } |
|
35 | - $hotspot_coordinates = api_substr($hotspot_coordinates,0,-2); |
|
22 | + $hotspot_type = $_GET['type']; |
|
23 | + $tmp_coord = explode(",",$_GET['co']); |
|
24 | + $i = 0; |
|
25 | + $hotspot_coordinates = ""; |
|
26 | + foreach ($tmp_coord as $coord) { |
|
27 | + if ($i%2 == 0) { |
|
28 | + $delimiter = ";"; |
|
29 | + } else { |
|
30 | + $delimiter = "|"; |
|
31 | + } |
|
32 | + $hotspot_coordinates .= $coord.$delimiter; |
|
33 | + $i++; |
|
34 | + } |
|
35 | + $hotspot_coordinates = api_substr($hotspot_coordinates,0,-2); |
|
36 | 36 | } |
37 | 37 | $course_id = api_get_course_int_id(); |
38 | 38 | $sql = "UPDATE $TBL_ANSWER SET |