Completed
Push — 1.10.x ( c1c0ee...2524fc )
by Yannick
44:18
created
main/exercice/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/dropbox/dropbox_class.inc.php 1 patch
Indentation   +423 added lines, -423 removed lines patch added patch discarded remove patch
@@ -77,20 +77,20 @@  discard block
 block discarded – undo
77 77
         }
78 78
     }
79 79
 
80
-	/**
81
-	 * private function creating a new work object
82
-	 *
83
-	 * @param int $uploader_id
84
-	 * @param string $title
85
-	 * @param string $description
86
-	 * @param string $author
87
-	 * @param string $filename
88
-	 * @param int $filesize
89
-	 *
90
-	 * @todo 	$author was originally a field but this has now been replaced by the first and lastname of the uploader (to prevent anonymous uploads)
91
-	 * 			As a consequence this parameter can be removed
92
-	 */
93
-	public function _createNewWork($uploader_id, $title, $description, $author, $filename, $filesize)
80
+    /**
81
+     * private function creating a new work object
82
+     *
83
+     * @param int $uploader_id
84
+     * @param string $title
85
+     * @param string $description
86
+     * @param string $author
87
+     * @param string $filename
88
+     * @param int $filesize
89
+     *
90
+     * @todo 	$author was originally a field but this has now been replaced by the first and lastname of the uploader (to prevent anonymous uploads)
91
+     * 			As a consequence this parameter can be removed
92
+     */
93
+    public function _createNewWork($uploader_id, $title, $description, $author, $filename, $filesize)
94 94
     {
95 95
         $dropbox_cnf = getDropboxConf();
96 96
 
@@ -108,17 +108,17 @@  discard block
 block discarded – undo
108 108
         // Check if object exists already. If it does, the old object is used
109 109
         // with updated information (authors, description, upload_date)
110 110
         $this->isOldWork = false;
111
-		$sql = "SELECT id, upload_date FROM ".$dropbox_cnf['tbl_file']."
111
+        $sql = "SELECT id, upload_date FROM ".$dropbox_cnf['tbl_file']."
112 112
 				WHERE c_id = $course_id AND filename = '".Database::escape_string($this->filename)."'";
113 113
         $result = Database::query($sql);
114
-		$res = Database::fetch_array($result);
115
-		if ($res) {
116
-			$this->isOldWork = true;
117
-		}
118
-		// Insert or update the dropbox_file table and set the id property
119
-		if ($this->isOldWork) {
120
-			$this->id = $res['id'];
121
-			$this->upload_date = $res['upload_date'];
114
+        $res = Database::fetch_array($result);
115
+        if ($res) {
116
+            $this->isOldWork = true;
117
+        }
118
+        // Insert or update the dropbox_file table and set the id property
119
+        if ($this->isOldWork) {
120
+            $this->id = $res['id'];
121
+            $this->upload_date = $res['upload_date'];
122 122
 
123 123
             $params = [
124 124
                 'filesize' => $this->filesize,
@@ -135,9 +135,9 @@  discard block
 block discarded – undo
135 135
                 ['c_id = ? AND id = ?' => [$course_id, $this->id]]
136 136
             );
137 137
 
138
-		} else {
139
-			$this->upload_date = $this->last_upload_date;
140
-			$params = [
138
+        } else {
139
+            $this->upload_date = $this->last_upload_date;
140
+            $params = [
141 141
                 'c_id' => $course_id,
142 142
                 'uploader_id' => $this->uploader_id,
143 143
                 'filename' => $this->filename,
@@ -149,14 +149,14 @@  discard block
 block discarded – undo
149 149
                 'last_upload_date' => $this->last_upload_date,
150 150
                 'session_id' => api_get_session_id(),
151 151
                 'cat_id' => 0
152
-			];
152
+            ];
153 153
 
154
-			$this->id = Database::insert($dropbox_cnf['tbl_file'], $params);
155
-			if ($this->id) {
156
-				$sql = "UPDATE ".$dropbox_cnf['tbl_file']." SET id = iid WHERE iid = {$this->id}";
157
-				Database::query($sql);
158
-			}
159
-		}
154
+            $this->id = Database::insert($dropbox_cnf['tbl_file'], $params);
155
+            if ($this->id) {
156
+                $sql = "UPDATE ".$dropbox_cnf['tbl_file']." SET id = iid WHERE iid = {$this->id}";
157
+                Database::query($sql);
158
+            }
159
+        }
160 160
 
161 161
         $sql = "SELECT count(file_id) as count
162 162
         		FROM ".$dropbox_cnf['tbl_person']."
@@ -170,16 +170,16 @@  discard block
 block discarded – undo
170 170
                     VALUES ($course_id, ".intval($this->id)." , ".intval($this->uploader_id).")";
171 171
             Database::query($sql);
172 172
         }
173
-	}
174
-
175
-	/**
176
-	 * private function creating existing object by retreiving info from db
177
-	 *
178
-	 * @param int $id
179
-	 */
180
-	public function _createExistingWork($id)
173
+    }
174
+
175
+    /**
176
+     * private function creating existing object by retreiving info from db
177
+     *
178
+     * @param int $id
179
+     */
180
+    public function _createExistingWork($id)
181 181
     {
182
-	    $course_id = api_get_course_int_id();
182
+        $course_id = api_get_course_int_id();
183 183
         $dropbox_cnf = getDropboxConf();
184 184
 
185 185
         $action = isset($_GET['action']) ? $_GET['action'] : null;
@@ -229,52 +229,52 @@  discard block
 block discarded – undo
229 229
             }
