19 declare(strict_types=1);
    74         protected Factory $data_factory,
    76         protected ILIAS\
HTTP\Wrapper\WrapperFactory $http_wrapper,
    79         protected ILIAS\
UI\Renderer $ui_renderer,
    80         protected GuzzleHttp\Psr7\ServerRequest $request,
    83         $this->permissions = null;
    86         $this->
toolbar->setPreventDoubleSubmission(
true);
    91         $this->parent_gui = $a_parent_gui;
   103         $cmd = $this->
ctrl->getCmd();
   104         $next_class = $this->
ctrl->getNextClass($this);
   106         if ($cmd === 
"" || $cmd === null) {
   110         switch ($next_class) {
   111             case "ilstudyprogrammerepositorysearchgui":
   112                 $this->repository_search_gui->setCallback($this, 
"addUsers");
   113                 $this->
ctrl->setReturn($this, 
"view");
   114                 $this->
ctrl->forwardCommand($this->repository_search_gui);
   116             case "ilobjstudyprogrammeindividualplangui":
   117                 $this->individual_plan_gui->setParentGUI($this);
   118                 $this->individual_plan_gui->setRefId($this->ref_id);
   119                 $this->
ctrl->forwardCommand($this->individual_plan_gui);
   121             case "ilstudyprogrammemailmembersearchgui":
   122                 $this->
tabs->clearTargets();
   123                 $this->
tabs->setBackTarget(
   124                     $this->
lng->txt(
'btn_back'),
   128                 $mail_search = 
$dic[
'ilStudyProgrammeMailMemberSearchGUI'];
   130                 $mail_search->setBackTarget(
   131                     $this->
ctrl->getLinkTarget($this, $this->getDefaultCommand())
   133                 $this->
ctrl->forwardCommand($mail_search);
   135             case "ilstudyprogrammechangeexpiredategui":
   136                 $this->
tabs->clearTargets();
   137                 $this->
tabs->setBackTarget(
   138                     $this->
lng->txt(
'btn_back'),
   142                 $gui = 
$dic[
'ilStudyProgrammeChangeExpireDateGUI'];
   143                 $gui->setRefId($this->ref_id);
   145                 $this->
ctrl->forwardCommand($gui);
   147             case "ilstudyprogrammechangedeadlinegui":
   148                 $this->
tabs->clearTargets();
   149                 $this->
tabs->setBackTarget(
   150                     $this->
lng->txt(
'btn_back'),
   154                 $gui = 
$dic[
'ilStudyProgrammeChangeDeadlineGUI'];
   155                 $gui->setRefId($this->ref_id);
   157                 $this->
ctrl->forwardCommand($gui);
   162                     case "markAccredited":
   163                     case "markAccreditedMulti":
   164                     case "unmarkAccredited":
   165                     case "unmarkAccreditedMulti":
   167                     case "removeUserMulti":
   168                     case "markNotRelevantMulti":
   170                     case "markRelevantMulti":
   171                     case "updateFromCurrentPlan":
   172                     case "updateFromCurrentPlanMulti":
   173                     case "acknowledgeCourses":
   174                     case "acknowledgeCoursesMulti":
   177                     case "changeDeadline":
   178                     case "changeDeadlineMulti":
   179                     case "changeExpireDate":
   180                     case "changeExpireDateMulti":
   181                     case "updateCertificate":
   182                     case "updateCertificateMulti":
   183                     case "removeCertificate":
   184                     case "removeCertificateMulti":
   185                         $cont = $this->$cmd();
   186                         $this->tpl->setContent($cont);
   188                     case "confirmedRemoveUsers":
   191                     case "confirmedUpdateFromCurrentPlan":
   194                     case "confirmedAcknowledgeCourses":
   197                     case "confirmedAcknowledgeAllCourses":
   200                     case "mailUserMulti":
   203                     case "markNotRelevant":
   206                     case "confirmedUpdateCertificate":
   209                     case "confirmedRemovalOfCertificate":
   212                     case "deliverCertificate":
   214                             $this->tpl->setOnScreenMessage(
"failure", $this->
lng->txt(
"permission_denied"), 
true);
   215                             $this->
ctrl->redirect($this, 
"view");
   217                         $usr_id = $this->http_wrapper->query()->retrieve(
   225                         throw new ilException(
"ilObjStudyProgrammeMembersGUI: Command not supported: $cmd");
   230                     "ilObjStudyProgrammeMembersGUI: Can't forward to next class $next_class"   237         return self::DEFAULT_CMD;
   242         return $this->assignment_db->getAllForNodeIsContained($this->
object->getId());
   257             $dic[
'ilStudyProgrammeUserTable'],
   258             $dic[
'filter.assignment'],
   271         if ($this->http_wrapper->post()->has(self::F_COMMAND_OPTION_ALL)) {
   272             $pgs_ids = $this->http_wrapper->post()->retrieve(
   273                 self::F_ALL_PROGRESS_IDS,
   274                 $this->
refinery->custom()->transformation(
   275                     fn($ids) => explode(
',', $ids)
   279             $pgs_ids = $this->http_wrapper->post()->retrieve(
   280                 self::F_SELECTED_PROGRESS_IDS,
   281                 $this->
refinery->custom()->transformation(fn($ids) => $ids)
   284         if ($pgs_ids === null) {
   286             $this->
ctrl->redirect($this, 
"view");
   288         if (is_string($pgs_ids)) {
   289             $pgs_ids = [$pgs_ids];
   293         foreach ($pgs_ids as $pgs_id) {
   301         $prgrs_ids = 
$_GET[
'prgrs_ids'];
   303         if (!is_null($prgrs_ids)) {
   304             foreach (explode(
',', $prgrs_ids) as 
$id) {
   313         if (!
$_GET[
"prgrs_id"]) {
   322     protected function view(): string
   330             $this->tpl->setOnScreenMessage(
"info", $this->
lng->txt(
"prg_no_members_not_active"));
   333         return $table->getHTML();
   339         $table->resetOffset();
   340         $table->writeFilterToSession();
   341         $this->
ctrl->redirect($this, 
"view");
   347         $table->resetOffset();
   348         $table->resetFilter();
   349         $this->
ctrl->redirect($this, 
"view");
   364         foreach ($user_ids as $user_id) {
   365             $ass = $prg->assignUser((
int) $user_id);
   366             $assignments[] = $ass;
   367             if ($prg->getCompletedCourses((
int) $user_id)) {
   368                 $with_courses[] = $ass;
   372         if (count($assignments) === 1) {
   373             $this->tpl->setOnScreenMessage(
"success", $this->
lng->txt(
"prg_added_member"), 
true);
   375         if (count($assignments) > 1) {
   376             $this->tpl->setOnScreenMessage(
"success", $this->
lng->txt(
"prg_added_members"), 
true);
   380             $this->tpl->setContent(
   381                 $this->ui_renderer->render(
   382                     $this->viewCompletedCourses($assignments)
   388             $this->
ctrl->redirect($this, 
"view");
   398         $completed_courses = [];
   400         foreach ($assignments as $ass) {
   401             $ass_ids[] = $ass->getId();
   402             $completed_crss = $prg->getCompletedCourses($ass->getUserId());
   406                 $ass->getUserInformation()->getFullname(),
   410             foreach ($completed_crss as $opt) {
   411                 $options[implode(
';', [$ass->getId(), $opt[
'prg_obj_id'],$opt[
'crs_id']])] = $opt[
'title'];
   414             $completed_courses[] = $this->ui_factory->input()->field()->multiselect($label, $options);
   417         $form_action = $this->
ctrl->getFormAction($this, 
'confirmedAcknowledgeCourses')
   418             . 
'&ass_ids=' . implode(
',', $ass_ids);
   420         $form = $this->ui_factory->input()->container()->form()->standard(
   423                 $this->ui_factory->input()->field()->section(
   425                     $this->
lng->txt(
"prg_acknowledge_completed_courses")
   428         )->withAdditionalTransformation(
   429             $this->
refinery->custom()->transformation(
   431                     $values = array_merge(...array_filter(array_shift($values)));
   433                         fn($entry) => explode(
';', $entry),
   439             $this->
lng->txt(
"btn_next")
   443             $this->ui_factory->link()->standard(
   444                 $this->
lng->txt(
'prg_cancel_acknowledge_completed_courses'),
   445                 $this->
ctrl->getLinkTarget($this, self::DEFAULT_CMD)
   449             $this->ui_factory->link()->standard(
   450                 $this->
lng->txt(
'prg_acknowledge_all_completed_courses'),
   451                 $this->
ctrl->getLinkTarget($this, 
'confirmedAcknowledgeAllCourses')
   452                 . 
'&ass_ids=' . implode(
',', $ass_ids)
   464         $to_add = $this->permissions->filterUserIds(
   469         $cnt_not_added = count($users) - count($to_add);
   470         if ($cnt_not_added > 0) {
   471             $this->tpl->setOnScreenMessage(
   474                     $this->
lng->txt(
'could_not_add_users_no_permissons'),
   489         $this->
ctrl->redirect($this, 
"view");
   496         foreach ($prgrs_ids as 
$key => $prgrs_id) {
   500         $this->
ctrl->redirect($this, 
"view");
   507             $msgs->
add(
false, 
'No permission to edit progress of user', (
string) $prgrs_id);
   520         $this->
ctrl->redirect($this, 
"view");
   527         foreach ($prgrs_ids as 
$key => $prgrs_id) {
   531         $this->
ctrl->redirect($this, 
"view");
   538             $msgs->
add(
false, 
'No permission to edit progress of user', (
string) $prgrs_id);
   551             $msgs->add(
false, 
"No permission to edit progress of user", (
string) $prgrs_id);
   553             $programme->markRelevant($prgrs_id->getAssignmentId(), $this->
user->getId(), $msgs);
   556         $this->
ctrl->redirect($this, 
"view");
   564         foreach ($prgrs_ids as 
$key => $prgrs_id) {
   566                 $msgs->add(
false, 
'No permission to edit progress of user', (
string) $prgrs_id);
   568                 $programme->markRelevant($prgrs_id->getAssignmentId(), $this->
user->getId(), $msgs);
   572         $this->
ctrl->redirect($this, 
"view");
   581             $msgs->add(
false, 
'No permission to edit progress of user', (
string) $prgrs_id);
   583             $programme->markNotRelevant($prgrs_id->getAssignmentId(), $this->
user->getId(), $msgs);
   586         $this->
ctrl->redirect($this, 
"view");
   594         foreach ($prgrs_ids as 
$key => $prgrs_id) {
   596                 $msgs->add(
false, 
'No permission to edit progress of user', (
string) $prgrs_id);
   598                 $programme->markNotRelevant($prgrs_id->getAssignmentId(), $this->
user->getId(), $msgs);
   602         $this->
ctrl->redirect($this, 
"view");
   607         $this->confirmation_gui->setFormAction($this->
ctrl->getFormAction($this, 
'confirmUpdateFromCurrentPlan'));
   608         $this->confirmation_gui->setHeaderText($this->
lng->txt(
'header_update_current_plan'));
   609         $this->confirmation_gui->setConfirm($this->
lng->txt(
'confirm'), 
'confirmedUpdateFromCurrentPlan');
   610         $this->confirmation_gui->setCancel($this->
lng->txt(
'cancel'), 
'view');
   614         $this->confirmation_gui->addItem(
   615             self::F_SELECTED_PROGRESS_IDS,
   619         return $this->confirmation_gui->getHTML();
   624         $this->confirmation_gui->setFormAction($this->
ctrl->getFormAction($this, 
'confirmUpdateFromCurrentPlan'));
   625         $this->confirmation_gui->setHeaderText($this->
lng->txt(
'header_update_current_plan'));
   626         $this->confirmation_gui->setConfirm($this->
lng->txt(
'confirm'), 
'confirmedUpdateFromCurrentPlan');
   627         $this->confirmation_gui->setCancel($this->
lng->txt(
'cancel'), 
'view');
   631             $this->confirmation_gui->addItem(
   632                 self::F_SELECTED_PROGRESS_IDS . 
'[]',
   633                 (
string) $progress_id,
   637         return $this->confirmation_gui->getHTML();
   644         foreach ($pgs_ids as $idx => $pgs_id) {
   646                 $msgs->add(
false, 
'no_permission_to_update_plan_of_user', (
string) $pgs_id);
   649                 $msgs->add(
true, 
'', (
string) $pgs_id);
   652             $this->
object->updatePlanFromRepository(
   653                 $pgs_id->getAssignmentId(),
   654                 $this->
user->getId(),
   659         $this->
ctrl->redirect($this, 
"view");
   666             $this->assignment_db->get($progress_id->getAssignmentId())
   668         return $this->ui_renderer->render(
   677             $assignments[] = $this->assignment_db->get($progress_id->getAssignmentId());
   679         return $this->ui_renderer->render(
   689         $ass_ids = $this->http_wrapper->query()->retrieve(
   691             $this->
refinery->custom()->transformation(fn($ids) => explode(
',', $ids))
   694         $assignments = array_map(
   695             fn($ass_id) => $this->assignment_db->get((
int) $ass_id),
   699         $assignments = array_filter(
   701             fn($ass) => $ass->getRootId() === $prg->getId()
   712         foreach ($assignments as $ass) {
   713             $ass_ids[] = $ass->getId();
   714             $completed_crss = $prg->getCompletedCourses($ass->getUserId());
   716             foreach ($completed_crss as $opt) {
   717                 $nodes[] = [$opt[
'prg_obj_id'], $opt[
'crs_id']];
   719             $prg->acknowledgeCourses(
   726         $this->
ctrl->redirect($this, 
"view");
   734         $data = $form->getData();
   740             foreach (
$data as $ack) {
   741                 [$assignment_id, $node_obj_id, $course_obj_id] = $ack;
   742                 if (! array_key_exists($assignment_id, $acknowledge)) {
   743                     $acknowledge[$assignment_id] = [];
   745                 $acknowledge[$assignment_id][] = [(
int) $node_obj_id, (
int) $course_obj_id];
   747             foreach ($acknowledge as $ass_id => $nodes) {
   748                 $this->
object->acknowledgeCourses(
   756         $this->
ctrl->redirect($this, 
"view");
   761         $this->
ctrl->setParameterByClass(
   762             'ilStudyProgrammeChangeDeadlineGUI',
   767         $link = $this->
ctrl->getLinkTargetByClass(
   768             'ilStudyProgrammeChangeDeadlineGUI',
   772         $this->
ctrl->clearParameterByClass(
'ilStudyProgrammeChangeDeadlineGUI', 
'prgrs_ids');
   773         $this->
ctrl->redirectToURL($link);
   778         $this->
ctrl->setParameterByClass(
   779             'ilStudyProgrammeChangeDeadlineGUI',
   784         $link = $this->
ctrl->getLinkTargetByClass(
   785             'ilStudyProgrammeChangeDeadlineGUI',
   789         $this->
ctrl->clearParameterByClass(
'ilStudyProgrammeChangeDeadlineGUI', 
'prgrs_ids');
   790         $this->
ctrl->redirectToURL($link);
   795         $this->
ctrl->setParameterByClass(
   796             'ilStudyProgrammeChangeExpireDateGUI',
   801         $link = $this->
ctrl->getLinkTargetByClass(
   802             'ilStudyProgrammeChangeExpireDateGUI',
   803             'showExpireDateConfig'   806         $this->
ctrl->clearParameterByClass(
'ilStudyProgrammeChangeExpireDateGUI', 
'prgrs_ids');
   807         $this->
ctrl->redirectToURL($link);
   812         $this->
ctrl->setParameterByClass(
   813             'ilStudyProgrammeChangeExpireDateGUI',
   818         $link = $this->
ctrl->getLinkTargetByClass(
   819             'ilStudyProgrammeChangeExpireDateGUI',
   820             'showExpireDateConfig'   823         $this->
ctrl->clearParameterByClass(
'ilStudyProgrammeChangeExpireDateGUI', 
'prgrs_ids');
   824         $this->
ctrl->redirectToURL($link);
   841         $this->confirmation_gui->setFormAction($this->
ctrl->getFormAction($this));
   842         $this->confirmation_gui->setHeaderText($this->
lng->txt(
'confirm_to_remove_selected_assignments'));
   843         $this->confirmation_gui->setConfirm($this->
lng->txt(
'prg_remove_user'), 
'confirmedRemoveUsers');
   844         $this->confirmation_gui->setCancel($this->
lng->txt(
'cancel'), 
'view');
   846         foreach ($progress_ids as $progress_id) {
   848             $this->confirmation_gui->addItem(
   849                 self::F_SELECTED_PROGRESS_IDS . 
'[]',
   850                 (
string) $progress_id,
   854         return $this->confirmation_gui->getHTML();
   860         $not_removed = array();
   861         foreach ($pgs_ids as $idx => $pgs_id) {
   865                 $not_removed[] = $pgs_id;
   868         if (count($not_removed) === count($pgs_ids)) {
   870         } elseif (count($not_removed) > 0) {
   875         $this->
ctrl->redirect($this, 
"view");
   888                 'No permission to manage membership of user'   894         if ($prg_ref_id !== $this->ref_id) {
   895             throw new ilException(
"Can only remove users from the node they where assigned to.");
   898         $prg->removeAssignment($ass);
   906         $this->tpl->setOnScreenMessage(
"success", $this->
lng->txt(
"prg_$lng_var"), 
true);
   914         $this->tpl->setOnScreenMessage(
"info", $this->
lng->txt(
"prg_$lng_var"), 
true);
   923                 "auto_complete_name" => $this->
lng->txt(
"user"),
   924                 "submit_name" => $this->
lng->txt(
"add"),
   937             $this->ui_factory->link()->standard(
   938                 $this->
lng->txt(
'mail_assignments'),
   939                 $this->
ctrl->getLinkTargetByClass(
   940                     'ilStudyProgrammeMailMemberSearchGUI',
   941                     'showSelectableUsers'   953         if ($ref_id === null) {
   965             case self::ACTION_MARK_ACCREDITED:
   966                 $target_name = 
"markAccredited";
   968             case self::ACTION_UNMARK_ACCREDITED:
   969                 $target_name = 
"unmarkAccredited";
   971             case self::ACTION_SHOW_INDIVIDUAL_PLAN:
   972                 return $this->individual_plan_gui->getLinkTargetView($ass_id);
   973             case self::ACTION_REMOVE_USER:
   974                 $target_name = 
"removeUser";
   976             case self::ACTION_UNMARK_RELEVANT:
   977                 $target_name = 
"markNotRelevant";
   979             case self::ACTION_MARK_RELEVANT:
   980                 $target_name = 
"markRelevant";
   982             case self::ACTION_UPDATE_FROM_CURRENT_PLAN:
   983                 $target_name = 
"updateFromCurrentPlan";
   985             case self::ACTION_ACKNOWLEDGE_COURSES:
   986                 $target_name = 
"acknowledgeCourses";
   988             case self::ACTION_CHANGE_DEADLINE:
   989                 $target_name = 
"changeDeadline";
   991             case self::ACTION_CHANGE_EXPIRE_DATE:
   992                 $target_name = 
"changeExpireDate";
   994             case self::ACTION_UPDATE_CERTIFICATE:
   995                 $target_name = 
"updateCertificate";
   997             case self::ACTION_REMOVE_CERTIFICATE:
   998                 $target_name = 
"removeCertificate";
  1004         $this->
ctrl->setParameter($this, 
"prgrs_id", $prgrs_id);
  1005         $link = $this->
ctrl->getLinkTarget($this, $target_name);
  1006         $this->
ctrl->setParameter($this, 
"prgrs_id", null);
  1020         return $this->messages->getMessageCollection($topic);
  1025         $this->messages->showMessages($msg);
  1031         $gui = 
$dic[
'ilStudyProgrammeMailMemberSearchGUI'];
  1033         $selected_ids = array_map(
  1034             fn(
$id) => 
$id->getAssignmentId(),
  1038         $assignments = array_filter(
  1040             fn($ass) => in_array($ass->getId(), $selected_ids)
  1042         $gui->setAssignments($assignments);
  1043         $this->
tabs->clearTargets();
  1044         $this->
tabs->setBackTarget(
  1045             $this->
lng->txt(
'btn_back'),
  1048         $this->
ctrl->forwardCommand($gui);
  1053         $this->confirmation_gui->setFormAction($this->
ctrl->getFormAction($this, 
'confirmUpdateCertificate'));
  1054         $this->confirmation_gui->setHeaderText($this->
lng->txt(
'header_update_certificate'));
  1055         $this->confirmation_gui->setConfirm($this->
lng->txt(
'confirm'), 
'confirmedUpdateCertificate');
  1056         $this->confirmation_gui->setCancel($this->
lng->txt(
'cancel'), 
'view');
  1060         $this->confirmation_gui->addItem(
  1061             self::F_SELECTED_PROGRESS_IDS,
  1065         return $this->confirmation_gui->getHTML();
  1070         $this->confirmation_gui->setFormAction($this->
ctrl->getFormAction($this, 
'confirmUpdateCertificate'));
  1071         $this->confirmation_gui->setHeaderText($this->
lng->txt(
'header_update_certificate'));
  1072         $this->confirmation_gui->setConfirm($this->
lng->txt(
'confirm'), 
'confirmedUpdateCertificate');
  1073         $this->confirmation_gui->setCancel($this->
lng->txt(
'cancel'), 
'view');
  1077             $this->confirmation_gui->addItem(
  1078                 self::F_SELECTED_PROGRESS_IDS . 
'[]',
  1079                 (
string) $progress_id,
  1083         return $this->confirmation_gui->getHTML();
  1094                 $assignment = $this->assignment_db->get($prgs_id->getAssignmentId());
  1095                 $progress = $assignment->getProgressForNode($prgs_id->getNodeId());
  1096                 if (!$progress->isSuccessful()) {
  1097                     $msgs->add(
false, 
'will_not_update_cert_for_unsuccessful_progress', (
string) $prgs_id);
  1102                     $prgs_id->getNodeId(),
  1103                     $prgs_id->getUsrId()
  1105                     $msgs->add(
true, 
'', (
string) $prgs_id);
  1107                     $msgs->add(
false, 
'error_updating_certificate', (
string) $prgs_id);
  1112         $this->
ctrl->redirect($this, 
"view");
  1117         $this->confirmation_gui->setFormAction($this->
ctrl->getFormAction($this, 
'confirmRemovalOfCertificate'));
  1118         $this->confirmation_gui->setHeaderText($this->
lng->txt(
'header_remove_certificate'));
  1119         $this->confirmation_gui->setConfirm($this->
lng->txt(
'confirm'), 
'confirmedRemovalOfCertificate');
  1120         $this->confirmation_gui->setCancel($this->
lng->txt(
'cancel'), 
'view');
  1124         $this->confirmation_gui->addItem(
  1125             self::F_SELECTED_PROGRESS_IDS,
  1129         return $this->confirmation_gui->getHTML();
  1134         $this->confirmation_gui->setFormAction($this->
ctrl->getFormAction($this, 
'confirmRemovalOfCertificate'));
  1135         $this->confirmation_gui->setHeaderText($this->
lng->txt(
'header_remove_certificate'));
  1136         $this->confirmation_gui->setConfirm($this->
lng->txt(
'confirm'), 
'confirmedRemovalOfCertificate');
  1137         $this->confirmation_gui->setCancel($this->
lng->txt(
'cancel'), 
'view');
  1141             $this->confirmation_gui->addItem(
  1142                 self::F_SELECTED_PROGRESS_IDS . 
'[]',
  1143                 (
string) $progress_id,
  1148         return $this->confirmation_gui->getHTML();
  1155         foreach ($pgs_ids as $idx => $prgs_id) {
  1160                     $prgs_id->getNodeId(),
  1161                     $prgs_id->getUsrId(),
  1166         $this->
ctrl->redirect($this, 
"view");
  1175             $this->
lng->txt(
'error_creating_certificate_pdf')
 
confirmRemoveUsers(array $progress_ids)
 
confirmedUpdateFromCurrentPlan()
 
getStudyProgramme(int $ref_id=null)
Get studyprogramm object for ref_id Use this ref_id if argument is null. 
 
const ACTION_UPDATE_FROM_CURRENT_PLAN
 
const ACTION_REMOVE_CERTIFICATE
 
const ACTION_UNMARK_RELEVANT
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
ilObjStudyProgramme $object
 
removeAssignment(PRGProgressId $pgs_id)
Remove user. 
 
removeCertificateForUser(int $node_id, int $usr_id,)
 
markAccreditedByProgressId(PRGProgressId $prgrs_id, ilPRGMessageCollection $msgs)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
static _lookupFullname(int $a_user_id)
 
confirmedRemovalOfCertificate()
 
Class ChatMainBarProvider . 
 
acknowledgeCoursesMulti()
 
__construct(protected ilGlobalTemplateInterface $tpl, protected ilCtrl $ctrl, protected ilToolbarGUI $toolbar, protected ilLanguage $lng, protected ilObjUser $user, protected ilTabsGUI $tabs, protected ilPRGAssignmentDBRepository $assignment_db, protected ilStudyProgrammeRepositorySearchGUI $repository_search_gui, protected ilObjStudyProgrammeIndividualPlanGUI $individual_plan_gui, protected ilPRGMessagePrinter $messages, protected Factory $data_factory, protected ilConfirmationGUI $confirmation_gui, protected ILIAS\HTTP\Wrapper\WrapperFactory $http_wrapper, protected ILIAS\Refinery\Factory $refinery, protected ILIAS\UI\Factory $ui_factory, protected ILIAS\UI\Renderer $ui_renderer, protected GuzzleHttp\Psr7\ServerRequest $request,)
 
updateCertificateForPrg(int $obj_id, int $usr_id)
 
static getInstanceByRefId($ref_id)
 
mayCurrentUserEditProgressForUser(int $usr_id)
 
loadLanguageModule(string $a_module)
Load language module. 
 
static fillAutoCompleteToolbar( $parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
This is just the same as in the parent class, except for the hardcoded class name. 
 
const ACTION_MARK_RELEVANT
 
getAssignmentsFromQuery()
 
setParentGUI(ilObjectGUI $a_parent_gui)
 
add(bool $success, string $message, string $record_identitifer)
 
getMessageCollection(string $topic)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
static _lookupObjId(int $ref_id)
 
const ACTION_CHANGE_DEADLINE
 
deliverCertificate(int $obj_id, int $usr_id)
 
initMailToMemberButton(ilToolbarGUI $toolbar, bool $separator=false)
 
const OP_EDIT_INDIVIDUAL_PLAN
 
const ACTION_CHANGE_EXPIRE_DATE
 
$messages
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
getAddableUsers(array $users)
 
getLinkTargetForAction(string $action, string $prgrs_id, int $ass_id)
Get the link target for an action on user progress. 
 
const ACTION_MARK_ACCREDITED
 
const ACTION_ACKNOWLEDGE_COURSES
 
static createFromString(string $id)
 
showInfoMessage(string $lng_var)
Shows ilUtil failed message. 
 
Class ilObjectGUI Basic methods of all Output classes. 
 
const ACTION_SHOW_INDIVIDUAL_PLAN
 
const ACTION_UPDATE_CERTIFICATE
 
trait ilPRGCertificateHelper
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
view()
Shows table with all members of the SP. 
 
static specificDicFor(ilObjStudyProgramme $prg)
 
ilObjStudyProgrammeMembersGUI: ilStudyProgrammeRepositorySearchGUI  ilObjStudyProgrammeMembersGUI: il...
 
const F_SELECTED_PROGRESS_IDS
 
confirmedUpdateCertificate()
 
const ACTION_UNMARK_ACCREDITED
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
updateFromCurrentPlanMulti()
 
Just a wrapper class to create Unit Test for other classes. 
 
const F_COMMAND_OPTION_ALL
 
Custom repository search gui class for study programme to make it possible to get a handle on users s...
 
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
 
showSuccessMessage(string $lng_var)
Shows ilUtil success message. 
 
confirmedAcknowledgeAllCourses()
 
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins 
 
static getRefIdFor(int $obj_id)
 
showMessages(ilPRGMessageCollection $msg)
 
ilPRGPermissionsHelper $permissions
 
addUsers(array $user_ids)
Assigns a users to SP. 
 
unmarkAccreditedByProgressId(PRGProgressId $prgrs_id, ilPRGMessageCollection $msgs)
 
const F_SELECTED_USER_IDS
 
confirmedAcknowledgeCourses()
 
viewCompletedCourses(array $assignments)
Shows list of completed courses for each assignment. 
 
Holds information about multi-actions, mainly in context of member-assignemnts and status changes...
 
downloadPdf(int $userId, int $objectId)
 
Refinery Factory $refinery