Completed
Push — 1.11.x ( 6904fa...6a92e6 )
by José
525:44 queued 484:20
created
main/exercise/overview.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -249,7 +249,7 @@
 block discarded – undo
249 249
             break;
250 250
         case RESULT_DISABLE_SHOW_SCORE_ONLY:
251 251
             if ($objExercise->feedback_type != EXERCISE_FEEDBACK_TYPE_END) {
252
-               $header_names = array(get_lang('Attempt'), get_lang('StartDate'), get_lang('IP'), get_lang('Score'));
252
+                $header_names = array(get_lang('Attempt'), get_lang('StartDate'), get_lang('IP'), get_lang('Score'));
253 253
             }
254 254
             else {
255 255
                 $header_names = array(get_lang('Attempt'), get_lang('StartDate'), get_lang('IP'), get_lang('Score'), get_lang('Details'));
Please login to merge, or discard this patch.
main/exercise/TestCategory.php 1 patch
Indentation   +486 added lines, -486 removed lines patch added patch discarded remove patch
@@ -13,11 +13,11 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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,210 +251,210 @@  discard block
 block discarded – undo
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
-	 * @param int $exerciseId
318
-	 */
319
-	public static function getListOfCategoriesIDForTest($exerciseId)
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
+     * @param int $exerciseId
318
+     */
319
+    public static function getListOfCategoriesIDForTest($exerciseId)
320 320
     {
321
-		// parcourir les questions d'un test, recup les categories uniques dans un tableau
322
-		$exercise = new Exercise();
323
-		$exercise->read($exerciseId, false);
324
-		$categoriesInExercise = $exercise->getQuestionWithCategories();
325
-		// the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ???
326
-		$categories = array();
321
+        // parcourir les questions d'un test, recup les categories uniques dans un tableau
322
+        $exercise = new Exercise();
323
+        $exercise->read($exerciseId, false);
324
+        $categoriesInExercise = $exercise->getQuestionWithCategories();
325
+        // the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ???
326
+        $categories = array();
327 327
         if (!empty($categoriesInExercise)) {
328
-			foreach ($categoriesInExercise as $category) {
329
-				//$category['id'] = $category['iid'];
330
-				$categories[$category['id']] = $category;
331
-			}
332
-		}
333
-
334
-		return $categories;
335
-	}
336
-
337
-	/**
338
-	 * @param Exercise $exercise_obj
339
-	 * @return array
340
-	 */
341
-	public static function getListOfCategoriesIDForTestObject(Exercise $exercise_obj)
342
-	{
343
-		// parcourir les questions d'un test, recup les categories uniques dans un tableau
344
-		$categories_in_exercise = array();
345
-		// $question_list = $exercise_obj->getQuestionList();
346
-		$question_list = $exercise_obj->getQuestionOrderedListByName();
347
-
348
-		// the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ???
349
-		foreach ($question_list as $questionInfo) {
350
-			$question_id = $questionInfo['question_id'];
351
-			$category_list = self::getCategoryForQuestion($question_id);
352
-			if (is_numeric($category_list)) {
353
-				$category_list = array($category_list);
354
-			}
355
-
356
-			if (!empty($category_list)) {
357
-				$categories_in_exercise = array_merge($categories_in_exercise, $category_list);
358
-			}
359
-		}
360
-		if (!empty($categories_in_exercise)) {
361
-			$categories_in_exercise = array_unique(array_filter($categories_in_exercise));
362
-		}
363
-		return $categories_in_exercise;
364
-	}
365
-
366
-	/**
367
-	 * Return the list of differents categories NAME for a test
368
-	 * @param int exercise id
369
-	 * @param bool
370
-	 * @return integer of string
371
-	 *
328
+            foreach ($categoriesInExercise as $category) {
329
+                //$category['id'] = $category['iid'];
330
+                $categories[$category['id']] = $category;
331
+            }
332
+        }
333
+
334
+        return $categories;
335
+    }
336
+
337
+    /**
338
+     * @param Exercise $exercise_obj
339
+     * @return array
340
+     */
341
+    public static function getListOfCategoriesIDForTestObject(Exercise $exercise_obj)
342
+    {
343
+        // parcourir les questions d'un test, recup les categories uniques dans un tableau
344
+        $categories_in_exercise = array();
345
+        // $question_list = $exercise_obj->getQuestionList();
346
+        $question_list = $exercise_obj->getQuestionOrderedListByName();
347
+
348
+        // the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ???
349
+        foreach ($question_list as $questionInfo) {
350
+            $question_id = $questionInfo['question_id'];
351
+            $category_list = self::getCategoryForQuestion($question_id);
352
+            if (is_numeric($category_list)) {
353
+                $category_list = array($category_list);
354
+            }
355
+
356
+            if (!empty($category_list)) {
357
+                $categories_in_exercise = array_merge($categories_in_exercise, $category_list);
358
+            }
359
+        }
360
+        if (!empty($categories_in_exercise)) {
361
+            $categories_in_exercise = array_unique(array_filter($categories_in_exercise));
362
+        }
363
+        return $categories_in_exercise;
364
+    }
365
+
366
+    /**
367
+     * Return the list of differents categories NAME for a test
368
+     * @param int exercise id
369
+     * @param bool
370
+     * @return integer of string
371
+     *
372 372
      * @author function rewrote by jmontoya
373
-	 */
374
-	public static function getListOfCategoriesNameForTest($exercise_id, $grouped_by_category = true)
373
+     */
374
+    public static function getListOfCategoriesNameForTest($exercise_id, $grouped_by_category = true)
375 375
     {
376
-		$result = array();
377
-		$categories = self::getListOfCategoriesIDForTest($exercise_id, $grouped_by_category);
376
+        $result = array();
377
+        $categories = self::getListOfCategoriesIDForTest($exercise_id, $grouped_by_category);
378 378
 
379
-		foreach ($categories as $catInfo) {
380
-			$categoryId = $catInfo['id'];
381
-			if (!empty($categoryId)) {
382
-				$result[$categoryId] = array(
379
+        foreach ($categories as $catInfo) {
380
+            $categoryId = $catInfo['id'];
381
+            if (!empty($categoryId)) {
382
+                $result[$categoryId] = array(
383 383
                     'title' => $catInfo['title'],
384 384
                     //'parent_id' =>  $catInfo['parent_id'],
385
-					'parent_id' => '',
385
+                    'parent_id' => '',
386 386
                     'c_id' => $catInfo['c_id']
387 387
                 );
388
-		}
389
-		}
390
-
391
-		return $result;
392
-	}
393
-
394
-	/**
395
-	 * @param Exercise $exercise_obj
396
-	 * @return array
397
-	 */
398
-	public static function getListOfCategoriesForTest(Exercise $exercise_obj)
399
-	{
400
-		$result = array();
401
-		$categories = self::getListOfCategoriesIDForTestObject($exercise_obj);
402
-		foreach ($categories as $cat_id) {
403
-			$cat = new TestCategory($cat_id);
404
-			$cat = (array)$cat;
405
-			$cat['iid'] = $cat['id'];
406
-			$cat['title'] = $cat['name'];
407
-			$result[$cat['id']] = $cat;
408
-		}
409
-		return $result;
410
-	}
411
-
412
-	/**
413
-	 * return the number of differents categories for a test
414
-	 * input : test_id
415
-	 * return : integer
416
-	 * hubert.borderiou 07-04-2011
417
-	 */
418
-	public static function getNumberOfCategoriesForTest($id)
388
+        }
389
+        }
390
+
391
+        return $result;
392
+    }
393
+
394
+    /**
395
+     * @param Exercise $exercise_obj
396
+     * @return array
397
+     */
398
+    public static function getListOfCategoriesForTest(Exercise $exercise_obj)
399
+    {
400
+        $result = array();
401
+        $categories = self::getListOfCategoriesIDForTestObject($exercise_obj);
402
+        foreach ($categories as $cat_id) {
403
+            $cat = new TestCategory($cat_id);
404
+            $cat = (array)$cat;
405
+            $cat['iid'] = $cat['id'];
406
+            $cat['title'] = $cat['name'];
407
+            $result[$cat['id']] = $cat;
408
+        }
409
+        return $result;
410
+    }
411
+
412
+    /**
413
+     * return the number of differents categories for a test
414
+     * input : test_id
415
+     * return : integer
416
+     * hubert.borderiou 07-04-2011
417
+     */
418
+    public static function getNumberOfCategoriesForTest($id)
419 419
     {
420
-		return count(TestCategory::getListOfCategoriesIDForTest($id));
421
-	}
420
+        return count(TestCategory::getListOfCategoriesIDForTest($id));
421
+    }
422 422
 
423
-	/**
424
-	 * return the number of question of a category id in a test
425
-	 * @param int $exerciseId
423
+    /**
424
+     * return the number of question of a category id in a test
425
+     * @param int $exerciseId
426 426
      * @param int $categoryId
427 427
      *
428
-	 * @return integer
428
+     * @return integer
429 429
      *
430
-	 * @author hubert.borderiou 07-04-2011
431
-	 */
432
-	public static function getNumberOfQuestionsInCategoryForTest($exerciseId, $categoryId)
430
+     * @author hubert.borderiou 07-04-2011
431
+     */
432
+    public static function getNumberOfQuestionsInCategoryForTest($exerciseId, $categoryId)
433 433
     {
434
-		$nbCatResult = 0;
435
-		$quiz = new Exercise();
436
-		$quiz->read($exerciseId);
437
-		$tabQuestionList = $quiz->selectQuestionList();
438
-		// the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ? ? ?
439
-		for ($i=1; $i <= count($tabQuestionList); $i++) {
440
-			if (TestCategory::getCategoryForQuestion($tabQuestionList[$i]) == $categoryId) {
441
-				$nbCatResult++;
442
-			}
443
-		}
444
-
445
-		return $nbCatResult;
446
-	}
447
-
448
-	/**
449
-	 * return the number of question for a test using random by category
450
-	 * input  : test_id, number of random question (min 1)
451
-	 * hubert.borderiou 07-04-2011
452
-	 * question without categories are not counted
453
-	 */
454
-	public static function getNumberOfQuestionRandomByCategory($exerciseId, $in_nbrandom)
434
+        $nbCatResult = 0;
435
+        $quiz = new Exercise();
436
+        $quiz->read($exerciseId);
437
+        $tabQuestionList = $quiz->selectQuestionList();
438
+        // the array given by selectQuestionList start at indice 1 and not at indice 0 !!! ? ? ?
439
+        for ($i=1; $i <= count($tabQuestionList); $i++) {
440
+            if (TestCategory::getCategoryForQuestion($tabQuestionList[$i]) == $categoryId) {
441
+                $nbCatResult++;
442
+            }
443
+        }
444
+
445
+        return $nbCatResult;
446
+    }
447
+
448
+    /**
449
+     * return the number of question for a test using random by category
450
+     * input  : test_id, number of random question (min 1)
451
+     * hubert.borderiou 07-04-2011
452
+     * question without categories are not counted
453
+     */
454
+    public static function getNumberOfQuestionRandomByCategory($exerciseId, $in_nbrandom)
455 455
     {
456
-		$nbquestionresult = 0;
457
-		$tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId);
456
+        $nbquestionresult = 0;
457
+        $tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId);
458 458
 
