first version
This commit is contained in:
parent
83a8dc5d90
commit
52f3f359af
10 changed files with 633 additions and 344 deletions
|
|
@ -10,44 +10,42 @@
|
|||
|
||||
namespace mod_timetable;
|
||||
|
||||
require_once('lesson.php');
|
||||
|
||||
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;
|
||||
}
|
||||
const FLAG_Entfall = 0b0000000000000001;
|
||||
const FLAG_Betreuung = 0b0000000000000010;
|
||||
const FLAG_Sondereinsatz = 0b0000000000000100;
|
||||
const FLAG_Wegverlegung = 0b0000000000001000;
|
||||
const FLAG_Freisetzung = 0b0000000000010000;
|
||||
const FLAG_PlusVertreter = 0b0000000000100000;
|
||||
const FLAG_Teilverlegung = 0b0000000001000000;
|
||||
const FLAG_Hinverlegung = 0b0000000010000000;
|
||||
|
||||
function remove_dup($matriz) {
|
||||
$aux_ini=array();
|
||||
$entrega=array();
|
||||
for($n=0;$n<count($matriz);$n++) {
|
||||
$aux_ini[]=serialize($matriz[$n]);
|
||||
function lesson_in_lessons($obj, $array) {
|
||||
for($n=0;$n<count($array);$n++) {
|
||||
if ($obj->lessonid== $array[$n]->lessonid &&
|
||||
$obj->teacher == $array[$n]->teacher &&
|
||||
$obj->subject == $array[$n]->subject &&
|
||||
$obj->class == $array[$n]->class &&
|
||||
$obj->room == $array[$n]->room) return true;
|
||||
}
|
||||
$mat=array_unique($aux_ini);
|
||||
for($n=0;$n<count($matriz);$n++) {
|
||||
$entrega[]=unserialize($mat[$n]);
|
||||
}
|
||||
return $entrega;
|
||||
}
|
||||
|
||||
function lesson_in_lessons($array, $arrays) {
|
||||
for($n=0;$n<count($arrays);$n++) {
|
||||
if ($array['teacher'] == $arrays[$n]['teacher'] &&
|
||||
$array['subject'] == $arrays[$n]['subject'] &&
|
||||
$array['room'] == $arrays[$n]['room'] &&
|
||||
$array['class'] == $arrays[$n]['class'] &&
|
||||
// $array['flag'] == $arrays[$n]['flag'] &&
|
||||
$array['status'] == $arrays[$n]['status']) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function collapse_lessons($array) {
|
||||
$result = array();
|
||||
foreach ($array as $lesson) {
|
||||
$integrated = false;
|
||||
foreach ($result as $rlesson) {
|
||||
if ($rlesson->integrate($lesson)) $integrated = true;
|
||||
}
|
||||
if (!$integrated) $result[] = $lesson;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class timetable
|
||||
*
|
||||
|
|
@ -59,6 +57,8 @@ class timetable {
|
|||
|
||||
/** @var array the data of timetable */
|
||||
public $data;
|
||||
//public $lessons;
|
||||
//public $lessons_canceled;
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
|
|
@ -75,7 +75,20 @@ class timetable {
|
|||
|
||||
public function clear_data() {
|
||||
$this->data = array();
|
||||
for ($i=1; $i<=6; $i++) $this->data[$i] = array();
|
||||
$this->lessons = array();
|
||||
$this->lessons_canceled = array();
|
||||
$this->lessons_event = array();
|
||||
for ($i=1; $i<=6; $i++) {
|
||||
$this->data[$i] = array();
|
||||
$this->lessons[$i] = array();
|
||||
$this->lessons_canceled[$i] = array();
|
||||
$this->lessons_event[$i] = array();
|
||||
for ($j=1; $j<=13; $j++) {
|
||||
$this->lessons[$i][$j] = array();
|
||||
$this->lessons_canceled[$i][$j] = array();
|
||||
$this->lessons_event[$i][$j] = array();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -86,20 +99,12 @@ class timetable {
|
|||
public function read_db($week) {
|
||||
global $USER, $DB, $CFG;
|
||||
|
||||
$this->clear_data();
|
||||
$this->clear_data();
|
||||
$this->numdayweek = 5 + get_config('timetable', 'saturday');
|
||||
$this->week = $week;
|
||||
$this->monday = new \DateTime();
|
||||
$this->monday->setISODate($this->monday->format("Y"), $week);
|
||||
/*
|
||||
$this->monday = new \DateTime('29-07-2020'); // Only for debugging!!!
|
||||
if ($week>0) {
|
||||
$this->monday->add(new \DateInterval("P".($week)."W"));
|
||||
} elseif ($week<0) {
|
||||
$this->monday->sub(new \DateInterval("P".(-$week)."W"));
|
||||
}
|
||||
*/
|
||||
$dayofweek = $this->monday->format('w');
|
||||
$dayofweek = $this->monday->format('w');
|
||||
if ($dayofweek > $this->numdayweek) {
|
||||
$this->monday->add(new \DateInterval("P".(8-$dayofweek)."D"));
|
||||
} elseif ($dayofweek < 1) {
|
||||
|
|
@ -112,30 +117,63 @@ class timetable {
|
|||
$this->lastday = new \DateTime($this->monday->format('Y-m-d\TH:i:sP'));
|
||||
$this->lastday->add(new \DateInterval("P".($this->numdayweek-1)."D"));
|
||||
|
||||
//$this->content->text .= $monday->format('d.m') . " - " . $lastday->format('d.m');
|
||||
$sql = "$this->type = '$this->name' AND NOT lessonid=0 AND (mid(week, $this->week, 1) = '1')";
|
||||
$result = $DB->get_records_select('timetable_lesson',$sql);
|
||||
foreach ($result as $lesson) {
|
||||
if (!lesson_in_lessons($lesson, $this->lessons[$lesson->day][$lesson->period]))
|
||||
$this->lessons[$lesson->day][$lesson->period][] = new lesson($lesson);
|
||||
// Todo: if ($this->periodmax < $lesson->period) $this->periodmax = $lesson->period;
|
||||
}
|
||||
$sql = "$this->type = '$this->name' AND lessonid=0 AND (mid(week, $this->week, 1) = '1')";
|
||||
$result = $DB->get_records_select('timetable_lesson',$sql);
|
||||
foreach ($result as $lesson) {
|
||||
if (!lesson_in_lessons($lesson, $this->lessons_event[$lesson->day][$lesson->period]))
|
||||
$this->lessons_event[$lesson->day][$lesson->period][] = new lesson($lesson);
|
||||
// Todo: if ($this->periodmax < $lesson->period) $this->periodmax = $lesson->period;
|
||||
}
|
||||
$sql = "$this->type = '$this->name' and (mid(week, $this->week, 1) = 'x')";
|
||||
$result = $DB->get_records_select('timetable_lesson',$sql);
|
||||
foreach ($result as $lesson) {
|
||||
if (!lesson_in_lessons($lesson, $this->lessons_canceled[$lesson->day][$lesson->period]))
|
||||
$this->lessons_canceled[$lesson->day][$lesson->period][] = new lesson($lesson);
|
||||
// Todo: if ($this->periodmax < $lesson->period) $this->periodmax = $lesson->period;
|
||||
}
|
||||
|
||||
$sql = "$this->type = '$this->name' and not (mid(week, $this->week, 1) = '-')";
|
||||
//$sql = "$this->type = '$this->name' and (mid(week, $this->week, 1) = '1')";
|
||||
if ($result = $DB->get_records_select('timetable_lesson',$sql)) {
|
||||
foreach ($result as $lesson) {
|
||||
//if (!exists($this->data[$lesson->day][$lesson->period])) $this->data[$lesson->day][$lesson->period] = array();
|
||||
$this->data[$lesson->day][$lesson->period]['lesson'][] = $lesson;
|
||||
if ($this->periodmax < $lesson->period) $this->periodmax = $lesson->period;
|
||||
}
|
||||
}
|
||||
$day = new \DateTime($this->monday->format('Y-m-d\TH:i:sP'));
|
||||
$day = new \DateTime($this->monday->format('Y-m-d\TH:i:sP'));
|
||||
for ($i=0; $i<$this->numdayweek; $i++) {
|
||||
$sql = "date = '".$day->format('Ymd')."' AND ({$this->type}a RLIKE '(^|~){$this->name}($|~)' OR {$this->type}b RLIKE '(^|~){$this->name}($|~)')";
|
||||
$result = $DB->get_records_select('timetable_substitution',$sql);
|
||||
foreach ($result as $substitution) {
|
||||
foreach ($this->lessons[$i+1][$substitution->period] as $lesson) {
|
||||
$lesson->process_substitution($substitution);
|
||||
}
|
||||
foreach ($this->lessons_canceled[$i+1][$substitution->period] as $lesson) {
|
||||
$lesson->process_substitution($substitution);
|
||||
}
|
||||
foreach ($this->lessons_event[$i+1][$substitution->period] as $lesson) {
|
||||
$lesson->process_substitution($substitution);
|
||||
}
|
||||
}
|
||||
// Todo: if ($this->periodmax < $lesson->period) $this->periodmax = $lesson->period;
|
||||
|
||||
for ($i=0; $i<$this->numdayweek; $i++) {
|
||||
$sql = "date = '".$day->format('Ymd')."' AND ({$this->type}a RLIKE '(^|~){$this->name}($|~)' OR {$this->type}b RLIKE '(^|~){$this->name}($|~)')";
|
||||
if ($result = $DB->get_records_select('timetable_substitution',$sql)) {
|
||||
foreach ($result as $substitution) {
|
||||
$this->data[$i+1][$substitution->period]['substitution'][] = $substitution;
|
||||
if ($this->periodmax < $lesson->period) $this->periodmax = $lesson->period;
|
||||
//echo var_dump($substitution);
|
||||
}
|
||||
}
|
||||
$day->add(new \DateInterval("P1D"));
|
||||
}
|
||||
$types = array('teacher'=>'L', 'class'=>'K', 'room'=>'R');
|
||||
$sql = "startdate <= '".$day->format('Ymd')."' AND enddate >= '".$day->format('Ymd')."' AND type = '{$types[$this->type]}' AND name = '{$this->name}'";
|
||||
$result = $DB->get_records_select('timetable_absence',$sql);
|
||||
foreach ($result as $absence) {
|
||||
for ($j=$absence->startperiod; $j<=$absence->endperiod; $j++) {
|
||||
foreach ($this->lessons_event[$i+1][$j] as $lesson) {
|
||||
$lesson->process_absence($absence);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$day->add(new \DateInterval("P1D"));
|
||||
}
|
||||
|
||||
for ($i=0; $i<$this->numdayweek; $i++) {
|
||||
foreach($this->lessons[$i+1] as &$lessons) $lessons = collapse_lessons($lessons);
|
||||
foreach($this->lessons_canceled[$i+1] as &$lessons) $lessons = collapse_lessons($lessons);
|
||||
}
|
||||
|
||||
if ($this->type == 'teacher') {
|
||||
if ($result = $DB->get_record("timetable_$this->type",[$this->type => $this->name])) {
|
||||
|
|
@ -146,266 +184,103 @@ class timetable {
|
|||
$this->description = $result->description;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Count the number of online users
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function print_navigation($week) {
|
||||
/**
|
||||
* Count the number of online users
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
$table = new \html_table();
|
||||
$table->attributes['class'] = 'minicalendar calendartable calendar-controls';
|
||||
//$table->head = array('','Mo','Di', 'Mi' , 'Do', 'Fr');
|
||||
$tablerow = new \html_table_row();
|
||||
if ($week>0) {
|
||||
$tablerow->cells[] = new \html_table_cell('<a href="#slide-'.($week-1).'" class="arrow_link previous" title="Vorherige Woche" data-week="-1"><span class="arrow">◄</span></a>');
|
||||
} else {
|
||||
$tablerow->cells[] = new \html_table_cell('');
|
||||
}
|
||||
$tablerow->cells[] = new \html_table_cell('<a href="#">'.$this->monday->format('d.m') . " - " . $this->lastday->format('d.m').'</a>');
|
||||
if ($week<2) {
|
||||
$tablerow->cells[] = new \html_table_cell('<a href="#slide-'.($week+1).'" class="arrow_link next" title="Nächste Woche" data-month="8" data-week="1"><span class="arrow">►</span></a>');
|
||||
} else {
|
||||
$tablerow->cells[] = new \html_table_cell('');
|
||||
}
|
||||
$sql = "day = 1 ORDER BY period asc";
|
||||
$this->times = $DB->get_records_select('timetable_time',$sql);
|
||||
}
|
||||
|
||||
public function prepare_output() {
|
||||
$resultdata = array();
|
||||
|
||||
$table->data[] = $tablerow;
|
||||
return \html_writer::table($table);
|
||||
|
||||
}
|
||||
|
||||
public function get_caption($week) {
|
||||
$result = "";
|
||||
if ($week>0) {
|
||||
//$result .= '<a href="#slide-'.($week-1).'" class="arrow_link previous" title="Vorherige Woche" data-week="-1"><span class="arrow">◄</span></a>';
|
||||
$result .= '<a href="javascript:M.block_timetable.scroll_week('.($week-1).');" class="arrow_link previous" title="Vorherige Woche" data-week="1"><span class="arrow">◄<</span></a>';
|
||||
} else {
|
||||
$result .= '<a href="#" class="previous" style="visibility:hidden" data-week="-1"></A>';
|
||||
//$result .= '<a href="#" class="arrow_link previous" data-week="-1"><span class="arrow" style="display:none"></span></a>';
|
||||
}
|
||||
$result .= '<span class="hide"> | </span>';
|
||||
$result .= '<span class="current">';
|
||||
$result .= '<a href="#">'.$this->monday->format('d.m') . " - " . $this->lastday->format('d.m').'</a>';
|
||||
$result .= "</span>";
|
||||
$result .= '<span class="hide"> | </span>';
|
||||
if ($week<2) {
|
||||
//$result .= '<a href="#slide-'.($week+1).'" class="arrow_link next" title="Nächste Woche" data-month="8" data-week="1"><span class="arrow">►</span></a>';
|
||||
$result .= '<a href="javascript:M.block_timetable.scroll_week('.($week+1).');" class="arrow_link next" title="Nächste Woche" data-month="8" data-week="1"><span class="arrow">►</span></a>';
|
||||
} else {
|
||||
$result .= '';
|
||||
}
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function print_table($view,$week) {
|
||||
global $DB;
|
||||
//var_dump($this->data[1]);
|
||||
$numperiod = get_config('timetable', 'numperiod');
|
||||
$numdayweek = 5 + get_config('timetable', 'saturday');
|
||||
if ($this->periodmax>$numperiod) $numperiod = $this->periodmax;
|
||||
$table = new \html_table();
|
||||
//$table->attributes['class'] = "minicalendar calendartable generaltable timetable_view_$view";
|
||||
$table->attributes['class'] = "minicalendar calendartable generaltable timetable_view_$view";
|
||||
$table->caption = "<div class='calendar-controls'>".$this->get_caption($week)."</div>";
|
||||
//$table->style = 'display: none;';
|
||||
$table->head = array('','Mo','Di', 'Mi' , 'Do', 'Fr');
|
||||
if ($numdayweek == 6) $table->head[] = 'Sa';
|
||||
for ($i = 1; $i<=$numperiod; $i++) {
|
||||
$tablerow = new \html_table_row();
|
||||
$cell = new \html_table_cell($i);
|
||||
$cell->style = 'font-weight: bold;';
|
||||
// $cell->attributes['class'] = 'header';
|
||||
$tablerow->cells[] = $cell;
|
||||
for ($k = 1; $k <= $numdayweek; $k++) {
|
||||
$flag = 0;
|
||||
if (array_key_exists($i,$this->data[$k]) && array_key_exists('lesson',$this->data[$k][$i])) {
|
||||
$content = "";
|
||||
foreach ($this->data[$k][$i]['lesson'] as $lesson) {
|
||||
if ($content) $content .= "<br>";
|
||||
if ($lesson->flag) $content .= "<span style='color:red;'>";
|
||||
//if (substr($lesson->week,$this->week,1) == '1') $content .= $lesson->{$view};
|
||||
if ($lesson->week[$this->week-1] == '1') {
|
||||
if ($lesson->{$view}) {
|
||||
$content .= $lesson->{$view};
|
||||
} else {
|
||||
$content .= "+++";
|
||||
}
|
||||
}
|
||||
if ($lesson->week[$this->week-1] == 'x') $content .= "---";
|
||||
if ($lesson->flag) $content .= "</span>";
|
||||
$flag += $lesson->flag;
|
||||
}
|
||||
} else {
|
||||
$content = "-";
|
||||
}
|
||||
$subtxt = "";
|
||||
if (array_key_exists($i,$this->data[$k]) && array_key_exists('substitution', $this->data[$k][$i])) {
|
||||
foreach ($this->data[$k][$i]['substitution'] as $substitution) {
|
||||
$subtxt .= $substitution->text;
|
||||
}
|
||||
if ($subtxt) {
|
||||
$content = "<a href='#' data-toggle='tooltip' title='$subtxt'>$content</a>";
|
||||
//$content .= "<span class='tooltiptext'>$subtxt</span>";
|
||||
}
|
||||
}
|
||||
$cell = new \html_table_cell($content);
|
||||
// if ($flag) $cell->style = 'color: red;';
|
||||
//if (array_key_exists($i, $this->data[$k] ) && array_key_exists('substitution', $this->data[$k][$i])) $cell->attributes['class'] = 'tooltip';
|
||||
$tablerow->cells[] = $cell;
|
||||
}
|
||||
$table->data[] = $tablerow;
|
||||
}
|
||||
return \html_writer::table($table);
|
||||
}
|
||||
|
||||
public function prepare_output() {
|
||||
$resultdata = array();
|
||||
$numperiod = get_config('timetable', 'numperiod');
|
||||
if ($this->periodmax > $numperiod) $numperiod = $this->periodmax;
|
||||
$numdayweek = 5 + get_config('timetable', 'saturday');
|
||||
if ($numdayweek == 6) $resultdata['saturday'] = 1; else $resultdata['saturday'] = 0;
|
||||
$resultdata['type'] = $this->type;
|
||||
$resultdata['name'] = $this->name;
|
||||
$resultdata['description'] = $this->description;
|
||||
$resultdata['date'] = $this->monday->format('d.m') . " - " . $this->lastday->format('d.m');
|
||||
$resultdata['week'] = $this->week;
|
||||
$resultdata['prevweek'] = $this->week-1;
|
||||
$resultdata['nextweek'] = $this->week+1;
|
||||
$resultdata['id'] = \substr(\md5(\rand()), 0, 7);
|
||||
$numperiod = 13;
|
||||
|
||||
$numdayweek = 5 + get_config('timetable', 'saturday');
|
||||
if ($numdayweek == 6) $resultdata['saturday'] = 1; else $resultdata['saturday'] = 0;
|
||||
|
||||
$resultdata['type'] = $this->type;
|
||||
$resultdata['name'] = $this->name;
|
||||
$resultdata['description'] = $this->description;
|
||||
$resultdata['date'] = $this->monday->format('d.m') . " - " . $this->lastday->format('d.m');
|
||||
$resultdata['week'] = $this->week;
|
||||
$resultdata['prevweek'] = $this->week-1;
|
||||
$resultdata['nextweek'] = $this->week+1;
|
||||
$resultdata['id'] = \substr(\md5(\rand()), 0, 7);
|
||||
$periods = array();
|
||||
|
||||
for ($period=0; $period<$numperiod; $period++) {
|
||||
$days = array();
|
||||
for ($day=0; $day<$numdayweek; $day++) {
|
||||
$days[$day] = array();
|
||||
$days[$day]['substitution'] = "";
|
||||
$days[$day]['lessons'] = array();
|
||||
if (array_key_exists($period+1,$this->data[$day+1])
|
||||
&& array_key_exists('lesson',$this->data[$day+1][$period+1])) {
|
||||
foreach ($this->data[$day+1][$period+1]['lesson'] as $lesson) {
|
||||
$mylesson = array();
|
||||
$mylesson['class'] = $lesson->class;
|
||||
$mylesson['teacher'] = $lesson->teacher;
|
||||
$mylesson['room'] = $lesson->room;
|
||||
$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) {
|
||||
if ($lesson->class == $substitution->classa &&
|
||||
$lesson->teacher == $substitution->teachera &&
|
||||
$lesson->subject == $substitution->subjecta &&
|
||||
$lesson->room == $substitution->rooma) {
|
||||
$mylesson['class'] = $substitution->classb;
|
||||
$mylesson['teacher'] = $substitution->teacherb;
|
||||
$mylesson['room'] = $substitution->roomb;
|
||||
$mylesson['subject'] = $substitution->subjectb;
|
||||
$mylesson['status'] = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
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' && !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
|
||||
1 in dieser Woche findet der Unterricht statt
|
||||
x in dieser Woche entfällt der Unterricht
|
||||
|
||||
if ($lesson->week[$this->week-1] == 'x')
|
||||
*/
|
||||
}
|
||||
}
|
||||
if (array_key_exists($period+1,$this->data[$day+1])
|
||||
&& 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) ||
|
||||
// ($this->type == 'class' && $this->name == $substitution->classb) ||
|
||||
($this->type == 'class' && strpos($substitution->classb, $this->name)) ||
|
||||
($this->type == 'room' && $this->name == $substitution->roomb))
|
||||
) {
|
||||
|
||||
$mylesson['status'] = "";
|
||||
$mylesson['flag'] = 1;
|
||||
|
||||
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 == 'class' && strpos($substitution->classa, $this->name)) ||
|
||||
($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();
|
||||
$periods[$period]['days'] = $days;
|
||||
$periods[$period]['number'] = $period+1;
|
||||
}
|
||||
$resultdata['periods'] = $periods;
|
||||
//echo var_dump($data);
|
||||
return $resultdata;
|
||||
}
|
||||
|
||||
$days[$day]['substitutionold'] = "";
|
||||
$days[$day]['lessons'] = array();
|
||||
foreach ($this->lessons_event[$day+1][$period+1] as $lesson) {
|
||||
$mylesson = array();
|
||||
$mylesson['class'] = $lesson->class;
|
||||
$mylesson['teacher'] = $lesson->teacher;
|
||||
$mylesson['room'] = $lesson->room;
|
||||
$mylesson['subject'] = $lesson->subject;
|
||||
$mylesson['classa'] = $lesson->classa;
|
||||
$mylesson['teachera'] = $lesson->teachera;
|
||||
$mylesson['rooma'] = $lesson->rooma;
|
||||
$mylesson['subjecta'] = $lesson->subjecta;
|
||||
$mylesson['substitution'] = $lesson->substitution;
|
||||
$mylesson['cancel'] = "";
|
||||
$mylesson['event'] = $lesson->reason ? $lesson->reason : "Event";
|
||||
$mylesson['status'] = "1";
|
||||
$mylesson['flag'] = "1";
|
||||
$mylesson['text'] = $lesson->text;
|
||||
$days[$day]['substitutionold'] .= $lesson->text;
|
||||
$days[$day]['lessons'][] = $mylesson;
|
||||
}
|
||||
foreach ($this->lessons[$day+1][$period+1] as $lesson) {
|
||||
$mylesson = array();
|
||||
$mylesson['class'] = $lesson->class;
|
||||
$mylesson['teacher'] = $lesson->teacher;
|
||||
$mylesson['room'] = $lesson->room;
|
||||
$mylesson['subject'] = $lesson->subject;
|
||||
$mylesson['classa'] = $lesson->classa;
|
||||
$mylesson['teachera'] = $lesson->teachera;
|
||||
$mylesson['rooma'] = $lesson->rooma;
|
||||
$mylesson['subjecta'] = $lesson->subjecta;
|
||||
$mylesson['substitution'] = $lesson->substitution;
|
||||
$mylesson['cancel'] = "";
|
||||
$mylesson['event'] = "";
|
||||
$mylesson['status'] = "";
|
||||
$mylesson['flag'] = "";
|
||||
$mylesson['text'] = $lesson->text;
|
||||
$days[$day]['substitutionold'] .= $lesson->text;
|
||||
$days[$day]['lessons'][] = $mylesson;
|
||||
}
|
||||
foreach ($this->lessons_canceled[$day+1][$period+1] as $lesson) {
|
||||
$mylesson = array();
|
||||
$mylesson['class'] = $lesson->class;
|
||||
$mylesson['teacher'] = $lesson->teacher;
|
||||
$mylesson['room'] = $lesson->room;
|
||||
$mylesson['subject'] = $lesson->subject;
|
||||
$mylesson['classa'] = $lesson->classa;
|
||||
$mylesson['teachera'] = $lesson->teachera;
|
||||
$mylesson['rooma'] = $lesson->rooma;
|
||||
$mylesson['subjecta'] = $lesson->subjecta;
|
||||
$mylesson['substitution'] = $lesson->substitution;
|
||||
$mylesson['cancel'] = "1";
|
||||
$mylesson['event'] = "";
|
||||
$mylesson['status'] = "1";
|
||||
$mylesson['flag'] = "1"; // status und flag werden vertauscht (im Template bzw. extern-lib.php
|
||||
$mylesson['text'] = $lesson->text;
|
||||
$days[$day]['substitutionold'] .= $lesson->text;
|
||||
$days[$day]['lessons'][] = $mylesson;
|
||||
}
|
||||
}
|
||||
$periods[$period] = array();
|
||||
$periods[$period]['days'] = $days;
|
||||
$periods[$period]['number'] = $period+1;
|
||||
$periods[$period]['starttime'] = substr_replace($this->times[$period+1]->starttime, ":",-2,0);
|
||||
$periods[$period]['endtime'] = substr_replace($this->times[$period+1]->endtime, ":",-2,0);
|
||||
}
|
||||
$resultdata['periods'] = $periods;
|
||||
return $resultdata;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue