|
@@ -3781,7 +3781,12 @@ class Exercise
|
|
|
* Checks if the exercise is visible due a lot of conditions - visibility, time limits, student attempts
|
|
|
* @return bool true if is active
|
|
|
*/
|
|
|
- public function is_visible($lp_id = 0, $lp_item_id = 0 , $lp_item_view_id = 0, $filter_by_admin = true) {
|
|
|
+ public function is_visible(
|
|
|
+ $lp_id = 0,
|
|
|
+ $lp_item_id = 0,
|
|
|
+ $lp_item_view_id = 0,
|
|
|
+ $filter_by_admin = true
|
|
|
+ ) {
|
|
|
//1. By default the exercise is visible
|
|
|
$is_visible = true;
|
|
|
$message = null;
|
|
@@ -3836,28 +3841,50 @@ class Exercise
|
|
|
}
|
|
|
}
|
|
|
if ($is_visible == false && $this->start_time != '0000-00-00 00:00:00' && $this->end_time != '0000-00-00 00:00:00') {
|
|
|
- $message = sprintf(get_lang('ExerciseWillBeActivatedFromXToY'), api_convert_and_format_date($this->start_time), api_convert_and_format_date($this->end_time));
|
|
|
+ $message = sprintf(
|
|
|
+ get_lang('ExerciseWillBeActivatedFromXToY'),
|
|
|
+ api_convert_and_format_date($this->start_time),
|
|
|
+ api_convert_and_format_date($this->end_time)
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 4. We check if the student have attempts
|
|
|
+ $exerciseAttempts = $this->selectAttempts();
|
|
|
if ($is_visible) {
|
|
|
- if ($this->selectAttempts() > 0) {
|
|
|
- $attempt_count = get_attempt_count_not_finished(api_get_user_id(), $this->id, $lp_id, $lp_item_id, $lp_item_view_id);
|
|
|
+ if ($exerciseAttempts > 0) {
|
|
|
+
|
|
|
+ $attempt_count = get_attempt_count_not_finished(
|
|
|
+ api_get_user_id(),
|
|
|
+ $this->id,
|
|
|
+ $lp_id,
|
|
|
+ $lp_item_id,
|
|
|
+ $lp_item_view_id
|
|
|
+ );
|
|
|
|
|
|
- if ($attempt_count >= $this->selectAttempts()) {
|
|
|
- $message = sprintf(get_lang('ReachedMaxAttempts'), $this->name, $this->selectAttempts());
|
|
|
+ if ($attempt_count >= $exerciseAttempts) {
|
|
|
+ $message = sprintf(
|
|
|
+ get_lang('ReachedMaxAttempts'),
|
|
|
+ $this->name,
|
|
|
+ $exerciseAttempts
|
|
|
+ );
|
|
|
$is_visible = false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
if (!empty($message)){
|
|
|
- $message = Display :: return_message($message, 'warning', false);
|
|
|
+ $message = Display::return_message($message, 'warning', false);
|
|
|
}
|
|
|
- return array('value' => $is_visible, 'message' => $message);
|
|
|
+
|
|
|
+ return array(
|
|
|
+ 'value' => $is_visible,
|
|
|
+ 'message' => $message
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
- function added_in_lp() {
|
|
|
+ public function added_in_lp()
|
|
|
+ {
|
|
|
$TBL_LP_ITEM = Database::get_course_table(TABLE_LP_ITEM);
|
|
|
$sql = "SELECT max_score FROM $TBL_LP_ITEM WHERE c_id = ".$this->course_id." AND item_type = '".TOOL_QUIZ."' AND path = '".$this->id."'";
|
|
|
$result = Database::query($sql);
|