459 459
         foreach ($tabcatid as $category) {
460 460
             if (empty($category['id'])) {
@@ -470,30 +470,30 @@  discard block
 block discarded – undo
470 470
             }
471 471
         }
472 472
 
473
-		return $nbquestionresult;
474
-	}
473
+        return $nbquestionresult;
474
+    }
475 475
 
476
-	/**
477
-	 * Return an array (id=>name)
478
-	 * tabresult[0] = get_lang('NoCategory');
476
+    /**
477
+     * Return an array (id=>name)
478
+     * tabresult[0] = get_lang('NoCategory');
479 479
      *
480 480
      * @param int $courseId
481 481
      *
482 482
      * @return array
483
-	 *
484
-	 */
483
+     *
484
+     */
485 485
     public static function getCategoriesIdAndName($courseId = "")
486 486
     {
487
-		if (empty($courseId)) {
488
-			$courseId = api_get_course_int_id();
489
-		}
490
-	 	$tabcatobject = TestCategory::getCategoryListInfo("", $courseId);
491
-	 	$tabresult = array("0"=>get_lang('NoCategorySelected'));
492
-	 	for ($i=0; $i < count($tabcatobject); $i++) {
493
-	 		$tabresult[$tabcatobject[$i]->id] = $tabcatobject[$i]->name;
494
-	 	}
495
-	 	return $tabresult;
496
-	}
487
+        if (empty($courseId)) {
488
+            $courseId = api_get_course_int_id();
489
+        }
490
+            $tabcatobject = TestCategory::getCategoryListInfo("", $courseId);
491
+            $tabresult = array("0"=>get_lang('NoCategorySelected'));
492
+            for ($i=0; $i < count($tabcatobject); $i++) {
493
+                $tabresult[$tabcatobject[$i]->id] = $tabcatobject[$i]->name;
494
+            }
495
+            return $tabresult;
496
+    }
497 497
 
498 498
     /**
499 499
      * Returns an array of question ids for each category
@@ -502,10 +502,10 @@  discard block
 block discarded – undo
502 502
      * @param int exercise
503 503
      * @param array $check_in_question_list
504 504
      * @param array $categoriesAddedInExercise
505
-    *
506
-    * @param int $exerciseId
507
-    * @return array
508
-    */
505
+     *
506
+     * @param int $exerciseId
507
+     * @return array
508
+     */
509 509
     static function getQuestionsByCat(
510 510
         $exerciseId,
511 511
         $check_in_question_list = array(),
@@ -583,28 +583,28 @@  discard block
 block discarded – undo
583 583
         }
584 584
 
585 585
         return $categories;
586
-	}
586
+    }
587 587
 
588
-	/**
589
-	 * return a tab of $in_number random elements of $in_tab
590
-	 */
588
+    /**
589
+     * return a tab of $in_number random elements of $in_tab
590
+     */
591 591
     public static function getNElementsFromArray($in_tab, $in_number)
592 592
     {
593
-		$tabres = $in_tab;
594
-		shuffle($tabres);
595
-		if ($in_number < count($tabres)) {
596
-			$tabres = array_slice($tabres, 0, $in_number);
597
-		}
598
-		return $tabres;
599
-	}
600
-
601
-	/**
602
-	 * display the category
603
-	 */
604
-	public static function displayCategoryAndTitle($questionId, $in_display_category_name = 1)
593
+        $tabres = $in_tab;
594
+        shuffle($tabres);
595
+        if ($in_number < count($tabres)) {
596
+            $tabres = array_slice($tabres, 0, $in_number);
597
+        }
598
+        return $tabres;
599
+    }
600
+
601
+    /**
602
+     * display the category
603
+     */
604
+    public static function displayCategoryAndTitle($questionId, $in_display_category_name = 1)
605 605
     {
606 606
         echo self::returnCategoryAndTitle($questionId, $in_display_category_name);
607
-	}
607
+    }
608 608
 
609 609
     /**
610 610
      * @param int $questionId
@@ -620,90 +620,90 @@  discard block
 block discarded – undo
620 620
             $in_display_category_name = $objExercise->display_category_name;
621 621
         }
622 622
         $content = null;
623
-		if (TestCategory::getCategoryNameForQuestion($questionId) != "" && ($in_display_category_name == 1 || !$is_student)) {
623
+        if (TestCategory::getCategoryNameForQuestion($questionId) != "" && ($in_display_category_name == 1 || !$is_student)) {
624 624
             $content .= '<div class="page-header">';
625 625
             $content .= '<h4>'.get_lang('Category').": ".TestCategory::getCategoryNameForQuestion($questionId).'</h4>';
626 626
             $content .= "</div>";
627
-		}
627
+        }
628 628
         return $content;
629
-	}
629
+    }
630 630
 
631 631
     /**
632
-    * Display signs [+] and/or (>0) after question title if question has options
633
-    * scoreAlwaysPositive and/or uncheckedMayScore
634
-    */
632
+     * Display signs [+] and/or (>0) after question title if question has options
633
+     * scoreAlwaysPositive and/or uncheckedMayScore
634
+     */
635 635
     public function displayQuestionOption($in_objQuestion)
636 636
     {
637
-		if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->scoreAlwaysPositive) {
638
-			echo "<span style='font-size:75%'> (>0)</span>";
639
-		}
640
-		if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->uncheckedMayScore) {
641
-			echo "<span style='font-size:75%'> [+]</span>";
642
-		}
643
-	}
644
-
645
-	/**
646
-	 * sortTabByBracketLabel ($tabCategoryQuestions)
647
-	 * key of $tabCategoryQuestions are the category id (0 for not in a category)
648
-	 * value is the array of question id of this category
649
-	 * Sort question by Category
650
-	*/
637
+        if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->scoreAlwaysPositive) {
638
+            echo "<span style='font-size:75%'> (>0)</span>";
639
+        }
640
+        if ($in_objQuestion->type == MULTIPLE_ANSWER && $in_objQuestion->uncheckedMayScore) {
641
+            echo "<span style='font-size:75%'> [+]</span>";
642
+        }
643
+    }
644
+
645
+    /**
646
+     * sortTabByBracketLabel ($tabCategoryQuestions)
647
+     * key of $tabCategoryQuestions are the category id (0 for not in a category)
648
+     * value is the array of question id of this category
649
+     * Sort question by Category
650
+     */
651 651
     public static function sortTabByBracketLabel($in_tab)
652 652
     {
653
-		$tabResult = array();
654
-		$tabCatName = array();	// tab of category name
655
-		while (list($cat_id, $tabquestion) = each($in_tab)) {
656
-			$catTitle = new TestCategory($cat_id);
657
-			$tabCatName[$cat_id] = $catTitle->name;
658
-		}
659
-		reset($in_tab);
660
-		// sort table by value, keeping keys as they are
661
-		asort($tabCatName);
662
-		// keys of $tabCatName are keys order for $in_tab
663
-		while (list($key, $val) = each($tabCatName)) {
664
-			$tabResult[$key] = $in_tab[$key];
665
-		}
666
-		return $tabResult;
667
-	}
653
+        $tabResult = array();
654
+        $tabCatName = array();	// tab of category name
655
+        while (list($cat_id, $tabquestion) = each($in_tab)) {
656
+            $catTitle = new TestCategory($cat_id);
657
+            $tabCatName[$cat_id] = $catTitle->name;
658
+        }
659
+        reset($in_tab);
660
+        // sort table by value, keeping keys as they are
661
+        asort($tabCatName);
662
+        // keys of $tabCatName are keys order for $in_tab
663
+        while (list($key, $val) = each($tabCatName)) {
664
+            $tabResult[$key] = $in_tab[$key];
665
+        }
666
+        return $tabResult;
667
+    }
668 668
 
669 669
     /**
670
-	 * return total score for test exe_id for all question in the category $in_cat_id for user
671
-	 * If no question for this category, return ""
672
-	 */
673
-	public static function getCatScoreForExeidForUserid($in_cat_id, $in_exe_id, $in_user_id)
674
-	{
675
-		$tbl_track_attempt		= Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
676
-		$tbl_question_rel_category = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY);
677
-		$in_cat_id = intval($in_cat_id);
678
-		$in_exe_id = intval($in_exe_id);
679
-		$in_user_id = intval($in_user_id);
680
-
681
-		$query = "SELECT DISTINCT
670
+     * return total score for test exe_id for all question in the category $in_cat_id for user
671
+     * If no question for this category, return ""
672
+     */
673
+    public static function getCatScoreForExeidForUserid($in_cat_id, $in_exe_id, $in_user_id)
674
+    {
675
+        $tbl_track_attempt		= Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
676
+        $tbl_question_rel_category = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY);
677
+        $in_cat_id = intval($in_cat_id);
678
+        $in_exe_id = intval($in_exe_id);
679
+        $in_user_id = intval($in_user_id);
680
+
681
+        $query = "SELECT DISTINCT
682 682
 		            marks, exe_id, user_id, ta.question_id, category_id
683 683
                   FROM $tbl_track_attempt ta , $tbl_question_rel_category qrc
684 684
                   WHERE
685 685
                     ta.question_id=qrc.question_id AND
686 686
                     qrc.category_id=$in_cat_id AND
687 687
                     exe_id=$in_exe_id AND user_id=$in_user_id";
688
-		$res = Database::query($query);
689
-		$totalcatscore = "";
690
-		while ($data = Database::fetch_array($res)) {
691
-			$totalcatscore += $data['marks'];
692
-		}
693
-		return $totalcatscore;
694
-	}
695
-
696
-	/**
688
+        $res = Database::query($query);
689
+        $totalcatscore = "";
690
+        while ($data = Database::fetch_array($res)) {
691
+            $totalcatscore += $data['marks'];
692
+        }
693
+        return $totalcatscore;
694
+    }
695
+
696
+    /**
697 697
      * return the number max of question in a category
698 698
      * count the number of questions in all categories, and return the max
699 699
      * @param int $exerciseId
700 700
      * @author - hubert borderiou
701
-    */
701
+     */
702 702
     public static function getNumberMaxQuestionByCat($exerciseId)
703 703
     {
704 704
         $res_num_max = 0;
705 705
         // foreach question
706
-		$tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId);
706
+        $tabcatid = TestCategory::getListOfCategoriesIDForTest($exerciseId);
707 707
 
