ILIAS  release_8 Revision v8.24
class.ilContSkillAdminGUI.php
Go to the documentation of this file.
1<?php
2
23
31{
32 protected ilCtrl $ctrl;
33 protected ilTabsGUI $tabs;
34 protected ilLanguage $lng;
44 protected int $ref_id = 0;
48 protected array $params = [];
50 protected int $requested_usr_id = 0;
51 protected array $requested_usr_ids = [];
52 protected string $requested_selected_skill = "";
53 protected array $requested_combined_skill_ids = [];
55 protected array $requested_profile_ids = [];
56
57 public function __construct(ilContainerGUI $a_container_gui)
58 {
59 global $DIC;
60
61 $this->ctrl = $DIC->ctrl();
62 $this->tabs = $DIC->tabs();
63 $this->lng = $DIC->language();
64 $this->tpl = $DIC["tpl"];
65 $this->toolbar = $DIC->toolbar();
66 $this->access = $DIC->access();
67
68 $this->container_gui = $a_container_gui;
69 /* @var $obj ilContainer */
70 $obj = $this->container_gui->getObject();
71 $this->container = $obj;
72 $this->ref_id = $this->container->getRefId();
73
74 $this->tree_service = $DIC->skills()->tree();
75 $this->tree_access_manager = $DIC->skills()->internal()->manager()->getTreeAccessManager($this->ref_id);
76 $this->profile_service = $DIC->skills()->profile();
77
78 $this->container_skills = new ilContainerSkills($this->container->getId());
79 $this->container_global_profiles = new ilContainerGlobalProfiles($this->container->getId());
80 $this->container_local_profiles = new ilContainerLocalProfiles($this->container->getId());
81 $this->skmg_settings = new ilSkillManagementSettings();
82 $this->container_gui_request = new ilSkillContainerGUIRequest();
83
84 $this->ctrl->saveParameter($this, "profile_id");
85 $this->params = $this->ctrl->getParameterArray($this);
86
87 $this->requested_usr_id = $this->container_gui_request->getUserId();
88 $this->requested_usr_ids = $this->container_gui_request->getUserIds();
89 $this->requested_selected_skill = $this->container_gui_request->getSelectedSkill();
90 $this->requested_combined_skill_ids = $this->container_gui_request->getCombinedSkillIds();
91 $this->requested_selected_profile_id = $this->container_gui_request->getSelectedProfileId();
92 $this->requested_profile_ids = $this->container_gui_request->getProfileIds();
93
94 $this->lng->loadLanguageModule("skmg");
95 $this->lng->loadLanguageModule("error");
96 }
97
98 public function executeCommand(): void
99 {
100 $next_class = $this->ctrl->getNextClass($this);
101 $cmd = $this->ctrl->getCmd("listMembers");
102
103 switch ($next_class) {
104 case "ilskillprofilegui":
105 $profile_gui = new ilSkillProfileGUI($this->tree_access_manager);
106 $this->ctrl->setReturn($this, "listProfiles");
107 $ret = $this->ctrl->forwardCommand($profile_gui);
108 break;
109 case "ilskillprofileuploadhandlergui":
110 $skprof_upl_gui = new ilSkillProfileUploadHandlerGUI();
111 $ret = $this->ctrl->forwardCommand($skprof_upl_gui);
112 break;
113 default:
114 if (
115 ($this->access->checkAccess("write", "", $this->ref_id) &&
116 in_array($cmd, [
117 "listCompetences", "settings", "saveSettings", "selectSkill",
118 "saveSelectedSkill", "confirmRemoveSelectedSkill", "removeSelectedSkill",
119 "listProfiles", "saveSelectedProfile", "confirmRemoveSelectedGlobalProfiles",
120 "removeSelectedGlobalProfiles", "confirmRemoveSingleGlobalProfile", "removeSingleGlobalProfile",
121 "confirmDeleteSingleLocalProfile", "deleteSingleLocalProfile",
122 "confirmDeleteSelectedLocalProfiles", "deleteSelectedLocalProfiles"
123 ]))
124 ||
125 ($this->access->checkAccess("grade", "", $this->ref_id) &&
126 in_array($cmd, [
127 "listMembers", "assignCompetences",
128 "saveCompetenceAssignment", "publishAssignments", "deassignCompetencesConfirm", "deassignCompetences"
129 ]))
130 ) {
131 $this->$cmd();
132 }
133 }
134 }
135
137
138 public function listMembers(): void
139 {
142
143 $tabs->activateSubTab("members");
144
145 // table
146 $tab = new ilContSkillMemberTableGUI($this, "listMembers", $this->container_skills);
147
148 $tpl->setContent($tab->getHTML());
149 }
150
151 public function assignCompetences(): void
152 {
156
157 $ctrl->saveParameter($this, "usr_id");
158 $tabs->activateSubTab("members");
159
160 $form = $this->initCompetenceAssignmentForm();
161 $tpl->setContent($form->getHTML());
162 }
163
165 {
169
170 $form = new ilPropertyFormGUI();
171
172 $mem_skills = new ilContainerMemberSkills($this->container_skills->getId(), $this->requested_usr_id);
173 $mem_levels = $mem_skills->getSkillLevels();
174
175 // user name
176 $name = ilObjUser::_lookupName($this->requested_usr_id);
177 $ne = new ilNonEditableValueGUI($this->lng->txt("obj_user"), "");
178 $ne->setValue($name["lastname"] . ", " . $name["firstname"] . " [" . $name["login"] . "]");
179 $form->addItem($ne);
180
181 if (empty($this->container_skills->getOrderedSkills())) {
182 $tpl->setOnScreenMessage('info', $lng->txt("cont_skill_no_skills_selected"), true);
183 $ctrl->redirect($this, "listMembers");
184 }
185
186 foreach ($this->container_skills->getOrderedSkills() as $sk) {
187 $skill = new ilBasicSkill($sk["skill_id"]);
188
189 // skill level options
190 $options = [
191 "-1" => $this->lng->txt("cont_skill_do_not_set"),
192 ];
193 foreach ($skill->getLevelData() as $l) {
194 $options[$l["id"]] = $l["title"];
195 }
196 $si = new ilSelectInputGUI(ilBasicSkill::_lookupTitle($sk["skill_id"], $sk["tref_id"]), "skill_" . $sk["skill_id"] . "_" . $sk["tref_id"]);
197 $si->setOptions($options);
198 $si->setInfo($this->getPathString($sk["skill_id"], $sk["tref_id"]));
199 if (isset($mem_levels[$sk["skill_id"] . ":" . $sk["tref_id"]])) {
200 $si->setValue($mem_levels[$sk["skill_id"] . ":" . $sk["tref_id"]]);
201 }
202 $form->addItem($si);
203 }
204
205 // save and cancel commands
206 $form->addCommandButton("saveCompetenceAssignment", $this->lng->txt("save"));
207 $form->addCommandButton("listMembers", $this->lng->txt("cancel"));
208
209 $form->setTitle($this->lng->txt("cont_assign_skills"));
210 $form->setFormAction($this->ctrl->getFormAction($this));
211
212 return $form;
213 }
214
215 public function getPathString(int $a_skill_id, int $a_tref_id = 0): string
216 {
217 $path = $this->tree_service->getSkillTreePath($a_skill_id, $a_tref_id);
218 $titles = [];
219 foreach ($path as $v) {
220 if ($v["type"] !== "skrt" && !($v["skill_id"] == $a_skill_id && $v["tref_id"] == $a_tref_id)) {
221 $titles[] = $v["title"];
222 }
223 }
224
225 return implode(" > ", $titles);
226 }
227
228 public function saveCompetenceAssignment(): void
229 {
232
233 $form = $this->initCompetenceAssignmentForm();
234 $form->checkInput();
235
236 $levels = [];
237 foreach ($this->container_skills->getSkills() as $sk) {
238 $l = $form->getInput("skill_" . $sk["skill_id"] . "_" . $sk["tref_id"]);
239 if ($l != -1) {
240 $levels[$sk["skill_id"] . ":" . $sk["tref_id"]] = $l;
241 }
242 }
243
244 $mem_skills = new ilContainerMemberSkills($this->container_skills->getId(), $this->requested_usr_id);
245 $mem_skills->saveLevelForSkills($levels);
246
247 if (!ilContainer::_lookupContainerSetting($this->container->getId(), "cont_skill_publish", '0')) {
248 $mem_skills->publish($this->container->getRefId());
249 }
250
251 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
252 $ctrl->redirect($this, "listMembers");
253 }
254
255 public function publishAssignments(): void
256 {
259
260 $user_ids = $this->requested_usr_ids;
261 if (empty($this->requested_usr_ids) && $this->requested_usr_id > 0) {
262 $user_ids[] = $this->requested_usr_id;
263 }
264
265 $not_changed = [];
266 foreach ($user_ids as $user_id) {
267 $mem_skills = new ilContainerMemberSkills($this->container_skills->getId(), $user_id);
268 if (!$mem_skills->publish($this->container->getRefId())) {
269 $not_changed[] = $user_id;
270 }
271 }
272
273 if (count($not_changed) === 0) {
274 $this->tpl->setOnScreenMessage('success', $lng->txt("cont_skll_published"), true);
275 } else {
276 $names = array_map(static function ($id) {
277 return ilUserUtil::getNamePresentation($id, false, false, "", true);
278 }, $not_changed);
279 $this->tpl->setOnScreenMessage('info', $lng->txt("cont_skll_published_some_not") . " (" . implode("; ", $names) . ")", true);
280 }
281
282 $ctrl->redirect($this, "listMembers");
283 }
284
285 public function deassignCompetencesConfirm(): void
286 {
291
292 $tabs->activateSubTab("members");
293
294 $user_ids = $this->requested_usr_ids;
295 if (empty($this->requested_usr_ids) && $this->requested_usr_id > 0) {
296 $user_ids[] = $this->requested_usr_id;
297 }
298
299 if (!is_array($user_ids) || count($user_ids) === 0) {
300 $this->tpl->setOnScreenMessage('info', $lng->txt("no_checkbox"), true);
301 $ctrl->redirect($this, "listMembers");
302 } else {
303 $cgui = new ilConfirmationGUI();
304 $cgui->setFormAction($ctrl->getFormAction($this));
305 $cgui->setHeaderText($lng->txt("cont_really_deassign_skills"));
306 $cgui->setCancel($lng->txt("cancel"), "listMembers");
307 $cgui->setConfirm($lng->txt("cont_deassign_competence"), "deassignCompetences");
308
309 foreach ($user_ids as $i) {
310 $name = ilUserUtil::getNamePresentation($i, false, false, "", true);
311 $cgui->addItem("usr_ids[]", (string) $i, $name);
312 }
313
314 $tpl->setContent($cgui->getHTML());
315 }
316 }
317
318 public function deassignCompetences(): void
319 {
322
323 foreach ($this->requested_usr_ids as $user_id) {
324 $mem_skills = new ilContainerMemberSkills($this->container_skills->getId(), $user_id);
325 $mem_skills->removeAllSkillLevels();
326 }
327
328 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
329 $ctrl->redirect($this, "listMembers");
330 }
331
332
334
335 public function listCompetences(): void
336 {
342
343 $tabs->activateSubTab("competences");
344
346 $lng->txt("cont_add_skill"),
347 $ctrl->getLinkTarget($this, "selectSkill")
348 );
349
350 // table
351 $tab = new ilContSkillTableGUI(
352 $this,
353 "listCompetences",
354 $this->container_skills,
355 $this->container_global_profiles,
356 $this->container_local_profiles
357 );
358
359 $tpl->setContent($tab->getHTML());
360 }
361
362 public function selectSkill(): void
363 {
366
367 $tabs->activateSubTab("competences");
368
369 $sel = new ilSkillSelectorGUI($this, "selectSkill", $this, "saveSelectedSkill");
370 if (!$sel->handleCommand()) {
371 $tpl->setContent($sel->getHTML());
372 }
373 }
374
375 public function saveSelectedSkill(): void
376 {
379
380 $s = explode(":", ($this->requested_selected_skill));
381
382 $this->container_skills->addSkill((int) $s[0], (int) $s[1]);
383 $this->container_skills->save();
384 ilSkillUsage::setUsage($this->container->getId(), (int) $s[0], (int) $s[1]);
385
386 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
387
388 $ctrl->redirect($this, "listCompetences");
389 }
390
391 public function confirmRemoveSelectedSkill(): void
392 {
397
398 $tabs->activateSubTab("competences");
399
400 if (empty($this->requested_combined_skill_ids)) {
401 $this->tpl->setOnScreenMessage('info', $lng->txt("no_checkbox"), true);
402 $ctrl->redirect($this, "listCompetences");
403 } else {
404 $cgui = new ilConfirmationGUI();
405 $cgui->setFormAction($ctrl->getFormAction($this));
406 $cgui->setHeaderText($lng->txt("cont_really_remove_skill_from_course"));
407 $cgui->setCancel($lng->txt("cancel"), "listCompetences");
408 $cgui->setConfirm($lng->txt("remove"), "removeSelectedSkill");
409
410 foreach ($this->requested_combined_skill_ids as $i) {
411 $s = explode(":", $i);
412 $cgui->addItem("id[]", (string) $i, ilBasicSkill::_lookupTitle((int) $s[0], (int) $s[1]));
413 }
414
415 $tpl->setContent($cgui->getHTML());
416 }
417 }
418
419 public function removeSelectedSkill(): void
420 {
423
424 if (!empty($this->requested_combined_skill_ids)) {
425 foreach ($this->requested_combined_skill_ids as $id) {
426 $s = explode(":", $id);
427 $this->container_skills->removeSkill($s[0], $s[1]);
428 ilSkillUsage::setUsage($this->container->getId(), (int) $s[0], (int) $s[1], false);
429 }
430 $this->container_skills->save();
431 }
432 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
433
434 $ctrl->redirect($this, "listCompetences");
435 }
436
437
439
440 public function listProfiles(): void
441 {
447
448 $tabs->activateSubTab("profiles");
449
450 $options = [];
451 $options[0] = $lng->txt("please_select");
452
453 $selectable_profiles = [];
454 $all_profiles = $this->profile_service->getAllGlobalProfiles();
455 $selected_profiles = $this->container_global_profiles->getProfiles();
456 foreach ($all_profiles as $id => $profile) {
457 if (!array_key_exists($id, $selected_profiles)) {
458 $selectable_profiles[$id] = $profile;
459 }
460 }
461
462 foreach ($selectable_profiles as $profile) {
463 $tree = $this->tree_service->getObjSkillTreeById($profile["skill_tree_id"]);
464 $options[$profile["id"]] = $tree->getTitle() . ": " . $profile["title"];
465 }
466
467 if ($this->skmg_settings->getLocalAssignmentOfProfiles()) {
468 $select = new ilSelectInputGUI($lng->txt("skmg_profile"), "p_id");
469 $select->setOptions($options);
470 $select->setValue(0);
471 $toolbar->addInputItem($select, true);
472
473 $button = ilSubmitButton::getInstance();
474 $button->setCaption("cont_add_global_profile");
475 $button->setCommand("saveSelectedProfile");
476 $toolbar->addButtonInstance($button);
477 }
478
479 if ($this->skmg_settings->getLocalAssignmentOfProfiles()
480 && $this->skmg_settings->getAllowLocalProfiles()) {
482 }
483
484 if ($this->skmg_settings->getAllowLocalProfiles()) {
485 $button = ilLinkButton::getInstance();
486 $button->setCaption("cont_add_local_profile");
487 $button->setUrl($ctrl->getLinkTargetByClass("ilskillprofilegui", "createLocal"));
488 $toolbar->addButtonInstance($button);
489 }
490
492
493 // table
494 $tab = new ilContProfileTableGUI(
495 $this,
496 "listProfiles",
497 $this->container_global_profiles,
498 $this->container_local_profiles
499 );
500
501 $tpl->setContent($tab->getHTML());
502 }
503
504 public function saveSelectedProfile(): void
505 {
508
510
511 if (!($profile_id > 0)) {
512 $this->tpl->setOnScreenMessage('info', $lng->txt("cont_skill_no_profile_selected"), true);
513 $ctrl->redirect($this, "listProfiles");
514 }
515
516 $this->container_global_profiles->addProfile($profile_id);
517 $this->container_global_profiles->save();
518
519 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
520
521 $ctrl->redirect($this, "listProfiles");
522 }
523
525 {
530
531 $tabs->activateSubTab("profiles");
532
533 if (empty($this->requested_profile_ids)) {
534 $this->tpl->setOnScreenMessage('info', $lng->txt("no_checkbox"), true);
535 $ctrl->redirect($this, "listProfiles");
536 } else {
537 $cgui = new ilConfirmationGUI();
538 $cgui->setFormAction($ctrl->getFormAction($this));
539 $cgui->setHeaderText($lng->txt("cont_skill_really_remove_profiles_from_list"));
540 $cgui->setCancel($lng->txt("cancel"), "listProfiles");
541 $cgui->setConfirm($lng->txt("remove"), "removeSelectedGlobalProfiles");
542
543 foreach ($this->requested_profile_ids as $i) {
544 if ($this->profile_service->lookupRefId($i) > 0) {
545 $this->tpl->setOnScreenMessage('info', $lng->txt("cont_skill_removal_not_possible"), true);
546 $ctrl->redirect($this, "listProfiles");
547 }
548 $cgui->addItem("id[]", (string) $i, $this->profile_service->lookupTitle($i));
549 }
550
551 $tpl->setContent($cgui->getHTML());
552 }
553 }
554
555 public function removeSelectedGlobalProfiles(): void
556 {
559
560 if (!empty($this->requested_profile_ids)) {
561 foreach ($this->requested_profile_ids as $id) {
562 $this->container_global_profiles->removeProfile($id);
563 }
564 $this->container_global_profiles->save();
565 }
566 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
567
568 $ctrl->redirect($this, "listProfiles");
569 }
570
571 public function confirmRemoveSingleGlobalProfile(): void
572 {
577
578 $tabs->activateSubTab("profiles");
579
580 $profile_id = (int) $this->params["profile_id"];
581
582 if (!($profile_id > 0)) {
583 $this->tpl->setOnScreenMessage('failure', $lng->txt("error_sry_error"), true);
584 $ctrl->redirect($this, "listProfiles");
585 } else {
586 $cgui = new ilConfirmationGUI();
587 $cgui->setFormAction($ctrl->getFormAction($this));
588 $cgui->setHeaderText($lng->txt("cont_skill_really_remove_profile_from_list"));
589 $cgui->setCancel($lng->txt("cancel"), "listProfiles");
590 $cgui->setConfirm($lng->txt("remove"), "removeSingleGlobalProfile");
591 $cgui->addItem("", (string) $profile_id, $this->profile_service->lookupTitle($profile_id));
592
593 $tpl->setContent($cgui->getHTML());
594 }
595 }
596
597 public function removeSingleGlobalProfile(): void
598 {
601
602 $profile_id = (int) $this->params["profile_id"];
603
604 if ($profile_id > 0) {
605 $this->container_global_profiles->removeProfile($profile_id);
606 $this->container_global_profiles->save();
607 }
608 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
609
610 $ctrl->redirect($this, "listProfiles");
611 }
612
614 {
619
620 $tabs->activateSubTab("profiles");
621
622 if (empty($this->requested_profile_ids)) {
623 $this->tpl->setOnScreenMessage('info', $lng->txt("no_checkbox"), true);
624 $ctrl->redirect($this, "listProfiles");
625 } else {
626 $cgui = new ilConfirmationGUI();
627 $cgui->setFormAction($ctrl->getFormAction($this));
628 $cgui->setHeaderText($lng->txt("cont_skill_really_delete_profiles_from_list"));
629 $cgui->setCancel($lng->txt("cancel"), "listProfiles");
630 $cgui->setConfirm($lng->txt("delete"), "deleteSelectedLocalProfiles");
631
632 foreach ($this->requested_profile_ids as $i) {
633 if (!($this->profile_service->lookupRefId($i) > 0)) {
634 $this->tpl->setOnScreenMessage('info', $lng->txt("cont_skill_deletion_not_possible"), true);
635 $ctrl->redirect($this, "listProfiles");
636 }
637 $cgui->addItem("id[]", (string) $i, $this->profile_service->lookupTitle($i));
638 }
639
640 $tpl->setContent($cgui->getHTML());
641 }
642 }
643
644 public function deleteSelectedLocalProfiles(): void
645 {
648
649 if (!empty($this->requested_profile_ids)) {
650 foreach ($this->requested_profile_ids as $id) {
651 if ($this->profile_service->lookupRefId($id) > 0) {
652 $this->profile_service->delete($id);
653 }
654 }
655 }
656 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
657
658 $ctrl->redirect($this, "listProfiles");
659 }
660
661 public function confirmDeleteSingleLocalProfile(): void
662 {
667
668 $tabs->activateSubTab("profiles");
669
670 $profile_id = (int) $this->params["profile_id"];
671
672 if (!($profile_id > 0)) {
673 $this->tpl->setOnScreenMessage('failure', $lng->txt("error_sry_error"), true);
674 $ctrl->redirect($this, "listProfiles");
675 } else {
676 $cgui = new ilConfirmationGUI();
677 $cgui->setFormAction($ctrl->getFormAction($this));
678 $cgui->setHeaderText($lng->txt("cont_skill_really_delete_profile_from_list"));
679 $cgui->setCancel($lng->txt("cancel"), "listProfiles");
680 $cgui->setConfirm($lng->txt("delete"), "deleteSingleLocalProfile");
681 $cgui->addItem("", (string) $profile_id, $this->profile_service->lookupTitle($profile_id));
682
683 $tpl->setContent($cgui->getHTML());
684 }
685 }
686
687 public function deleteSingleLocalProfile(): void
688 {
691
692 $profile_id = (int) $this->params["profile_id"];
693
694 if ($profile_id > 0) {
695 $this->profile_service->delete($profile_id);
696 }
697 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
698
699 $ctrl->redirect($this, "listProfiles");
700 }
701
702
704
705 public function settings(): void
706 {
709
710 $tabs->activateSubTab("settings");
711
712 $form = $this->initSettingsForm();
713
714 $tpl->setContent($form->getHTML());
715 }
716
718 {
721
722 $form = new ilPropertyFormGUI();
723
724 // publish
725 $radg = new ilRadioGroupInputGUI($lng->txt("cont_skill_publish"), "cont_skill_publish");
726 $op1 = new ilRadioOption($lng->txt("cont_skill_publish_auto"), '0', $lng->txt("cont_skill_publish_auto_info"));
727 $radg->addOption($op1);
728 $op2 = new ilRadioOption($lng->txt("cont_skill_publish_manual"), '1', $lng->txt("cont_skill_publish_manual_info"));
729 $radg->addOption($op2);
730 $form->addItem($radg);
731 $radg->setValue(ilContainer::_lookupContainerSetting($this->container->getId(), "cont_skill_publish", '0'));
732
733 $form->addCommandButton("saveSettings", $lng->txt("save"));
734
735 $form->setTitle($lng->txt("settings"));
736 $form->setFormAction($ctrl->getFormAction($this));
737
738 return $form;
739 }
740
741 public function saveSettings(): void
742 {
745
746 $form = $this->initSettingsForm();
747 $form->checkInput();
748 ilContainer::_writeContainerSetting($this->container->getId(), "cont_skill_publish", $form->getInput("cont_skill_publish"));
749
750 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
751
752 $ctrl->redirect($this, "settings");
753 }
754}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
TableGUI class for competence profiles in containers.
Container skills administration.
ilGlobalTemplateInterface $tpl
ilSkillManagementSettings $skmg_settings
SkillTreeAccess $tree_access_manager
ilContainerLocalProfiles $container_local_profiles
getPathString(int $a_skill_id, int $a_tref_id=0)
ilContainerGlobalProfiles $container_global_profiles
__construct(ilContainerGUI $a_container_gui)
ilSkillContainerGUIRequest $container_gui_request
SkillProfileService $profile_service
ilContainerSkills $container_skills
TableGUI class for container members / skill assignments.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilContainerGUI This is a base GUI class for all container objects in ILIAS: root folder,...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Skills of a container.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _writeContainerSetting(int $a_id, string $a_keyword, string $a_value)
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
Class ilCtrl provides processing control methods.
getLinkTargetByClass( $a_class, string $a_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
redirect(object $a_gui_obj, string $a_cmd=null, string $a_anchor=null, bool $is_async=false)
@inheritDoc
saveParameter(object $a_gui_obj, $a_parameter)
@inheritDoc
getLinkTarget(object $a_gui_obj, string $a_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
getFormAction(object $a_gui_obj, string $a_fallback_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
language handling
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupName(int $a_user_id)
lookup user name
This class represents a property form user interface.
This class represents a property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a selection list property in a property form.
Request wrapper for skill guis in container classes.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Skill profile GUI class.
Class ilSkillProfileUploadHandlerGUI.
Explorer class that works on tree objects (Services/Tree)
static _lookupTitle(int $a_obj_id, int $a_tref_id=0)
static setUsage(int $a_obj_id, int $a_skill_id, int $a_tref_id, bool $a_use=true)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
activateSubTab(string $a_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setFormAction(string $a_val, bool $a_multipart=false, string $a_target="")
Set form action (if form action is set, toolbar is wrapped into form tags)
addButtonInstance(ilButtonBase $a_button)
Add button instance.
addButton(string $a_txt, string $a_cmd, string $a_target="", ?int $a_acc_key=null, string $a_additional_attrs='', string $a_id="", string $a_class='submit')
addInputItem(ilToolbarItem $a_item, bool $a_output_label=false)
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link="", bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
global $DIC
Definition: feed.php:28
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setContent(string $a_html)
Sets content for standard template.
setOnScreenMessage(string $type, string $a_txt, bool $a_keep=false)
Set a message to be displayed to the user.
$path
Definition: ltiservices.php:32
if($format !==null) $name
Definition: metadata.php:247
$i
Definition: metadata.php:41