230 230
             $this->feedback2= $feedback2;
231 231
         }
232
-	}
232
+    }
233 233
 }
234 234
 
235 235
 class Dropbox_SentWork extends Dropbox_Work
236 236
 {
237
-	public $recipients;	//array of ['id']['name'] arrays
238
-
239
-	/**
240
-	 * Constructor calls private functions to create a new work or retreive an existing work from DB
241
-	 * depending on the number of parameters
242
-	 *
243
-	 * @param unknown_type $arg1
244
-	 * @param unknown_type $arg2
245
-	 * @param unknown_type $arg3
246
-	 * @param unknown_type $arg4
247
-	 * @param unknown_type $arg5
248
-	 * @param unknown_type $arg6
249
-	 * @param unknown_type $arg7
250
-	 * @return Dropbox_SentWork
251
-	 */
252
-	public function __construct($arg1, $arg2 = null, $arg3 = null, $arg4 = null, $arg5 = null, $arg6 = null, $arg7 = null)
237
+    public $recipients;	//array of ['id']['name'] arrays
238
+
239
+    /**
240
+     * Constructor calls private functions to create a new work or retreive an existing work from DB
241
+     * depending on the number of parameters
242
+     *
243
+     * @param unknown_type $arg1
244
+     * @param unknown_type $arg2
245
+     * @param unknown_type $arg3
246
+     * @param unknown_type $arg4
247
+     * @param unknown_type $arg5
248
+     * @param unknown_type $arg6
249
+     * @param unknown_type $arg7
250
+     * @return Dropbox_SentWork
251
+     */
252
+    public function __construct($arg1, $arg2 = null, $arg3 = null, $arg4 = null, $arg5 = null, $arg6 = null, $arg7 = null)
253 253
     {
254
-		if (func_num_args() > 1) {
255
-		    $this->_createNewSentWork($arg1, $arg2, $arg3, $arg4, $arg5, $arg6, $arg7);
256
-		} else {
257
-			$this->_createExistingSentWork($arg1);
258
-		}
259
-	}
260
-
261
-	/**
262
-	 * private function creating a new SentWork object
263
-	 *
264
-	 * @param int $uploader_id
265
-	 * @param string $title
266
-	 * @param string $description
267
-	 * @param string $author
268
-	 * @param string $filename
269
-	 * @param int $filesize
270
-	 * @param array $recipient_ids
271
-	 */
272
-	public function _createNewSentWork($uploader_id, $title, $description, $author, $filename, $filesize, $recipient_ids)
254
+        if (func_num_args() > 1) {
255
+            $this->_createNewSentWork($arg1, $arg2, $arg3, $arg4, $arg5, $arg6, $arg7);
256
+        } else {
257
+            $this->_createExistingSentWork($arg1);
258
+        }
259
+    }
260
+
261
+    /**
262
+     * private function creating a new SentWork object
263
+     *
264
+     * @param int $uploader_id
265
+     * @param string $title
266
+     * @param string $description
267
+     * @param string $author
268
+     * @param string $filename
269
+     * @param int $filesize
270
+     * @param array $recipient_ids
271
+     */
272
+    public function _createNewSentWork($uploader_id, $title, $description, $author, $filename, $filesize, $recipient_ids)
273 273
     {
274 274
         $dropbox_cnf = getDropboxConf();
275 275
         $_course = api_get_course_info();
276 276
 
277
-		// Call constructor of Dropbox_Work object
277
+        // Call constructor of Dropbox_Work object
278 278
         parent::__construct(
279 279
             $uploader_id,
280 280
             $title,
@@ -284,31 +284,31 @@  discard block
 block discarded – undo
284 284
             $filesize
285 285
         );
286 286
 
287
-		$course_id = api_get_course_int_id();
288
-
289
-		// Do sanity checks on recipient_ids array & property fillin
290
-		// The sanity check for ex-coursemembers is already done in base constructor
291
-		settype($uploader_id, 'integer') or die(get_lang('GeneralError').' (code 208)'); // Set $uploader_id to correct type
287
+        $course_id = api_get_course_int_id();
292 288
 
293
-		$justSubmit = false;
294
-		if ( is_int($recipient_ids)) {
295
-			$justSubmit = true;
296
-			$recipient_ids = array($recipient_ids + $this->id);
297
-		} elseif ( count($recipient_ids) == 0) {
298
-			$justSubmit = true;
299
-			$recipient_ids = array($uploader_id);
300
-		}
289
+        // Do sanity checks on recipient_ids array & property fillin
290
+        // The sanity check for ex-coursemembers is already done in base constructor
291
+        settype($uploader_id, 'integer') or die(get_lang('GeneralError').' (code 208)'); // Set $uploader_id to correct type
292
+
293
+        $justSubmit = false;
294
+        if ( is_int($recipient_ids)) {
295
+            $justSubmit = true;
296
+            $recipient_ids = array($recipient_ids + $this->id);
297
+        } elseif ( count($recipient_ids) == 0) {
298
+            $justSubmit = true;
299
+            $recipient_ids = array($uploader_id);
300
+        }
301 301
 
302
-		if (! is_array($recipient_ids) || count($recipient_ids) == 0) {
303
-			die(get_lang('GeneralError').' (code 209)');
304
-		}
302
+        if (! is_array($recipient_ids) || count($recipient_ids) == 0) {
303
+            die(get_lang('GeneralError').' (code 209)');
304
+        }
305 305
 
306
-		foreach ($recipient_ids as $rec) {
307
-			if (empty($rec)) die(get_lang('GeneralError').' (code 210)');
308
-			//if (!isCourseMember($rec)) die(); //cannot sent document to someone outside of course
309
-				//this check is done when validating submitted data
310
-			$this->recipients[] = array('id' => $rec, 'name' => getUserNameFromId($rec));
311
-		}
306
+        foreach ($recipient_ids as $rec) {
307
+            if (empty($rec)) die(get_lang('GeneralError').' (code 210)');
308
+            //if (!isCourseMember($rec)) die(); //cannot sent document to someone outside of course
309
+                //this check is done when validating submitted data
310
+            $this->recipients[] = array('id' => $rec, 'name' => getUserNameFromId($rec));
311
+        }
312 312
 
313 313
         $table_post = $dropbox_cnf['tbl_post'];
314 314
         $table_person = $dropbox_cnf['tbl_person'];
@@ -317,13 +317,13 @@  discard block
 block discarded – undo
317 317
         $user  = api_get_user_id();
318 318
         $now = api_get_utc_datetime();
319 319
 
320
-		// Insert data in dropbox_post and dropbox_person table for each recipient
321
-		foreach ($this->recipients as $rec) {
320
+        // Insert data in dropbox_post and dropbox_person table for each recipient
321
+        foreach ($this->recipients as $rec) {
322 322
             $file_id = (int)$this->id;
323 323
             $user_id = (int)$rec['id'];
324
-			$sql = "INSERT INTO $table_post (c_id, file_id, dest_user_id, session_id, feedback_date, cat_id)
324
+            $sql = "INSERT INTO $table_post (c_id, file_id, dest_user_id, session_id, feedback_date, cat_id)
325 325
                     VALUES ($course_id, $file_id, $user_id, $session_id, '$now', 0)";
326
-	        Database::query($sql);
326
+            Database::query($sql);
327 327
             // If work already exists no error is generated
328 328
 
329 329
             /**
@@ -340,13 +340,13 @@  discard block
 block discarded – undo
340 340
                 }
341 341
             }
342 342
 
343
-			// Update item_property table for each recipient
344
-			if (($ownerid = $this->uploader_id) > $dropbox_cnf['mailingIdBase']) {
345
-			    $ownerid = getUserOwningThisMailing($ownerid);
346
-			}
347
-			if (($recipid = $rec["id"]) > $dropbox_cnf['mailingIdBase']) {
348
-			    $recipid = $ownerid;  // mailing file recipient = mailing id, not a person
349
-			}
343
+            // Update item_property table for each recipient
344
+            if (($ownerid = $this->uploader_id) > $dropbox_cnf['mailingIdBase']) {
345
+                $ownerid = getUserOwningThisMailing($ownerid);
346
+            }
347
+            if (($recipid = $rec["id"]) > $dropbox_cnf['mailingIdBase']) {
348
+                $recipid = $ownerid;  // mailing file recipient = mailing id, not a person
349
+            }
350 350
             api_item_property_update(
351 351
                 $_course,
352 352
                 TOOL_DROPBOX,
@@ -356,92 +356,92 @@  discard block
 block discarded – undo
356 356
                 null,
357 357
                 $recipid
358 358
             );
359
-		}
360
-	}
361
-
362
-	/**
363
-	 * private function creating existing object by retreiving info from db
364
-	 *
365
-	 * @param unknown_type $id
366
-	 */
367
-	public function _createExistingSentWork($id)
359
+        }
360
+    }
361
+
362
+    /**
363
+     * private function creating existing object by retreiving info from db
364
+     *
365
+     * @param unknown_type $id
366
+     */
367
+    public function _createExistingSentWork($id)
368 368
     {
369 369
         $dropbox_cnf = getDropboxConf();
370 370
         $id = intval($id);
371 371
 
372
-		$course_id = api_get_course_int_id();
372
+        $course_id = api_get_course_int_id();
373 373
 
374
-		// Call constructor of Dropbox_Work object
375
-		parent::__construct($id);
374
+        // Call constructor of Dropbox_Work object
375
+        parent::__construct($id);
376 376
 
377
-		// Fill in recipients array
378
-		$this->recipients = array();
379
-		$sql = "SELECT dest_user_id, feedback_date, feedback
377
+        // Fill in recipients array
378
+        $this->recipients = array();
379
+        $sql = "SELECT dest_user_id, feedback_date, feedback
380 380
 				FROM ".$dropbox_cnf['tbl_post']."
381 381
 				WHERE c_id = $course_id AND file_id = ".intval($id)."";
382 382
         $result = Database::query($sql);
383
-		while ($res = Database::fetch_array($result, 'ASSOC')) {
384
-
385
-			// Check for deleted users
386
-			$dest_user_id = $res['dest_user_id'];
387
-			$user_info = api_get_user_info($dest_user_id);
388
-			//$this->category = $res['cat_id'];
389
-			if (!$user_info) {
390
-				$this->recipients[] = array('id' => -1, 'name' => get_lang('Unknown', ''));
391
-			} else {
392
-				$this->recipients[] = array(
383
+        while ($res = Database::fetch_array($result, 'ASSOC')) {
384
+
385
+            // Check for deleted users
386
+            $dest_user_id = $res['dest_user_id'];
387
+            $user_info = api_get_user_info($dest_user_id);
388
+            //$this->category = $res['cat_id'];
389
+            if (!$user_info) {
390
+                $this->recipients[] = array('id' => -1, 'name' => get_lang('Unknown', ''));
391
+            } else {
392
+                $this->recipients[] = array(
393 393
                     'id' => $dest_user_id,
394 394
                     'name' => $user_info['complete_name'],
395 395
                     'user_id' => $dest_user_id,
396
-				    'feedback_date' => $res['feedback_date'],
396
+                    'feedback_date' => $res['feedback_date'],
397 397
                     'feedback' => $res['feedback']
398 398
                 );
399
-			}
400
-		}
401
-	}
399
+            }
400
+        }
401
+    }
402 402
 }