708 708
         foreach ($tabcatid as $category) {
709 709
             if (empty($category['id'])) {
@@ -775,34 +775,34 @@  discard block
 block discarded – undo
775 775
     }
776 776
 
777 777
     /**
778
-	 * @return array
779
-	 */
780
-	function get_all_categories()
781
-	{
782
-		$table = Database::get_course_table(TABLE_QUIZ_CATEGORY);
783
-		$sql = "SELECT * FROM $table ORDER BY title ASC";
784
-		$res = Database::query($sql);
785
-		while ($row = Database::fetch_array($res,'ASSOC')) {
786
-			$array[] = $row;
787
-		}
788
-		return $array;
789
-	}
790
-
791
-	/**
792
-	 * @param Exercise $exercise
793
-	 * @param int $course_id
794
-	 * @param string $order
795
-	 * @param bool $shuffle
796
-	 * @param bool $excludeCategoryWithNoQuestions
797
-	 * @return array|bool
798
-	 */
799
-	public function getCategoryExerciseTree(
800
-		$exercise,
801
-		$course_id,
802
-		$order = null,
803
-		$shuffle = false,
804
-		$excludeCategoryWithNoQuestions = true
805
-	) {
778
+     * @return array
779
+     */
780
+    function get_all_categories()
781
+    {
782
+        $table = Database::get_course_table(TABLE_QUIZ_CATEGORY);
783
+        $sql = "SELECT * FROM $table ORDER BY title ASC";
784
+        $res = Database::query($sql);
785
+        while ($row = Database::fetch_array($res,'ASSOC')) {
786
+            $array[] = $row;
787
+        }
788
+        return $array;
789
+    }
790
+
791
+    /**
792
+     * @param Exercise $exercise
793
+     * @param int $course_id
794
+     * @param string $order
795
+     * @param bool $shuffle
796
+     * @param bool $excludeCategoryWithNoQuestions
797
+     * @return array|bool
798
+     */
799
+    public function getCategoryExerciseTree(
800
+        $exercise,
801
+        $course_id,
802
+        $order = null,
803
+        $shuffle = false,
804
+        $excludeCategoryWithNoQuestions = true
805
+    ) {
806 806
         if (empty($exercise)) {
807 807
             return array();
808 808
         }
@@ -812,165 +812,165 @@  discard block
 block discarded – undo
812 812
         }
813 813
 
814 814
         $course_id = intval($course_id);
815
-		$table = Database::get_course_table(TABLE_QUIZ_REL_CATEGORY);
815
+        $table = Database::get_course_table(TABLE_QUIZ_REL_CATEGORY);
816 816
         $categoryTable = Database::get_course_table(TABLE_QUIZ_QUESTION_CATEGORY);
817
-		$sql = "SELECT * FROM $table qc
817
+        $sql = "SELECT * FROM $table qc
818 818
               	LEFT JOIN $categoryTable c
819 819
                 ON (qc.c_id = c.c_id AND c.id = qc.category_id)
820 820
                 WHERE qc.c_id = $course_id AND exercise_id = {$exercise->id} ";
821 821
 
822
-		if (!empty($order)) {
823
-			$sql .= "ORDER BY $order";
824
-		}
825
-
826
-		$categories = array();
827
-
828
-		$result = Database::query($sql);
829
-		if (Database::num_rows($result)) {
830
-			while ($row = Database::fetch_array($result, 'ASSOC')) {
831
-				if ($excludeCategoryWithNoQuestions) {
832
-					if ($row['count_questions'] == 0) {
833
-						continue;
834
-					}
835
-				}
836
-				if (empty($row['title']) && empty($row['category_id'])) {
837
-					$row['title'] = get_lang('NoCategory');
838
-				}
822
+        if (!empty($order)) {
823
+            $sql .= "ORDER BY $order";
824
+        }
825
+
826
+        $categories = array();
827
+
828
+        $result = Database::query($sql);
829
+        if (Database::num_rows($result)) {
830
+            while ($row = Database::fetch_array($result, 'ASSOC')) {
831
+                if ($excludeCategoryWithNoQuestions) {
832
+                    if ($row['count_questions'] == 0) {
833
+                        continue;
834
+                    }
835
+                }
836
+                if (empty($row['title']) && empty($row['category_id'])) {
837
+                    $row['title'] = get_lang('NoCategory');
838
+                }
839 839
                 $categories[$row['category_id']] = $row;
840
-			}
841
-		}
842
-
843
-		if ($shuffle) {
844
-			shuffle_assoc($categories);
845
-		}
846
-
847
-		return $categories;
848
-	}
849
-
850
-	public function getForm(& $form, $action = 'new')
851
-	{
852
-		switch($action) {
853
-			case 'new':
854
-				$header = get_lang('AddACategory');
855
-				$submit = get_lang('AddTestCategory');
856
-				break;
857
-			case 'edit':
858
-				$header = get_lang('EditCategory');
859
-				$submit = get_lang('ModifyCategory');
860
-				break;
861
-		}
862
-
863
-		// settting the form elements
864
-		$form->addElement('header', $header);
865
-		$form->addElement('hidden', 'category_id');
866
-		$form->addElement('text', 'category_name', get_lang('CategoryName'), array('class' => 'span6'));
867
-		$form->add_html_editor('category_description', get_lang('CategoryDescription'), false, false, array('ToolbarSet' => 'test_category', 'Width' => '90%', 'Height' => '200'));
868
-		$category_parent_list = array();
869
-
870
-		$options = array(
871
-				'1' => get_lang('Visible'),
872
-				'0' => get_lang('Hidden')
873
-		);
874
-		$form->addElement('select', 'visibility', get_lang('Visibility'), $options);
875
-		$script = null;
876
-		if (!empty($this->parent_id)) {
877
-			$parent_cat = new TestCategory($this->parent_id);
878
-			$category_parent_list = array($parent_cat->id => $parent_cat->name);
879
-			$script .= '<script>$(function() { $("#parent_id").trigger("addItem",[{"title": "'.$parent_cat->name.'", "value": "'.$parent_cat->id.'"}]); });</script>';
880
-		}
881
-		$form->addElement('html', $script);
882
-
883
-		$form->addElement('select', 'parent_id', get_lang('Parent'), $category_parent_list, array('id' => 'parent_id'));
884
-		$form->addElement('style_submit_button', 'SubmitNote', $submit, 'class="add"');
885
-
886
-		// setting the defaults
887
-		$defaults = array();
888
-		$defaults["category_id"] = $this->id;
889
-		$defaults["category_name"] = $this->name;
890
-		$defaults["category_description"] = $this->description;
891
-		$defaults["parent_id"] = $this->parent_id;
892
-		$defaults["visibility"] = $this->visibility;
893
-		$form->setDefaults($defaults);
894
-
895
-		// setting the rules
896
-		$form->addRule('category_name', get_lang('ThisFieldIsRequired'), 'required');
897
-	}
898
-
899
-	/**
900
-	 * Returns the category form.
901
-	 * @param Exercise $exercise_obj
902
-	 * @return string
903
-	 */
904
-	public function returnCategoryForm(Exercise $exercise_obj)
905
-	{
906
-		$categories = $this->getListOfCategoriesForTest($exercise_obj);
907
-
908
-		$saved_categories = $exercise_obj->get_categories_in_exercise();
909
-		$return = null;
910
-
911
-		if (!empty($categories)) {
912
-			$nbQuestionsTotal = $exercise_obj->getNumberQuestionExerciseCategory();
913
-			$exercise_obj->setCategoriesGrouping(true);
914
-			$real_question_count = count($exercise_obj->getQuestionList());
915
-
916
-			$warning = null;
917
-			if ($nbQuestionsTotal != $real_question_count) {
918
-				$warning = Display::return_message(get_lang('CheckThatYouHaveEnoughQuestionsInYourCategories'), 'warning');
919
-			}
920
-
921
-			$return .= $warning;
922
-			$return .= '<table class="data_table">';
923
-			$return .= '<tr>';
924
-			$return .= '<th height="24">' . get_lang('Categories') . '</th>';
925
-			$return .= '<th width="70" height="24">' . get_lang('Number') . '</th></tr>';
926
-
927
-			$emptyCategory = array(
928
-				'id' => '0',
929
-				'name' => get_lang('NoCategory'),
930
-				'description' => '',
931
-				'iid' => '0',
932
-				'title' => get_lang('NoCategory')
933
-			);
934
-
935
-			$categories[] = $emptyCategory;
936
-
937
-			foreach ($categories as $category) {
938
-				$cat_id = $category['iid'];
939
-				$return .= '<tr>';
940
-				$return .= '<td>';
941
-				//$return .= Display::div(isset($category['parent_path']) ? $category['parent_path'] : '');
942
-				$return .= Display::div($category['name']);
943
-				$return .= '</td>';
944
-				$return .= '<td>';
945
-				$value = isset($saved_categories) && isset($saved_categories[$cat_id]) ? $saved_categories[$cat_id]['count_questions'] : -1;
946
-				$return .= '<input name="category['.$cat_id.']" value="' .$value.'" />';
947
-				$return .= '</td>';
948
-				$return .= '</tr>';
949
-			}
950
-
951
-			$return .= '</table>';
952
-			$return .= get_lang('ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected');
953
-			return $return;
954
-		}
955
-	}
956
-
957
-	/**
958
-	 * Sorts an array
959
-	 * @param $array
960
-	 * @return mixed
961
-	 */
962
-	public function sort_tree_array($array)
963
-	{
964
-		foreach ($array as $key => $row) {
965
-			$parent[$key] = $row['parent_id'];
966
-		}
967
-		if (count($array) > 0) {
968
-			array_multisort($parent, SORT_ASC, $array);
969
-		}
970
-		return $array;
971
-	}
972
-
973
-	/**
840
+            }
841
+        }
842
+
843
+        if ($shuffle) {
844
+            shuffle_assoc($categories);
845
+        }
846
+
847
+        return $categories;
848
+    }
849
+
850
+    public function getForm(& $form, $action = 'new')
851
+    {
852
+        switch($action) {
853
+            case 'new':
854
+                $header = get_lang('AddACategory');
855
+                $submit = get_lang('AddTestCategory');
856
+                break;
857
+            case 'edit':
858
+                $header = get_lang('EditCategory');
859
+                $submit = get_lang('ModifyCategory');
860
+                break;
861
+        }
862
+
863
+        // settting the form elements
864
+        $form->addElement('header', $header);
865
+        $form->addElement('hidden', 'category_id');
866
+        $form->addElement('text', 'category_name', get_lang('CategoryName'), array('class' => 'span6'));
867
+        $form->add_html_editor('category_description', get_lang('CategoryDescription'), false, false, array('ToolbarSet' => 'test_category', 'Width' => '90%', 'Height' => '200'));
868
+        $category_parent_list = array();
869
+
870
+        $options = array(
871
+                '1' => get_lang('Visible'),
872
+                '0' => get_lang('Hidden')
873
+        );
874
+        $form->addElement('select', 'visibility', get_lang('Visibility'), $options);
875
+        $script = null;
876
+        if (!empty($this->parent_id)) {
877
+            $parent_cat = new TestCategory($this->parent_id);
878
+            $category_parent_list = array($parent_cat->id => $parent_cat->name);
879
+            $script .= '<script>$(function() { $("#parent_id").trigger("addItem",[{"title": "'.$parent_cat->name.'", "value": "'.$parent_cat->id.'"}]); });</script>';
880
+        }
881
+        $form->addElement('html', $script);
882
+
883
+        $form->addElement('select', 'parent_id', get_lang('Parent'), $category_parent_list, array('id' => 'parent_id'));
884
+        $form->addElement('style_submit_button', 'SubmitNote', $submit, 'class="add"');
885
+
886
+        // setting the defaults
887
+        $defaults = array();
888
+        $defaults["category_id"] = $this->id;
889
+        $defaults["category_name"] = $this->name;
890
+        $defaults["category_description"] = $this->description;
891
+        $defaults["parent_id"] = $this->parent_id;
892
+        $defaults["visibility"] = $this->visibility;
893
+        $form->setDefaults($defaults);
894
+
895
+        // setting the rules
896
+        $form->addRule('category_name', get_lang('ThisFieldIsRequired'), 'required');
897
+    }
898
+
899
+    /**
900
+     * Returns the category form.
901
+     * @param Exercise $exercise_obj
902
+     * @return string
903
+     */
904
+    public function returnCategoryForm(Exercise $exercise_obj)
905
+    {
906
+        $categories = $this->getListOfCategoriesForTest($exercise_obj);
907
+
908
+        $saved_categories = $exercise_obj->get_categories_in_exercise();
909
+        $return = null;
910
+
911
+        if (!empty($categories)) {
912
+            $nbQuestionsTotal = $exercise_obj->getNumberQuestionExerciseCategory();
913
+            $exercise_obj->setCategoriesGrouping(true);
914
+            $real_question_count = count($exercise_obj->getQuestionList());
915
+
916
+            $warning = null;
917
+            if ($nbQuestionsTotal != $real_question_count) {
918
+                $warning = Display::return_message(get_lang('CheckThatYouHaveEnoughQuestionsInYourCategories'), 'warning');
919
+            }
920
+
921
+            $return .= $warning;
922
+            $return .= '<table class="data_table">';
923
+            $return .= '<tr>';
924
+            $return .= '<th height="24">' . get_lang('Categories') . '</th>';
925
+            $return .= '<th width="70" height="24">' . get_lang('Number') . '</th></tr>';
926
+
927
+            $emptyCategory = array(
928
+                'id' => '0',
929
+                'name' => get_lang('NoCategory'),
930
+                'description' => '',
931
+                'iid' => '0',
932
+                'title' => get_lang('NoCategory')
933
+            );
934
+
935
+            $categories[] = $emptyCategory;
936
+
937
+            foreach ($categories as $category) {
938
+                $cat_id = $category['iid'];
939
+                $return .= '<tr>';
940
+                $return .= '<td>';
941
+                //$return .= Display::div(isset($category['parent_path']) ? $category['parent_path'] : '');
942
+                $return .= Display::div($category['name']);
943
+                $return .= '</td>';
944
+                $return .= '<td>';
945
+                $value = isset($saved_categories) && isset($saved_categories[$cat_id]) ? $saved_categories[$cat_id]['count_questions'] : -1;
946
+                $return .= '<input name="category['.$cat_id.']" value="' .$value.'" />';
947
+                $return .= '</td>';
948
+                $return .= '</tr>';
949
+            }
950
+
951
+            $return .= '</table>';
952
+            $return .= get_lang('ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected');
953
+            return $return;
954
+        }
955
+    }
956
+
957
+    /**
958
+     * Sorts an array
959
+     * @param $array
960
+     * @return mixed
961
+     */
962
+    public function sort_tree_array($array)
963
+    {
964
+        foreach ($array as $key => $row) {
965
+            $parent[$key] = $row['parent_id'];
966
+        }
967
+        if (count($array) > 0) {
968
+            array_multisort($parent, SORT_ASC, $array);
969
+        }
970
+        return $array;
971
+    }
972
+
973
+    /**
974 974
      * Return true if a category already exists with the same name
975 975
      * @param string $in_name
976 976
      *
@@ -1016,8 +1016,8 @@  discard block
 block discarded – undo
1016 1016
      * @param int $categoryId
1017 1017
      * @param int $questionId
1018 1018
      * @param int $courseId
1019
-	 *
1020
-	 * @return string|false
1019
+     *
1020
+     * @return string|false
1021 1021
      */
1022 1022
     public static function add_category_for_question_id($categoryId, $questionId, $courseId)
1023 1023
     {
@@ -1025,18 +1025,18 @@  discard block
 block discarded – undo
1025 1025
         // if question doesn't have a category
1026 1026
         // @todo change for 1.10 when a question can have several categories
1027 1027
         if (TestCategory::getCategoryForQuestion($questionId, $courseId) == 0 &&
1028
-			$questionId > 0 &&
1029
-			$courseId > 0
1028
+            $questionId > 0 &&
1029
+            $courseId > 0
1030 1030
         ) {
1031 1031
             $sql = "INSERT INTO $table (c_id, question_id, category_id)
1032 1032
                     VALUES (".intval($courseId).", ".intval($questionId).", ".intval($categoryId).")";
1033 1033
             Database::query($sql);
1034
-			$id = Database::insert_id();
1034
+            $id = Database::insert_id();
1035 1035
 
1036
-			return $id;
1036
+            return $id;
1037 1037
         }
1038 1038
 
1039
-		return false;
1039
+        return false;
1040 1040
     }
1041 1041
 
1042 1042
     /**
Please login to merge, or discard this patch.
main/exercise/hotpotatoes_exercise_result.class.php 1 patch
Indentation   +137 added lines, -137 removed lines patch added patch discarded remove patch
@@ -14,15 +14,15 @@  discard block
 block discarded – undo
14 14
     //stores the results
15 15
     private $results = array();
16 16
 
17
-	/**
18
-	 * Gets the results of all students (or just one student if access is limited)
19
-	 * @param	string		The document path (for HotPotatoes retrieval)
20
-	 * @param	integer		User ID. Optional. If no user ID is provided, we take all the results. Defauts to null
21
-	 * @param string $document_path
22
-	 */
23
-	public function getExercisesReporting($document_path, $hotpotato_name)
17
+    /**
18
+     * Gets the results of all students (or just one student if access is limited)
19
+     * @param	string		The document path (for HotPotatoes retrieval)
20
+     * @param	integer		User ID. Optional. If no user ID is provided, we take all the results. Defauts to null
21
+     * @param string $document_path
22
+     */
23
+    public function getExercisesReporting($document_path, $hotpotato_name)
24 24
     {
25
-		$return = array();
25
+        $return = array();
26 26
         $TBL_USER = Database::get_main_table(TABLE_MAIN_USER);
27 27
         $TBL_TRACK_HOTPOTATOES	= Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES);
28 28
 
@@ -34,7 +34,7 @@  discard block
 block discarded – undo
34 34
         $hotpotato_name  = Database::escape_string($hotpotato_name);
35 35
 
36 36
         if (!empty($exercise_id)) {
37
-          $session_id_and .= " AND exe_exo_id = $exercise_id ";
37
+            $session_id_and .= " AND exe_exo_id = $exercise_id ";
38 38
         }
39 39
 
40 40
         if (empty($user_id)) {
@@ -111,25 +111,25 @@  discard block
 block discarded – undo
111 111
         $this->results = $return;
112 112
 
113 113
         return true;
114
-	}
114
+    }
115 115
 
116 116
 
117
-	/**
118
-	 * Exports the complete report as a CSV file
119
-	 * @param	string		Document path inside the document tool
120
-	 * @param	integer		Optional user ID
121
-	 * @param	boolean		Whether to include user fields or not
122
-	 * @return	boolean		False on error
123
-	 */
124
-	public function exportCompleteReportCSV($document_path='', $hotpotato_name)
117
+    /**
118
+     * Exports the complete report as a CSV file
119
+     * @param	string		Document path inside the document tool
120
+     * @param	integer		Optional user ID
121
+     * @param	boolean		Whether to include user fields or not
122
+     * @return	boolean		False on error
123
+     */
124
+    public function exportCompleteReportCSV($document_path='', $hotpotato_name)
125 125
     {
126
-		global $charset;
127
-		$this->getExercisesReporting($document_path, $hotpotato_name);
128
-		$filename = 'exercise_results_'.date('YmdGis').'.csv';
129
-		if (!empty($user_id)) {
130
-			$filename = 'exercise_results_user_'.$user_id.'_'.date('YmdGis').'.csv';
131
-		}
132
-		$data = '';
126
+        global $charset;
127
+        $this->getExercisesReporting($document_path, $hotpotato_name);
128
+        $filename = 'exercise_results_'.date('YmdGis').'.csv';
129
+        if (!empty($user_id)) {
130
+            $filename = 'exercise_results_user_'.$user_id.'_'.date('YmdGis').'.csv';
131
+        }
132
+        $data = '';
133 133
 
134 134
         if (api_is_western_name_order()) {
135 135
             if(!empty($this->results[0]['first_name'])) {
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
         }
149 149
         $data .= get_lang('Email').';';
150 150
 
151
-		/*if ($export_user_fields) {
151
+        /*if ($export_user_fields) {
152 152
 			//show user fields section with a big th colspan that spans over all fields
153 153
 			$extra_user_fields = UserManager::get_extra_fields(0,1000,5,'ASC',false, 1);
154 154
 			$num = count($extra_user_fields);
@@ -157,25 +157,25 @@  discard block
 block discarded – undo
157 157
 			}
158 158
 		}*/
159 159
 
160
-		$data .= get_lang('Title').';';
161
-		$data .= get_lang('StartDate').';';
162
-		$data .= get_lang('Score').';';
163
-		$data .= get_lang('Total').';';
164
-		$data .= "\n";
160
+        $data .= get_lang('Title').';';
161
+        $data .= get_lang('StartDate').';';
162
+        $data .= get_lang('Score').';';
163
+        $data .= get_lang('Total').';';
164
+        $data .= "\n";
165 165
 
166
-		//results
167
-		foreach($this->results as $row) {
166
+        //results
167
+        foreach($this->results as $row) {
168 168
             if (api_is_western_name_order()) {
169
-              $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['first_name']), ENT_QUOTES, $charset)).';';
170
-              $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['last_name']), ENT_QUOTES, $charset)).';';
169
+                $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['first_name']), ENT_QUOTES, $charset)).';';
170
+                $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['last_name']), ENT_QUOTES, $charset)).';';
171 171
             } else {
172
-              $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['last_name']), ENT_QUOTES, $charset)).';';
173
-              $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['first_name']), ENT_QUOTES, $charset)).';';
172
+                $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['last_name']), ENT_QUOTES, $charset)).';';
173
+                $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['first_name']), ENT_QUOTES, $charset)).';';
174 174
             }
