From 3442e33d4e442ffcfac844fcaf2a2950ec29dad2 Mon Sep 17 00:00:00 2001 From: L_DA Date: Thu, 24 Sep 2020 20:49:49 +0000 Subject: [PATCH] debugging --- classes/timetable.php | 90 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 78 insertions(+), 12 deletions(-) diff --git a/classes/timetable.php b/classes/timetable.php index fb5217d..f14a447 100755 --- a/classes/timetable.php +++ b/classes/timetable.php @@ -12,6 +12,42 @@ namespace mod_timetable; defined('MOODLE_INTERNAL') || die(); +function super_unique($array) { + $result = array_map("unserialize", array_unique(array_map("serialize", $array))); + foreach ($result as $key => $value) { + if ( is_array($value) ) { + $result[$key] = super_unique($value); + } + } + return $result; +} + +function remove_dup($matriz) { + $aux_ini=array(); + $entrega=array(); + for($n=0;$nroom; $mylesson['subject'] = $lesson->subject; $mylesson['status'] = ""; + $mylesson['flag'] = ""; + if ($lesson->flag) $mylesson['flag'] = $lesson->flag; if ($lesson->week[$this->week-1] == 'x') { $mylesson['status'] = 1; + $mylesson['flag'] = 1; /* if (array_key_exists('substitution', $this->data[$day+1][$period+1])) { foreach ($this->data[$day+1][$period+1]['substitution'] as $substitution) { @@ -282,15 +321,21 @@ class timetable { } */ } - $mylesson['flag'] = ""; - if ($lesson->flag) $mylesson['flag'] = $lesson->flag; /* if ($this->type == 'class') $mylesson['class'] = ""; if ($this->type == 'teacher') $mylesson['teacher'] = ""; if ($this->type == 'room') $mylesson['room'] = ""; */ - if ($lesson->week[$this->week-1] != '0') $days[$day]['lessons'][] = $mylesson; + if ($lesson->week[$this->week-1] != '0' && !lesson_in_lessons($mylesson, $days[$day]['lessons'])) { + //$days[$day]['lessons'][] = $mylesson; + if (count($days[$day]['lessons']) && $days[$day]['lessons'][0]['status']) { + $days[$day]['lessons'][0] = $mylesson; + } else { + $days[$day]['lessons'][] = $mylesson; + } + } + //if ($lesson->week[$this->week-1] == '1') $days[$day]['lessons'][] = $mylesson; /* - für diese Woche wurden keine Daten ausgegeben 0 in dieser Woche findet der Unterricht nicht statt @@ -305,7 +350,14 @@ class timetable { && array_key_exists('substitution', $this->data[$day+1][$period+1])) { foreach ($this->data[$day+1][$period+1]['substitution'] as $substitution) { //echo "In substitution loop".$substitution->text; + if ($days[$day]['substitution']) $days[$day]['substitution'] .= ' / '; $days[$day]['substitution'] .= $substitution->text; + + $mylesson = array(); + $mylesson['class'] = $substitution->classb; + $mylesson['teacher'] = $substitution->teacherb; + $mylesson['room'] = $substitution->roomb; + $mylesson['subject'] = $substitution->subjectb; if ($substitution->subjectb && (($this->type == 'teacher' && $this->name == $substitution->teacherb) || @@ -313,22 +365,35 @@ class timetable { ($this->type == 'room' && $this->name == $substitution->roomb)) ) { - $mylesson = array(); - $mylesson['class'] = $substitution->classb; - $mylesson['teacher'] = $substitution->teacherb; - $mylesson['room'] = $substitution->roomb; - $mylesson['subject'] = $substitution->subjectb; $mylesson['status'] = ""; $mylesson['flag'] = 1; - $days[$day]['lessons'][] = $mylesson; + if (!lesson_in_lessons($mylesson, $days[$day]['lessons'])) { + if (count($days[$day]['lessons']) && $days[$day]['lessons'][0]['status']) { + $days[$day]['lessons'][0] = $mylesson; + } else { + $days[$day]['lessons'][] = $mylesson; + } + } //if ($lesson->week[$this->week-1] != '0') $days[$day]['lessons'][] = $mylesson; - + } elseif (($this->type == 'teacher' && $this->name == $substitution->teachera) || + ($this->type == 'class' && $this->name == $substitution->classa) || + ($this->type == 'room' && $this->name == $substitution->rooma)) { + $mylesson['class'] = $substitution->classa; + $mylesson['teacher'] = $substitution->teachera; + $mylesson['room'] = $substitution->rooma; + $mylesson['subject'] = $substitution->subjecta; + $mylesson['status'] = 1; + $mylesson['flag'] = 1; + //$days[$day]['lessons'][] = $mylesson; + if (!lesson_in_lessons($mylesson, $days[$day]['lessons'])) $days[$day]['lessons'][] = $mylesson; - } - + } } } + //$days[$day]['lessons'] = array_unique($days[$day]['lessons']); + //$days[$day]['lessons'] = super_unique($days[$day]['lessons']); + //$days[$day]['lessons'] = remove_dup($days[$day]['lessons']); } $periods[$period] = array(); @@ -340,4 +405,5 @@ class timetable { return $resultdata; } + }