403 403
 
404 404
 class Dropbox_Person
405 405
 {
406
-	// The receivedWork and the sentWork arrays are sorted.
407
-	public $receivedWork;	// an array of Dropbox_Work objects
408
-	public $sentWork;		// an array of Dropbox_SentWork objects
409
-
410
-	public $userId = 0;
411
-	public $isCourseAdmin = false;
412
-	public $isCourseTutor = false;
413
-	public $_orderBy = '';	// private property that determines by which field
414
-
415
-	/**
416
-	 * Constructor for recreating the Dropbox_Person object
417
-	 *
418
-	 * @param int $userId
419
-	 * @param bool $isCourseAdmin
420
-	 * @param bool $isCourseTutor
421
-	 * @return Dropbox_Person
422
-	 */
423
-	public function __construct($userId, $isCourseAdmin, $isCourseTutor)
406
+    // The receivedWork and the sentWork arrays are sorted.
407
+    public $receivedWork;	// an array of Dropbox_Work objects
408
+    public $sentWork;		// an array of Dropbox_SentWork objects
409
+
410
+    public $userId = 0;
411
+    public $isCourseAdmin = false;
412
+    public $isCourseTutor = false;
413
+    public $_orderBy = '';	// private property that determines by which field
414
+
415
+    /**
416
+     * Constructor for recreating the Dropbox_Person object
417
+     *
418
+     * @param int $userId
419
+     * @param bool $isCourseAdmin
420
+     * @param bool $isCourseTutor
421
+     * @return Dropbox_Person
422
+     */
423
+    public function __construct($userId, $isCourseAdmin, $isCourseTutor)
424 424
     {
425
-	    $course_id = api_get_course_int_id();
425
+        $course_id = api_get_course_int_id();
426 426
 
427
-		// Fill in properties
427
+        // Fill in properties
428 428
         $this->userId = $userId;
429 429
         $this->isCourseAdmin = $isCourseAdmin;
430 430
         $this->isCourseTutor = $isCourseTutor;
431 431
         $this->receivedWork = array();
432 432
         $this->sentWork = array();
433 433
 
434
-		// Note: perhaps include an ex coursemember check to delete old files
434
+        // Note: perhaps include an ex coursemember check to delete old files
435 435
 
436
-		$session_id = api_get_session_id();
437
-		$condition_session = api_get_session_condition($session_id);
436
+        $session_id = api_get_session_id();
437
+        $condition_session = api_get_session_condition($session_id);
438 438
 
439
-		$post_tbl = Database::get_course_table(TABLE_DROPBOX_POST);
440
-		$person_tbl = Database::get_course_table(TABLE_DROPBOX_PERSON);
441
-		$file_tbl = Database::get_course_table(TABLE_DROPBOX_FILE);
439
+        $post_tbl = Database::get_course_table(TABLE_DROPBOX_POST);
440
+        $person_tbl = Database::get_course_table(TABLE_DROPBOX_PERSON);
441
+        $file_tbl = Database::get_course_table(TABLE_DROPBOX_FILE);
442 442
 
443 443
         // Find all entries where this person is the recipient
444
-		$sql = "SELECT DISTINCT r.file_id, r.cat_id
444
+        $sql = "SELECT DISTINCT r.file_id, r.cat_id
445 445
                 FROM $post_tbl r
446 446
                 INNER JOIN $person_tbl p
447 447
                     ON (r.file_id = p.file_id AND r.c_id = $course_id AND p.c_id = $course_id )
@@ -450,12 +450,12 @@  discard block
 block discarded – undo
450 450
                      r.dest_user_id = ".intval($this->userId)." $condition_session ";
451 451
 
452 452
         $result = Database::query($sql);
453
-		while ($res = Database::fetch_array($result)) {
454
-			$temp = new Dropbox_Work($res['file_id']);
455
-			$temp->category = $res['cat_id'];
456
-			$this->receivedWork[] = $temp;
457
-		}
458
-		// Find all entries where this person is the sender/uploader
453
+        while ($res = Database::fetch_array($result)) {
454
+            $temp = new Dropbox_Work($res['file_id']);
455
+            $temp->category = $res['cat_id'];
456
+            $this->receivedWork[] = $temp;
457
+        }
458
+        // Find all entries where this person is the sender/uploader
459 459
         $sql = "SELECT DISTINCT f.id
460 460
 				FROM $file_tbl f
461 461
 				INNER JOIN $person_tbl p
@@ -466,261 +466,261 @@  discard block
 block discarded – undo
466 466
                     $condition_session
467 467
                 ";
468 468
         $result = Database::query($sql);
469
-		while ($res = Database::fetch_array($result)) {
470
-			$this->sentWork[] = new Dropbox_SentWork($res['id']);
471
-		}
472
-	}
473
-
474
-	/**
475
-	 * This private method is used by the usort function in  the
476
-	 * orderSentWork and orderReceivedWork methods.
477
-	 * It compares 2 work-objects by 1 of the properties of that object, dictated by the
478
-	 * private property _orderBy
479
-	 *
480
-	 * @param unknown_type $a
481
-	 * @param unknown_type $b
482
-	 * @return -1, 0 or 1 dependent of the result of the comparison.
483
-	 */
484
-	function _cmpWork($a, $b)
469
+        while ($res = Database::fetch_array($result)) {
470
+            $this->sentWork[] = new Dropbox_SentWork($res['id']);
471
+        }
472
+    }
473
+
474
+    /**
475
+     * This private method is used by the usort function in  the
476
+     * orderSentWork and orderReceivedWork methods.
477
+     * It compares 2 work-objects by 1 of the properties of that object, dictated by the
478
+     * private property _orderBy
479
+     *
480
+     * @param unknown_type $a
481
+     * @param unknown_type $b
482
+     * @return -1, 0 or 1 dependent of the result of the comparison.
483
+     */
484
+    function _cmpWork($a, $b)
485 485
     {
486
-		$sort = $this->_orderBy;
487
-		$aval = $a->$sort;
488
-		$bval = $b->$sort;
489
-		if ($sort == 'recipients') {
490
-		    // The recipients property is an array so we do the comparison based
491
-		    // on the first item of the recipients array
492
-		    $aval = $aval[0]['name'];
493
-			$bval = $bval[0]['name'];
494
-		}
495
-		if ($sort == 'filesize') {    // Filesize is not a string, so we use other comparison technique
496
-			return $aval < $bval ? -1 : 1;
497
-		} elseif ($sort == 'title') { // Natural order for sorting titles is more "human-friendly"
498
-			return api_strnatcmp($aval, $bval);
499
-		} else {
500
-		    return api_strcasecmp($aval, $bval);
501
-		}
502
-	}
503
-
504
-	/**
505
-	 * A method that sorts the objects in the sentWork array, dependent on the $sort parameter.
506
-	 * $sort can be lastDate, firstDate, title, size, ...
507
-	 *
508
-	 * @param unknown_type $sort
509
-	 */
510
-	function orderSentWork($sort)
486
+        $sort = $this->_orderBy;
487
+        $aval = $a->$sort;
488
+        $bval = $b->$sort;
489
+        if ($sort == 'recipients') {
490
+            // The recipients property is an array so we do the comparison based
491
+            // on the first item of the recipients array
492
+            $aval = $aval[0]['name'];
493
+            $bval = $bval[0]['name'];
494
+        }
495
+        if ($sort == 'filesize') {    // Filesize is not a string, so we use other comparison technique
496
+            return $aval < $bval ? -1 : 1;
497
+        } elseif ($sort == 'title') { // Natural order for sorting titles is more "human-friendly"
498
+            return api_strnatcmp($aval, $bval);
499
+        } else {
500
+            return api_strcasecmp($aval, $bval);
501
+        }
502
+    }
503
+
504
+    /**
505
+     * A method that sorts the objects in the sentWork array, dependent on the $sort parameter.
506
+     * $sort can be lastDate, firstDate, title, size, ...
507
+     *
508
+     * @param unknown_type $sort
509
+     */
510
+    function orderSentWork($sort)
511 511
     {
512
-		switch($sort) {
513
-			case 'lastDate':
514
-				$this->_orderBy = 'last_upload_date';
515
-				break;
516
-			case 'firstDate':
517
-				$this->_orderBy = 'upload_date';
518
-				break;
519
-			case 'title':
520
-				$this->_orderBy = 'title';
521
-				break;
522
-			case 'size':
523
-				$this->_orderBy = 'filesize';
524
-				break;
525
-			case 'author':
526
-				$this->_orderBy = 'author';
527
-				break;
528
-			case 'recipient':
529
-				$this->_orderBy = 'recipients';
530
-				break;
531
-			default:
532
-				$this->_orderBy = 'last_upload_date';
533
-		}
534
-
535
-		usort($this->sentWork, array($this, '_cmpWork'));
536
-	}
537
-
538
-	/**
539
-	 * method that sorts the objects in the receivedWork array, dependent on the $sort parameter.
540
-	 * $sort can be lastDate, firstDate, title, size, ...
541
-	 * @param unknown_type $sort
542
-	 */
543
-	function orderReceivedWork($sort)
512
+        switch($sort) {
513
+            case 'lastDate':
514
+                $this->_orderBy = 'last_upload_date';
515
+                break;
516
+            case 'firstDate':
517
+                $this->_orderBy = 'upload_date';
518
+                break;
519
+            case 'title':
520
+                $this->_orderBy = 'title';
521
+                break;
522
+            case 'size':
523
+                $this->_orderBy = 'filesize';
524
+                break;
525
+            case 'author':
526
+                $this->_orderBy = 'author';
527
+                break;
528
+            case 'recipient':
529
+                $this->_orderBy = 'recipients';
530
+                break;
531
+            default:
532
+                $this->_orderBy = 'last_upload_date';
533
+        }
534
+
535
+        usort($this->sentWork, array($this, '_cmpWork'));
536
+    }
537
+
538
+    /**
539
+     * method that sorts the objects in the receivedWork array, dependent on the $sort parameter.
540
+     * $sort can be lastDate, firstDate, title, size, ...
541
+     * @param unknown_type $sort
542
+     */
543
+    function orderReceivedWork($sort)
544 544
     {
545
-		switch($sort) {
546
-			case 'lastDate':
547
-				$this->_orderBy = 'last_upload_date';
548
-				break;
549
-			case 'firstDate':
550
-				$this->_orderBy = 'upload_date';
551
-				break;
552
-			case 'title':
553
-				$this->_orderBy = 'title';
554
-				break;
555
-			case 'size':
556
-				$this->_orderBy = 'filesize';
557
-				break;
558
-			case 'author':
559
-				$this->_orderBy = 'author';
560
-				break;
561
-			case 'sender':
562
-				$this->_orderBy = 'uploaderName';
563
-				break;
564
-			default:
565
-				$this->_orderBy = 'last_upload_date';
566
-		}
567
-
568
-		usort($this->receivedWork, array($this, '_cmpWork'));
569
-	}
570
-
571
-	/**
572
-	 * Deletes all the received work of this person
573
-	 */
574
-	function deleteAllReceivedWork()
545
+        switch($sort) {
546
+            case 'lastDate':
547
+                $this->_orderBy = 'last_upload_date';
548
+                break;
549
+            case 'firstDate':
550
+                $this->_orderBy = 'upload_date';
551
+                break;
552
+            case 'title':
553
+                $this->_orderBy = 'title';
554
+                break;
555
+            case 'size':
556
+                $this->_orderBy = 'filesize';
557
+                break;
558
+            case 'author':
559
+                $this->_orderBy = 'author';
560
+                break;
561
+            case 'sender':
562
+                $this->_orderBy = 'uploaderName';
563
+                break;
564
+            default:
565
+                $this->_orderBy = 'last_upload_date';
566
+        }
567
+
568
+        usort($this->receivedWork, array($this, '_cmpWork'));
569
+    }
570
+
571
+    /**
572
+     * Deletes all the received work of this person
573
+     */
574
+    function deleteAllReceivedWork()
575 575
     {
576
-	    $course_id = api_get_course_int_id();
576
+        $course_id = api_get_course_int_id();
577 577
         $dropbox_cnf = getDropboxConf();
578
-		// Delete entries in person table concerning received works
579
-		foreach ($this->receivedWork as $w) {
578
+        // Delete entries in person table concerning received works
579
+        foreach ($this->receivedWork as $w) {
580 580
             $sql = "DELETE FROM ".$dropbox_cnf['tbl_person']."
581 581
 			        WHERE c_id = $course_id AND user_id='".$this->userId."' AND file_id='".$w->id."'";
582
-			Database::query($sql);
583
-		}
582
+            Database::query($sql);
583
+        }
584 584
         // Check for unused files
585
-		removeUnusedFiles();
586
-	}
587
-
588
-	/**
589
-	 * Deletes all the received categories and work of this person
590
-	 * @param integer $id
591
-	 */
592
-	function deleteReceivedWorkFolder($id)
585
+        removeUnusedFiles();
586
+    }
587
+
588
+    /**
589
+     * Deletes all the received categories and work of this person
590
+     * @param integer $id
591
+     */
592
+    function deleteReceivedWorkFolder($id)
593 593
     {
594 594
         $dropbox_cnf = getDropboxConf();
595 595
         $course_id = api_get_course_int_id();
596 596
 
597
-		$id = intval($id);
598
-		$sql = "DELETE FROM ".$dropbox_cnf['tbl_file']."
597
+        $id = intval($id);
598
+        $sql = "DELETE FROM ".$dropbox_cnf['tbl_file']."
599 599
 		        WHERE c_id = $course_id AND cat_id = '".$id."' ";
600
-		if (!Database::query($sql)) return false;
601
-		$sql = "DELETE FROM ".$dropbox_cnf['tbl_category']."
600
+        if (!Database::query($sql)) return false;
601
+        $sql = "DELETE FROM ".$dropbox_cnf['tbl_category']."
602 602
 		        WHERE c_id = $course_id AND cat_id = '".$id."' ";
603
-		if (!Database::query($sql)) return false;
604
-		$sql = "DELETE FROM ".$dropbox_cnf['tbl_post']."
603
+        if (!Database::query($sql)) return false;
604
+        $sql = "DELETE FROM ".$dropbox_cnf['tbl_post']."
605 605
 		        WHERE c_id = $course_id AND cat_id = '".$id."' ";
606
-		if (!Database::query($sql)) return false;
607
-		return true;
608
-	}
609
-
610
-	/**
611
-	 * Deletes a received dropbox file of this person with id=$id
612
-	 *
613
-	 * @param integer $id
614
-	 */
615
-	function deleteReceivedWork($id)
606
+        if (!Database::query($sql)) return false;
607
+        return true;
608
+    }
609
+
610
+    /**
611
+     * Deletes a received dropbox file of this person with id=$id
612
+     *
613
+     * @param integer $id
614
+     */
615
+    function deleteReceivedWork($id)
616 616
     {
617
-	    $course_id = api_get_course_int_id();
617
+        $course_id = api_get_course_int_id();
618 618
         $dropbox_cnf = getDropboxConf();
619
-		$id = intval($id);
620
-
621
-		// index check
622
-		$found = false;
623
-		foreach ($this->receivedWork as $w) {
624
-			if ($w->id == $id) {
625
-			   $found = true;
626
-			   break;
627
-			}
628
-		}
629
-
630
-		if (!$found) {
631
-			if (!$this->deleteReceivedWorkFolder($id)) {
632
-				die(get_lang('GeneralError').' (code 216)');
633
-			}
634
-		}
635
-		// Delete entries in person table concerning received works
619
+        $id = intval($id);
620
+
621
+        // index check
622
+        $found = false;
623
+        foreach ($this->receivedWork as $w) {
624
+            if ($w->id == $id) {
625
+                $found = true;
626
+                break;
627
+            }
628
+        }
629
+
630
+        if (!$found) {
631
+            if (!$this->deleteReceivedWorkFolder($id)) {
632
+                die(get_lang('GeneralError').' (code 216)');
633
+            }
634
+        }
635
+        // Delete entries in person table concerning received works
636 636
         $sql = "DELETE FROM ".$dropbox_cnf['tbl_person']."
637 637
                 WHERE c_id = $course_id AND user_id = '".$this->userId."' AND file_id ='".$id."'";
638
-		Database::query($sql);
639
-		removeUnusedFiles();	// Check for unused files
640
-	}
641
-
642
-	/**
643
-	 * Deletes all the sent dropbox files of this person
644
-	 */
645
-	function deleteAllSentWork()
638
+        Database::query($sql);
639
+        removeUnusedFiles();	// Check for unused files
640
+    }
641
+
642
+    /**
643
+     * Deletes all the sent dropbox files of this person
644
+     */
645
+    function deleteAllSentWork()
646 646
     {
647
-	    $course_id = api_get_course_int_id();
647
+        $course_id = api_get_course_int_id();
648 648
         $dropbox_cnf = getDropboxConf();
649
-		//delete entries in person table concerning sent works
650
-		foreach ($this->sentWork as $w) {
649
+        //delete entries in person table concerning sent works
650
+        foreach ($this->sentWork as $w) {
651 651
             $sql = "DELETE FROM ".$dropbox_cnf['tbl_person']."
652 652
                     WHERE c_id = $course_id AND user_id='".$this->userId."' AND file_id='".$w->id."'";
653
-			Database::query($sql);
654
-			removeMoreIfMailing($w->id);
655
-		}
656
-		removeUnusedFiles();	// Check for unused files
657
-	}
658
-
659
-	/**
660
-	 * Deletes a sent dropbox file of this person with id=$id
661
-	 *
662
-	 * @param unknown_type $id
663
-	 */
664
-	function deleteSentWork($id)
653
+            Database::query($sql);
654
+            removeMoreIfMailing($w->id);
655
+        }
656
+        removeUnusedFiles();	// Check for unused files
657
+    }
658
+
659
+    /**
660
+     * Deletes a sent dropbox file of this person with id=$id
661
+     *
662
+     * @param unknown_type $id
663
+     */
664
+    function deleteSentWork($id)
665 665
     {
666
-	    $course_id = api_get_course_int_id();
666
+        $course_id = api_get_course_int_id();
667 667
         $dropbox_cnf = getDropboxConf();
668 668
 
669
-		$id = intval($id);
670
-
671
-		// index check
672
-		$found = false;
673
-		foreach ($this->sentWork as $w) {
674
-			if ($w->id == $id) {
675
-			   $found = true;
676
-			   break;
677
-			}
678
-		}
679
-		if (!$found) {
680
-			if (!$this->deleteReceivedWorkFolder($id)) {
681
-				die(get_lang('GeneralError').' (code 219)');
682
-			}
683
-		}
684
-		//$file_id = $this->sentWork[$index]->id;
685
-		// Delete entries in person table concerning sent works
669
+        $id = intval($id);
670
+
671
+        // index check
672
+        $found = false;
673
+        foreach ($this->sentWork as $w) {
674
+            if ($w->id == $id) {
675
+                $found = true;
676
+                break;
677
+            }
678
+        }
679
+        if (!$found) {
680
+            if (!$this->deleteReceivedWorkFolder($id)) {
681
+                die(get_lang('GeneralError').' (code 219)');
682
+            }
683
+        }
684
+        //$file_id = $this->sentWork[$index]->id;
685
+        // Delete entries in person table concerning sent works
686 686
         $sql = "DELETE FROM ".$dropbox_cnf['tbl_person']."
687 687
                 WHERE c_id = $course_id AND user_id='".$this->userId."' AND file_id='".$id."'";
688
-		Database::query($sql);
689
-		removeMoreIfMailing($id);
690
-		removeUnusedFiles();	// Check for unused files
691
-	}
692
-
693
-	/**
694
-	 * Updates feedback for received work of this person with id=$id
695
-	 *
696
-	 * @param string $id
697
-	 * @param string $text
698
-	 */
699
-	function updateFeedback($id, $text)
688
+        Database::query($sql);
689
+        removeMoreIfMailing($id);
690
+        removeUnusedFiles();	// Check for unused files
691
+    }
692
+
693
+    /**
694
+     * Updates feedback for received work of this person with id=$id
695
+     *
696
+     * @param string $id
697
+     * @param string $text
698
+     */
699
+    function updateFeedback($id, $text)
700 700
     {
701
-	    $course_id = api_get_course_int_id();
701
+        $course_id = api_get_course_int_id();
702 702
         $_course = api_get_course_info();
703 703
         $dropbox_cnf = getDropboxConf();
704 704
 
705
-		$id = intval($id);
706
-
707
-		// index check
708
-		$found = false;
709
-		$wi = -1;
710
-		foreach ($this->receivedWork as $w) {
711
-			$wi++;
712
-			if ($w->id == $id){
713
-			   $found = true;
714
-			   break;
715
-			}  // foreach (... as $wi -> $w) gives error 221! (no idea why...)
716
-		}
717
-		if (!$found) {
718
-			die(get_lang('GeneralError').' (code 221)');
719
-		}
720
-
721
-		$feedback_date = api_get_utc_datetime();
722
-		$this->receivedWork[$wi]->feedback_date = $feedback_date;
723
-		$this->receivedWork[$wi]->feedback = $text;
705
+        $id = intval($id);
706
+
707
+        // index check
708
+        $found = false;
709
+        $wi = -1;
710
+        foreach ($this->receivedWork as $w) {
711
+            $wi++;
712
+            if ($w->id == $id){
713
+                $found = true;
714
+                break;
715
+            }  // foreach (... as $wi -> $w) gives error 221! (no idea why...)
716
+        }
717
+        if (!$found) {
718
+            die(get_lang('GeneralError').' (code 221)');
719
+        }
720
+
721
+        $feedback_date = api_get_utc_datetime();
722
+        $this->receivedWork[$wi]->feedback_date = $feedback_date;
723
+        $this->receivedWork[$wi]->feedback = $text;
724 724
 
725 725
         $params = [
726 726
             'feedback_date' => $feedback_date,
@@ -738,11 +738,11 @@  discard block
 block discarded – undo
738 738
             ]
739 739
         );