175 175
 
176 176
             $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['email']), ENT_QUOTES, $charset)).';';
177 177
 
178
-			/*if ($export_user_fields) {
178
+            /*if ($export_user_fields) {
179 179
 				//show user fields data, if any, for this user
180 180
 				$user_fields_values = UserManager::get_extra_user_data($row['user_id'],false,false, false, true);
181 181
 				foreach($user_fields_values as $value) {
@@ -183,40 +183,40 @@  discard block
 block discarded – undo
183 183
 				}
184 184
 			}*/
185 185
 
186
-			$data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['title']), ENT_QUOTES, $charset)).';';
187
-			$data .= str_replace("\r\n",'  ',$row['exe_date']).';';
188
-			$data .= str_replace("\r\n",'  ',$row['result']).';';
189
-			$data .= str_replace("\r\n",'  ',$row['max']).';';
190
-			$data .= "\n";
191
-		}
192
-
193
-		//output the results
194
-		$len = strlen($data);
195
-		header('Content-type: application/octet-stream');
196
-		header('Content-Type: application/force-download');
197
-		header('Content-length: '.$len);
198
-		if (preg_match("/MSIE 5.5/", $_SERVER['HTTP_USER_AGENT'])) {
199
-			header('Content-Disposition: filename= '.$filename);
200
-		} else {
201
-			header('Content-Disposition: attachment; filename= '.$filename);
202
-		}
203
-		if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) {
204
-			header('Pragma: ');
205
-			header('Cache-Control: ');
206
-			header('Cache-Control: public'); // IE cannot download from sessions without a cache
207
-		}
208
-		header('Content-Description: '.$filename);
209
-		header('Content-transfer-encoding: binary');
210
-		// @todo add this utf-8 header for all csv files
211
-		echo "\xEF\xBB\xBF";  // force utf-8 header of csv file
212
-		echo $data;
213
-		return true;
214
-	}
215
-
216
-	/**
217
-	 * Exports the complete report as an XLS file
218
-	 * @return	boolean		False on error
219
-	 */
186
+            $data .= str_replace("\r\n",'  ',api_html_entity_decode(strip_tags($row['title']), ENT_QUOTES, $charset)).';';
187
+            $data .= str_replace("\r\n",'  ',$row['exe_date']).';';
188
+            $data .= str_replace("\r\n",'  ',$row['result']).';';
189
+            $data .= str_replace("\r\n",'  ',$row['max']).';';
190
+            $data .= "\n";
191
+        }
192
+
193
+        //output the results
194
+        $len = strlen($data);
195
+        header('Content-type: application/octet-stream');
196
+        header('Content-Type: application/force-download');
197
+        header('Content-length: '.$len);
198
+        if (preg_match("/MSIE 5.5/", $_SERVER['HTTP_USER_AGENT'])) {
199
+            header('Content-Disposition: filename= '.$filename);
200
+        } else {
201
+            header('Content-Disposition: attachment; filename= '.$filename);
202
+        }
203
+        if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) {
204
+            header('Pragma: ');
205
+            header('Cache-Control: ');
206
+            header('Cache-Control: public'); // IE cannot download from sessions without a cache
207
+        }
208
+        header('Content-Description: '.$filename);
209
+        header('Content-transfer-encoding: binary');
210
+        // @todo add this utf-8 header for all csv files
211
+        echo "\xEF\xBB\xBF";  // force utf-8 header of csv file
212
+        echo $data;
213
+        return true;
214
+    }
215
+
216
+    /**
217
+     * Exports the complete report as an XLS file
218
+     * @return	boolean		False on error
219
+     */
220 220
     public function exportCompleteReportXLS(
221 221
         $document_path = '',
222 222
         $user_id = null,
@@ -225,37 +225,37 @@  discard block
 block discarded – undo
225 225
         $exercise_id = 0,
226 226
         $hotpotato_name = null
227 227
     ) {
228
-		global $charset;
229
-		$this->getExercisesReporting($document_path, $user_id, $export_filter, $exercise_id, $hotpotato_name);
230
-		$filename = 'exercise_results_'.api_get_local_time().'.xls';
231
-		if (!empty($user_id)) {
232
-			$filename = 'exercise_results_user_'.$user_id.'_'.api_get_local_time().'.xls';
233
-		}
228
+        global $charset;
229
+        $this->getExercisesReporting($document_path, $user_id, $export_filter, $exercise_id, $hotpotato_name);
230
+        $filename = 'exercise_results_'.api_get_local_time().'.xls';
231
+        if (!empty($user_id)) {
232
+            $filename = 'exercise_results_user_'.$user_id.'_'.api_get_local_time().'.xls';
233
+        }
234 234
 
235 235
         $spreadsheet = new PHPExcel();
236 236
         $spreadsheet->setActiveSheetIndex(0);
237 237
         $worksheet = $spreadsheet->getActiveSheet();
238 238
 
239 239
 
240
-		$line = 0;
241
-		$column = 0; //skip the first column (row titles)
240
+        $line = 0;
241
+        $column = 0; //skip the first column (row titles)
242 242
 
243
-		// check if exists column 'user'
244
-		$with_column_user = false;
245
-		foreach ($this->results as $result) {
246
-			if (!empty($result['last_name']) && !empty($result['first_name'])) {
247
-				$with_column_user = true;
248
-				break;
249
-			}
250
-		}
243
+        // check if exists column 'user'
244
+        $with_column_user = false;
245
+        foreach ($this->results as $result) {
246
+            if (!empty($result['last_name']) && !empty($result['first_name'])) {
247
+                $with_column_user = true;
248
+                break;
249
+            }
250
+        }
251 251
 
252
-		if ($with_column_user) {
253
-		    $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('Email'));
254
-		    $column++;
252
+        if ($with_column_user) {
253
+            $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('Email'));
254
+            $column++;
255 255
 
256 256
             if (api_is_western_name_order()) {
257
-    			$worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('FirstName'));
258
-    			$column++;
257
+                $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('FirstName'));
258
+                $column++;
259 259
                 $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('LastName'));
