diff --git a/lib/classes/SimpleORMapCollection.php b/lib/classes/SimpleORMapCollection.php index 20162e5613d79903c845854761838f9b9a6e0b5f..f437084191a2fc3230b289e3abbbd01887a8d88a 100644 --- a/lib/classes/SimpleORMapCollection.php +++ b/lib/classes/SimpleORMapCollection.php @@ -234,7 +234,6 @@ class SimpleORMapCollection extends SimpleCollection */ public function merge(SimpleCollection $a_collection, string $mode = 'ignore') { - $mode = func_get_arg(1); foreach ($a_collection as $element) { try { /** diff --git a/lib/models/Course.php b/lib/models/Course.php index d7ffff7a956cb69c62f56dbf1066e5857c4e4c06..17c06ca382e5f7fc88fab3b2e8ec5056314f3f7c 100644 --- a/lib/models/Course.php +++ b/lib/models/Course.php @@ -1906,17 +1906,25 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe */ public function getDatesWithExdates($range_begin = 0, $range_end = 0) { - $dates = []; - if (($range_begin > 0) && ($range_end > 0) && ($range_end > $range_begin)) { - $ex_dates = $this->ex_dates->findBy('content', '', '<>') - ->findBy('date', $range_begin, '>=') - ->findBy('end_time', $range_end, '<='); - $dates = $this->dates->findBy('date', $range_begin, '>=') - ->findBy('end_time', $range_end, '<='); - $dates->merge($ex_dates); + $dates = SimpleCollection::createFromArray([]); + if ( + $range_begin > 0 + && $range_end > 0 + && $range_end > $range_begin + ) { + $dates->merge( + $this->dates->findBy('date', $range_begin, '>=') + ->findBy('end_time', $range_end, '<=') + ); + + $dates->merge( + $this->ex_dates->findBy('content', '', '<>') + ->findBy('date', $range_begin, '>=') + ->findBy('end_time', $range_end, '<=') + ); } else { - $dates = $this->ex_dates->findBy('content', '', '<>'); $dates->merge($this->dates); + $dates->merge($this->ex_dates->findBy('content', '', '<>')); } $dates->uasort(function($a, $b) { return $a->date - $b->date