diff options
Diffstat (limited to 'app/controllers/admin/courses.php')
| -rw-r--r-- | app/controllers/admin/courses.php | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php index e822eab..aa56bfb 100644 --- a/app/controllers/admin/courses.php +++ b/app/controllers/admin/courses.php @@ -393,14 +393,27 @@ class Admin_CoursesController extends AuthenticatedController $activated_fields = $this->getFilterConfig(); $GLOBALS['user']->cfg->store('MY_COURSES_ACTION_AREA', Request::option('action')); + $course_ids = []; foreach ($courses as $course) { if ($course->parent && !Request::option('course_id')) { - $data['data'][] = $this->getCourseData($course->parent, $activated_fields); - $data['data'][] = $this->getCourseData($course, $activated_fields); + if (!in_array($course->parent->id, $course_ids)) { + $data['data'][] = $this->getCourseData($course->parent, $activated_fields); + $course_ids[] = $course->parent->id; + } + if (!in_array($course->id, $course_ids)) { + $data['data'][] = $this->getCourseData($course, $activated_fields); + $course_ids[] = $course->id; + } } else { - $data['data'][] = $this->getCourseData($course, $activated_fields); + if (!in_array($course->id, $course_ids)) { + $data['data'][] = $this->getCourseData($course, $activated_fields); + $course_ids[] = $course->id; + } foreach ($course->children as $childcourse) { - $data['data'][] = $this->getCourseData($childcourse, $activated_fields); + if (!in_array($childcourse->id, $course_ids)) { + $data['data'][] = $this->getCourseData($childcourse, $activated_fields); + $course_ids[] = $childcourse->id; + } } } } |