260 260
                 $column++;
261 261
             } else {
@@ -264,36 +264,36 @@  discard block
 block discarded – undo
264 264
                 $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('FirstName'));
265 265
                 $column++;
266 266
             }
267
-		}
267
+        }
268 268
 
269
-		if ($export_user_fields) {
270
-			//show user fields section with a big th colspan that spans over all fields
271
-			$extra_user_fields = UserManager::get_extra_fields(0,1000,5,'ASC',false, 1);
269
+        if ($export_user_fields) {
270
+            //show user fields section with a big th colspan that spans over all fields
271
+            $extra_user_fields = UserManager::get_extra_fields(0,1000,5,'ASC',false, 1);
272 272
 
273
-			//show the fields names for user fields
274
-			foreach ($extra_user_fields as $field) {
275
-				$worksheet->SetCellValueByColumnAndRow($line, $column, api_html_entity_decode(strip_tags($field[3]), ENT_QUOTES, $charset));
276
-				$column++;
277
-			}
278
-		}
273
+            //show the fields names for user fields
274
+            foreach ($extra_user_fields as $field) {
275
+                $worksheet->SetCellValueByColumnAndRow($line, $column, api_html_entity_decode(strip_tags($field[3]), ENT_QUOTES, $charset));
276
+                $column++;
277
+            }
278
+        }
279 279
 
280
-		$worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Title'));
281
-		$column++;
282
-		$worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('StartDate'));
280
+        $worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Title'));
281
+        $column++;
282
+        $worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('StartDate'));
283 283
         $column++;
284 284
         $worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('EndDate'));
285 285
         $column++;
286 286
         $worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Duration').' ('.get_lang('MinMinutes').')');
287
-		$column++;
288
-		$worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Score'));
289
-		$column++;
290
-		$worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Total'));
291
-		$column++;
287
+        $column++;
288
+        $worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Score'));
289
+        $column++;
290
+        $worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Total'));
291
+        $column++;
292 292
         $worksheet->SetCellValueByColumnAndRow($line,$column, get_lang('Status'));
293
-		$line++;
293
+        $line++;
294 294
 
295
-		foreach ($this->results as $row) {
296
-			$column = 0;
295
+        foreach ($this->results as $row) {
296
+            $column = 0;
297 297
 
298 298
             if ($with_column_user) {
299 299
                 $worksheet->SetCellValueByColumnAndRow($line,$column,api_html_entity_decode(strip_tags($row['email']), ENT_QUOTES, $charset));
@@ -310,38 +310,38 @@  discard block
 block discarded – undo
310 310
                     $worksheet->SetCellValueByColumnAndRow($line,$column,api_html_entity_decode(strip_tags($row['first_name']), ENT_QUOTES, $charset));
311 311
                     $column++;
312 312
                 }
313
-			}
313
+            }
314 314
 
315
-			if ($export_user_fields) {
316
-				//show user fields data, if any, for this user
317
-				$user_fields_values = UserManager::get_extra_user_data($row['user_id'],false,false, false, true);
318
-				foreach($user_fields_values as $value) {
319
-					$worksheet->SetCellValueByColumnAndRow($line,$column, api_html_entity_decode(strip_tags($value), ENT_QUOTES, $charset));
320
-					$column++;
321
-				}
322
-			}
315
+            if ($export_user_fields) {
316
+                //show user fields data, if any, for this user
317
+                $user_fields_values = UserManager::get_extra_user_data($row['user_id'],false,false, false, true);
318
+                foreach($user_fields_values as $value) {
319
+                    $worksheet->SetCellValueByColumnAndRow($line,$column, api_html_entity_decode(strip_tags($value), ENT_QUOTES, $charset));
320
+                    $column++;
321
+                }
322
+            }
323 323
 
324
-			$worksheet->SetCellValueByColumnAndRow($line,$column,api_html_entity_decode(strip_tags($row['title']), ENT_QUOTES, $charset));
325
-			$column++;
326
-			$worksheet->SetCellValueByColumnAndRow($line,$column,$row['start_date']);
324
+            $worksheet->SetCellValueByColumnAndRow($line,$column,api_html_entity_decode(strip_tags($row['title']), ENT_QUOTES, $charset));
325
+            $column++;
326
+            $worksheet->SetCellValueByColumnAndRow($line,$column,$row['start_date']);
327 327
             $column++;
328
-			$worksheet->SetCellValueByColumnAndRow($line,$column,$row['end_date']);
328
+            $worksheet->SetCellValueByColumnAndRow($line,$column,$row['end_date']);
329
+            $column++;
330
+            $worksheet->SetCellValueByColumnAndRow($line,$column,$row['duration']);
331
+            $column++;
332
+            $worksheet->SetCellValueByColumnAndRow($line,$column,$row['result']);
333
+            $column++;
334
+            $worksheet->SetCellValueByColumnAndRow($line,$column,$row['max']);
329 335
             $column++;
330
-			$worksheet->SetCellValueByColumnAndRow($line,$column,$row['duration']);
331
-			$column++;
332
-			$worksheet->SetCellValueByColumnAndRow($line,$column,$row['result']);
333
-			$column++;
334
-			$worksheet->SetCellValueByColumnAndRow($line,$column,$row['max']);
335
-			$column++;
336 336
             $worksheet->SetCellValueByColumnAndRow($line,$column,$row['status']);
337
-			$line++;
338
-		}
337
+            $line++;
338
+        }
339 339
 
340 340
         $file = api_get_path(SYS_ARCHIVE_PATH).api_replace_dangerous_char($filename);
341 341
         $writer = new PHPExcel_Writer_Excel2007($spreadsheet);
342 342
         $writer->save($file);
343 343
         DocumentManager::file_send_for_download($file, true, $filename);
344 344
 
345
-		return true;
346
-	}
345
+        return true;
346
+    }
347 347
 }
Please login to merge, or discard this patch.
main/exercise/exercise_reminder.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -223,10 +223,10 @@
 block discarded – undo
