private function inject_all_task_sets() { $task_sets = new Task_set(); $task_set_permissions = $task_sets->task_set_permission; $task_set_permissions->select_func('COUNT', '*', 'count'); $task_set_permissions->where('enabled', 1); $task_set_permissions->where_related('task_set', 'id', '${parent}.id'); $task_sets->select('*'); $task_sets->include_related('group', 'name'); $task_sets->select_subquery($task_set_permissions, 'task_set_permissions_count'); $task_sets->order_by_with_overlay('name'); $task_sets->get_iterated(); $data = array(); $this->lang->init_all_overlays('task_sets'); foreach ($task_sets as $task_set) { $text_groups = ''; if ((int) $task_set->task_set_permissions_count > 0) { $task_set_permissions = new Task_set_permission(); $task_set_permissions->include_related('group', 'name'); $task_set_permissions->where('enabled', 1); $task_set_permissions->where_related_task_set($task_set); $task_set_permissions->order_by_related_with_constant('group', 'name', 'asc'); $task_set_permissions->get_iterated(); $groups = array(); foreach ($task_set_permissions as $task_set_permission) { $groups[] = $this->lang->text($task_set_permission->group_name); } if (count($groups) > 0) { $text_groups = ' ... (' . implode(', ', $groups) . ')'; } } elseif (!is_null($task_set->group_id) && (int) $task_set->group_id > 0) { $text_groups = ' ... (' . $this->lang->text($task_set->group_name) . ')'; } $data[$task_set->course_id][] = array('value' => $task_set->id, 'text' => $this->lang->get_overlay_with_default('task_sets', $task_set->id, 'name', $task_set->name) . $text_groups); } $this->parser->assign('task_sets', $data); }