Beispiel #1
0
 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);
 }