223 223
 
224 224
     $counter++;
225 225
     if ($objExercise->type == ONE_PER_PAGE) {
226
-       $question_title = Display::url($counter.'. '.cut($objQuestionTmp->selectTitle(), 40), $url);
227
-       $question_title = $counter.'. '.cut($objQuestionTmp->selectTitle(), 40);
226
+        $question_title = Display::url($counter.'. '.cut($objQuestionTmp->selectTitle(), 40), $url);
227
+        $question_title = $counter.'. '.cut($objQuestionTmp->selectTitle(), 40);
228 228
     } else {
229
-       $question_title = $counter.'. '.cut($objQuestionTmp->selectTitle(), 40);
229
+        $question_title = $counter.'. '.cut($objQuestionTmp->selectTitle(), 40);
230 230
     }
231 231
     //Check if the question doesn't have an answer
232 232
     if (!in_array($questionId, $exercise_result)) {
Please login to merge, or discard this patch.
main/exercise/hotpotatoes.lib.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -344,7 +344,7 @@
 block discarded – undo
344 344
                     if (is_dir($full_name)) {
345 345
                         $filelist[] = $file;
346 346
                     }
347
-               }
347
+                }
348 348
             }
349 349
         }
350 350
     }
Please login to merge, or discard this patch.
main/exercise/answer.class.php 1 patch
Indentation   +322 added lines, -322 removed lines patch added patch discarded remove patch
@@ -157,12 +157,12 @@  discard block
 block discarded – undo
157 157
         return [];
158 158
     }
159 159
 
160
-     /**
161
-     * returns all answer ids from this question Id
162
-     *
163
-     * @author Yoselyn Castillo
164
-     * @return array - $id (answer ids)
165
-     */
160
+        /**
161
+         * returns all answer ids from this question Id
162
+         *
163
+         * @author Yoselyn Castillo
164
+         * @return array - $id (answer ids)
165
+         */
166 166
     public function selectAnswerId()
167 167
     {
168 168
         $TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER);
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
         }
183 183
 
184 184
         return $id;
185
-	}
185
+    }
186 186
 
187 187
     /**
188 188
      * Reads answer information from the data base ordered by parameter
@@ -193,23 +193,23 @@  discard block
 block discarded – undo
193 193
      */
194 194
     public function readOrderedBy($field, $order='ASC')
195 195
     {
196
-		$field = Database::escape_string($field);
197
-		if (empty($field)) {
198
-			$field = 'position';
199
-		}
196
+        $field = Database::escape_string($field);
197
+        if (empty($field)) {
198
+            $field = 'position';
199
+        }
200 200
 
201
-		if ($order != 'ASC' && $order!='DESC') {
202
-			$order = 'ASC';
203
-		}
201
+        if ($order != 'ASC' && $order!='DESC') {
202
+            $order = 'ASC';
203
+        }
204 204
 
205
-		$TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER);
206
-		$TBL_QUIZ = Database::get_course_table(TABLE_QUIZ_QUESTION);
207
-		$questionId = intval($this->questionId);
205
+        $TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER);
206
+        $TBL_QUIZ = Database::get_course_table(TABLE_QUIZ_QUESTION);
207
+        $questionId = intval($this->questionId);
208 208
 
209
-		$sql = "SELECT type FROM $TBL_QUIZ
209
+        $sql = "SELECT type FROM $TBL_QUIZ
210 210
 		        WHERE c_id = {$this->course_id} AND id = $questionId";
211
-		$result_question = Database::query($sql);
212
-		$questionType = Database::fetch_array($result_question);
211
+        $result_question = Database::query($sql);
212
+        $questionType = Database::fetch_array($result_question);
213 213
 
214 214
         if ($questionType['type'] == DRAGGABLE) {
215 215
             // Random is done by submit.js.tpl
@@ -218,7 +218,7 @@  discard block
 block discarded – undo
218 218
             return true;
219 219
         }
220 220
 
221
-		$sql = "SELECT
221
+        $sql = "SELECT
222 222
 		            answer,
223 223
 		            correct,
224 224
 		            comment,
@@ -234,16 +234,16 @@  discard block
 block discarded – undo
234 234
                     c_id = {$this->course_id} AND
235 235
                     question_id='".$questionId."'
236 236
                 ORDER BY $field $order";
237
-		$result=Database::query($sql);
238
-
239
-		$i = 1;
240
-		// while a record is found
241
-		$doubt_data = null;
242
-		while ($object = Database::fetch_object($result)) {
243
-		    if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && $object->position == 666) {
244
-		        $doubt_data = $object;
237
+        $result=Database::query($sql);
238
+
239
+        $i = 1;
240
+        // while a record is found
241
+        $doubt_data = null;
242
+        while ($object = Database::fetch_object($result)) {
243
+            if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && $object->position == 666) {
244
+                $doubt_data = $object;
245 245
                 continue;
246
-		    }
246
+            }
247 247
             $this->answer[$i] = $object->answer;
248 248
             $this->correct[$i] = $object->correct;
249 249
             $this->comment[$i] = $object->comment;
@@ -255,9 +255,9 @@  discard block
 block discarded – undo
255 255
             $this->autoId[$i] = $object->id_auto;
256 256
             $this->iid[$i] = $object->iid;
257 257
             $i++;
258
-		}
258
+        }
259 259
 
260
-		if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && !empty($doubt_data)) {
260
+        if ($questionType['type'] == UNIQUE_ANSWER_NO_OPTION && !empty($doubt_data)) {
261 261
             $this->answer[$i] = $doubt_data->answer;
262 262
             $this->correct[$i] = $doubt_data->correct;
263 263
             $this->comment[$i] = $doubt_data->comment;
@@ -269,88 +269,88 @@  discard block
 block discarded – undo
269 269
             $this->autoId[$i] = $doubt_data->id_auto;
270 270
             $this->iid[$i] = $doubt_data->iid;
271 271
             $i++;
272
-	    }
272
+        }
273 273
         $this->nbrAnswers = $i-1;
274
-	}
275
-
276
-	/**
277
-	 * returns the autoincrement id identificator
278
-	 *
279
-	 * @author Juan Carlos Ra�a
280
-	 * @return integer - answer num
281
-	 */
274
+    }
275
+
276
+    /**
277
+     * returns the autoincrement id identificator
278
+     *
279
+     * @author Juan Carlos Ra�a
280
+     * @return integer - answer num
281
+     */
282 282
     public function selectAutoId($id)
283 283
     {
284
-		return isset($this->autoId[$id]) ? $this->autoId[$id] : 0;
285
-	}
286
-
287
-	/**
288
-	 * returns the number of answers in this question
289
-	 *
290
-	 * @author Olivier Brouckaert
291
-	 * @return integer - number of answers
292
-	 */
293
-	public function selectNbrAnswers()
284
+        return isset($this->autoId[$id]) ? $this->autoId[$id] : 0;
285
+    }
286
+
287
+    /**
288
+     * returns the number of answers in this question
289
+     *
290
+     * @author Olivier Brouckaert
291
+     * @return integer - number of answers
292
+     */
293
+    public function selectNbrAnswers()
294
+    {
295
+        return $this->nbrAnswers;
296
+    }
297
+
298
+    /**
299
+     * returns the question ID which the answers belong to
300
+     *
301
+     * @author Olivier Brouckaert
302
+     * @return integer - the question ID
303
+     */
304
+    public function selectQuestionId()
294 305
     {
295
-		return $this->nbrAnswers;
296
-	}
297
-
298
-	/**
299
-	 * returns the question ID which the answers belong to
300
-	 *
301
-	 * @author Olivier Brouckaert
302
-	 * @return integer - the question ID
303
-	 */
304
-	public function selectQuestionId()
306
+        return $this->questionId;
307
+    }
308
+
309
+    /**
310
+     * returns the question ID of the destination question
311
+     *
312
+     * @author Julio Montoya
313
+     * @param integer $id
314
+     * @return integer - the question ID
315
+     */
316
+    public function selectDestination($id)
305 317
     {
306
-		return $this->questionId;
307
-	}
308
-
309
-	/**
310
-	 * returns the question ID of the destination question
311
-	 *
312
-	 * @author Julio Montoya
313
-	 * @param integer $id
314
-	 * @return integer - the question ID
315
-	 */
316
-	public function selectDestination($id)
318
+        return isset($this->destination[$id]) ? $this->destination[$id] : null;
319
+    }
320
+
321
+    /**
322
+     * returns the answer title
323
+     *
324
+     * @author Olivier Brouckaert
325
+     * @param - integer $id - answer ID
326
+     * @return string - answer title
327
+     */
328
+    public function selectAnswer($id)
317 329
     {
318
-		return isset($this->destination[$id]) ? $this->destination[$id] : null;
319
-	}
330
+        return isset($this->answer[$id]) ? $this->answer[$id] : null;
331
+    }
320 332
 
321 333
     /**
322
-	 * returns the answer title
323
-	 *
324
-	 * @author Olivier Brouckaert
325
-	 * @param - integer $id - answer ID
326
-	 * @return string - answer title
327
-	 */
328
-	public function selectAnswer($id)
329
-	{
330
-		return isset($this->answer[$id]) ? $this->answer[$id] : null;
331
-	}
332
-
333
-	/**
334
-	 * return array answer by id else return a bool
335
-	 * @param integer $auto_id
336
-	 */
337
-	public function selectAnswerByAutoId($auto_id)
338
-	{
339
-		$TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER);
340
-
341
-		$auto_id = intval($auto_id);
342
-		$sql = "SELECT id, answer, id_auto FROM $TBL_ANSWER
334
+     * return array answer by id else return a bool
335
+     * @param integer $auto_id
336
+     */
337
+    public function selectAnswerByAutoId($auto_id)
338
+    {
339
+        $TBL_ANSWER = Database::get_course_table(TABLE_QUIZ_ANSWER);
340
+
341
+        $auto_id = intval($auto_id);
342
+        $sql = "SELECT id, answer, id_auto FROM $TBL_ANSWER
343 343
 				WHERE c_id = {$this->course_id} AND id_auto='$auto_id'";
344
-		$rs = Database::query($sql);
344
+        $rs = Database::query($sql);
345 345
 
346
-		if (Database::num_rows($rs) > 0) {
347
-			$row = Database::fetch_array($rs, 'ASSOC');
346
+        if (Database::num_rows($rs) > 0) {
347
+            $row = Database::fetch_array($rs, 'ASSOC');
348 348
 
349
-			return $row;
350
-		}
349
+            return $row;
350
+        }
351 351
 
352
-		return false;
353
-	}
352
+        return false;
353
+    }
354 354
 
355 355
     /**
356 356
      * returns the answer title from an answer's position
@@ -359,18 +359,18 @@  discard block
 block discarded – undo
359 359
      * @param - integer $id - answer ID
360 360
      * @return bool - answer title
361 361
      */
