3 declare(strict_types=1);
51 protected \ILIAS\Data\Factory
$df;
54 protected int $id = 0;
55 protected ?Profile\SkillProfile
$profile = null;
108 $this->
ctrl = $DIC->ctrl();
109 $this->
lng = $DIC->language();
110 $this->
tabs = $DIC->tabs();
111 $this->tpl = $DIC[
"tpl"];
112 $this->
help = $DIC[
"ilHelp"];
113 $this->
toolbar = $DIC->toolbar();
114 $this->ui_fac = $DIC->ui()->factory();
115 $this->ui_ren = $DIC->ui()->renderer();
116 $this->df = new \ILIAS\Data\Factory();
117 $this->request = $DIC->http()->request();
118 $this->query = $DIC->http()->wrapper()->query();
119 $this->tree_service = $DIC->skills()->tree();
122 $this->admin_gui_request = $DIC->skills()->internal()->gui()->admin_request();
123 $this->skill_factory = $DIC->skills()->internal()->factory();
124 $this->profile_manager = $DIC->skills()->internal()->manager()->getProfileManager();
125 $this->profile_completion_manager = $DIC->skills()->internal()->manager()->getProfileCompletionManager();
126 $this->table_manager = $DIC->skills()->internal()->manager()->getTableManager();
127 $this->usage_manager = $DIC->skills()->internal()->manager()->getUsageManager();
129 $this->
ctrl->saveParameter($this, [
"sprof_id",
"local_context"]);
131 $this->requested_ref_id = $this->admin_gui_request->getRefId();
132 $this->requested_sprof_id = $this->admin_gui_request->getSkillProfileId();
133 $this->requested_profile_ids = $this->admin_gui_request->getProfileIds();
134 $this->requested_local_context = $this->admin_gui_request->getLocalContext();
135 $this->requested_cskill_id = $this->admin_gui_request->getCombinedSkillId();
136 $this->requested_level_ass_ids = $this->admin_gui_request->getAssignedLevelIds();
137 $this->requested_level_order = $this->admin_gui_request->getOrder();
138 $this->requested_user_login = $this->admin_gui_request->getUserLogin();
139 $this->requested_users = $this->admin_gui_request->getUsers();
140 $this->requested_user_ids = $this->admin_gui_request->getUserIds();
141 $this->requested_table_profile_action = $this->admin_gui_request->getTableProfileAction();
142 $this->requested_table_profile_ids = $this->admin_gui_request->getTableProfileIds();
143 $this->requested_level_id = $this->admin_gui_request->getLevelId();
145 if ($this->requested_sprof_id > 0) {
150 $this->
profile = $this->profile_manager->getProfile($this->
id);
151 if ($this->skill_tree_id == 0) {
152 $this->skill_tree_id = $this->
profile->getSkillTreeId();
155 $this->local_context =
true;
165 $cmd = $ilCtrl->getCmd(
"listProfiles");
166 $next_class = $ilCtrl->getNextClass();
167 switch ($next_class) {
168 case 'ilrepositorysearchgui':
170 $user_search->setTitle($lng->
txt(
'skmg_add_user_to_profile'));
171 $user_search->setCallback($this,
'assignUser');
172 $user_search->setRoleCallback($this,
'assignRole');
176 $ilCtrl->setReturn($this,
'showUsers');
177 $ret = $ilCtrl->forwardCommand($user_search);
181 if (in_array($cmd, array(
"listProfiles",
"create",
"edit",
"save",
"update",
182 "deleteProfiles",
"showLevels",
"assignLevel",
183 "assignLevelSelectSkill",
"updateLevelOfSelectedSkill",
184 "assignLevelToProfile",
"updateLevelOfProfile",
185 "confirmLevelAssignmentRemoval",
"removeLevelAssignments",
186 "showUsers",
"assignUser",
"assignRole",
187 "confirmUserRemoval",
"removeUsers",
"exportProfiles",
"showImportForm",
188 "importProfiles",
"saveLevelOrder",
"createLocal",
"saveLocal",
189 "listLocalProfiles",
"showLevelsWithLocalContext",
"showObjects",
190 "showLevelsWithTableContext"))) {
197 public function setTabs(
string $a_active): void
209 $ilTabs->clearTargets();
210 $ilHelp->setScreenIdComponent(
"skmg_prof");
212 $ilCtrl->clearParameterByClass(self::class,
"sprof_id");
213 $ilTabs->setBackTarget(
214 $lng->
txt(
"skmg_skill_profiles"),
215 $ilCtrl->getLinkTarget($this,
"")
217 $ilCtrl->setParameter($this,
"sprof_id", $this->requested_sprof_id);
222 $lng->
txt(
"skmg_assigned_skill_levels"),
223 $ilCtrl->getLinkTarget($this,
"showLevels")
229 $lng->
txt(
"skmg_assigned_users"),
230 $ilCtrl->getLinkTarget($this,
"showUsers")
236 $lng->
txt(
"skmg_assigned_objects"),
237 $ilCtrl->getLinkTarget($this,
"showObjects")
241 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
244 $lng->
txt(
"settings"),
245 $ilCtrl->getLinkTarget($this,
"edit")
249 $ilTabs->activateTab($a_active);
259 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
260 $ilToolbar->addButton(
261 $lng->
txt(
"skmg_add_profile"),
262 $ilCtrl->getLinkTarget($this,
"create")
265 $ilToolbar->addButton(
267 $ilCtrl->getLinkTarget($this,
"showImportForm")
271 $table = $this->table_manager->getProfileTable($this->requested_ref_id, $this->skill_tree_id)->getComponent();
273 $tpl->
setContent($this->ui_ren->render($table));
288 $tpl->
setContent($this->ui_ren->render($form));
300 $lng->
txt(
"back_to_course"),
305 $tpl->
setContent($this->ui_ren->render($form));
314 $tpl->
setContent($this->ui_ren->render($form));
329 $ti = $this->ui_fac->input()->field()->text($lng->
txt(
"title"))
330 ->withRequired(
true);
333 $desc = $this->ui_fac->input()->field()->textarea($lng->
txt(
"description"));
337 if ($a_mode ==
"createLocal") {
339 $trees = $this->tree_service->getObjSkillTrees();
340 foreach ($trees as $tree) {
341 $options[$tree->getId()] = $tree->getTitle();
343 $se = $this->ui_fac->input()->field()->select($lng->
txt(
"skmg_skill_tree"), $options)->withRequired(
true);
348 ->withAcceptedMimeTypes([MimeType::IMAGE__PNG, MimeType::IMAGE__JPEG]);
353 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
354 if ($a_mode ==
"create") {
355 $sec_des = $lng->
txt(
"skmg_add_profile");
356 $form_action = $ilCtrl->getFormAction($this,
"save");
357 } elseif ($a_mode ==
"createLocal") {
358 $sec_des = $lng->
txt(
"skmg_add_local_profile");
359 $form_action = $ilCtrl->getFormAction($this,
"saveLocal");
362 $ti = $ti->withValue($this->
profile->getTitle());
363 $desc = $desc->withValue($this->
profile->getDescription());
364 $img = $this->
profile->getImageId() ? $img->withValue([$this->
profile->getImageId()]) : $img;
366 $sec_des = $lng->
txt(
"skmg_edit_profile");
367 $form_action = $ilCtrl->getFormAction($this,
"update");
372 $section_basic = $this->ui_fac->input()->field()->section(
373 [
"title" => $ti,
"description" => $desc],
377 $section_basic = $this->ui_fac->input()->field()->section(
378 [
"title" => $ti,
"description" => $desc,
"skill_tree" => $se],
382 $section_advanced = $this->ui_fac->input()->field()->section([
"image" => $img], $lng->
txt(
"skmg_form_presentation"));
384 $form = $this->ui_fac->input()->container()->form()->standard(
386 [
"section_basic" => $section_basic,
"section_advanced" => $section_advanced]
398 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
403 if ($this->request->getMethod() ==
"POST" 404 && $this->request->getQueryParams()[
"profile"] ==
"profile_settings") {
405 $form = $form->withRequest($this->request);
406 $result = $form->getData();
407 if (is_null($result)) {
408 $tpl->
setContent($this->ui_ren->render($form));
411 $profile = $this->skill_factory->profile()->profile(
413 $result[
"section_basic"][
"title"],
414 $result[
"section_basic"][
"description"],
415 $this->skill_tree_id,
416 $result[
"section_advanced"][
"image"][0] ??
"" 418 $this->profile_manager->createProfile($profile);
420 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
421 $ilCtrl->redirect($this,
"listProfiles");
423 $ilCtrl->redirect($this,
"listProfiles");
432 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
437 if ($this->request->getMethod() ==
"POST" 438 && $this->request->getQueryParams()[
"profile"] ==
"profile_settings") {
439 $form = $form->withRequest($this->request);
440 $result = $form->getData();
441 if (is_null($result)) {
442 $tpl->
setContent($this->ui_ren->render($form));
445 $profile = $this->skill_factory->profile()->profile(
447 $result[
"section_basic"][
"title"],
448 $result[
"section_basic"][
"description"],
449 (
int) $result[
"section_basic"][
"skill_tree"],
450 $result[
"section_advanced"][
"image"][0] ??
"",
451 $this->requested_ref_id
453 $new_profile = $this->profile_manager->createProfile($profile);
454 $this->profile_manager->addRoleToProfile(
455 $new_profile->getId(),
458 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
459 $ilCtrl->redirectByClass(
"ilcontskilladmingui",
"listProfiles");
461 $ilCtrl->redirectByClass(
"ilcontskilladmingui",
"listProfiles");
470 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
475 if ($this->request->getMethod() ==
"POST" 476 && $this->request->getQueryParams()[
"profile"] ==
"profile_settings") {
477 $form = $form->withRequest($this->request);
478 $result = $form->getData();
479 if (is_null($result)) {
480 $tpl->
setContent($this->ui_ren->render($form));
483 $profile = $this->skill_factory->profile()->profile(
485 $result[
"section_basic"][
"title"],
486 $result[
"section_basic"][
"description"],
487 $this->
profile->getSkillTreeId(),
488 $result[
"section_advanced"][
"image"][0] ??
"",
491 $this->profile_manager->updateProfile($profile);
493 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"msg_obj_modified"),
true);
494 $ilCtrl->redirect($this,
"edit");
496 $ilCtrl->redirect($this,
"listProfiles");
505 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
509 if (!empty($this->requested_profile_ids)) {
510 foreach ($this->requested_profile_ids as $i) {
511 $this->profile_manager->delete($i);
512 $this->profile_completion_manager->deleteEntriesForProfile($i);
514 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"msg_obj_modified"),
true);
517 $ilCtrl->redirect($this,
"listProfiles");
528 if ($this->requested_table_profile_action ===
"editProfile" && !empty($this->requested_table_profile_ids)) {
529 $ilCtrl->
setParameter($this,
"sprof_id", $this->requested_table_profile_ids[0]);
530 $ilCtrl->redirect($this,
"showLevels");
543 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
544 $ilToolbar->addButton(
545 $lng->
txt(
"skmg_assign_level"),
546 $ilCtrl->getLinkTarget($this,
"assignLevel")
568 $lng->
txt(
"back_to_course"),
572 if ($this->skill_tree_access_manager->hasManageProfilesPermission()) {
574 $lng->
txt(
"skmg_assign_level"),
581 "showLevelsWithLocalContext",
601 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"skmg_select_skill_level_assign"));
603 $ilTabs->clearTargets();
605 $ilTabs->setBackTarget(
607 $ilCtrl->getLinkTarget($this,
"showLevelsWithLocalContext")
610 $ilTabs->setBackTarget(
612 $ilCtrl->getLinkTarget($this,
"showLevels")
621 "assignLevelSelectSkill",
625 if (!$exp->handleCommand()) {
641 $ilCtrl->saveParameter($this,
"cskill_id");
647 $ilTabs->clearTargets();
649 $ilTabs->setBackTarget(
651 $ilCtrl->getLinkTarget($this,
"showLevelsWithLocalContext")
654 $ilTabs->setBackTarget(
656 $ilCtrl->getLinkTarget($this,
"showLevels")
660 $id_parts = explode(
":", $this->requested_cskill_id);
661 $skill_id = (
int) $id_parts[0];
663 $level_data = $skill->getLevelData();
666 foreach ($level_data as $levels) {
667 $ilCtrl->setParameterByClass(self::class,
"level_id", $levels[
"id"]);
668 $items[] = $this->ui_fac->item()->standard($levels[
"title"])->withMainAction(
669 $this->ui_fac->link()->standard(
670 $lng->
txt(
"skmg_assign_level"),
671 $ilCtrl->getLinkTarget($this, $update ?
"updateLevelOfProfile" :
"assignLevelToProfile")
674 $ilCtrl->clearParameterByClass(self::class,
"level_id");
677 $list = $this->ui_fac->panel()->listing()->standard(
678 $skill->getTitle() .
", " . $lng->
txt(
"skmg_skill_levels"),
680 $this->ui_fac->item()->group(
"", $items)
684 $tpl->
setContent($this->ui_ren->render($list));
698 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
703 $this->profile_manager->updateSkillLevel($level);
705 $parts = explode(
":", $this->requested_cskill_id);
706 $level = $this->skill_factory->profile()->profileLevel(
711 $this->profile_manager->getMaxLevelOrderNr($this->
profile->getId()) + 10
713 $this->profile_manager->addSkillLevel($level);
717 $this->profile_completion_manager->writeCompletionEntryForAllAssignedUsersOfProfile($this->
profile->getId());
719 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
721 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
723 $ilCtrl->redirect($this,
"showLevels");
728 $parts = explode(
":", $this->requested_cskill_id);
729 $level = $this->profile_manager->getSkillLevel($this->
profile->getId(), (
int)
$parts[0], (
int)
$parts[1]);
730 $level_updated = $this->skill_factory->profile()->profileLevel(
731 $level->getProfileId(),
732 $level->getBaseSkillId(),
754 if (empty($this->requested_level_ass_ids)) {
755 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"no_checkbox"),
true);
757 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
759 $ilCtrl->redirect($this,
"showLevels");
762 $cgui->setFormAction($ilCtrl->getFormAction($this));
763 $cgui->setHeaderText($lng->
txt(
"skmg_confirm_remove_level_ass"));
765 $cgui->setCancel($lng->
txt(
"cancel"),
"showLevelsWithLocalContext");
767 $cgui->setCancel($lng->
txt(
"cancel"),
"showLevels");
769 $cgui->setConfirm($lng->
txt(
"remove"),
"removeLevelAssignments");
771 foreach ($this->requested_level_ass_ids as $i) {
772 $id_arr = explode(
":", $i);
790 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
794 if (!empty($this->requested_level_ass_ids)) {
795 foreach ($this->requested_level_ass_ids as $i) {
796 $id_arr = explode(
":", $i);
797 $level = $this->skill_factory->profile()->profileLevel(
804 $this->profile_manager->removeSkillLevel($level);
806 $this->profile_manager->fixSkillOrderNumbering($this->
profile->getId());
810 $this->profile_completion_manager->writeCompletionEntryForAllAssignedUsersOfProfile($this->
profile->getId());
813 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
815 $ilCtrl->redirect($this,
"showLevels");
824 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
829 $this->profile_manager->updateSkillOrder($this->
profile->getId(), $order);
831 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
833 $ilCtrl->redirect($this,
"showLevelsWithLocalContext");
835 $ilCtrl->redirect($this,
"showLevels");
845 if ($this->skill_tree_access_manager->hasManageProfilesPermission() && !$this->
profile->getRefId() > 0) {
850 'auto_complete_name' => $lng->
txt(
'user'),
851 'submit_name' => $lng->
txt(
'skmg_assign_user')
855 $ilToolbar->addSeparator();
857 $button = $this->ui_fac->button()->standard(
858 $this->
lng->txt(
"skmg_add_assignment"),
859 $this->
ctrl->getLinkTargetByClass(
"ilRepositorySearchGUI",
"start")
861 $ilToolbar->addComponent($button);
866 $table = $this->table_manager->getProfileUserAssignmentTable(
868 $this->skill_tree_access_manager
870 $tpl->
setContent($this->ui_ren->render($table));
878 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
885 $this->profile_manager->addUserToProfile($this->
profile->getId(), $user_id);
887 $this->profile_completion_manager->writeCompletionEntryForSingleProfileOfUser($user_id, $this->
profile->getId());
888 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
893 if (!empty($users)) {
894 foreach ($users as $id) {
896 $this->profile_manager->addUserToProfile($this->
profile->getId(),
$id);
898 $this->profile_completion_manager->writeCompletionEntryForSingleProfileOfUser($id, $this->
profile->getId());
901 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
904 $ilCtrl->redirect($this,
"showUsers");
912 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
917 foreach ($role_ids as $id) {
919 $this->profile_manager->addRoleToProfile($this->
profile->getId(),
$id);
920 $this->profile_completion_manager->writeCompletionEntryForRole($id, $this->
profile->getId());
925 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
928 $ilCtrl->redirect($this,
"showUsers");
936 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
940 if (!empty($this->requested_user_ids)) {
941 foreach ($this->requested_user_ids as $i) {
945 $this->profile_manager->removeUserFromProfile($this->
profile->getId(), $i);
949 $this->profile_manager->removeRoleFromProfile($this->
profile->getId(), $i);
956 $this->tpl->setOnScreenMessage(
"success", $lng->
txt(
"msg_obj_modified"),
true);
958 $ilCtrl->redirect($this,
"showUsers");
967 $objects = $this->usage_manager->getAssignedObjectsForSkillProfile($this->
profile->getId());
969 $table = $this->table_manager->getAssignedObjectsTable(
976 $tpl->
setContent($this->ui_ren->render($table));
984 if (!$this->skill_tree_access_manager->hasManageProfilesPermission()) {
988 $profiles_to_export = [];
989 if ($this->requested_table_profile_action ===
"exportProfiles" 990 && !empty($this->requested_table_profile_ids)
991 && $this->requested_table_profile_ids[0] ===
"ALL_OBJECTS" 993 $profiles = $this->skill_tree_id
994 ? $this->profile_manager->getProfilesForSkillTree($this->skill_tree_id)
995 : $this->profile_manager->getProfilesForAllSkillTrees();
996 foreach ($profiles as $profile) {
997 $profiles_to_export[] = $profile->getId();
999 } elseif ($this->requested_table_profile_action ===
"exportProfiles") {
1000 $profiles_to_export = array_map(
"intval", $this->requested_table_profile_ids);
1003 if (empty($profiles_to_export)) {
1004 $this->tpl->setOnScreenMessage(
'info', $lng->
txt(
"no_checkbox"),
true);
1005 $ilCtrl->redirect($this,
"");
1009 $conf = $exp->getConfig(
"Services/Skill");
1011 $conf->setSelectedProfiles($profiles_to_export);
1012 $conf->setSkillTreeId($this->skill_tree_id);
1019 $ilCtrl->redirectByClass(array(
"ilobjskilltreegui",
"ilexportgui"),
"");
1039 $fi->setRequired(
true);
1040 $form->addItem($fi);
1043 $form->addCommandButton(
"importProfiles", $lng->
txt(
"import"));
1044 $form->addCommandButton(
"", $lng->
txt(
"cancel"));
1046 $form->setTitle($lng->
txt(
"import"));
1047 $form->setFormAction($ilCtrl->getFormAction($this));
1059 if ($form->checkInput()) {
1061 $conf = $imp->getConfig(
"Services/Skill");
1062 $conf->setSkillTreeId($this->skill_tree_id);
1063 $imp->importEntity($_FILES[
"import_file"][
"tmp_name"], $_FILES[
"import_file"][
"name"],
"skmg",
"Services/Skill");
1065 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"msg_obj_modified"),
true);
1066 $ilCtrl->redirect($this,
"");
1068 $form->setValuesByPost();
TableGUI class for skill profile levels.
getLinkTargetByClass( $a_class, string $a_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
redirectByClass( $a_class, string $a_cmd=null, string $a_anchor=null, bool $is_async=false)
SkillTreeAccess $skill_tree_access_manager
array $requested_profile_ids
Class ilSkillProfileUploadHandlerGUI.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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...
Profile SkillProfile $profile
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ChatMainBarProvider .
Request wrapper for guis in skill administration.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
confirmLevelAssignmentRemoval()
static _lookupTitle(int $a_obj_id, int $a_tref_id=0)
static _lookupId($a_user_str)
setTabs(string $a_active)
showLevelsWithLocalContext()
static lookupLevelTitle(int $a_id)
array $requested_level_ass_ids
assignLevelSelectSkill(bool $update=false)
Output level table for profile assignment.
static getDefaultMemberRole(int $a_ref_id)
SkillAdminGUIRequest $admin_gui_request
Customizing of pimple-DIC for ILIAS.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Table TableManager $table_manager
initProfileForm(string $a_mode="edit")
static _lookupObjId(int $ref_id)
ilGlobalTemplateInterface $tpl
SkillTreeService $tree_service
assignRole(array $role_ids)
updateLevelOfSelectedSkill()
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.
string $requested_user_login
string $requested_cskill_id
setBackTarget(string $a_title, string $a_target, string $a_frame="")
ServerRequestInterface $request
array $requested_table_profile_ids
static fillAutoCompleteToolbar(object $parent_object, ilToolbarGUI $toolbar=null, array $a_options=[], bool $a_sticky=false)
array( auto_complete_name = $lng->txt('user'), auto_complete_size = 15, user_type = array(ilCoursePar...
__construct(SkillTreeAccess $skill_tree_access_manager, int $skill_tree_id=0)
clearTargets()
clear all targets
assignLevelToProfile(Profile\SkillProfileLevel $level=null)
setTitle(string $a_title, bool $hidden=false)
Sets title in standard template.
bool $requested_local_context
Skill internal factory service.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
showLevelsWithTableContext()
string $requested_table_profile_action
ArrayBasedRequestWrapper $query
Explorer class that works on tree objects (Services/Tree)
getLinkTarget(object $a_gui_obj, string $a_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
Profile SkillProfileManager $profile_manager
setDescription(string $a_descr)
Sets description below title in standard template.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
SkillInternalFactoryService $skill_factory
static _lookupType(int $id, bool $reference=false)
Profile SkillProfileCompletionManager $profile_completion_manager
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static stripSlashesArray(array $a_arr, bool $a_strip_html=true, string $a_allow="")
array $requested_level_order
array $requested_user_ids
Usage SkillUsageManager $usage_manager