740 740
 
741
-		// Update item_property table
741
+        // Update item_property table
742 742
 
743
-		if (($ownerid = $this->receivedWork[$wi]->uploader_id) > $dropbox_cnf['mailingIdBase']) {
744
-		    $ownerid = getUserOwningThisMailing($ownerid);
745
-		}
743
+        if (($ownerid = $this->receivedWork[$wi]->uploader_id) > $dropbox_cnf['mailingIdBase']) {
744
+            $ownerid = getUserOwningThisMailing($ownerid);
745
+        }
746 746
         api_item_property_update(
747 747
             $_course,
748 748
             TOOL_DROPBOX,
@@ -753,31 +753,31 @@  discard block
 block discarded – undo
753 753
             $ownerid
754 754
         );
755 755
 
756
-	}
756
+    }
757 757
 
758
-	/**
759
-	 * Filter the received work
760
-	 * @param string $type
761
-	 * @param string $value
762
-	 */
763
-	function filter_received_work($type, $value)
758
+    /**
759
+     * Filter the received work
760
+     * @param string $type
761
+     * @param string $value
762
+     */
763
+    function filter_received_work($type, $value)
764 764
     {
765 765
         $dropbox_cnf = getDropboxConf();
766
-    	$new_received_work = array();
767
-		foreach ($this->receivedWork as $work) {
768
-			switch ($type) {
769
-				case 'uploader_id':
770
-					if ($work->uploader_id == $value ||
771
-						($work->uploader_id > $dropbox_cnf['mailingIdBase'] &&
766
+        $new_received_work = array();
767
+        foreach ($this->receivedWork as $work) {
768
+            switch ($type) {
769
+                case 'uploader_id':
770
+                    if ($work->uploader_id == $value ||
771
+                        ($work->uploader_id > $dropbox_cnf['mailingIdBase'] &&
772 772
                         getUserOwningThisMailing($work->uploader_id) == $value)
773 773
                     ) {
774
-						$new_received_work[] = $work;
775
-					}
776
-					break;
777
-				default:
778
-					$new_received_work[] = $work;
779
-			}
780
-		}
781
-		$this->receivedWork = $new_received_work;
782
-	}
774
+                        $new_received_work[] = $work;
775
+                    }
776
+                    break;
777
+                default:
778
+                    $new_received_work[] = $work;
779
+            }
780
+        }
781
+        $this->receivedWork = $new_received_work;
782
+    }
783 783
 }
Please login to merge, or discard this patch.