362
-	public function selectAnswerIdByPosition($pos)
363
-	{
364
-		foreach ($this->position as $k => $v) {
365
-			if ($v != $pos) {
366
-				continue;
367
-			}
362
+    public function selectAnswerIdByPosition($pos)
363
+    {
364
+        foreach ($this->position as $k => $v) {
365
+            if ($v != $pos) {
366
+                continue;
367
+            }
368 368
 
369
-			return $k;
370
-		}
369
+            return $k;
370
+        }
371 371
 
372
-		return false;
373
-	}
372
+        return false;
373
+    }
374 374
 
375 375
     /**
376 376
      * Returns a list of answers
@@ -379,18 +379,18 @@  discard block
 block discarded – undo
379 379
      * of (id, answer, comment, grade) and grade=weighting
380 380
      */
381 381
     public function getAnswersList($decode = false)
382
-     {
383
-	 	$list = array();
384
-         for ($i = 1; $i <= $this->nbrAnswers; $i++) {
385
-             if (!empty($this->answer[$i])) {
386
-
387
-	 			//Avoid problems when parsing elements with accents
388
-	 			if ($decode) {
389
-	        		$this->answer[$i] 	= api_html_entity_decode($this->answer[$i], ENT_QUOTES, api_get_system_encoding());
390
-	        		$this->comment[$i]	= api_html_entity_decode($this->comment[$i], ENT_QUOTES, api_get_system_encoding());
391
-	 			}
392
-
393
-	 			$list[] = array(
382
+        {
383
+            $list = array();
384
+            for ($i = 1; $i <= $this->nbrAnswers; $i++) {
385
+                if (!empty($this->answer[$i])) {
386
+
387
+                    //Avoid problems when parsing elements with accents
388
+                    if ($decode) {
389
+                    $this->answer[$i] 	= api_html_entity_decode($this->answer[$i], ENT_QUOTES, api_get_system_encoding());
390
+                    $this->comment[$i]	= api_html_entity_decode($this->comment[$i], ENT_QUOTES, api_get_system_encoding());
391
+                    }
392
+
393
+                    $list[] = array(
394 394
                     'id' => $i,
395 395
                     'answer' => $this->answer[$i],
396 396
                     'comment' => $this->comment[$i],
@@ -399,137 +399,137 @@  discard block
 block discarded – undo
399 399
                     'hotspot_type' => $this->hotspot_type[$i],
400 400
                     'correct' => $this->correct[$i],
401 401
                     'destination' => $this->destination[$i]
402
-				);
402
+                );
403
+            }
403 404
             }
404
-	 	}
405 405
 
406
-	 	return $list;
407
-	 }
406
+            return $list;
407
+        }
408 408
 
409
-	/**
410
-	 * Returns a list of grades
411
-	 * @author Yannick Warnier <[email protected]>
412
-	 * @return array	List of grades where grade=weighting (?)
413
-	 */
409
+    /**
410
+     * Returns a list of grades
411
+     * @author Yannick Warnier <[email protected]>
412
+     * @return array	List of grades where grade=weighting (?)
413
+     */
414 414
     public function getGradesList()
415
-     {
416
-	 	$list = array();
417
-	 	for ($i = 0; $i<$this->nbrAnswers;$i++){
418
-	 		if(!empty($this->answer[$i])){
419
-	 			$list[$i] = $this->weighting[$i];
420
-	 		}
421
-	 	}
422
-	 	return $list;
423
-	 }
424
-
425
-	 /**
426
-	  * Returns the question type
427
-	  * @author	Yannick Warnier <[email protected]>
428
-	  * @return	integer	The type of the question this answer is bound to
429
-	  */
415
+        {
416
+            $list = array();
417
+            for ($i = 0; $i<$this->nbrAnswers;$i++){
418
+                if(!empty($this->answer[$i])){
419
+                    $list[$i] = $this->weighting[$i];
420
+                }
421
+            }
422
+            return $list;
423
+        }
424
+
425
+        /**
426
+         * Returns the question type
427
+         * @author	Yannick Warnier <[email protected]>
428
+         * @return	integer	The type of the question this answer is bound to
429
+         */
430 430
     public function getQuestionType()
431
-     {
432
-	 	$TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION);
433
-	 	$sql = "SELECT type FROM $TBL_QUESTIONS
431
+        {
432
+            $TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION);
433
+            $sql = "SELECT type FROM $TBL_QUESTIONS
434 434
 	 	        WHERE c_id = {$this->course_id} AND id = '".$this->questionId."'";
435
-	 	$res = Database::query($sql);
436
-	 	if (Database::num_rows($res)<=0){
437
-	 		return null;
438
-	 	}
439
-	 	$row = Database::fetch_array($res);
440
-
441
-	 	return $row['type'];
442
-	 }
443
-
444
-
445
-	/**
446
-	 * tells if answer is correct or not
447
-	 *
448
-	 * @author Olivier Brouckaert
449
-	 * @param - integer $id - answer ID
450
-	 * @return integer - 0 if bad answer, not 0 if good answer
451
-	 */
435
+            $res = Database::query($sql);
436
+            if (Database::num_rows($res)<=0){
437
+                return null;
438
+            }
439
+            $row = Database::fetch_array($res);
440
+
441
+            return $row['type'];
442
+        }
443
+
444
+
445
+    /**
446
+     * tells if answer is correct or not
447
+     *
448
+     * @author Olivier Brouckaert
449
+     * @param - integer $id - answer ID
450
+     * @return integer - 0 if bad answer, not 0 if good answer
451
+     */
452 452
     public function isCorrect($id)
453
-	{
454
-		return isset($this->correct[$id]) ? $this->correct[$id] : null;
455
-	}
456
-
457
-	/**
458
-	 * returns answer comment
459
-	 *
460
-	 * @author Olivier Brouckaert
461
-	 * @param - integer $id - answer ID
462
-	 * @return string - answer comment
463
-	 */
453
+    {
454
+        return isset($this->correct[$id]) ? $this->correct[$id] : null;
455
+    }
456
+
457
+    /**
458
+     * returns answer comment
459
+     *
460
+     * @author Olivier Brouckaert
461
+     * @param - integer $id - answer ID
462
+     * @return string - answer comment
463
+     */
464 464
     public function selectComment($id)
465
-	{
465
+    {
466 466
         return isset($this->comment[$id]) ? $this->comment[$id] : null;
467
-	}
468
-
469
-	/**
470
-	 * returns answer weighting
471
-	 *
472
-	 * @author Olivier Brouckaert
473
-	 * @param - integer $id - answer ID
474
-	 * @param integer $id
475
-	 * @return integer - answer weighting
476
-	 */
467
+    }
468
+
469
+    /**
470
+     * returns answer weighting
471
+     *
472
+     * @author Olivier Brouckaert
473
+     * @param - integer $id - answer ID
474
+     * @param integer $id
475
+     * @return integer - answer weighting
476
+     */
477 477
     public function selectWeighting($id)
478
-	{
479
-		return isset($this->weighting[$id]) ? $this->weighting[$id] : null;
480
-	}
481
-
482
-	/**
483
-	 * returns answer position
484
-	 *
485
-	 * @author Olivier Brouckaert
486
-	 * @param - integer $id - answer ID
487
-	 * @return integer - answer position
488
-	 */
489
-	function selectPosition($id)
490
-	{
491
-		return isset($this->position[$id]) ? $this->position[$id] : null;
492
-	}
493
-
494
-	/**
495
-	 * returns answer hotspot coordinates
496
-	 *
497
-	 * @author	Olivier Brouckaert
498
-	 * @param	integer	Answer ID
499
-	 * @param integer $id
500
-	 * @return	integer	Answer position
501
-	 */
478
+    {
479
+        return isset($this->weighting[$id]) ? $this->weighting[$id] : null;
480
+    }
481
+
482
+    /**
483
+     * returns answer position
484
+     *
485
+     * @author Olivier Brouckaert
486
+     * @param - integer $id - answer ID
487
+     * @return integer - answer position
488
+     */
489
+    function selectPosition($id)
490
+    {
491
+        return isset($this->position[$id]) ? $this->position[$id] : null;
492
+    }
493
+
494
+    /**
495
+     * returns answer hotspot coordinates
496
+     *
497
+     * @author	Olivier Brouckaert
498
+     * @param	integer	Answer ID
499
+     * @param integer $id
500
+     * @return	integer	Answer position
501
+     */
502 502
     public function selectHotspotCoordinates($id)
503
-	{
504
-		return isset($this->hotspot_coordinates[$id]) ? $this->hotspot_coordinates[$id] : null;
505
-	}
506
-
507
-	/**
508
-	 * returns answer hotspot type
509
-	 *
510
-	 * @author	Toon Keppens
511
-	 * @param	integer		Answer ID
512
-	 * @param integer $id
513
-	 * @return	integer		Answer position
514
-	 */
503
+    {
504
+        return isset($this->hotspot_coordinates[$id]) ? $this->hotspot_coordinates[$id] : null;
505
+    }
506
+
507
+    /**
508
+     * returns answer hotspot type
509
+     *
510
+     * @author	Toon Keppens
511
+     * @param	integer		Answer ID
512
+     * @param integer $id
513
+     * @return	integer		Answer position
514
+     */
515 515
     public function selectHotspotType($id)
516
-	{
517
-		return isset($this->hotspot_type[$id]) ? $this->hotspot_type[$id] : null;
518
-	}
519
-
520
-	/**
521
-	 * Creates a new answer
522
-	 *
523
-	 * @author Olivier Brouckaert
524
-	 * @param string 	$answer answer title
525
-	 * @param integer 	$correct 0 if bad answer, not 0 if good answer
526
-	 * @param string 	$comment answer comment
527
-	 * @param integer 	$weighting answer weighting
528
-	 * @param integer 	$position answer position
529
-	 * @param array    $new_hotspot_coordinates Coordinates for hotspot exercises (optional)
530
-	 * @param integer	$new_hotspot_type Type for hotspot exercises (optional)
516
+    {
517
+        return isset($this->hotspot_type[$id]) ? $this->hotspot_type[$id] : null;
518
+    }
519
+
520
+    /**
521
+     * Creates a new answer
522
+     *
523
+     * @author Olivier Brouckaert
524
+     * @param string 	$answer answer title
525
+     * @param integer 	$correct 0 if bad answer, not 0 if good answer
526
+     * @param string 	$comment answer comment
527
+     * @param integer 	$weighting answer weighting
528
+     * @param integer 	$position answer position
529
+     * @param array    $new_hotspot_coordinates Coordinates for hotspot exercises (optional)
530
+     * @param integer	$new_hotspot_type Type for hotspot exercises (optional)
531 531
      * @param string   $destination
532
-	 */
532
+     */
533 533
     public function createAnswer(
534 534
         $answer,
535 535
         $correct,
@@ -540,7 +540,7 @@  discard block
 block discarded – undo
540 540
         $new_hotspot_type = null,
541 541
         $destination = ''
542 542
     ) {
543
-		$this->new_nbrAnswers++;
543
+        $this->new_nbrAnswers++;
544 544
         $id = $this->new_nbrAnswers;
545 545
         $this->new_answer[$id] = $answer;
546 546
         $this->new_correct[$id] = $correct;
@@ -550,7 +550,7 @@  discard block
 block discarded – undo
550 550
         $this->new_hotspot_coordinates[$id] = $new_hotspot_coordinates;
551 551
         $this->new_hotspot_type[$id] = $new_hotspot_type;
552 552
         $this->new_destination[$id] = $destination;
553
-	}
553
+    }
554 554
 
555 555
     /**
556 556
      * Updates an answer
@@ -591,31 +591,31 @@  discard block
 block discarded – undo
591 591
         ];
592 592
 
593 593
         Database::update($answerTable, $params, ['iid = ?' => intval($iid)]);
594
-	}
594
+    }
595 595
 
596
-	/**
597
-	 * Records answers into the data base
598
-	 *
599
-	 * @author Olivier Brouckaert
600
-	 */
596
+    /**
597
+     * Records answers into the data base
598
+     *
599
+     * @author Olivier Brouckaert
600
+     */
601 601
     public function save()
602 602
     {
603
-		$answerTable = Database::get_course_table(TABLE_QUIZ_ANSWER);
604
-		$questionId = intval($this->questionId);
603
+        $answerTable = Database::get_course_table(TABLE_QUIZ_ANSWER);
604
+        $questionId = intval($this->questionId);
605 605
 
606
-		$c_id = $this->course['real_id'];
606
+        $c_id = $this->course['real_id'];
607 607
         $correctList = [];
608 608
         $answerList = [];
609 609
 
610
-		for ($i=1; $i <= $this->new_nbrAnswers; $i++) {
611
-			$answer = $this->new_answer[$i];
612
-			$correct = $this->new_correct[$i];
613
-			$comment = $this->new_comment[$i];
614
-			$weighting = $this->new_weighting[$i];
615
-			$position = $this->new_position[$i];
616
-			$hotspot_coordinates = $this->new_hotspot_coordinates[$i];
617
-			$hotspot_type = $this->new_hotspot_type[$i];
618
-			$destination = $this->new_destination[$i];
610
+        for ($i=1; $i <= $this->new_nbrAnswers; $i++) {
611
+            $answer = $this->new_answer[$i];
612
+            $correct = $this->new_correct[$i];
613
+            $comment = $this->new_comment[$i];
614
+            $weighting = $this->new_weighting[$i];
615
+            $position = $this->new_position[$i];
616
+            $hotspot_coordinates = $this->new_hotspot_coordinates[$i];
617
+            $hotspot_type = $this->new_hotspot_type[$i];
618
+            $destination = $this->new_destination[$i];
619 619
             $autoId = $this->selectAutoId($i);
620 620
             $iid = isset($this->iid[$i]) ? $this->iid[$i] : 0;
621 621
 
@@ -714,37 +714,37 @@  discard block
 block discarded – undo
714 714
             }
715 715
         }
716 716
 
717
-		// moves $new_* arrays
718
-		$this->answer = $this->new_answer;
719
-		$this->correct = $this->new_correct;
720
-		$this->comment = $this->new_comment;
721
-		$this->weighting = $this->new_weighting;
722
-		$this->position = $this->new_position;
723
-		$this->hotspot_coordinates = $this->new_hotspot_coordinates;
724
-		$this->hotspot_type = $this->new_hotspot_type;
725
-
726
-		$this->nbrAnswers = $this->new_nbrAnswers;
727
-		$this->destination = $this->new_destination;
728
-		// clears $new_* arrays
729
-
730
-		$this->cancel();
731
-	}
732
-
733
-	/**
734
-	 * Duplicates answers by copying them into another question
735
-	 *
736
-	 * @author Olivier Brouckaert
737
-	 * @param  int question id
717
+        // moves $new_* arrays
718
+        $this->answer = $this->new_answer;
719
+        $this->correct = $this->new_correct;
720
+        $this->comment = $this->new_comment;
721
+        $this->weighting = $this->new_weighting;
722
+        $this->position = $this->new_position;
723
+        $this->hotspot_coordinates = $this->new_hotspot_coordinates;
724
+        $this->hotspot_type = $this->new_hotspot_type;
725
+
726
+        $this->nbrAnswers = $this->new_nbrAnswers;
727
+        $this->destination = $this->new_destination;
728
+        // clears $new_* arrays
729
+
730
+        $this->cancel();
731
+    }
732
+
733
+    /**
734
+     * Duplicates answers by copying them into another question
735
+     *
736
+     * @author Olivier Brouckaert
737
+     * @param  int question id
738 738
      * @param  array destination course info (result of the function api_get_course_info() )
739 739
      * @param string $newQuestionId
740
-	 */
740
+     */
741 741
     public function duplicate($newQuestionId, $course_info = null)
742 742
     {
743 743
         if (empty($course_info)) {
744 744
             $course_info = $this->course;
745 745
         }
746 746
 
747
-		$TBL_REPONSES = Database :: get_course_table(TABLE_QUIZ_ANSWER);
747
+        $TBL_REPONSES = Database :: get_course_table(TABLE_QUIZ_ANSWER);
748 748
         $fixed_list = array();
749 749
 
750 750
         if (self::getQuestionType() == MULTIPLE_ANSWER_TRUE_FALSE ||
@@ -758,7 +758,7 @@  discard block
 block discarded – undo
758 758
 
759 759
             if (!empty($origin_options)) {
760 760
                 foreach ($origin_options as $item) {
761
-            	   $new_option_list[] = $item['id'];
761
+                    $new_option_list[] = $item['id'];
762 762
                 }
763 763
             }
764 764
 
@@ -772,12 +772,12 @@  discard block
 block discarded – undo
772 772
             }
773 773
         }
774 774
 
775
-		// if at least one answer
776
-		if ($this->nbrAnswers) {
777
-			// inserts new answers into data base
778
-			$c_id = $course_info['real_id'];
775
+        // if at least one answer
776
+        if ($this->nbrAnswers) {
777
+            // inserts new answers into data base
778
+            $c_id = $course_info['real_id'];
779 779
 
780
-			for ($i=1;$i <= $this->nbrAnswers;$i++) {
780
+            for ($i=1;$i <= $this->nbrAnswers;$i++) {
781 781
                 if ($this->course['id'] != $course_info['id']) {
782 782
                     $this->answer[$i] = DocumentManager::replace_urls_inside_content_html_from_copy_course(
783 783
                         $this->answer[$i],
@@ -791,8 +791,8 @@  discard block
 block discarded – undo
791 791
                     );
792 792
                 }
793 793
 
794
-				$answer = $this->answer[$i];
795
-				$correct = $this->correct[$i];
794
+                $answer = $this->answer[$i];
795
+                $correct = $this->correct[$i];
796 796
 
797 797
                 if (self::getQuestionType() == MULTIPLE_ANSWER_TRUE_FALSE ||
798 798
                     self::getQuestionType() == MULTIPLE_ANSWER_TRUE_FALSE
@@ -800,12 +800,12 @@  discard block
 block discarded – undo
800 800
                     $correct = $fixed_list[intval($correct)];
801 801
                 }
802 802
 
803
-				$comment = $this->comment[$i];
804
-				$weighting = $this->weighting[$i];
805
-				$position = $this->position[$i];
806
-				$hotspot_coordinates = $this->hotspot_coordinates[$i];
807
-				$hotspot_type = $this->hotspot_type[$i];
808
-				$destination = $this->destination[$i];
803
+                $comment = $this->comment[$i];
804
+                $weighting = $this->weighting[$i];
805
+                $position = $this->position[$i];
806
+                $hotspot_coordinates = $this->hotspot_coordinates[$i];
807
+                $hotspot_type = $this->hotspot_type[$i];
808
+                $destination = $this->destination[$i];
809 809
 
810 810
                 $params = [
811 811
                     'c_id' => $c_id,
@@ -825,9 +825,9 @@  discard block
 block discarded – undo
825 825
                     $sql = "UPDATE $TBL_REPONSES SET id = iid, id_auto = iid WHERE iid = $id";
826 826
                     Database::query($sql);
827 827
                 }
828
-			}
828
+            }
829 829
         }
830
-	}
830
+    }
831 831
 
832 832
     /**
833 833
      * Get the necessary JavaScript for some answers
@@ -845,25 +845,25 @@  discard block
 block discarded – undo
845 845
             </script>";
846 846
     }
847 847
 
848
-	/**
849
-	 * Check if a answer is correct by an answer auto id
850
-	 * @param $needle int The answer auto id
851
-	 * @return bool
852
-	 */
853
-	public function isCorrectByAutoId($needle)
854
-	{
855
-		$key = 0;
856
-
857
-		foreach ($this->autoId as $autoIdKey => $autoId) {
858
-			if ($autoId == $needle) {
859
-				$key = $autoIdKey;
860
-			}
861
-		}
862
-
863
-		if (!$key) {
864
-			return false;
865
-		}
866
-
867
-		return $this->isCorrect($key) ? true : false;
868
-	}
848
+    /**
849
+     * Check if a answer is correct by an answer auto id
850
+     * @param $needle int The answer auto id
851
+     * @return bool
852
+     */
853
+    public function isCorrectByAutoId($needle)
854
+    {
855
+        $key = 0;
856
+
857
+        foreach ($this->autoId as $autoIdKey => $autoId) {
858
+            if ($autoId == $needle) {
859
+                $key = $autoIdKey;
860
+            }
861
+        }
862
+
863
+        if (!$key) {
864
+            return false;
865
+        }
866
+
867
+        return $this->isCorrect($key) ? true : false;
868
+    }
869 869
 }
Please login to merge, or discard this patch.
main/exercise/hotspot_savescore.inc.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -17,15 +17,15 @@
 block discarded – undo
17 17
 $answerOrderId = count($_SESSION['exerciseResult'][$questionId]['ids'])+1;
18 18
 if ($_GET['answerId'] == "0") // click is NOT on a hotspot
19 19
 {
20
-	$hit = 0;
21
-	$answerId = NULL;
20
+    $hit = 0;
21
+    $answerId = NULL;
22 22
 }
23 23
 else // user clicked ON a hotspot
24 24
 {
25
-	$hit = 1;
26
-	$answerId = api_substr($_GET['answerId'],22,2);
27
-	// Save into session
28
-	$_SESSION['exerciseResult'][$questionId][$answerId] = $hit;
25
+    $hit = 1;
26
+    $answerId = api_substr($_GET['answerId'],22,2);
27
+    // Save into session
28
+    $_SESSION['exerciseResult'][$questionId][$answerId] = $hit;
29 29
 }
30 30
 //round-up the coordinates
31 31
 $coords = explode('/',$coordinates);
Please login to merge, or discard this patch.
main/exercise/multiple_answer_true_false.class.php 1 patch
Indentation   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -241,13 +241,13 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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>&nbsp;</th>';
336
-			}
332
+            if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) {
333
+                $header .= '<th>'.get_lang("Comment").'</th>';
334
+            } else {
335
+                $header .= '<th>&nbsp;</th>';
336
+            }
337 337
         $header .= '</tr>';
338 338
         return $header;
339
-	}
339
+    }
340 340
 }
Please login to merge, or discard this patch.
main/exercise/hotspot_save.inc.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -15,24 +15,24 @@
 block discarded – undo
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
Please login to merge, or discard this patch.